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.
- package/README.md +36 -0
- package/assets/README.md +21 -18
- package/assets/diagrams/base.yaml +351 -0
- package/assets/diagrams/csharp.yaml +48 -0
- package/assets/diagrams/dart.yaml +41 -0
- package/assets/diagrams/go.yaml +44 -0
- package/assets/diagrams/java.yaml +43 -0
- package/assets/diagrams/python.yaml +41 -0
- package/assets/diagrams/typescript.yaml +45 -0
- package/assets/diagrams-viewer/assets/abnfDiagram-VRR7QNED-BuBTl7CD.js +1 -0
- package/assets/diagrams-viewer/assets/arc-OMyuAfpK.js +1 -0
- package/assets/diagrams-viewer/assets/architectureDiagram-ZJ3FMSHR-BtZuD4Oc.js +36 -0
- package/assets/diagrams-viewer/assets/blockDiagram-677ZJIJ3-BXUV3Kw8.js +132 -0
- package/assets/diagrams-viewer/assets/c4Diagram-LMCZKHZV-CB6FLms7.js +10 -0
- package/assets/diagrams-viewer/assets/channel-DfIqGUHQ.js +1 -0
- package/assets/diagrams-viewer/assets/chunk-2Q5K7J3B-mPN4SRuj.js +1 -0
- package/assets/diagrams-viewer/assets/chunk-32BRIVSS-DVv1-dcH.js +1 -0
- package/assets/diagrams-viewer/assets/chunk-5VM5RSS4-CV1HWp5i.js +15 -0
- package/assets/diagrams-viewer/assets/chunk-EX3LRPZG-Dka-2CXP.js +231 -0
- package/assets/diagrams-viewer/assets/chunk-JWPE2WC7-D18DLD3z.js +1 -0
- package/assets/diagrams-viewer/assets/chunk-MOJQB5TN-DZ8recee.js +88 -0
- package/assets/diagrams-viewer/assets/chunk-RYQCIY6F-D-T7U7G_.js +1 -0
- package/assets/diagrams-viewer/assets/chunk-V7JOEXUC-CycRbumY.js +206 -0
- package/assets/diagrams-viewer/assets/chunk-VR4S4FIN-CgtEJekm.js +1 -0
- package/assets/diagrams-viewer/assets/chunk-XXDRQBXY-N1fSDz2n.js +1 -0
- package/assets/diagrams-viewer/assets/classDiagram-OUVF2IWQ-D7S3taPH.js +1 -0
- package/assets/diagrams-viewer/assets/classDiagram-v2-EOCWNBFH-D7S3taPH.js +1 -0
- package/assets/diagrams-viewer/assets/cose-bilkent-JH36ORCC-x2DnNSLL.js +1 -0
- package/assets/diagrams-viewer/assets/cynefin-VYW2F7L2-CWCJCs-i.js +178 -0
- package/assets/diagrams-viewer/assets/cynefinDiagram-TSTJHNR4-mn39JWqG.js +62 -0
- package/assets/diagrams-viewer/assets/cytoscape.esm-CUqq0XTU.js +331 -0
- package/assets/diagrams-viewer/assets/dagre-VKFMJZFB-iOjB5Pax.js +4 -0
- package/assets/diagrams-viewer/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/assets/diagrams-viewer/assets/diagram-FQU43EPY-DIFXEG6K.js +3 -0
- package/assets/diagrams-viewer/assets/diagram-G47NLZAW-CUFys0Kk.js +24 -0
- package/assets/diagrams-viewer/assets/diagram-NH7WQ7WH-ByXjnNJR.js +24 -0
- package/assets/diagrams-viewer/assets/diagram-OA4YK3LP-B7VCnnms.js +30 -0
- package/assets/diagrams-viewer/assets/diagram-WEI45ONY-DdmQeP2M.js +41 -0
- package/assets/diagrams-viewer/assets/diagrams-DFlErBCY.js +314 -0
- package/assets/diagrams-viewer/assets/diagrams-hdYg_gGB.css +1 -0
- package/assets/diagrams-viewer/assets/ebnfDiagram-CCIWWBDH-B54UVMil.js +1 -0
- package/assets/diagrams-viewer/assets/erDiagram-Q63AITRT-zkOgYlyz.js +85 -0
- package/assets/diagrams-viewer/assets/flowDiagram-23GEKE2U-CCNIfraz.js +156 -0
- package/assets/diagrams-viewer/assets/ganttDiagram-NO4QXBWP-DCn2zVSV.js +292 -0
- package/assets/diagrams-viewer/assets/gitGraphDiagram-IHSO6WYX-lB6SW9xm.js +106 -0
- package/assets/diagrams-viewer/assets/graph-C2PyVmSI.js +1 -0
- package/assets/diagrams-viewer/assets/infoDiagram-FWYZ7A6U-CvGfGSmH.js +2 -0
- package/assets/diagrams-viewer/assets/init-Gi6I4Gst.js +1 -0
- package/assets/diagrams-viewer/assets/ishikawaDiagram-FXEZZL3T-DnwhjgE5.js +70 -0
- package/assets/diagrams-viewer/assets/journeyDiagram-5HDEW3XC-C8LVhqZM.js +139 -0
- package/assets/diagrams-viewer/assets/kanban-definition-HUTT4EX6-PYOrsIQc.js +89 -0
- package/assets/diagrams-viewer/assets/katex-C5jXJg4s.js +257 -0
- package/assets/diagrams-viewer/assets/layout-HEHzrzvT.js +1 -0
- package/assets/diagrams-viewer/assets/linear-CIU4B3PA.js +1 -0
- package/assets/diagrams-viewer/assets/map-BQHxRNoK.js +1 -0
- package/assets/diagrams-viewer/assets/mindmap-definition-LN4V7U3C-B-HjOMSw.js +96 -0
- package/assets/diagrams-viewer/assets/ordinal-Cboi1Yqb.js +1 -0
- package/assets/diagrams-viewer/assets/pegDiagram-2B236MQR-dAvsUVxy.js +1 -0
- package/assets/diagrams-viewer/assets/pieDiagram-ENE6RG2P-W-6EgmyD.js +39 -0
- package/assets/diagrams-viewer/assets/quadrantDiagram-ABIIQ3AL-SlUlWOO8.js +7 -0
- package/assets/diagrams-viewer/assets/railroadDiagram-RFXS5EU6-KjtAtTVy.js +1 -0
- package/assets/diagrams-viewer/assets/requirementDiagram-TGXJPOKE-DZtlwaER.js +84 -0
- package/assets/diagrams-viewer/assets/sankeyDiagram-HTMAVEWB-1Ae4oRc3.js +40 -0
- package/assets/diagrams-viewer/assets/sequenceDiagram-DBY2YBRQ-DU-x0cLP.js +162 -0
- package/assets/diagrams-viewer/assets/sizeCapture-X5ZJPWSS-Cemh16BZ.js +1 -0
- package/assets/diagrams-viewer/assets/stateDiagram-2N3HPSRC-CtfrA6gP.js +1 -0
- package/assets/diagrams-viewer/assets/stateDiagram-v2-6OUMAXLB-BU13FASH.js +1 -0
- package/assets/diagrams-viewer/assets/swimlanes-5IMT3BWC-BkZY9GJ7.js +2 -0
- package/assets/diagrams-viewer/assets/swimlanesDiagram-G3AALYLV-03GXtgC-.js +8 -0
- package/assets/diagrams-viewer/assets/timeline-definition-FHXFAJF6-DikyXYB3.js +120 -0
- package/assets/diagrams-viewer/assets/vennDiagram-L72KCM5P-C_7veK57.js +34 -0
- package/assets/diagrams-viewer/assets/wardleyDiagram-EHGQE667-Das_YJGv.js +78 -0
- package/assets/diagrams-viewer/assets/xychartDiagram-FW5EYKEG-B5fwef3a.js +7 -0
- package/assets/diagrams-viewer/diagrams.html +14 -0
- package/assets/diagrams-viewer-single.html +3576 -0
- package/assets/manifest.yaml +5 -1
- package/assets/schema/diagrams.schema.json +100 -0
- package/assets/skills/diagram/SKILL.md +70 -0
- package/dist/index.js +569 -62
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/assets/manifest.yaml
CHANGED
|
@@ -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
|
|
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.
|