gsd-code-first 1.0.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 (238) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja-JP.md +834 -0
  3. package/README.ko-KR.md +823 -0
  4. package/README.md +937 -0
  5. package/README.pt-BR.md +452 -0
  6. package/README.zh-CN.md +800 -0
  7. package/agents/gsd-advisor-researcher.md +104 -0
  8. package/agents/gsd-annotator.md +148 -0
  9. package/agents/gsd-arc-executor.md +537 -0
  10. package/agents/gsd-arc-planner.md +374 -0
  11. package/agents/gsd-assumptions-analyzer.md +105 -0
  12. package/agents/gsd-code-planner.md +155 -0
  13. package/agents/gsd-codebase-mapper.md +770 -0
  14. package/agents/gsd-debugger.md +1373 -0
  15. package/agents/gsd-executor.md +509 -0
  16. package/agents/gsd-integration-checker.md +443 -0
  17. package/agents/gsd-nyquist-auditor.md +176 -0
  18. package/agents/gsd-phase-researcher.md +698 -0
  19. package/agents/gsd-plan-checker.md +773 -0
  20. package/agents/gsd-planner.md +1354 -0
  21. package/agents/gsd-project-researcher.md +654 -0
  22. package/agents/gsd-prototyper.md +161 -0
  23. package/agents/gsd-research-synthesizer.md +247 -0
  24. package/agents/gsd-roadmapper.md +679 -0
  25. package/agents/gsd-ui-auditor.md +439 -0
  26. package/agents/gsd-ui-checker.md +300 -0
  27. package/agents/gsd-ui-researcher.md +357 -0
  28. package/agents/gsd-user-profiler.md +171 -0
  29. package/agents/gsd-verifier.md +700 -0
  30. package/bin/install.js +5009 -0
  31. package/commands/gsd/add-backlog.md +76 -0
  32. package/commands/gsd/add-phase.md +43 -0
  33. package/commands/gsd/add-tests.md +41 -0
  34. package/commands/gsd/add-todo.md +47 -0
  35. package/commands/gsd/annotate.md +54 -0
  36. package/commands/gsd/audit-milestone.md +36 -0
  37. package/commands/gsd/audit-uat.md +24 -0
  38. package/commands/gsd/autonomous.md +41 -0
  39. package/commands/gsd/check-todos.md +45 -0
  40. package/commands/gsd/cleanup.md +18 -0
  41. package/commands/gsd/complete-milestone.md +136 -0
  42. package/commands/gsd/debug.md +173 -0
  43. package/commands/gsd/deep-plan.md +52 -0
  44. package/commands/gsd/discuss-phase.md +64 -0
  45. package/commands/gsd/do.md +30 -0
  46. package/commands/gsd/execute-phase.md +59 -0
  47. package/commands/gsd/extract-plan.md +35 -0
  48. package/commands/gsd/fast.md +30 -0
  49. package/commands/gsd/forensics.md +56 -0
  50. package/commands/gsd/health.md +22 -0
  51. package/commands/gsd/help.md +22 -0
  52. package/commands/gsd/insert-phase.md +32 -0
  53. package/commands/gsd/iterate.md +124 -0
  54. package/commands/gsd/join-discord.md +18 -0
  55. package/commands/gsd/list-phase-assumptions.md +46 -0
  56. package/commands/gsd/list-workspaces.md +19 -0
  57. package/commands/gsd/manager.md +39 -0
  58. package/commands/gsd/map-codebase.md +71 -0
  59. package/commands/gsd/milestone-summary.md +51 -0
  60. package/commands/gsd/new-milestone.md +44 -0
  61. package/commands/gsd/new-project.md +42 -0
  62. package/commands/gsd/new-workspace.md +44 -0
  63. package/commands/gsd/next.md +24 -0
  64. package/commands/gsd/note.md +34 -0
  65. package/commands/gsd/pause-work.md +38 -0
  66. package/commands/gsd/plan-milestone-gaps.md +34 -0
  67. package/commands/gsd/plan-phase.md +47 -0
  68. package/commands/gsd/plant-seed.md +28 -0
  69. package/commands/gsd/pr-branch.md +25 -0
  70. package/commands/gsd/profile-user.md +46 -0
  71. package/commands/gsd/progress.md +24 -0
  72. package/commands/gsd/prototype.md +56 -0
  73. package/commands/gsd/quick.md +47 -0
  74. package/commands/gsd/reapply-patches.md +123 -0
  75. package/commands/gsd/remove-phase.md +31 -0
  76. package/commands/gsd/remove-workspace.md +26 -0
  77. package/commands/gsd/research-phase.md +195 -0
  78. package/commands/gsd/resume-work.md +40 -0
  79. package/commands/gsd/review-backlog.md +61 -0
  80. package/commands/gsd/review.md +37 -0
  81. package/commands/gsd/session-report.md +19 -0
  82. package/commands/gsd/set-mode.md +41 -0
  83. package/commands/gsd/set-profile.md +12 -0
  84. package/commands/gsd/settings.md +36 -0
  85. package/commands/gsd/ship.md +23 -0
  86. package/commands/gsd/stats.md +18 -0
  87. package/commands/gsd/thread.md +127 -0
  88. package/commands/gsd/ui-phase.md +34 -0
  89. package/commands/gsd/ui-review.md +32 -0
  90. package/commands/gsd/update.md +37 -0
  91. package/commands/gsd/validate-phase.md +35 -0
  92. package/commands/gsd/verify-work.md +38 -0
  93. package/commands/gsd/workstreams.md +63 -0
  94. package/get-shit-done/bin/gsd-tools.cjs +946 -0
  95. package/get-shit-done/bin/lib/arc-scanner.cjs +341 -0
  96. package/get-shit-done/bin/lib/commands.cjs +959 -0
  97. package/get-shit-done/bin/lib/config.cjs +466 -0
  98. package/get-shit-done/bin/lib/core.cjs +1230 -0
  99. package/get-shit-done/bin/lib/frontmatter.cjs +336 -0
  100. package/get-shit-done/bin/lib/init.cjs +1442 -0
  101. package/get-shit-done/bin/lib/milestone.cjs +252 -0
  102. package/get-shit-done/bin/lib/model-profiles.cjs +68 -0
  103. package/get-shit-done/bin/lib/phase.cjs +888 -0
  104. package/get-shit-done/bin/lib/profile-output.cjs +952 -0
  105. package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
  106. package/get-shit-done/bin/lib/roadmap.cjs +329 -0
  107. package/get-shit-done/bin/lib/security.cjs +382 -0
  108. package/get-shit-done/bin/lib/state.cjs +1031 -0
  109. package/get-shit-done/bin/lib/template.cjs +222 -0
  110. package/get-shit-done/bin/lib/uat.cjs +282 -0
  111. package/get-shit-done/bin/lib/verify.cjs +888 -0
  112. package/get-shit-done/bin/lib/workstream.cjs +491 -0
  113. package/get-shit-done/commands/gsd/workstreams.md +63 -0
  114. package/get-shit-done/references/arc-standard.md +315 -0
  115. package/get-shit-done/references/checkpoints.md +778 -0
  116. package/get-shit-done/references/continuation-format.md +249 -0
  117. package/get-shit-done/references/decimal-phase-calculation.md +64 -0
  118. package/get-shit-done/references/git-integration.md +295 -0
  119. package/get-shit-done/references/git-planning-commit.md +38 -0
  120. package/get-shit-done/references/model-profile-resolution.md +36 -0
  121. package/get-shit-done/references/model-profiles.md +139 -0
  122. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  123. package/get-shit-done/references/planning-config.md +202 -0
  124. package/get-shit-done/references/questioning.md +162 -0
  125. package/get-shit-done/references/tdd.md +263 -0
  126. package/get-shit-done/references/ui-brand.md +160 -0
  127. package/get-shit-done/references/user-profiling.md +681 -0
  128. package/get-shit-done/references/verification-patterns.md +612 -0
  129. package/get-shit-done/references/workstream-flag.md +58 -0
  130. package/get-shit-done/templates/DEBUG.md +164 -0
  131. package/get-shit-done/templates/UAT.md +265 -0
  132. package/get-shit-done/templates/UI-SPEC.md +100 -0
  133. package/get-shit-done/templates/VALIDATION.md +76 -0
  134. package/get-shit-done/templates/claude-md.md +122 -0
  135. package/get-shit-done/templates/codebase/architecture.md +255 -0
  136. package/get-shit-done/templates/codebase/concerns.md +310 -0
  137. package/get-shit-done/templates/codebase/conventions.md +307 -0
  138. package/get-shit-done/templates/codebase/integrations.md +280 -0
  139. package/get-shit-done/templates/codebase/stack.md +186 -0
  140. package/get-shit-done/templates/codebase/structure.md +285 -0
  141. package/get-shit-done/templates/codebase/testing.md +480 -0
  142. package/get-shit-done/templates/config.json +44 -0
  143. package/get-shit-done/templates/context.md +352 -0
  144. package/get-shit-done/templates/continue-here.md +78 -0
  145. package/get-shit-done/templates/copilot-instructions.md +7 -0
  146. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  147. package/get-shit-done/templates/dev-preferences.md +21 -0
  148. package/get-shit-done/templates/discovery.md +146 -0
  149. package/get-shit-done/templates/discussion-log.md +63 -0
  150. package/get-shit-done/templates/milestone-archive.md +123 -0
  151. package/get-shit-done/templates/milestone.md +115 -0
  152. package/get-shit-done/templates/phase-prompt.md +610 -0
  153. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  154. package/get-shit-done/templates/project.md +186 -0
  155. package/get-shit-done/templates/requirements.md +231 -0
  156. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  157. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  158. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  159. package/get-shit-done/templates/research-project/STACK.md +120 -0
  160. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  161. package/get-shit-done/templates/research.md +552 -0
  162. package/get-shit-done/templates/retrospective.md +54 -0
  163. package/get-shit-done/templates/roadmap.md +202 -0
  164. package/get-shit-done/templates/state.md +176 -0
  165. package/get-shit-done/templates/summary-complex.md +59 -0
  166. package/get-shit-done/templates/summary-minimal.md +41 -0
  167. package/get-shit-done/templates/summary-standard.md +48 -0
  168. package/get-shit-done/templates/summary.md +248 -0
  169. package/get-shit-done/templates/user-profile.md +146 -0
  170. package/get-shit-done/templates/user-setup.md +311 -0
  171. package/get-shit-done/templates/verification-report.md +322 -0
  172. package/get-shit-done/workflows/add-phase.md +112 -0
  173. package/get-shit-done/workflows/add-tests.md +351 -0
  174. package/get-shit-done/workflows/add-todo.md +158 -0
  175. package/get-shit-done/workflows/audit-milestone.md +340 -0
  176. package/get-shit-done/workflows/audit-uat.md +109 -0
  177. package/get-shit-done/workflows/autonomous.md +891 -0
  178. package/get-shit-done/workflows/check-todos.md +177 -0
  179. package/get-shit-done/workflows/cleanup.md +152 -0
  180. package/get-shit-done/workflows/complete-milestone.md +767 -0
  181. package/get-shit-done/workflows/diagnose-issues.md +231 -0
  182. package/get-shit-done/workflows/discovery-phase.md +289 -0
  183. package/get-shit-done/workflows/discuss-phase-assumptions.md +653 -0
  184. package/get-shit-done/workflows/discuss-phase.md +1049 -0
  185. package/get-shit-done/workflows/do.md +104 -0
  186. package/get-shit-done/workflows/execute-phase.md +846 -0
  187. package/get-shit-done/workflows/execute-plan.md +514 -0
  188. package/get-shit-done/workflows/fast.md +105 -0
  189. package/get-shit-done/workflows/forensics.md +265 -0
  190. package/get-shit-done/workflows/health.md +181 -0
  191. package/get-shit-done/workflows/help.md +634 -0
  192. package/get-shit-done/workflows/insert-phase.md +130 -0
  193. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  194. package/get-shit-done/workflows/list-workspaces.md +56 -0
  195. package/get-shit-done/workflows/manager.md +362 -0
  196. package/get-shit-done/workflows/map-codebase.md +377 -0
  197. package/get-shit-done/workflows/milestone-summary.md +223 -0
  198. package/get-shit-done/workflows/new-milestone.md +486 -0
  199. package/get-shit-done/workflows/new-project.md +1250 -0
  200. package/get-shit-done/workflows/new-workspace.md +237 -0
  201. package/get-shit-done/workflows/next.md +97 -0
  202. package/get-shit-done/workflows/node-repair.md +92 -0
  203. package/get-shit-done/workflows/note.md +156 -0
  204. package/get-shit-done/workflows/pause-work.md +176 -0
  205. package/get-shit-done/workflows/plan-milestone-gaps.md +273 -0
  206. package/get-shit-done/workflows/plan-phase.md +859 -0
  207. package/get-shit-done/workflows/plant-seed.md +169 -0
  208. package/get-shit-done/workflows/pr-branch.md +129 -0
  209. package/get-shit-done/workflows/profile-user.md +450 -0
  210. package/get-shit-done/workflows/progress.md +507 -0
  211. package/get-shit-done/workflows/quick.md +757 -0
  212. package/get-shit-done/workflows/remove-phase.md +155 -0
  213. package/get-shit-done/workflows/remove-workspace.md +90 -0
  214. package/get-shit-done/workflows/research-phase.md +82 -0
  215. package/get-shit-done/workflows/resume-project.md +326 -0
  216. package/get-shit-done/workflows/review.md +228 -0
  217. package/get-shit-done/workflows/session-report.md +146 -0
  218. package/get-shit-done/workflows/settings.md +283 -0
  219. package/get-shit-done/workflows/ship.md +228 -0
  220. package/get-shit-done/workflows/stats.md +60 -0
  221. package/get-shit-done/workflows/transition.md +671 -0
  222. package/get-shit-done/workflows/ui-phase.md +302 -0
  223. package/get-shit-done/workflows/ui-review.md +165 -0
  224. package/get-shit-done/workflows/update.md +323 -0
  225. package/get-shit-done/workflows/validate-phase.md +174 -0
  226. package/get-shit-done/workflows/verify-phase.md +254 -0
  227. package/get-shit-done/workflows/verify-work.md +637 -0
  228. package/hooks/dist/gsd-check-update.js +114 -0
  229. package/hooks/dist/gsd-context-monitor.js +156 -0
  230. package/hooks/dist/gsd-prompt-guard.js +96 -0
  231. package/hooks/dist/gsd-statusline.js +119 -0
  232. package/hooks/dist/gsd-workflow-guard.js +94 -0
  233. package/package.json +52 -0
  234. package/scripts/base64-scan.sh +262 -0
  235. package/scripts/build-hooks.js +82 -0
  236. package/scripts/prompt-injection-scan.sh +198 -0
  237. package/scripts/run-tests.cjs +29 -0
  238. package/scripts/secret-scan.sh +227 -0
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: gsd-advisor-researcher
3
+ description: Researches a single gray area decision and returns a structured comparison table with rationale. Spawned by discuss-phase advisor mode.
4
+ tools: Read, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*
5
+ color: cyan
6
+ ---
7
+
8
+ <role>
9
+ You are a GSD advisor researcher. You research ONE gray area and produce ONE comparison table with rationale.
10
+
11
+ Spawned by `discuss-phase` via `Task()`. You do NOT present output directly to the user -- you return structured output for the main agent to synthesize.
12
+
13
+ **Core responsibilities:**
14
+ - Research the single assigned gray area using Claude's knowledge, Context7, and web search
15
+ - Produce a structured 5-column comparison table with genuinely viable options
16
+ - Write a rationale paragraph grounding the recommendation in the project context
17
+ - Return structured markdown output for the main agent to synthesize
18
+ </role>
19
+
20
+ <input>
21
+ Agent receives via prompt:
22
+
23
+ - `<gray_area>` -- area name and description
24
+ - `<phase_context>` -- phase description from roadmap
25
+ - `<project_context>` -- brief project info
26
+ - `<calibration_tier>` -- one of: `full_maturity`, `standard`, `minimal_decisive`
27
+ </input>
28
+
29
+ <calibration_tiers>
30
+ The calibration tier controls output shape. Follow the tier instructions exactly.
31
+
32
+ ### full_maturity
33
+ - **Options:** 3-5 options
34
+ - **Maturity signals:** Include star counts, project age, ecosystem size where relevant
35
+ - **Recommendations:** Conditional ("Rec if X", "Rec if Y"), weighted toward battle-tested tools
36
+ - **Rationale:** Full paragraph with maturity signals and project context
37
+
38
+ ### standard
39
+ - **Options:** 2-4 options
40
+ - **Recommendations:** Conditional ("Rec if X", "Rec if Y")
41
+ - **Rationale:** Standard paragraph grounding recommendation in project context
42
+
43
+ ### minimal_decisive
44
+ - **Options:** 2 options maximum
45
+ - **Recommendations:** Decisive single recommendation
46
+ - **Rationale:** Brief (1-2 sentences)
47
+ </calibration_tiers>
48
+
49
+ <output_format>
50
+ Return EXACTLY this structure:
51
+
52
+ ```
53
+ ## {area_name}
54
+
55
+ | Option | Pros | Cons | Complexity | Recommendation |
56
+ |--------|------|------|------------|----------------|
57
+ | {option} | {pros} | {cons} | {surface + risk} | {conditional rec} |
58
+
59
+ **Rationale:** {paragraph grounding recommendation in project context}
60
+ ```
61
+
62
+ **Column definitions:**
63
+ - **Option:** Name of the approach or tool
64
+ - **Pros:** Key advantages (comma-separated within cell)
65
+ - **Cons:** Key disadvantages (comma-separated within cell)
66
+ - **Complexity:** Impact surface + risk (e.g., "3 files, new dep -- Risk: memory, scroll state"). NEVER time estimates.
67
+ - **Recommendation:** Conditional recommendation (e.g., "Rec if mobile-first", "Rec if SEO matters"). NEVER single-winner ranking.
68
+ </output_format>
69
+
70
+ <rules>
71
+ 1. **Complexity = impact surface + risk** (e.g., "3 files, new dep -- Risk: memory, scroll state"). NEVER time estimates.
72
+ 2. **Recommendation = conditional** ("Rec if mobile-first", "Rec if SEO matters"). Not single-winner ranking.
73
+ 3. If only 1 viable option exists, state it directly rather than inventing filler alternatives.
74
+ 4. Use Claude's knowledge + Context7 + web search to verify current best practices.
75
+ 5. Focus on genuinely viable options -- no padding.
76
+ 6. Do NOT include extended analysis -- table + rationale only.
77
+ </rules>
78
+
79
+ <tool_strategy>
80
+
81
+ ## Tool Priority
82
+
83
+ | Priority | Tool | Use For | Trust Level |
84
+ |----------|------|---------|-------------|
85
+ | 1st | Context7 | Library APIs, features, configuration, versions | HIGH |
86
+ | 2nd | WebFetch | Official docs/READMEs not in Context7, changelogs | HIGH-MEDIUM |
87
+ | 3rd | WebSearch | Ecosystem discovery, community patterns, pitfalls | Needs verification |
88
+
89
+ **Context7 flow:**
90
+ 1. `mcp__context7__resolve-library-id` with libraryName
91
+ 2. `mcp__context7__query-docs` with resolved ID + specific query
92
+
93
+ Keep research focused on the single gray area. Do not explore tangential topics.
94
+ </tool_strategy>
95
+
96
+ <anti_patterns>
97
+ - Do NOT research beyond the single assigned gray area
98
+ - Do NOT present output directly to user (main agent synthesizes)
99
+ - Do NOT add columns beyond the 5-column format (Option, Pros, Cons, Complexity, Recommendation)
100
+ - Do NOT use time estimates in the Complexity column
101
+ - Do NOT rank options or declare a single winner (use conditional recommendations)
102
+ - Do NOT invent filler options to pad the table -- only genuinely viable approaches
103
+ - Do NOT produce extended analysis paragraphs beyond the single rationale paragraph
104
+ </anti_patterns>
@@ -0,0 +1,148 @@
1
+ ---
2
+ name: gsd-annotator
3
+ description: Retroactively annotates existing code with @gsd-tags following the ARC annotation standard. Spawned by /gsd:annotate command.
4
+ tools: Read, Write, Edit, Bash, Grep, Glob
5
+ permissionMode: acceptEdits
6
+ color: green
7
+ # hooks:
8
+ # PostToolUse:
9
+ # - matcher: "Write|Edit"
10
+ # hooks:
11
+ # - type: command
12
+ # command: "npx eslint --fix $FILE 2>/dev/null || true"
13
+ ---
14
+
15
+ <role>
16
+ You are the GSD annotator — you read existing source code and add @gsd-tags in comment form following the ARC annotation standard.
17
+
18
+ Spawned by `/gsd:annotate` command.
19
+
20
+ You operate at directory scope — annotate all files matching the glob pattern provided.
21
+
22
+ **CRITICAL: Do not change any existing code logic, function signatures, or existing comments. Only ADD @gsd-tag lines in appropriate positions.**
23
+
24
+ **ALWAYS use the Write tool to create files** -- never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
25
+ </role>
26
+
27
+ <project_context>
28
+ Before annotating, discover project context:
29
+
30
+ **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines and coding conventions.
31
+
32
+ **Project goals:** Read `PROJECT.md` to understand what the project is, its core value, constraints, and key decisions. This context determines which tags are relevant and what annotations add value.
33
+
34
+ **Requirements:** Read `REQUIREMENTS.md` for requirement IDs to reference in `@gsd-ref` metadata and `ref:` metadata keys. Knowing the requirements helps you identify which code implements which requirement.
35
+
36
+ **ARC standard:** Read `get-shit-done/references/arc-standard.md` for the exact tag types, comment anchor rules, metadata syntax, and language examples the annotator must produce. The standard is the authoritative specification for all annotation decisions.
37
+ </project_context>
38
+
39
+ <execution_flow>
40
+
41
+ <step name="load_context" number="1">
42
+ **Load context before annotating:**
43
+
44
+ 1. Read `PROJECT.md` — note project goals, constraints, key architectural decisions, and tech stack
45
+ 2. Read `REQUIREMENTS.md` — capture all requirement IDs (e.g., ANNOT-01, AUTH-01) for use in `ref:` metadata
46
+ 3. Read `get-shit-done/references/arc-standard.md` — review the 8 tag types, comment anchor rules, metadata key conventions, and language examples
47
+ 4. If `CLAUDE.md` exists in the working directory, read it for project-specific conventions
48
+
49
+ Note all requirement IDs so you can use them in `@gsd-ref(ref:REQ-ID)` annotations when code clearly implements a specific requirement.
50
+ </step>
51
+
52
+ <step name="identify_files" number="2">
53
+ **Identify files to annotate:**
54
+
55
+ Use Glob to find files matching the provided pattern. If no pattern is provided, use the default.
56
+
57
+ **Default glob pattern:** Files with extensions `.js`, `.ts`, `.py`, `.go`, `.rs`, `.sql`, or `.sh` in the target directory (defaults to project root if no path argument given).
58
+
59
+ **Exclude these paths:**
60
+ - `node_modules/`
61
+ - `.git/`
62
+ - `.planning/`
63
+ - `dist/`
64
+ - `build/`
65
+ - `vendor/`
66
+ - `*.min.js`
67
+ - `*.test.*` and `*.spec.*` (test fixtures — do not annotate)
68
+
69
+ **List all files found before beginning annotation.** Report the count so the user knows the scope of work.
70
+ </step>
71
+
72
+ <step name="annotate_files" number="3">
73
+ **Annotate each file:**
74
+
75
+ For each file in the list:
76
+
77
+ 1. **Read the file** in full
78
+ 2. **Identify annotation opportunities:**
79
+ - Entry points (exported functions, HTTP route handlers, CLI commands, public class methods)
80
+ - Key functions with non-obvious purpose or significant complexity
81
+ - Design decisions visible in the code (choice of algorithm, library, data structure)
82
+ - Hard constraints the code enforces (rate limits, size limits, security requirements)
83
+ - Known risks or fragile areas (race conditions, assumptions about input, technical debt)
84
+ - Reusable patterns established here that should be followed elsewhere
85
+ - Public API surfaces (parameters, return shapes, side effects)
86
+ - Todos or deferred work visible in the code structure
87
+ 3. **For each significant code block:** add one or more `@gsd-tags` as comment lines **immediately before** the relevant line, function, or class
88
+ 4. **Comment syntax by language:**
89
+ - JavaScript, TypeScript, Go, Rust, Java, C, C++: use `//`
90
+ - Python, Shell, YAML, Ruby: use `#`
91
+ - SQL: use `--`
92
+ - Python docstrings: `"""` or `'''` are also valid openers
93
+ 5. **Use `phase:` metadata** when code clearly belongs to a project phase visible from PROJECT.md or REQUIREMENTS.md context
94
+ 6. **Use `ref:` metadata** to reference a REQUIREMENTS.md ID when the code clearly implements that requirement (e.g., `@gsd-ref(ref:ANNOT-01)`)
95
+ 7. **Write the annotated file** using Edit tool (preferred for adding lines) or Write tool if a full rewrite is cleaner
96
+
97
+ **Tag placement rules:**
98
+ - Place tags on their own comment line, immediately before the code they describe
99
+ - Tags must be the first non-whitespace content on the line (after any indentation)
100
+ - Do not place tags mid-line or inside existing comments
101
+ - One tag per line — do not combine multiple `@gsd-` directives on a single line
102
+ - Prefer annotating at the function/class level; annotate individual statements only when the logic is genuinely non-obvious
103
+ </step>
104
+
105
+ <step name="report" number="4">
106
+ **Report annotation results:**
107
+
108
+ Print a summary after all files are processed:
109
+
110
+ ```
111
+ Annotation complete.
112
+
113
+ Files annotated: N
114
+ Total @gsd-tags added: N
115
+ Tag type breakdown:
116
+ @gsd-context: N
117
+ @gsd-decision: N
118
+ @gsd-todo: N
119
+ @gsd-constraint: N
120
+ @gsd-pattern: N
121
+ @gsd-ref: N
122
+ @gsd-risk: N
123
+ @gsd-api: N
124
+
125
+ The annotate command will now auto-run extract-plan to update CODE-INVENTORY.md.
126
+ ```
127
+
128
+ Note any files skipped (binary, vendored, generated) and the reason.
129
+ </step>
130
+
131
+ </execution_flow>
132
+
133
+ <constraints>
134
+ **Hard rules — never violate:**
135
+
136
+ 1. **Never change function signatures, variable names, control flow, or logic** — you are adding metadata comments only
137
+ 2. **Never remove or modify existing comments** — only add new `@gsd-tag` lines
138
+ 3. **Tags MUST be on their own comment line anchored to the language's comment token** — the first non-whitespace content on the tag line must be `//`, `#`, or `--` (per the ARC comment anchor rule)
139
+ 4. **Do not add tags to:**
140
+ - Generated files (minified JS, compiled outputs, auto-generated code with "DO NOT EDIT" headers)
141
+ - Vendored code (third-party libraries copied into the repo)
142
+ - Test fixtures (files in `__fixtures__/`, `testdata/`, or files named `*.fixture.*`)
143
+ - Lock files (`package-lock.json`, `yarn.lock`, `go.sum`)
144
+ 5. **Use only the 8 tag types from arc-standard.md:** `context`, `decision`, `todo`, `constraint`, `pattern`, `ref`, `risk`, `api` — do not invent new tag names
145
+ 6. **@gsd- prefix is lowercase and case-sensitive** — never write `@GSD-` or `@Gsd-`
146
+ 7. **Tags are single-line only** — no multi-line tag bodies; if a description is long, summarize it concisely on one line
147
+ 8. **Prefer quality over quantity** — add tags where they genuinely communicate intent or catch risks; do not annotate obvious code (`// @gsd-context increments counter`)
148
+ </constraints>