clone

a browser-first diagram editor with live svg previews, local drafts and encrypted, accountless sharing

main
diagramzip / skills / catalog.mjs
catalog.mjs 14.3K
1export const skillGroups = [2 { id: 'workflow', label: 'Routing and collaboration' },3 { id: 'behavior', label: 'Behavior and process' },4 { id: 'architecture', label: 'Software and system structure' },5 { id: 'conceptual', label: 'Conceptual and planning' },6 { id: 'data', label: 'Data visualization' },7 { id: 'technical', label: 'Technical and hardware' },8]910const skill = (id, label, group, role, question, useCases, avoidWhen) => ({11 id,12 label,13 group,14 role,15 question,16 useCases,17 avoidWhen,18})1920export const diagramSkills = [21 skill('diagramming', 'Choose a diagram', 'workflow', 'router', 'Which visual story best answers the reader\'s question?', ['Route a diagram request by meaning', 'Choose a renderer after choosing the story'], ['The user already selected a semantic diagram type']),22 skill('diagram-workshop', 'Diagram workshop', 'workflow', 'workflow', 'What should we discover together before committing to a diagram?', ['Facilitate an explicit, user-led diagram design session'], ['A focused request can be handled directly']),23 skill('diagram-review', 'Review a diagram', 'workflow', 'Does the diagram tell its intended story accurately and accessibly?', ['Review semantics, readability, fidelity, and accessibility'], ['The request is only to choose a diagram family']),2425 skill('flowchart', 'Flowchart', 'behavior', 'diagram', 'What path does work follow through steps and decisions?', ['Procedures', 'Algorithms', 'Decision-heavy workflows'], ['Time-ordered interactions need lifelines', 'Formal business semantics require BPMN']),26 skill('sequence-diagram', 'Sequence diagram', 'behavior', 'diagram', 'Who communicates with whom, and in what order?', ['API calls', 'Runtime collaborations', 'Request and response flows'], ['The main story is static structure']),27 skill('state-machine-diagram', 'State machine diagram', 'behavior', 'diagram', 'Which events cause an entity to change state?', ['Lifecycle rules', 'Protocol states', 'UI state transitions'], ['The story is a sequence of work rather than persistent state']),28 skill('activity-diagram', 'Activity diagram', 'behavior', 'diagram', 'How does work flow across actions, branches, and owners?', ['Concurrent workflows', 'Swimlane processes', 'UML behavioral modeling'], ['The process requires executable BPMN semantics']),29 skill('bpmn-process', 'BPMN process', 'behavior', 'diagram', 'How does a formal business process coordinate work, events, and participants?', ['Auditable business processes', 'Message flows', 'Exception and event handling'], ['A lightweight explanatory flow is sufficient']),30 skill('use-case-diagram', 'Use-case diagram', 'behavior', 'diagram', 'Which actors pursue which goals through the system?', ['Scope conversations', 'Actor goals', 'System boundary discussions'], ['Detailed interaction order or internal design is required']),31 skill('data-flow-diagram', 'Data-flow diagram', 'behavior', 'diagram', 'Where does data originate, move, transform, and rest?', ['Information flows', 'Trust-boundary analysis', 'Data-processing overviews'], ['Control flow or message timing is the main concern']),32 skill('timeline', 'Timeline', 'behavior', 'diagram', 'What happened, or will happen, in chronological order?', ['Milestones', 'Historical narratives', 'Release evolution'], ['Durations and dependencies drive the story']),33 skill('gantt-chart', 'Gantt chart', 'behavior', 'diagram', 'When do tasks occur, overlap, and depend on each other?', ['Project schedules', 'Critical dependencies', 'Delivery planning'], ['Only milestone chronology is needed']),34 skill('user-journey-map', 'User journey map', 'behavior', 'diagram', 'What does a person experience across stages of a goal?', ['Experience mapping', 'Touchpoints', 'Pain points and opportunities'], ['The request is for system behavior without a user-experience lens']),3536 skill('choose-architecture-diagram', 'Choose an architecture diagram', 'architecture', 'router', 'Which abstraction level and viewpoint will answer the architecture question?', ['Route among landscape, context, container, component, dynamic, and deployment views'], ['The user already selected an architecture view']),37 skill('system-landscape-diagram', 'System landscape diagram', 'architecture', 'diagram', 'How do systems and people relate across an organization or domain?', ['Enterprise system portfolios', 'Cross-system dependencies', 'Ownership context'], ['The focus is one system and its immediate environment']),38 skill('system-context-diagram', 'System context diagram', 'architecture', 'diagram', 'How does one system interact with people and external systems?', ['C4 system context', 'Scope and boundary communication'], ['Internal applications or deployable units must be shown']),39 skill('container-diagram', 'Container diagram', 'architecture', 'diagram', 'What deployable or runnable units make up the system?', ['C4 containers', 'Technology responsibilities', 'Inter-container communication'], ['Code-level components or infrastructure instances are the focus']),40 skill('component-diagram', 'Component diagram', 'architecture', 'diagram', 'Which components collaborate inside a container or subsystem?', ['C4 components', 'UML components', 'Module responsibility'], ['Only system-level scope is needed']),41 skill('architecture-dynamic-diagram', 'Architecture dynamic diagram', 'architecture', 'diagram', 'How do architecture elements collaborate for one scenario?', ['C4 dynamic views', 'Cross-boundary runtime stories'], ['A reusable protocol sequence needs detailed lifelines']),42 skill('deployment-diagram', 'Deployment diagram', 'architecture', 'diagram', 'Where do software instances run, and how are they connected?', ['Runtime topology', 'Infrastructure mapping', 'C4 or UML deployment views'], ['Logical structure without runtime placement is enough']),43 skill('block-diagram', 'Block diagram', 'architecture', 'diagram', 'What are the major functional blocks and their interfaces?', ['Functional decomposition', 'System overviews', 'Signal or responsibility boundaries'], ['A stricter domain notation is required']),44 skill('class-diagram', 'Class diagram', 'architecture', 'diagram', 'What types exist and how are their structures related?', ['Domain models', 'Object-oriented design', 'Static type relationships'], ['The main story concerns data persistence tables']),45 skill('entity-relationship-diagram', 'Entity-relationship diagram', 'architecture', 'diagram', 'Which data entities exist and how are they related?', ['Conceptual data models', 'Relational schemas', 'Cardinality review'], ['Runtime object behavior is the focus']),46 skill('dependency-graph', 'Dependency graph', 'architecture', 'diagram', 'What depends on what, and where are cycles or critical paths?', ['Package dependencies', 'Build graphs', 'Service dependencies'], ['Ordered interactions or physical topology are central']),47 skill('network-topology', 'Network topology', 'architecture', 'diagram', 'Which network zones, devices, and links connect?', ['Logical networks', 'Addressed segments', 'Connectivity and trust boundaries'], ['Application behavior rather than connectivity is the focus']),4849 skill('mind-map', 'Mind map', 'conceptual', 'diagram', 'What ideas radiate from one central topic?', ['Brainstorming', 'Early exploration', 'Topic decomposition'], ['Relationships need explicit semantic labels']),50 skill('concept-map', 'Concept map', 'conceptual', 'diagram', 'Which concepts relate, and what do those relationships mean?', ['Knowledge models', 'Explanatory relationship networks'], ['A single-root hierarchy is sufficient']),51 skill('hierarchy-diagram', 'Hierarchy diagram', 'conceptual', 'diagram', 'How is a set organized into parent-child levels?', ['Trees', 'Organization charts', 'Work breakdown structures'], ['Many-to-many relationships carry the meaning']),52 skill('decision-tree', 'Decision tree', 'conceptual', 'diagram', 'Which choices or tests lead to which outcomes?', ['Decision guidance', 'Classification logic', 'Scenario branching'], ['The goal is to depict an operational process with loops']),53 skill('matrix-diagram', 'Matrix diagram', 'conceptual', 'diagram', 'How do items compare across two dimensions?', ['Quadrants', 'Responsibility matrices', 'Pairwise relationship grids'], ['Geometric set overlap or time is the main encoding']),54 skill('set-diagram', 'Set diagram', 'conceptual', 'diagram', 'How do categories overlap or contain one another?', ['Venn diagrams', 'Euler diagrams', 'Set relationships'], ['Exact quantities or many sets must be compared']),5556 skill('choose-data-visualization', 'Choose a data visualization', 'data', 'router', 'Which visual encoding best supports the analytical task and data?', ['Comparison', 'Trend', 'Distribution', 'Relationship', 'Composition', 'Flow', 'Geography'], ['The request is a conceptual diagram rather than a quantitative display']),5758 skill('protocol-layout-diagram', 'Protocol layout diagram', 'technical', 'diagram', 'How are bits or bytes allocated within a protocol record?', ['Packet headers', 'Binary formats', 'Byte-field documentation'], ['Message ordering or state transitions are the focus']),59 skill('digital-timing-diagram', 'Digital timing diagram', 'technical', 'diagram', 'How do digital signals change relative to time and each other?', ['Clocked logic', 'Bus transactions', 'Signal constraints'], ['The request is for an analog waveform plot']),60 skill('rack-diagram', 'Rack diagram', 'technical', 'diagram', 'Which equipment occupies each rack unit?', ['Capacity planning', 'Datacenter documentation', 'Equipment placement'], ['Logical network connectivity is the primary story']),61 skill('wiring-harness-diagram', 'Wiring harness diagram', 'technical', 'diagram', 'How do connectors, conductors, and terminations map?', ['Harness assembly', 'Pin-to-pin connectivity', 'Cable documentation'], ['Circuit behavior or board-level electronics are the focus']),62 skill('hdl-component-diagram', 'HDL component diagram', 'technical', 'diagram', 'How do HDL modules, ports, and signal paths connect?', ['RTL hierarchy', 'Module interfaces', 'Hardware design review'], ['Gate-level timing or physical wiring is the focus']),63 skill('circuit-diagram', 'Circuit diagram', 'technical', 'diagram', 'Which electronic components connect into a circuit?', ['Schematic communication', 'Electrical connectivity', 'Circuit explanation'], ['Physical harness routing or enclosure placement is needed']),64 skill('technical-illustration', 'Technical illustration', 'technical', 'diagram', 'Which spatial or mechanical relationships must the reader see?', ['Exploded views', 'Annotated assemblies', 'Physical instructions'], ['Abstract relationships can be communicated more precisely with a diagram notation']),65]6667export const diagramSkillIds = diagramSkills.map(({ id }) => id)6869export const standardsSupport = [70 {71 id: 'bpmn-2.0.2',72 name: 'OMG BPMN 2.0.2',73 status: 'source-supported',74 relatedSkills: ['bpmn-process'],75 note: 'The BPMN renderer accepts BPMN 2.0 XML and diagram interchange data. Treat rendering as separate from complete semantic validation.',76 source: 'https://www.omg.org/spec/BPMN/2.0.2/',77 },78 {79 id: 'uml-2.5.1',80 name: 'OMG UML 2.5.1',81 status: 'visual-subset',82 relatedSkills: ['use-case-diagram', 'sequence-diagram', 'state-machine-diagram', 'activity-diagram', 'class-diagram', 'component-diagram', 'deployment-diagram'],83 note: 'PlantUML and other renderers cover useful UML views, but diagram.zip does not validate the complete metamodel or import and export UML XMI and UMLDI.',84 source: 'https://www.omg.org/spec/UML/2.5.1/',85 integration: { reward: 'medium', effort: 'large', scope: 'UML XMI/UMLDI import, model validation, profile handling, and round-trip fidelity' },86 },87 {88 id: 'iso-5807-1985',89 name: 'ISO 5807:1985',90 status: 'visual-conventions',91 relatedSkills: ['flowchart'],92 note: 'General renderers can apply its flowchart conventions, but diagram.zip does not validate symbol or path conformance.',93 source: 'https://www.iso.org/standard/11955.html',94 },95 {96 id: 'rfc-2360',97 name: 'RFC 2360 packet diagram conventions',98 status: 'visual-conventions',99 relatedSkills: ['protocol-layout-diagram'],100 note: 'PacketDiag and Bytefield can express layouts that follow the conventions, but protocol-specific validation is not built in.',101 source: 'https://www.rfc-editor.org/rfc/rfc2360.html#section-3.3',102 },103 {104 id: 'dmn-1.5',105 name: 'OMG DMN 1.5',106 status: 'unsupported',107 relatedSkills: ['decision-tree'],108 note: 'Informal decision trees are supported. Decision requirements diagrams, DMN XML interchange, and FEEL evaluation are not.',109 source: 'https://www.omg.org/spec/DMN/1.5/',110 integration: { reward: 'high', effort: 'medium-to-large', scope: 'DMN XML parser, decision requirements rendering, validation, and optional FEEL evaluation' },111 },112 {113 id: 'archimate-3.2',114 name: 'The Open Group ArchiMate 3.2',115 status: 'unsupported',116 relatedSkills: ['choose-architecture-diagram', 'system-landscape-diagram', 'system-context-diagram', 'container-diagram'],117 note: 'Generic architecture pictures are supported, but ArchiMate viewpoints, notation rules, and model exchange are not.',118 source: 'https://www.opengroup.org/archimate-licensed-downloads',119 integration: { reward: 'high', effort: 'large', scope: 'Licensed notation assets, ArchiMate 3.x model exchange, viewpoint rules, and conformance testing' },120 },121 {122 id: 'sysml-2.0',123 name: 'OMG SysML 2.0',124 status: 'unsupported',125 relatedSkills: ['choose-architecture-diagram', 'block-diagram', 'component-diagram', 'hierarchy-diagram'],126 note: 'Generic blocks and relationships are supported, but SysML language semantics, textual notation, model interchange, and view validation are not.',127 source: 'https://www.omg.org/spec/SysML/2.0/',128 integration: { reward: 'high', effort: 'very-large', scope: 'SysML textual or JSON parsing, KerML/SysML semantics, libraries, view generation, and conformance' },129 },130 {131 id: 'iec-60617-2026-db',132 name: 'IEC 60617:2026 DB',133 status: 'unsupported',134 relatedSkills: ['circuit-diagram', 'wiring-harness-diagram'],135 note: 'General renderers can draw circuits and harnesses, but diagram.zip has no licensed IEC symbol library or symbol validation.',136 source: 'https://webstore.iec.ch/en/publication/2723',137 integration: { reward: 'medium', effort: 'large', scope: 'Symbol licensing, searchable assets, semantic ports and nets, document rules, and conformance boundaries' },138 },139]