@zenuml/core 3.47.9 → 3.48.1

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 (205) hide show
  1. package/dist/cli/zenuml.mjs +13529 -0
  2. package/dist/cli/zenuml.mjs.map +1 -0
  3. package/dist/cloud-icons-eHuugVSv.js.map +1 -0
  4. package/dist/zenuml.esm.mjs +2153 -2156
  5. package/dist/zenuml.esm.mjs.map +1 -0
  6. package/dist/zenuml.js +82 -82
  7. package/dist/zenuml.js.map +1 -0
  8. package/package.json +18 -5
  9. package/.agents/skills/babysit-pr/SKILL.md +0 -223
  10. package/.agents/skills/babysit-pr/agents/openai.yaml +0 -7
  11. package/.agents/skills/dia-scoring/SKILL.md +0 -139
  12. package/.agents/skills/dia-scoring/agents/openai.yaml +0 -7
  13. package/.agents/skills/dia-scoring/references/selectors-and-keys.md +0 -253
  14. package/.agents/skills/land-pr/SKILL.md +0 -120
  15. package/.agents/skills/propagate-core-release/SKILL.md +0 -205
  16. package/.agents/skills/propagate-core-release/agents/openai.yaml +0 -7
  17. package/.agents/skills/propagate-core-release/references/downstreams.md +0 -42
  18. package/.agents/skills/ship-branch/SKILL.md +0 -105
  19. package/.agents/skills/submit-branch/SKILL.md +0 -76
  20. package/.agents/skills/validate-branch/SKILL.md +0 -72
  21. package/.claude/commands/README.md +0 -162
  22. package/.claude/commands/analyze.md +0 -101
  23. package/.claude/commands/clarify.md +0 -158
  24. package/.claude/commands/code-review.md +0 -322
  25. package/.claude/commands/constitution.md +0 -73
  26. package/.claude/commands/create-docs.md +0 -309
  27. package/.claude/commands/full-context.md +0 -121
  28. package/.claude/commands/gemini-consult.md +0 -164
  29. package/.claude/commands/handoff.md +0 -146
  30. package/.claude/commands/implement.md +0 -56
  31. package/.claude/commands/plan.md +0 -43
  32. package/.claude/commands/refactor.md +0 -188
  33. package/.claude/commands/specify.md +0 -21
  34. package/.claude/commands/tasks.md +0 -62
  35. package/.claude/commands/update-docs.md +0 -314
  36. package/.claude/hooks/README.md +0 -270
  37. package/.claude/hooks/config/sensitive-patterns.json +0 -86
  38. package/.claude/hooks/gemini-context-injector.sh +0 -129
  39. package/.claude/hooks/mcp-security-scan.sh +0 -147
  40. package/.claude/hooks/notify.sh +0 -103
  41. package/.claude/hooks/setup/hook-setup.md +0 -96
  42. package/.claude/hooks/setup/settings.json.template +0 -63
  43. package/.claude/hooks/sounds/complete.wav +0 -0
  44. package/.claude/hooks/sounds/input-needed.wav +0 -0
  45. package/.claude/hooks/subagent-context-injector.sh +0 -65
  46. package/.claude/skills/babysit-pr/SKILL.md +0 -223
  47. package/.claude/skills/babysit-pr/agents/openai.yaml +0 -7
  48. package/.claude/skills/dia-scoring/SKILL.md +0 -139
  49. package/.claude/skills/dia-scoring/agents/openai.yaml +0 -7
  50. package/.claude/skills/dia-scoring/references/selectors-and-keys.md +0 -253
  51. package/.claude/skills/emoji-eval/SKILL.md +0 -187
  52. package/.claude/skills/land-pr/SKILL.md +0 -120
  53. package/.claude/skills/propagate-core-release/SKILL.md +0 -205
  54. package/.claude/skills/propagate-core-release/agents/openai.yaml +0 -7
  55. package/.claude/skills/propagate-core-release/references/downstreams.md +0 -42
  56. package/.claude/skills/ship-branch/SKILL.md +0 -105
  57. package/.claude/skills/submit-branch/SKILL.md +0 -76
  58. package/.claude/skills/validate-branch/SKILL.md +0 -72
  59. package/.claude/skills/zenuml-ux-research/SKILL.md +0 -183
  60. package/.claude/skills/zenuml-ux-research/references/assertion-catalog.md +0 -261
  61. package/.claude/skills/zenuml-ux-research/references/best-practices-overview.md +0 -56
  62. package/.claude/skills/zenuml-ux-research/references/report-template.md +0 -89
  63. package/.claude/skills/zenuml-ux-research/references/scenarios/edit-message-label.md +0 -37
  64. package/.claude/skills/zenuml-ux-research/references/scenarios/insert-message.md +0 -36
  65. package/.claude/skills/zenuml-ux-research/references/scenarios/insert-participant.md +0 -31
  66. package/.claude/skills/zenuml-ux-research/references/scenarios/rename-participant.md +0 -33
  67. package/.claude/skills/zenuml-ux-research/references/scenarios/undo-insert.md +0 -35
  68. package/.devcontainer/devcontainer.json +0 -21
  69. package/.dockerignore +0 -19
  70. package/.eslintrc.js +0 -39
  71. package/.git-blame-ignore-revs +0 -6
  72. package/.kiro/hooks/README.md +0 -38
  73. package/.kiro/hooks/session-sound-notification.js +0 -44
  74. package/.kiro/hooks/session-sound-notification.json +0 -23
  75. package/.mcp.json.example +0 -17
  76. package/.nvmrc +0 -1
  77. package/.prettierignore +0 -4
  78. package/.prettierrc +0 -1
  79. package/.specify/memory/constitution.md +0 -33
  80. package/.specify/scripts/bash/check-prerequisites.sh +0 -166
  81. package/.specify/scripts/bash/common.sh +0 -113
  82. package/.specify/scripts/bash/create-new-feature.sh +0 -97
  83. package/.specify/scripts/bash/setup-plan.sh +0 -60
  84. package/.specify/scripts/bash/update-agent-context.sh +0 -728
  85. package/.specify/templates/agent-file-template.md +0 -23
  86. package/.specify/templates/plan-template.md +0 -219
  87. package/.specify/templates/spec-template.md +0 -116
  88. package/.specify/templates/tasks-template.md +0 -127
  89. package/.storybook/main.ts +0 -25
  90. package/.storybook/preview.ts +0 -29
  91. package/.watchmanconfig +0 -3
  92. package/AGENTS.md +0 -26
  93. package/CLAUDE.md +0 -124
  94. package/DEPLOYMENT.md +0 -62
  95. package/Dockerfile +0 -36
  96. package/IMPLEMENTATION_PLAN.md +0 -163
  97. package/Integration/vanilla-js/index.html +0 -42
  98. package/MCP-ASSISTANT-RULES.md +0 -85
  99. package/README_CN.md +0 -15
  100. package/TUTORIAL.md +0 -116
  101. package/antlr/antlr-4.11.1-complete.jar +0 -0
  102. package/bun.lock +0 -1544
  103. package/bunfig.toml +0 -52
  104. package/docs/UNICODE_SUPPORT.md +0 -179
  105. package/docs/ai-context/deployment-infrastructure.md +0 -21
  106. package/docs/ai-context/docs-overview.md +0 -89
  107. package/docs/ai-context/handoff.md +0 -174
  108. package/docs/ai-context/project-structure.md +0 -160
  109. package/docs/ai-context/system-integration.md +0 -21
  110. package/docs/asciidoc/contributor.adoc +0 -54
  111. package/docs/asciidoc/create-my-own-theme.adoc +0 -149
  112. package/docs/asciidoc/images/creation-component.png +0 -0
  113. package/docs/asciidoc/images/creation-rtl.png +0 -0
  114. package/docs/asciidoc/images/message-arrow-rtl.png +0 -0
  115. package/docs/asciidoc/images/occurrence.png +0 -0
  116. package/docs/asciidoc/images/return-message-conflict.png +0 -0
  117. package/docs/asciidoc/images/shift-up-half-the-height.png +0 -0
  118. package/docs/asciidoc/images/three-layer-info-arch.png +0 -0
  119. package/docs/asciidoc/images/vertical-alignment.svg +0 -1
  120. package/docs/asciidoc/images/vertically-aligning.png +0 -0
  121. package/docs/asciidoc/index.adoc +0 -277
  122. package/docs/asciidoc/theme-debug-web-app.png +0 -0
  123. package/docs/asciidoc/tutorial.adoc +0 -22
  124. package/docs/asciidoc/user-css.png +0 -0
  125. package/docs/async-vs-sync-parser-rules.md +0 -81
  126. package/docs/divider-parser-allow-spaces.md +0 -38
  127. package/docs/highlighting-messages.md +0 -52
  128. package/docs/images/editor-sample.png +0 -0
  129. package/docs/inherited-vs-provided-from.md +0 -64
  130. package/docs/parser/Assignment.md +0 -8
  131. package/docs/parser/PARSER_IMPROVEMENTS_CC.md +0 -425
  132. package/docs/parser/grammar_review_gemini.md +0 -116
  133. package/docs/participants-function.md +0 -25
  134. package/docs/responsive-participant-margin.md +0 -52
  135. package/docs/starter.md +0 -9
  136. package/docs/superpowers/plans/2026-03-27-e2e-test-reorg.md +0 -698
  137. package/docs/superpowers/plans/2026-03-30-emoji-support.md +0 -1220
  138. package/docs/superpowers/plans/2026-03-30-self-correcting-scoring.md +0 -206
  139. package/docs/superpowers/plans/2026-04-15-keyboard-editing-on-diagram.md +0 -1992
  140. package/docs/superpowers/plans/2026-04-15-zenuml-ux-research-skill.md +0 -1452
  141. package/docs/ux-research/.gitkeep +0 -0
  142. package/docs/ux-research/2026-04-15-rename-participant.md +0 -156
  143. package/docs/ux-research/2026-04-18-insert-participant.md +0 -151
  144. package/docs/width-translate-and-offsets.md +0 -62
  145. package/docs/xss.md +0 -59
  146. package/e2e/data/compare-cases.js +0 -1090
  147. package/e2e/data/diff-algorithm.js +0 -199
  148. package/e2e/fixtures/create-message.html +0 -26
  149. package/e2e/fixtures/editable-label.html +0 -35
  150. package/e2e/fixtures/editable-span.html +0 -122
  151. package/e2e/fixtures/empty-diagram.html +0 -23
  152. package/e2e/fixtures/fixture.html +0 -31
  153. package/e2e/fixtures/insert-participant.html +0 -23
  154. package/e2e/fixtures/reorder-cross-fragment.html +0 -31
  155. package/e2e/fixtures/reorder-fragment.html +0 -29
  156. package/e2e/fixtures/reorder-message.html +0 -27
  157. package/e2e/fixtures/svg-test.html +0 -21
  158. package/e2e/fixtures/type-switch.html +0 -29
  159. package/e2e/tools/canonical-history.html +0 -908
  160. package/e2e/tools/compare-case.html +0 -371
  161. package/e2e/tools/compare.html +0 -35
  162. package/e2e/tools/native-diff-ext/background.js +0 -60
  163. package/e2e/tools/native-diff-ext/bridge.js +0 -26
  164. package/e2e/tools/native-diff-ext/content.js +0 -194
  165. package/e2e/tools/svg-preview.html +0 -56
  166. package/embed.html +0 -193
  167. package/eslint.config.mjs +0 -35
  168. package/firebase-debug.log +0 -108
  169. package/iframe-container-demo/diagram.html +0 -124
  170. package/iframe-container-demo/host.html +0 -817
  171. package/index.html +0 -771
  172. package/mermaid-zenuml-async-spa-auth.png +0 -0
  173. package/mermaid-zenuml-async-spa-auth.snapshot.md +0 -96
  174. package/newsletter/unicode-support-announcement.md +0 -134
  175. package/playground/creation.html +0 -53
  176. package/playground/message.html +0 -63
  177. package/playwright.config.ts +0 -40
  178. package/renderer.html +0 -366
  179. package/scripts/analyze-compare-case/collect-data.mjs +0 -1134
  180. package/scripts/analyze-compare-case/config.mjs +0 -102
  181. package/scripts/analyze-compare-case/geometry.mjs +0 -101
  182. package/scripts/analyze-compare-case/native-diff.mjs +0 -224
  183. package/scripts/analyze-compare-case/output.mjs +0 -74
  184. package/scripts/analyze-compare-case/panel-diff.mjs +0 -114
  185. package/scripts/analyze-compare-case/report.mjs +0 -162
  186. package/scripts/analyze-compare-case/residual-scopes.mjs +0 -347
  187. package/scripts/analyze-compare-case/scoring.mjs +0 -829
  188. package/scripts/analyze-compare-case.mjs +0 -149
  189. package/scripts/bump-version.js +0 -117
  190. package/scripts/snapshot-dual.js +0 -173
  191. package/scripts/update-snapshots.js +0 -70
  192. package/skills/dia-scoring/SKILL.md +0 -129
  193. package/skills/dia-scoring/agents/openai.yaml +0 -7
  194. package/skills/dia-scoring/references/selectors-and-keys.md +0 -253
  195. package/tailwind.config.js +0 -126
  196. package/test-compression.html +0 -274
  197. package/test-mermaid-zenuml.html +0 -57
  198. package/test-setup.ts +0 -124
  199. package/test-url-params.html +0 -192
  200. package/tsconfig.app.json +0 -31
  201. package/tsconfig.node.json +0 -24
  202. package/tsconfig.test.json +0 -9
  203. package/vite.config.lib.ts +0 -93
  204. package/vite.config.ts +0 -84
  205. package/wrangler.toml +0 -18
@@ -1,105 +0,0 @@
1
- ---
2
- name: ship-branch
3
- description: Ship the current branch from local validation through to npm release. Orchestrates validate-branch, submit-branch, babysit-pr, and land-pr in sequence. Use when the user says "ship", "ship it", "ship this branch", "ship to production", "release this", "get this to npm", or wants to go from local branch to published npm package in one command. Stops at the first failure with a clear report.
4
- ---
5
-
6
- # Ship Branch
7
-
8
- Orchestrate the full path from local branch to npm release. This skill composes four sub-skills in sequence, stopping at the first failure.
9
-
10
- ## Flow
11
-
12
- ```
13
- rebase on origin/main → CONFLICT → stop, report
14
- | CLEAN
15
- validate-branch → FAIL → stop, report
16
- | PASS
17
- submit-branch → FAIL → stop, report
18
- | PR ready
19
- babysit-pr → EXHAUSTED → stop, "CI blocked"
20
- | GREEN
21
- land-pr → BLOCKED → stop, report
22
- | MERGED
23
- land-pr → PUBLISH FAIL → alert, stop
24
- | PUBLISHED
25
- done
26
- ```
27
-
28
- ## Steps
29
-
30
- ### Step 0: Rebase on remote main
31
-
32
- Fetch and rebase onto `origin/main` to ensure the branch is up to date before validating.
33
-
34
- ```bash
35
- git fetch origin main
36
- git rebase origin/main
37
- ```
38
-
39
- If the rebase has conflicts, stop immediately and report. The developer must resolve conflicts manually before shipping.
40
-
41
- ### Step 1: Validate locally
42
-
43
- Invoke `/validate-branch`. If it reports FAIL, stop and show the failure. The developer needs to fix locally before shipping.
44
-
45
- ### Step 2: Submit as PR
46
-
47
- Invoke `/submit-branch`. If it reports FAILED, stop and show what went wrong (dirty worktree, push conflict, etc.).
48
-
49
- On success, note the PR number and URL.
50
-
51
- ### Step 3: Get CI green
52
-
53
- Invoke `/babysit-pr` with the PR number from Step 2. If it exhausts all 3 retry attempts, stop and report "CI blocked" with the babysit report.
54
-
55
- On success, the PR is green and ready to merge.
56
-
57
- ### Step 4: Land and verify release
58
-
59
- Merging to main triggers an npm publish — this is irreversible. To prevent the orchestrator from skipping the land-pr skill's merge strategy logic (which has happened before), **spawn an Agent** for this step:
60
-
61
- ```
62
- Spawn an Agent with this prompt:
63
- "Use the Skill tool to invoke the land-pr skill, then follow it to land PR #<PR_NUMBER>
64
- on mermaid-js/zenuml-core. Follow every step including the merge strategy evaluation.
65
- Report back the merge SHA and npm version, or the reason it was blocked."
66
- ```
67
-
68
- Replace `<PR_NUMBER>` with the actual PR number from Step 2.
69
-
70
- Do NOT run `gh pr merge` directly from the main conversation — the land-pr skill contains merge strategy decision logic that must be evaluated by the Agent.
71
-
72
- If merge succeeds but npm publish fails, alert immediately with the failure details. Do NOT auto-rollback.
73
-
74
- On full success, report the new npm version.
75
-
76
- ## Rules
77
-
78
- - **Each step is a hard boundary.** No step reaches back to retry a previous step.
79
- - **No auto-rollback.** Stop and report on any failure. The developer decides next steps.
80
- - **Only this skill calls babysit-pr.** Sub-skills never cross-call each other.
81
- - **Confirm before merge.** Since merge = npm release, pause and confirm with the user before Step 4 unless they explicitly said "ship it" (indicating full automation is intended).
82
-
83
- ## Output
84
-
85
- Final report:
86
-
87
- ```
88
- ## Ship Report: <branch-name>
89
- - Validation: PASS
90
- - PR: #<number> (<url>)
91
- - CI: GREEN (attempt <N>)
92
- - Merge: <SQUASHED|MERGED> into main (<sha>)
93
- - npm: @zenuml/core@<version> published
94
- ```
95
-
96
- Or on failure:
97
-
98
- ```
99
- ## Ship Report: <branch-name>
100
- - Validation: PASS
101
- - PR: #<number>
102
- - CI: BLOCKED after 3 attempts
103
- - Stopped at: babysit-pr
104
- - Details: <failure summary>
105
- ```
@@ -1,76 +0,0 @@
1
- ---
2
- name: submit-branch
3
- description: Push the current branch and create or reuse a PR on mermaid-js/zenuml-core. Use when the user says "submit", "create PR", "push and PR", "open a pull request", "submit branch", or wants to publish their work as a PR without merging. Does not fix CI or merge — those are separate skills.
4
- ---
5
-
6
- # Submit Branch
7
-
8
- Publish the current branch as a pull request on `mermaid-js/zenuml-core`. Reuses an existing PR if one already exists for this branch.
9
-
10
- ## Preconditions
11
-
12
- The worktree must be in a committable state:
13
-
14
- - **Clean worktree** — nothing to commit, just push. This is the ideal case.
15
- - **Scoped changes** — all modified files relate to the current work. Stage and commit them.
16
- - **Mixed/unrelated changes** — modified files include unrelated work. **Stop and ask the user** which files to include. Never auto-commit a mixed worktree.
17
-
18
- To check: `git status` and review the file list. If in doubt, ask.
19
-
20
- ## Steps
21
-
22
- ### 1. Check worktree state
23
-
24
- ```bash
25
- git status
26
- ```
27
-
28
- If dirty, evaluate whether changes are scoped (all related to the branch's purpose) or mixed. If mixed, stop and ask.
29
-
30
- If scoped, stage the relevant files and commit with a descriptive message. Follow the repo's commit conventions (one-line message, Co-Authored-By trailer).
31
-
32
- ### 2. Push
33
-
34
- ```bash
35
- git push -u origin <branch-name>
36
- ```
37
-
38
- Use regular push — never force-push. If push fails due to upstream changes, report the conflict and stop.
39
-
40
- ### 3. Create or reuse PR
41
-
42
- Check if a PR already exists:
43
-
44
- ```bash
45
- gh pr view --json number,title,url 2>/dev/null
46
- ```
47
-
48
- If a PR exists, report its URL and stop — nothing more to do.
49
-
50
- If no PR exists, create one:
51
-
52
- ```bash
53
- gh pr create --title "<concise title>" --body "$(cat <<'EOF'
54
- ## Summary
55
- <bullet points>
56
-
57
- ## Test plan
58
- <what was tested>
59
- EOF
60
- )"
61
- ```
62
-
63
- The PR targets `main` on `mermaid-js/zenuml-core`.
64
-
65
- ## Output
66
-
67
- Report:
68
-
69
- - **SUBMITTED** — PR number, URL, and branch name
70
- - **FAILED** — what went wrong (dirty worktree, push conflict, gh error)
71
-
72
- ## Does NOT
73
-
74
- - Run tests or lint (use `/validate-branch` for that)
75
- - Fix CI failures (use `/babysit-pr` for that)
76
- - Merge the PR (use `/land-pr` for that)
@@ -1,72 +0,0 @@
1
- ---
2
- name: validate-branch
3
- description: Run local validation checks on the current branch before shipping. Use when the user says "validate", "check branch", "am I good", "run tests", "preflight", "is this ready", or wants to verify their branch passes all checks before pushing or creating a PR. Also use as a precondition check before invoking submit-branch or ship-branch.
4
- ---
5
-
6
- # Validate Branch
7
-
8
- Verify the current branch passes all local checks. This is the "am I good?" skill — run it anytime before shipping, or just to check your work.
9
-
10
- ## Why this order matters
11
-
12
- Checks run fastest-first so you get feedback quickly. Lint catches syntax issues in seconds. Unit tests catch logic errors in a few seconds. Playwright E2E is slowest (~1-2 min) and catches integration regressions. No point waiting for E2E if lint fails.
13
-
14
- ## Steps
15
-
16
- Run from the `zenuml-core` directory. Stop on first failure.
17
-
18
- ### 1. Lint
19
-
20
- ```bash
21
- bun eslint
22
- ```
23
-
24
- If lint fails, report the errors and stop. These are usually quick fixes.
25
-
26
- ### 2. Unit tests
27
-
28
- ```bash
29
- bun run test
30
- ```
31
-
32
- Do NOT use `bun test` — it picks up Playwright files and gives false failures. If tests fail, report the failing test names and stop.
33
-
34
- ### 3. Playwright E2E
35
-
36
- Before running Playwright, make sure port `8080` is either free or owned by a dev server started from **this repo**. `playwright.config.ts` uses `reuseExistingServer`, so an unrelated Vite server on `8080` will cause false results.
37
-
38
- ```bash
39
- PORT="${PORT:-8080}"
40
- THIS_REPO="$(pwd -P)"
41
- LISTENER_PID="$(lsof -tiTCP:${PORT} -sTCP:LISTEN 2>/dev/null | head -n1 || true)"
42
-
43
- if [ -n "$LISTENER_PID" ]; then
44
- LISTENER_CMD="$(ps -p "$LISTENER_PID" -o command=)"
45
- if [[ "$LISTENER_CMD" != *"$THIS_REPO"* ]]; then
46
- echo "Port ${PORT} is owned by another repo; killing PID ${LISTENER_PID}"
47
- kill "$LISTENER_PID"
48
- fi
49
- fi
50
- ```
51
-
52
- If you killed a different repo's server, do **not** start Vite manually. `bun pw` will launch the correct dev server from this folder via Playwright's `webServer` config.
53
-
54
- ```bash
55
- bun pw
56
- ```
57
-
58
- If snapshot tests fail, check whether the changes are intentional (rendering code changed) or unexpected. Report which snapshots failed.
59
-
60
- ## Output
61
-
62
- Report one of:
63
-
64
- - **PASS** — all 3 checks passed, branch is ready
65
- - **FAIL** — which check failed, the error output, and a one-line suggestion
66
-
67
- ## Gotchas
68
-
69
- - `bun run test` not `bun test` — critical difference, the latter runs E2E too
70
- - Playwright needs browsers installed (`bun pw:install` if missing)
71
- - Before `bun pw`, verify any existing `8080` listener belongs to this repo; otherwise kill it and let Playwright start the right server
72
- - HTML Playwright snapshot failures are a hard stop — never update HTML snapshots without understanding why they changed
@@ -1,162 +0,0 @@
1
- # 🔧 Command Templates
2
-
3
- Orchestration templates that enable Claude Code to coordinate multi-agent workflows for different development tasks.
4
-
5
- ## Overview
6
-
7
- After reading the [main kit documentation](../README.md), you'll understand how these commands fit into the integrated system. Each command:
8
-
9
- - **Auto-loads** the appropriate documentation tier for its task
10
- - **Spawns specialized agents** based on complexity
11
- - **Integrates MCP servers** when external expertise helps
12
- - **Maintains documentation** to keep AI context current
13
-
14
- ### 🚀 Automatic Context Injection
15
-
16
- All commands benefit from automatic context injection via the `subagent-context-injector.sh` hook:
17
-
18
- - **Core documentation auto-loaded**: Every command and sub-agent automatically receives `@/docs/CLAUDE.md`, `@/docs/ai-context/project-structure.md`, and `@/docs/ai-context/docs-overview.md`
19
- - **No manual context loading**: Sub-agents spawned by commands automatically have access to essential project documentation
20
- - **Consistent knowledge**: All agents start with the same foundational understanding
21
-
22
- ## Available Commands
23
-
24
- ### 📊 `/full-context`
25
- **Purpose**: Comprehensive context gathering and analysis when you need deep understanding or plan to execute code changes.
26
-
27
- **When to use**:
28
- - Starting work on a new feature or bug
29
- - Need to understand how systems interconnect
30
- - Planning architectural changes
31
- - Any task requiring thorough analysis before implementation
32
-
33
- **How it works**: Adaptively scales from direct analysis to multi-agent orchestration based on request complexity. Agents read documentation, analyze code, map dependencies, and consult MCP servers as needed.
34
-
35
- ### 🔍 `/code-review`
36
- **Purpose**: Get multiple expert perspectives on code quality, focusing on high-impact findings rather than nitpicks.
37
-
38
- **When to use**:
39
- - After implementing new features
40
- - Before merging important changes
41
- - When you want security, performance, and architecture insights
42
- - Need confidence in code quality
43
-
44
- **How it works**: Spawns specialized agents (security, performance, architecture) that analyze in parallel. Each agent focuses on critical issues that matter for production code.
45
-
46
- ### 🧠 `/gemini-consult` *(Requires Gemini MCP Server)*
47
- **Purpose**: Engage in deep, iterative conversations with Gemini for complex problem-solving and architectural guidance.
48
-
49
- **When to use**:
50
- - Tackling complex architectural decisions
51
- - Need expert guidance on implementation approaches
52
- - Debugging intricate issues across multiple files
53
- - Exploring optimization strategies
54
- - When you need a thinking partner for difficult problems
55
-
56
- **How it works**: Creates persistent conversation sessions with Gemini, automatically attaching project context and MCP-ASSISTANT-RULES.md. Supports iterative refinement through follow-up questions and implementation feedback.
57
-
58
- **Key features**:
59
- - Context-aware problem detection when no arguments provided
60
- - Persistent sessions maintained throughout problem lifecycle
61
- - Automatic attachment of foundational project documentation
62
- - Support for follow-up questions with session continuity
63
-
64
- ### 📝 `/update-docs`
65
- **Purpose**: Keep documentation synchronized with code changes, ensuring AI context remains current.
66
-
67
- **When to use**:
68
- - After modifying code
69
- - After adding new features
70
- - When project structure changes
71
- - Following any significant implementation
72
-
73
- **How it works**: Analyzes what changed and updates the appropriate CLAUDE.md files across all tiers. Maintains the context that future AI sessions will rely on.
74
-
75
- ### 📄 `/create-docs`
76
- **Purpose**: Generate initial documentation structure for existing projects that lack AI-optimized documentation.
77
-
78
- **When to use**:
79
- - Adopting the framework in an existing project
80
- - Starting documentation from scratch
81
- - Need to document legacy code
82
- - Setting up the 3-tier structure
83
-
84
- **How it works**: Analyzes your project structure and creates appropriate CLAUDE.md files at each tier, establishing the foundation for AI-assisted development.
85
-
86
- ### ♻️ `/refactor`
87
- **Purpose**: Intelligently restructure code while maintaining functionality and updating all dependencies.
88
-
89
- **When to use**:
90
- - Breaking up large files
91
- - Improving code organization
92
- - Extracting reusable components
93
- - Cleaning up technical debt
94
-
95
- **How it works**: Analyzes file structure, maps dependencies, identifies logical split points, and handles all import/export updates across the codebase.
96
-
97
- ### 🤝 `/handoff`
98
- **Purpose**: Preserve context when ending a session or when the conversation becomes too long.
99
-
100
- **When to use**:
101
- - Ending a work session
102
- - Context limit approaching
103
- - Switching between major tasks
104
- - Supplementing `/compact` with permanent storage
105
-
106
- **How it works**: Updates the handoff documentation with session achievements, current state, and next steps. Ensures smooth continuation in future sessions.
107
-
108
- ## Integration Patterns
109
-
110
- ### Typical Workflow
111
- ```bash
112
- /full-context "implement user notifications" # Understand
113
- # ... implement the feature ...
114
- /code-review "review notification system" # Validate
115
- /update-docs "document notification feature" # Synchronize
116
- /handoff "completed notification system" # Preserve
117
- ```
118
-
119
- ### Quick Analysis
120
- ```bash
121
- /full-context "why is the API slow?" # Investigate
122
- # ... apply fixes ...
123
- /update-docs "document performance fixes" # Update context
124
- ```
125
-
126
- ### Major Refactoring
127
- ```bash
128
- /full-context "analyze authentication module" # Understand current state
129
- /refactor "@auth/large-auth-file.ts" # Restructure
130
- /code-review "review refactored auth" # Verify quality
131
- /update-docs "document new auth structure" # Keep docs current
132
- ```
133
-
134
- ### Complex Problem Solving
135
- ```bash
136
- /gemini-consult "optimize real-time data pipeline" # Start consultation
137
- # ... implement suggested approach ...
138
- /gemini-consult # Follow up with results
139
- /update-docs "document optimization approach" # Capture insights
140
- ```
141
-
142
- ## Customization
143
-
144
- Each command template can be adapted:
145
-
146
- - **Adjust agent strategies** - Modify how many agents spawn and their specializations
147
- - **Change context loading** - Customize which documentation tiers load
148
- - **Tune MCP integration** - Adjust when to consult external services
149
- - **Modify output formats** - Tailor results to your preferences
150
-
151
- Commands are stored in `.claude/commands/` and can be edited directly.
152
-
153
- ## Key Principles
154
-
155
- 1. **Commands work together** - Each command builds on others' outputs
156
- 2. **Documentation stays current** - Commands maintain their own context
157
- 3. **Complexity scales naturally** - Simple tasks stay simple, complex tasks get sophisticated analysis
158
- 4. **Context is continuous** - Information flows between sessions through documentation
159
-
160
- ---
161
-
162
- *For detailed implementation of each command, see the individual command files in this directory.*
@@ -1,101 +0,0 @@
1
- ---
2
- description: Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
3
- ---
4
-
5
- The user input to you can be provided directly by the agent or as a command argument - you **MUST** consider it before proceeding with the prompt (if not empty).
6
-
7
- User input:
8
-
9
- $ARGUMENTS
10
-
11
- Goal: Identify inconsistencies, duplications, ambiguities, and underspecified items across the three core artifacts (`spec.md`, `plan.md`, `tasks.md`) before implementation. This command MUST run only after `/tasks` has successfully produced a complete `tasks.md`.
12
-
13
- STRICTLY READ-ONLY: Do **not** modify any files. Output a structured analysis report. Offer an optional remediation plan (user must explicitly approve before any follow-up editing commands would be invoked manually).
14
-
15
- Constitution Authority: The project constitution (`.specify/memory/constitution.md`) is **non-negotiable** within this analysis scope. Constitution conflicts are automatically CRITICAL and require adjustment of the spec, plan, or tasks—not dilution, reinterpretation, or silent ignoring of the principle. If a principle itself needs to change, that must occur in a separate, explicit constitution update outside `/analyze`.
16
-
17
- Execution steps:
18
-
19
- 1. Run `.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks` once from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS. Derive absolute paths:
20
- - SPEC = FEATURE_DIR/spec.md
21
- - PLAN = FEATURE_DIR/plan.md
22
- - TASKS = FEATURE_DIR/tasks.md
23
- Abort with an error message if any required file is missing (instruct the user to run missing prerequisite command).
24
-
25
- 2. Load artifacts:
26
- - Parse spec.md sections: Overview/Context, Functional Requirements, Non-Functional Requirements, User Stories, Edge Cases (if present).
27
- - Parse plan.md: Architecture/stack choices, Data Model references, Phases, Technical constraints.
28
- - Parse tasks.md: Task IDs, descriptions, phase grouping, parallel markers [P], referenced file paths.
29
- - Load constitution `.specify/memory/constitution.md` for principle validation.
30
-
31
- 3. Build internal semantic models:
32
- - Requirements inventory: Each functional + non-functional requirement with a stable key (derive slug based on imperative phrase; e.g., "User can upload file" -> `user-can-upload-file`).
33
- - User story/action inventory.
34
- - Task coverage mapping: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases).
35
- - Constitution rule set: Extract principle names and any MUST/SHOULD normative statements.
36
-
37
- 4. Detection passes:
38
- A. Duplication detection:
39
- - Identify near-duplicate requirements. Mark lower-quality phrasing for consolidation.
40
- B. Ambiguity detection:
41
- - Flag vague adjectives (fast, scalable, secure, intuitive, robust) lacking measurable criteria.
42
- - Flag unresolved placeholders (TODO, TKTK, ???, <placeholder>, etc.).
43
- C. Underspecification:
44
- - Requirements with verbs but missing object or measurable outcome.
45
- - User stories missing acceptance criteria alignment.
46
- - Tasks referencing files or components not defined in spec/plan.
47
- D. Constitution alignment:
48
- - Any requirement or plan element conflicting with a MUST principle.
49
- - Missing mandated sections or quality gates from constitution.
50
- E. Coverage gaps:
51
- - Requirements with zero associated tasks.
52
- - Tasks with no mapped requirement/story.
53
- - Non-functional requirements not reflected in tasks (e.g., performance, security).
54
- F. Inconsistency:
55
- - Terminology drift (same concept named differently across files).
56
- - Data entities referenced in plan but absent in spec (or vice versa).
57
- - Task ordering contradictions (e.g., integration tasks before foundational setup tasks without dependency note).
58
- - Conflicting requirements (e.g., one requires to use Next.js while other says to use Vue as the framework).
59
-
60
- 5. Severity assignment heuristic:
61
- - CRITICAL: Violates constitution MUST, missing core spec artifact, or requirement with zero coverage that blocks baseline functionality.
62
- - HIGH: Duplicate or conflicting requirement, ambiguous security/performance attribute, untestable acceptance criterion.
63
- - MEDIUM: Terminology drift, missing non-functional task coverage, underspecified edge case.
64
- - LOW: Style/wording improvements, minor redundancy not affecting execution order.
65
-
66
- 6. Produce a Markdown report (no file writes) with sections:
67
-
68
- ### Specification Analysis Report
69
- | ID | Category | Severity | Location(s) | Summary | Recommendation |
70
- |----|----------|----------|-------------|---------|----------------|
71
- | A1 | Duplication | HIGH | spec.md:L120-134 | Two similar requirements ... | Merge phrasing; keep clearer version |
72
- (Add one row per finding; generate stable IDs prefixed by category initial.)
73
-
74
- Additional subsections:
75
- - Coverage Summary Table:
76
- | Requirement Key | Has Task? | Task IDs | Notes |
77
- - Constitution Alignment Issues (if any)
78
- - Unmapped Tasks (if any)
79
- - Metrics:
80
- * Total Requirements
81
- * Total Tasks
82
- * Coverage % (requirements with >=1 task)
83
- * Ambiguity Count
84
- * Duplication Count
85
- * Critical Issues Count
86
-
87
- 7. At end of report, output a concise Next Actions block:
88
- - If CRITICAL issues exist: Recommend resolving before `/implement`.
89
- - If only LOW/MEDIUM: User may proceed, but provide improvement suggestions.
90
- - Provide explicit command suggestions: e.g., "Run /specify with refinement", "Run /plan to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'".
91
-
92
- 8. Ask the user: "Would you like me to suggest concrete remediation edits for the top N issues?" (Do NOT apply them automatically.)
93
-
94
- Behavior rules:
95
- - NEVER modify files.
96
- - NEVER hallucinate missing sections—if absent, report them.
97
- - KEEP findings deterministic: if rerun without changes, produce consistent IDs and counts.
98
- - LIMIT total findings in the main table to 50; aggregate remainder in a summarized overflow note.
99
- - If zero issues found, emit a success report with coverage statistics and proceed recommendation.
100
-
101
- Context: $ARGUMENTS
@@ -1,158 +0,0 @@
1
- ---
2
- description: Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
3
- ---
4
-
5
- The user input to you can be provided directly by the agent or as a command argument - you **MUST** consider it before proceeding with the prompt (if not empty).
6
-
7
- User input:
8
-
9
- $ARGUMENTS
10
-
11
- Goal: Detect and reduce ambiguity or missing decision points in the active feature specification and record the clarifications directly in the spec file.
12
-
13
- Note: This clarification workflow is expected to run (and be completed) BEFORE invoking `/plan`. If the user explicitly states they are skipping clarification (e.g., exploratory spike), you may proceed, but must warn that downstream rework risk increases.
14
-
15
- Execution steps:
16
-
17
- 1. Run `.specify/scripts/bash/check-prerequisites.sh --json --paths-only` from repo root **once** (combined `--json --paths-only` mode / `-Json -PathsOnly`). Parse minimal JSON payload fields:
18
- - `FEATURE_DIR`
19
- - `FEATURE_SPEC`
20
- - (Optionally capture `IMPL_PLAN`, `TASKS` for future chained flows.)
21
- - If JSON parsing fails, abort and instruct user to re-run `/specify` or verify feature branch environment.
22
-
23
- 2. Load the current spec file. Perform a structured ambiguity & coverage scan using this taxonomy. For each category, mark status: Clear / Partial / Missing. Produce an internal coverage map used for prioritization (do not output raw map unless no questions will be asked).
24
-
25
- Functional Scope & Behavior:
26
- - Core user goals & success criteria
27
- - Explicit out-of-scope declarations
28
- - User roles / personas differentiation
29
-
30
- Domain & Data Model:
31
- - Entities, attributes, relationships
32
- - Identity & uniqueness rules
33
- - Lifecycle/state transitions
34
- - Data volume / scale assumptions
35
-
36
- Interaction & UX Flow:
37
- - Critical user journeys / sequences
38
- - Error/empty/loading states
39
- - Accessibility or localization notes
40
-
41
- Non-Functional Quality Attributes:
42
- - Performance (latency, throughput targets)
43
- - Scalability (horizontal/vertical, limits)
44
- - Reliability & availability (uptime, recovery expectations)
45
- - Observability (logging, metrics, tracing signals)
46
- - Security & privacy (authN/Z, data protection, threat assumptions)
47
- - Compliance / regulatory constraints (if any)
48
-
49
- Integration & External Dependencies:
50
- - External services/APIs and failure modes
51
- - Data import/export formats
52
- - Protocol/versioning assumptions
53
-
54
- Edge Cases & Failure Handling:
55
- - Negative scenarios
56
- - Rate limiting / throttling
57
- - Conflict resolution (e.g., concurrent edits)
58
-
59
- Constraints & Tradeoffs:
60
- - Technical constraints (language, storage, hosting)
61
- - Explicit tradeoffs or rejected alternatives
62
-
63
- Terminology & Consistency:
64
- - Canonical glossary terms
65
- - Avoided synonyms / deprecated terms
66
-
67
- Completion Signals:
68
- - Acceptance criteria testability
69
- - Measurable Definition of Done style indicators
70
-
71
- Misc / Placeholders:
72
- - TODO markers / unresolved decisions
73
- - Ambiguous adjectives ("robust", "intuitive") lacking quantification
74
-
75
- For each category with Partial or Missing status, add a candidate question opportunity unless:
76
- - Clarification would not materially change implementation or validation strategy
77
- - Information is better deferred to planning phase (note internally)
78
-
79
- 3. Generate (internally) a prioritized queue of candidate clarification questions (maximum 5). Do NOT output them all at once. Apply these constraints:
80
- - Maximum of 5 total questions across the whole session.
81
- - Each question must be answerable with EITHER:
82
- * A short multiple‑choice selection (2–5 distinct, mutually exclusive options), OR
83
- * A one-word / short‑phrase answer (explicitly constrain: "Answer in <=5 words").
84
- - Only include questions whose answers materially impact architecture, data modeling, task decomposition, test design, UX behavior, operational readiness, or compliance validation.
85
- - Ensure category coverage balance: attempt to cover the highest impact unresolved categories first; avoid asking two low-impact questions when a single high-impact area (e.g., security posture) is unresolved.
86
- - Exclude questions already answered, trivial stylistic preferences, or plan-level execution details (unless blocking correctness).
87
- - Favor clarifications that reduce downstream rework risk or prevent misaligned acceptance tests.
88
- - If more than 5 categories remain unresolved, select the top 5 by (Impact * Uncertainty) heuristic.
89
-
90
- 4. Sequential questioning loop (interactive):
91
- - Present EXACTLY ONE question at a time.
92
- - For multiple‑choice questions render options as a Markdown table:
93
-
94
- | Option | Description |
95
- |--------|-------------|
96
- | A | <Option A description> |
97
- | B | <Option B description> |
98
- | C | <Option C description> | (add D/E as needed up to 5)
99
- | Short | Provide a different short answer (<=5 words) | (Include only if free-form alternative is appropriate)
100
-
101
- - For short‑answer style (no meaningful discrete options), output a single line after the question: `Format: Short answer (<=5 words)`.
102
- - After the user answers:
103
- * Validate the answer maps to one option or fits the <=5 word constraint.
104
- * If ambiguous, ask for a quick disambiguation (count still belongs to same question; do not advance).
105
- * Once satisfactory, record it in working memory (do not yet write to disk) and move to the next queued question.
106
- - Stop asking further questions when:
107
- * All critical ambiguities resolved early (remaining queued items become unnecessary), OR
108
- * User signals completion ("done", "good", "no more"), OR
109
- * You reach 5 asked questions.
110
- - Never reveal future queued questions in advance.
111
- - If no valid questions exist at start, immediately report no critical ambiguities.
112
-
113
- 5. Integration after EACH accepted answer (incremental update approach):
114
- - Maintain in-memory representation of the spec (loaded once at start) plus the raw file contents.
115
- - For the first integrated answer in this session:
116
- * Ensure a `## Clarifications` section exists (create it just after the highest-level contextual/overview section per the spec template if missing).
117
- * Under it, create (if not present) a `### Session YYYY-MM-DD` subheading for today.
118
- - Append a bullet line immediately after acceptance: `- Q: <question> → A: <final answer>`.
119
- - Then immediately apply the clarification to the most appropriate section(s):
120
- * Functional ambiguity → Update or add a bullet in Functional Requirements.
121
- * User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.
122
- * Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.
123
- * Non-functional constraint → Add/modify measurable criteria in Non-Functional / Quality Attributes section (convert vague adjective to metric or explicit target).
124
- * Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).
125
- * Terminology conflict → Normalize term across spec; retain original only if necessary by adding `(formerly referred to as "X")` once.
126
- - If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.
127
- - Save the spec file AFTER each integration to minimize risk of context loss (atomic overwrite).
128
- - Preserve formatting: do not reorder unrelated sections; keep heading hierarchy intact.
129
- - Keep each inserted clarification minimal and testable (avoid narrative drift).
130
-
131
- 6. Validation (performed after EACH write plus final pass):
132
- - Clarifications session contains exactly one bullet per accepted answer (no duplicates).
133
- - Total asked (accepted) questions ≤ 5.
134
- - Updated sections contain no lingering vague placeholders the new answer was meant to resolve.
135
- - No contradictory earlier statement remains (scan for now-invalid alternative choices removed).
136
- - Markdown structure valid; only allowed new headings: `## Clarifications`, `### Session YYYY-MM-DD`.
137
- - Terminology consistency: same canonical term used across all updated sections.
138
-
139
- 7. Write the updated spec back to `FEATURE_SPEC`.
140
-
141
- 8. Report completion (after questioning loop ends or early termination):
142
- - Number of questions asked & answered.
143
- - Path to updated spec.
144
- - Sections touched (list names).
145
- - Coverage summary table listing each taxonomy category with Status: Resolved (was Partial/Missing and addressed), Deferred (exceeds question quota or better suited for planning), Clear (already sufficient), Outstanding (still Partial/Missing but low impact).
146
- - If any Outstanding or Deferred remain, recommend whether to proceed to `/plan` or run `/clarify` again later post-plan.
147
- - Suggested next command.
148
-
149
- Behavior rules:
150
- - If no meaningful ambiguities found (or all potential questions would be low-impact), respond: "No critical ambiguities detected worth formal clarification." and suggest proceeding.
151
- - If spec file missing, instruct user to run `/specify` first (do not create a new spec here).
152
- - Never exceed 5 total asked questions (clarification retries for a single question do not count as new questions).
153
- - Avoid speculative tech stack questions unless the absence blocks functional clarity.
154
- - Respect user early termination signals ("stop", "done", "proceed").
155
- - If no questions asked due to full coverage, output a compact coverage summary (all categories Clear) then suggest advancing.
156
- - If quota reached with unresolved high-impact categories remaining, explicitly flag them under Deferred with rationale.
157
-
158
- Context for prioritization: $ARGUMENTS