edsger 0.82.0 → 0.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +36 -0
  2. package/assets/README.md +21 -18
  3. package/assets/diagrams/base.yaml +351 -0
  4. package/assets/diagrams/csharp.yaml +48 -0
  5. package/assets/diagrams/dart.yaml +41 -0
  6. package/assets/diagrams/go.yaml +44 -0
  7. package/assets/diagrams/java.yaml +43 -0
  8. package/assets/diagrams/python.yaml +41 -0
  9. package/assets/diagrams/typescript.yaml +45 -0
  10. package/assets/diagrams-viewer/assets/abnfDiagram-VRR7QNED-BuBTl7CD.js +1 -0
  11. package/assets/diagrams-viewer/assets/arc-OMyuAfpK.js +1 -0
  12. package/assets/diagrams-viewer/assets/architectureDiagram-ZJ3FMSHR-BtZuD4Oc.js +36 -0
  13. package/assets/diagrams-viewer/assets/blockDiagram-677ZJIJ3-BXUV3Kw8.js +132 -0
  14. package/assets/diagrams-viewer/assets/c4Diagram-LMCZKHZV-CB6FLms7.js +10 -0
  15. package/assets/diagrams-viewer/assets/channel-DfIqGUHQ.js +1 -0
  16. package/assets/diagrams-viewer/assets/chunk-2Q5K7J3B-mPN4SRuj.js +1 -0
  17. package/assets/diagrams-viewer/assets/chunk-32BRIVSS-DVv1-dcH.js +1 -0
  18. package/assets/diagrams-viewer/assets/chunk-5VM5RSS4-CV1HWp5i.js +15 -0
  19. package/assets/diagrams-viewer/assets/chunk-EX3LRPZG-Dka-2CXP.js +231 -0
  20. package/assets/diagrams-viewer/assets/chunk-JWPE2WC7-D18DLD3z.js +1 -0
  21. package/assets/diagrams-viewer/assets/chunk-MOJQB5TN-DZ8recee.js +88 -0
  22. package/assets/diagrams-viewer/assets/chunk-RYQCIY6F-D-T7U7G_.js +1 -0
  23. package/assets/diagrams-viewer/assets/chunk-V7JOEXUC-CycRbumY.js +206 -0
  24. package/assets/diagrams-viewer/assets/chunk-VR4S4FIN-CgtEJekm.js +1 -0
  25. package/assets/diagrams-viewer/assets/chunk-XXDRQBXY-N1fSDz2n.js +1 -0
  26. package/assets/diagrams-viewer/assets/classDiagram-OUVF2IWQ-D7S3taPH.js +1 -0
  27. package/assets/diagrams-viewer/assets/classDiagram-v2-EOCWNBFH-D7S3taPH.js +1 -0
  28. package/assets/diagrams-viewer/assets/cose-bilkent-JH36ORCC-x2DnNSLL.js +1 -0
  29. package/assets/diagrams-viewer/assets/cynefin-VYW2F7L2-CWCJCs-i.js +178 -0
  30. package/assets/diagrams-viewer/assets/cynefinDiagram-TSTJHNR4-mn39JWqG.js +62 -0
  31. package/assets/diagrams-viewer/assets/cytoscape.esm-CUqq0XTU.js +331 -0
  32. package/assets/diagrams-viewer/assets/dagre-VKFMJZFB-iOjB5Pax.js +4 -0
  33. package/assets/diagrams-viewer/assets/defaultLocale-DX6XiGOO.js +1 -0
  34. package/assets/diagrams-viewer/assets/diagram-FQU43EPY-DIFXEG6K.js +3 -0
  35. package/assets/diagrams-viewer/assets/diagram-G47NLZAW-CUFys0Kk.js +24 -0
  36. package/assets/diagrams-viewer/assets/diagram-NH7WQ7WH-ByXjnNJR.js +24 -0
  37. package/assets/diagrams-viewer/assets/diagram-OA4YK3LP-B7VCnnms.js +30 -0
  38. package/assets/diagrams-viewer/assets/diagram-WEI45ONY-DdmQeP2M.js +41 -0
  39. package/assets/diagrams-viewer/assets/diagrams-DFlErBCY.js +314 -0
  40. package/assets/diagrams-viewer/assets/diagrams-hdYg_gGB.css +1 -0
  41. package/assets/diagrams-viewer/assets/ebnfDiagram-CCIWWBDH-B54UVMil.js +1 -0
  42. package/assets/diagrams-viewer/assets/erDiagram-Q63AITRT-zkOgYlyz.js +85 -0
  43. package/assets/diagrams-viewer/assets/flowDiagram-23GEKE2U-CCNIfraz.js +156 -0
  44. package/assets/diagrams-viewer/assets/ganttDiagram-NO4QXBWP-DCn2zVSV.js +292 -0
  45. package/assets/diagrams-viewer/assets/gitGraphDiagram-IHSO6WYX-lB6SW9xm.js +106 -0
  46. package/assets/diagrams-viewer/assets/graph-C2PyVmSI.js +1 -0
  47. package/assets/diagrams-viewer/assets/infoDiagram-FWYZ7A6U-CvGfGSmH.js +2 -0
  48. package/assets/diagrams-viewer/assets/init-Gi6I4Gst.js +1 -0
  49. package/assets/diagrams-viewer/assets/ishikawaDiagram-FXEZZL3T-DnwhjgE5.js +70 -0
  50. package/assets/diagrams-viewer/assets/journeyDiagram-5HDEW3XC-C8LVhqZM.js +139 -0
  51. package/assets/diagrams-viewer/assets/kanban-definition-HUTT4EX6-PYOrsIQc.js +89 -0
  52. package/assets/diagrams-viewer/assets/katex-C5jXJg4s.js +257 -0
  53. package/assets/diagrams-viewer/assets/layout-HEHzrzvT.js +1 -0
  54. package/assets/diagrams-viewer/assets/linear-CIU4B3PA.js +1 -0
  55. package/assets/diagrams-viewer/assets/map-BQHxRNoK.js +1 -0
  56. package/assets/diagrams-viewer/assets/mindmap-definition-LN4V7U3C-B-HjOMSw.js +96 -0
  57. package/assets/diagrams-viewer/assets/ordinal-Cboi1Yqb.js +1 -0
  58. package/assets/diagrams-viewer/assets/pegDiagram-2B236MQR-dAvsUVxy.js +1 -0
  59. package/assets/diagrams-viewer/assets/pieDiagram-ENE6RG2P-W-6EgmyD.js +39 -0
  60. package/assets/diagrams-viewer/assets/quadrantDiagram-ABIIQ3AL-SlUlWOO8.js +7 -0
  61. package/assets/diagrams-viewer/assets/railroadDiagram-RFXS5EU6-KjtAtTVy.js +1 -0
  62. package/assets/diagrams-viewer/assets/requirementDiagram-TGXJPOKE-DZtlwaER.js +84 -0
  63. package/assets/diagrams-viewer/assets/sankeyDiagram-HTMAVEWB-1Ae4oRc3.js +40 -0
  64. package/assets/diagrams-viewer/assets/sequenceDiagram-DBY2YBRQ-DU-x0cLP.js +162 -0
  65. package/assets/diagrams-viewer/assets/sizeCapture-X5ZJPWSS-Cemh16BZ.js +1 -0
  66. package/assets/diagrams-viewer/assets/stateDiagram-2N3HPSRC-CtfrA6gP.js +1 -0
  67. package/assets/diagrams-viewer/assets/stateDiagram-v2-6OUMAXLB-BU13FASH.js +1 -0
  68. package/assets/diagrams-viewer/assets/swimlanes-5IMT3BWC-BkZY9GJ7.js +2 -0
  69. package/assets/diagrams-viewer/assets/swimlanesDiagram-G3AALYLV-03GXtgC-.js +8 -0
  70. package/assets/diagrams-viewer/assets/timeline-definition-FHXFAJF6-DikyXYB3.js +120 -0
  71. package/assets/diagrams-viewer/assets/vennDiagram-L72KCM5P-C_7veK57.js +34 -0
  72. package/assets/diagrams-viewer/assets/wardleyDiagram-EHGQE667-Das_YJGv.js +78 -0
  73. package/assets/diagrams-viewer/assets/xychartDiagram-FW5EYKEG-B5fwef3a.js +7 -0
  74. package/assets/diagrams-viewer/diagrams.html +14 -0
  75. package/assets/diagrams-viewer-single.html +3576 -0
  76. package/assets/manifest.yaml +5 -1
  77. package/assets/schema/diagrams.schema.json +100 -0
  78. package/assets/skills/diagram/SKILL.md +70 -0
  79. package/dist/index.js +569 -62
  80. package/dist/index.js.map +1 -1
  81. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  schemaVersion: 1
4
4
  name: edsger-assets
5
5
  version: 0.1.0
6
- description: Industrial-grade benchmark rubrics and PR review standards.
6
+ description: Industrial-grade benchmark rubrics, PR review standards, and diagram catalogs.
7
7
 
8
8
  # Standard kinds shipped in this repository.
9
9
  kinds:
@@ -15,6 +15,10 @@ kinds:
15
15
  dir: review
16
16
  base: base
17
17
  schema: schema/review.schema.json
18
+ diagrams:
19
+ dir: diagrams
20
+ base: base
21
+ schema: schema/diagrams.schema.json
18
22
 
19
23
  # Languages with dedicated overlays. `id` matches the detector in languages.yaml.
20
24
  # `aliases` are accepted on the CLI (e.g. `--lang ts`).
@@ -0,0 +1,100 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://github.com/stevenzg/edsger-assets/schema/diagrams.schema.json",
4
+ "title": "Edsger Diagram Catalog",
5
+ "description": "A catalog of professional software diagrams an agent can generate for a repository. A `base` catalog is merged with zero or more language overlays to form the effective catalog. For each project the agent selects the diagrams whose `detect` signals and `appliesWhen` guidance match the repository's characteristics, then emits Mermaid source for each.",
6
+ "type": "object",
7
+ "required": ["id", "name", "version", "kind", "groups"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
11
+ "name": { "type": "string" },
12
+ "version": { "type": "string" },
13
+ "kind": { "const": "diagrams" },
14
+ "extends": {
15
+ "description": "id of a catalog this overlay merges on top of (usually 'base').",
16
+ "type": ["string", "null"]
17
+ },
18
+ "appliesTo": {
19
+ "description": "Language ids this catalog targets, or ['*'] for any.",
20
+ "type": "array",
21
+ "items": { "type": "string" },
22
+ "default": ["*"]
23
+ },
24
+ "groups": {
25
+ "type": "array",
26
+ "minItems": 1,
27
+ "items": { "$ref": "#/definitions/group" }
28
+ }
29
+ },
30
+ "definitions": {
31
+ "group": {
32
+ "type": "object",
33
+ "required": ["id", "name", "diagrams"],
34
+ "additionalProperties": false,
35
+ "properties": {
36
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
37
+ "name": { "type": "string" },
38
+ "description": { "type": "string" },
39
+ "diagrams": {
40
+ "type": "array",
41
+ "minItems": 1,
42
+ "items": { "$ref": "#/definitions/diagram" }
43
+ }
44
+ }
45
+ },
46
+ "diagram": {
47
+ "type": "object",
48
+ "required": ["id", "title", "type", "appliesWhen", "guidance"],
49
+ "additionalProperties": false,
50
+ "properties": {
51
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
52
+ "title": { "type": "string" },
53
+ "type": {
54
+ "description": "The Mermaid diagram type to emit.",
55
+ "type": "string",
56
+ "enum": [
57
+ "flowchart",
58
+ "sequenceDiagram",
59
+ "classDiagram",
60
+ "stateDiagram-v2",
61
+ "erDiagram",
62
+ "journey",
63
+ "gantt",
64
+ "gitGraph",
65
+ "mindmap",
66
+ "timeline",
67
+ "requirementDiagram",
68
+ "quadrantChart",
69
+ "pie",
70
+ "sankey-beta",
71
+ "C4Context",
72
+ "C4Container",
73
+ "C4Component",
74
+ "C4Deployment",
75
+ "block-beta",
76
+ "architecture-beta"
77
+ ]
78
+ },
79
+ "appliesWhen": {
80
+ "description": "Prose describing the project characteristics that make this diagram valuable, so the agent can decide whether to include it.",
81
+ "type": "string"
82
+ },
83
+ "detect": {
84
+ "description": "Coarse signals (file globs, marker filenames, or keywords) that hint this diagram is relevant. '*' means 'almost always useful'. Advisory only — the agent still decides from real evidence.",
85
+ "type": "array",
86
+ "items": { "type": "string" },
87
+ "default": []
88
+ },
89
+ "guidance": {
90
+ "description": "How to construct this diagram from the repository: what to read, what nodes/edges to include, and how to keep it faithful and legible.",
91
+ "type": "string"
92
+ },
93
+ "references": {
94
+ "type": "array",
95
+ "items": { "type": "string" }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: diagram
3
+ description: >
4
+ Generate professional software diagrams (architecture/C4, ER, sequence,
5
+ flowchart, class, state, data-flow, deployment, and more) tailored to a
6
+ repository's characteristics, as renderable Mermaid, and write them to a
7
+ viewable report. Use when the user asks to diagram, visualize, map, or chart a
8
+ codebase's architecture, database schema, request flow, or structure.
9
+ ---
10
+
11
+ # Diagram a repository
12
+
13
+ You will inspect the repository in the current working directory, decide which
14
+ professional diagrams genuinely fit **this** project, and emit each as valid
15
+ **Mermaid** so it renders in Markdown/HTML.
16
+
17
+ ## 1. Prefer the CLI if it is installed
18
+
19
+ If the `edsger` CLI is available, it runs the agent and produces a viewable HTML
20
+ dashboard — use it:
21
+
22
+ ```bash
23
+ command -v edsger >/dev/null 2>&1 && edsger diagram || echo "no-cli"
24
+ ```
25
+
26
+ If it ran, summarise `.edsger/diagrams/diagrams.md` for the user and stop.
27
+ Otherwise continue with the native flow below.
28
+
29
+ ## 2. Detect the language(s)
30
+
31
+ Look for manifest files to decide which overlays apply: `package.json`/`tsconfig.json`
32
+ → typescript; `pyproject.toml`/`requirements.txt` → python; `go.mod` → go;
33
+ `*.csproj`/`*.sln` → csharp; `pom.xml`/`build.gradle` → java; `pubspec.yaml` → dart.
34
+ A repo may match several.
35
+
36
+ ## 3. Load the catalog
37
+
38
+ Read the base catalog and any matching language overlays from this plugin:
39
+
40
+ - `${CLAUDE_PLUGIN_ROOT}/diagrams/base.yaml` (always)
41
+ - `${CLAUDE_PLUGIN_ROOT}/diagrams/<language>.yaml` (for each detected language)
42
+
43
+ Merge overlays onto the base **by id** (group ids and diagram ids). If the repo
44
+ has a `.edsger/diagrams/` directory, those files override the bundled catalog.
45
+
46
+ ## 4. Profile the project and select diagrams
47
+
48
+ Explore the repo (Read/Grep/Glob, read-only) and characterise it: what kind of
49
+ project is it (service, library, CLI, SPA, data pipeline, monorepo…), what does
50
+ it integrate with, does it own a database, does it deploy somewhere?
51
+
52
+ For each catalog diagram, use its `detect` signals and `appliesWhen` guidance to
53
+ decide whether it adds value **for this repo**. Only include diagrams the
54
+ evidence supports — a library needs different diagrams than a microservice. Never
55
+ invent structure that is not in the code.
56
+
57
+ ## 5. Generate faithful Mermaid
58
+
59
+ For each selected diagram, follow its `guidance` and produce **valid Mermaid** of
60
+ the specified `type`, grounded in real files (record the files as evidence). Keep
61
+ each diagram to roughly one screen and legible; prefer faithful over exhaustive.
62
+ Validate the Mermaid syntax mentally before emitting it.
63
+
64
+ ## 6. Write the report
65
+
66
+ Write `.edsger/diagrams/diagrams.md` containing: a short project profile, then one
67
+ section per diagram with a heading, a one-line description of what it shows and
68
+ why it applies, the fenced ` ```mermaid ` block, and the evidence files. Group by
69
+ catalog group (Architecture, Behaviour, Data, Deployment, Process). Then give the
70
+ user a concise summary of which diagrams you produced and why.