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.
- package/LICENSE +21 -0
- package/README.ja-JP.md +834 -0
- package/README.ko-KR.md +823 -0
- package/README.md +937 -0
- package/README.pt-BR.md +452 -0
- package/README.zh-CN.md +800 -0
- package/agents/gsd-advisor-researcher.md +104 -0
- package/agents/gsd-annotator.md +148 -0
- package/agents/gsd-arc-executor.md +537 -0
- package/agents/gsd-arc-planner.md +374 -0
- package/agents/gsd-assumptions-analyzer.md +105 -0
- package/agents/gsd-code-planner.md +155 -0
- package/agents/gsd-codebase-mapper.md +770 -0
- package/agents/gsd-debugger.md +1373 -0
- package/agents/gsd-executor.md +509 -0
- package/agents/gsd-integration-checker.md +443 -0
- package/agents/gsd-nyquist-auditor.md +176 -0
- package/agents/gsd-phase-researcher.md +698 -0
- package/agents/gsd-plan-checker.md +773 -0
- package/agents/gsd-planner.md +1354 -0
- package/agents/gsd-project-researcher.md +654 -0
- package/agents/gsd-prototyper.md +161 -0
- package/agents/gsd-research-synthesizer.md +247 -0
- package/agents/gsd-roadmapper.md +679 -0
- package/agents/gsd-ui-auditor.md +439 -0
- package/agents/gsd-ui-checker.md +300 -0
- package/agents/gsd-ui-researcher.md +357 -0
- package/agents/gsd-user-profiler.md +171 -0
- package/agents/gsd-verifier.md +700 -0
- package/bin/install.js +5009 -0
- package/commands/gsd/add-backlog.md +76 -0
- package/commands/gsd/add-phase.md +43 -0
- package/commands/gsd/add-tests.md +41 -0
- package/commands/gsd/add-todo.md +47 -0
- package/commands/gsd/annotate.md +54 -0
- package/commands/gsd/audit-milestone.md +36 -0
- package/commands/gsd/audit-uat.md +24 -0
- package/commands/gsd/autonomous.md +41 -0
- package/commands/gsd/check-todos.md +45 -0
- package/commands/gsd/cleanup.md +18 -0
- package/commands/gsd/complete-milestone.md +136 -0
- package/commands/gsd/debug.md +173 -0
- package/commands/gsd/deep-plan.md +52 -0
- package/commands/gsd/discuss-phase.md +64 -0
- package/commands/gsd/do.md +30 -0
- package/commands/gsd/execute-phase.md +59 -0
- package/commands/gsd/extract-plan.md +35 -0
- package/commands/gsd/fast.md +30 -0
- package/commands/gsd/forensics.md +56 -0
- package/commands/gsd/health.md +22 -0
- package/commands/gsd/help.md +22 -0
- package/commands/gsd/insert-phase.md +32 -0
- package/commands/gsd/iterate.md +124 -0
- package/commands/gsd/join-discord.md +18 -0
- package/commands/gsd/list-phase-assumptions.md +46 -0
- package/commands/gsd/list-workspaces.md +19 -0
- package/commands/gsd/manager.md +39 -0
- package/commands/gsd/map-codebase.md +71 -0
- package/commands/gsd/milestone-summary.md +51 -0
- package/commands/gsd/new-milestone.md +44 -0
- package/commands/gsd/new-project.md +42 -0
- package/commands/gsd/new-workspace.md +44 -0
- package/commands/gsd/next.md +24 -0
- package/commands/gsd/note.md +34 -0
- package/commands/gsd/pause-work.md +38 -0
- package/commands/gsd/plan-milestone-gaps.md +34 -0
- package/commands/gsd/plan-phase.md +47 -0
- package/commands/gsd/plant-seed.md +28 -0
- package/commands/gsd/pr-branch.md +25 -0
- package/commands/gsd/profile-user.md +46 -0
- package/commands/gsd/progress.md +24 -0
- package/commands/gsd/prototype.md +56 -0
- package/commands/gsd/quick.md +47 -0
- package/commands/gsd/reapply-patches.md +123 -0
- package/commands/gsd/remove-phase.md +31 -0
- package/commands/gsd/remove-workspace.md +26 -0
- package/commands/gsd/research-phase.md +195 -0
- package/commands/gsd/resume-work.md +40 -0
- package/commands/gsd/review-backlog.md +61 -0
- package/commands/gsd/review.md +37 -0
- package/commands/gsd/session-report.md +19 -0
- package/commands/gsd/set-mode.md +41 -0
- package/commands/gsd/set-profile.md +12 -0
- package/commands/gsd/settings.md +36 -0
- package/commands/gsd/ship.md +23 -0
- package/commands/gsd/stats.md +18 -0
- package/commands/gsd/thread.md +127 -0
- package/commands/gsd/ui-phase.md +34 -0
- package/commands/gsd/ui-review.md +32 -0
- package/commands/gsd/update.md +37 -0
- package/commands/gsd/validate-phase.md +35 -0
- package/commands/gsd/verify-work.md +38 -0
- package/commands/gsd/workstreams.md +63 -0
- package/get-shit-done/bin/gsd-tools.cjs +946 -0
- package/get-shit-done/bin/lib/arc-scanner.cjs +341 -0
- package/get-shit-done/bin/lib/commands.cjs +959 -0
- package/get-shit-done/bin/lib/config.cjs +466 -0
- package/get-shit-done/bin/lib/core.cjs +1230 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +336 -0
- package/get-shit-done/bin/lib/init.cjs +1442 -0
- package/get-shit-done/bin/lib/milestone.cjs +252 -0
- package/get-shit-done/bin/lib/model-profiles.cjs +68 -0
- package/get-shit-done/bin/lib/phase.cjs +888 -0
- package/get-shit-done/bin/lib/profile-output.cjs +952 -0
- package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
- package/get-shit-done/bin/lib/roadmap.cjs +329 -0
- package/get-shit-done/bin/lib/security.cjs +382 -0
- package/get-shit-done/bin/lib/state.cjs +1031 -0
- package/get-shit-done/bin/lib/template.cjs +222 -0
- package/get-shit-done/bin/lib/uat.cjs +282 -0
- package/get-shit-done/bin/lib/verify.cjs +888 -0
- package/get-shit-done/bin/lib/workstream.cjs +491 -0
- package/get-shit-done/commands/gsd/workstreams.md +63 -0
- package/get-shit-done/references/arc-standard.md +315 -0
- package/get-shit-done/references/checkpoints.md +778 -0
- package/get-shit-done/references/continuation-format.md +249 -0
- package/get-shit-done/references/decimal-phase-calculation.md +64 -0
- package/get-shit-done/references/git-integration.md +295 -0
- package/get-shit-done/references/git-planning-commit.md +38 -0
- package/get-shit-done/references/model-profile-resolution.md +36 -0
- package/get-shit-done/references/model-profiles.md +139 -0
- package/get-shit-done/references/phase-argument-parsing.md +61 -0
- package/get-shit-done/references/planning-config.md +202 -0
- package/get-shit-done/references/questioning.md +162 -0
- package/get-shit-done/references/tdd.md +263 -0
- package/get-shit-done/references/ui-brand.md +160 -0
- package/get-shit-done/references/user-profiling.md +681 -0
- package/get-shit-done/references/verification-patterns.md +612 -0
- package/get-shit-done/references/workstream-flag.md +58 -0
- package/get-shit-done/templates/DEBUG.md +164 -0
- package/get-shit-done/templates/UAT.md +265 -0
- package/get-shit-done/templates/UI-SPEC.md +100 -0
- package/get-shit-done/templates/VALIDATION.md +76 -0
- package/get-shit-done/templates/claude-md.md +122 -0
- package/get-shit-done/templates/codebase/architecture.md +255 -0
- package/get-shit-done/templates/codebase/concerns.md +310 -0
- package/get-shit-done/templates/codebase/conventions.md +307 -0
- package/get-shit-done/templates/codebase/integrations.md +280 -0
- package/get-shit-done/templates/codebase/stack.md +186 -0
- package/get-shit-done/templates/codebase/structure.md +285 -0
- package/get-shit-done/templates/codebase/testing.md +480 -0
- package/get-shit-done/templates/config.json +44 -0
- package/get-shit-done/templates/context.md +352 -0
- package/get-shit-done/templates/continue-here.md +78 -0
- package/get-shit-done/templates/copilot-instructions.md +7 -0
- package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
- package/get-shit-done/templates/dev-preferences.md +21 -0
- package/get-shit-done/templates/discovery.md +146 -0
- package/get-shit-done/templates/discussion-log.md +63 -0
- package/get-shit-done/templates/milestone-archive.md +123 -0
- package/get-shit-done/templates/milestone.md +115 -0
- package/get-shit-done/templates/phase-prompt.md +610 -0
- package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
- package/get-shit-done/templates/project.md +186 -0
- package/get-shit-done/templates/requirements.md +231 -0
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
- package/get-shit-done/templates/research-project/FEATURES.md +147 -0
- package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
- package/get-shit-done/templates/research-project/STACK.md +120 -0
- package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
- package/get-shit-done/templates/research.md +552 -0
- package/get-shit-done/templates/retrospective.md +54 -0
- package/get-shit-done/templates/roadmap.md +202 -0
- package/get-shit-done/templates/state.md +176 -0
- package/get-shit-done/templates/summary-complex.md +59 -0
- package/get-shit-done/templates/summary-minimal.md +41 -0
- package/get-shit-done/templates/summary-standard.md +48 -0
- package/get-shit-done/templates/summary.md +248 -0
- package/get-shit-done/templates/user-profile.md +146 -0
- package/get-shit-done/templates/user-setup.md +311 -0
- package/get-shit-done/templates/verification-report.md +322 -0
- package/get-shit-done/workflows/add-phase.md +112 -0
- package/get-shit-done/workflows/add-tests.md +351 -0
- package/get-shit-done/workflows/add-todo.md +158 -0
- package/get-shit-done/workflows/audit-milestone.md +340 -0
- package/get-shit-done/workflows/audit-uat.md +109 -0
- package/get-shit-done/workflows/autonomous.md +891 -0
- package/get-shit-done/workflows/check-todos.md +177 -0
- package/get-shit-done/workflows/cleanup.md +152 -0
- package/get-shit-done/workflows/complete-milestone.md +767 -0
- package/get-shit-done/workflows/diagnose-issues.md +231 -0
- package/get-shit-done/workflows/discovery-phase.md +289 -0
- package/get-shit-done/workflows/discuss-phase-assumptions.md +653 -0
- package/get-shit-done/workflows/discuss-phase.md +1049 -0
- package/get-shit-done/workflows/do.md +104 -0
- package/get-shit-done/workflows/execute-phase.md +846 -0
- package/get-shit-done/workflows/execute-plan.md +514 -0
- package/get-shit-done/workflows/fast.md +105 -0
- package/get-shit-done/workflows/forensics.md +265 -0
- package/get-shit-done/workflows/health.md +181 -0
- package/get-shit-done/workflows/help.md +634 -0
- package/get-shit-done/workflows/insert-phase.md +130 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/list-workspaces.md +56 -0
- package/get-shit-done/workflows/manager.md +362 -0
- package/get-shit-done/workflows/map-codebase.md +377 -0
- package/get-shit-done/workflows/milestone-summary.md +223 -0
- package/get-shit-done/workflows/new-milestone.md +486 -0
- package/get-shit-done/workflows/new-project.md +1250 -0
- package/get-shit-done/workflows/new-workspace.md +237 -0
- package/get-shit-done/workflows/next.md +97 -0
- package/get-shit-done/workflows/node-repair.md +92 -0
- package/get-shit-done/workflows/note.md +156 -0
- package/get-shit-done/workflows/pause-work.md +176 -0
- package/get-shit-done/workflows/plan-milestone-gaps.md +273 -0
- package/get-shit-done/workflows/plan-phase.md +859 -0
- package/get-shit-done/workflows/plant-seed.md +169 -0
- package/get-shit-done/workflows/pr-branch.md +129 -0
- package/get-shit-done/workflows/profile-user.md +450 -0
- package/get-shit-done/workflows/progress.md +507 -0
- package/get-shit-done/workflows/quick.md +757 -0
- package/get-shit-done/workflows/remove-phase.md +155 -0
- package/get-shit-done/workflows/remove-workspace.md +90 -0
- package/get-shit-done/workflows/research-phase.md +82 -0
- package/get-shit-done/workflows/resume-project.md +326 -0
- package/get-shit-done/workflows/review.md +228 -0
- package/get-shit-done/workflows/session-report.md +146 -0
- package/get-shit-done/workflows/settings.md +283 -0
- package/get-shit-done/workflows/ship.md +228 -0
- package/get-shit-done/workflows/stats.md +60 -0
- package/get-shit-done/workflows/transition.md +671 -0
- package/get-shit-done/workflows/ui-phase.md +302 -0
- package/get-shit-done/workflows/ui-review.md +165 -0
- package/get-shit-done/workflows/update.md +323 -0
- package/get-shit-done/workflows/validate-phase.md +174 -0
- package/get-shit-done/workflows/verify-phase.md +254 -0
- package/get-shit-done/workflows/verify-work.md +637 -0
- package/hooks/dist/gsd-check-update.js +114 -0
- package/hooks/dist/gsd-context-monitor.js +156 -0
- package/hooks/dist/gsd-prompt-guard.js +96 -0
- package/hooks/dist/gsd-statusline.js +119 -0
- package/hooks/dist/gsd-workflow-guard.js +94 -0
- package/package.json +52 -0
- package/scripts/base64-scan.sh +262 -0
- package/scripts/build-hooks.js +82 -0
- package/scripts/prompt-injection-scan.sh +198 -0
- package/scripts/run-tests.cjs +29 -0
- 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>
|