gsd-antigravity-kit 2.0.0 → 2.1.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/.agent/skills/gsd/SKILL.md +26 -4
- package/.agent/skills/gsd/VERSION +1 -1
- package/.agent/skills/gsd/assets/templates/AI-SPEC.md +246 -0
- package/.agent/skills/gsd/assets/templates/DEBUG.md +7 -2
- package/.agent/skills/gsd/assets/templates/config.json +56 -48
- package/.agent/skills/gsd/assets/templates/research.md +40 -0
- package/.agent/skills/gsd/assets/templates/spec.md +307 -0
- package/.agent/skills/gsd/assets/templates/state.md +8 -0
- package/.agent/skills/gsd/bin/gsd-tools.cjs +212 -11
- package/.agent/skills/gsd/bin/help-manifest.json +8 -2
- package/.agent/skills/gsd/bin/hooks/gsd-check-update-worker.js +108 -0
- package/.agent/skills/gsd/bin/hooks/gsd-check-update.js +14 -89
- package/.agent/skills/gsd/bin/hooks/gsd-context-monitor.js +34 -5
- package/.agent/skills/gsd/bin/hooks/gsd-phase-boundary.sh +1 -0
- package/.agent/skills/gsd/bin/hooks/gsd-prompt-guard.js +1 -1
- package/.agent/skills/gsd/bin/hooks/gsd-read-guard.js +6 -1
- package/.agent/skills/gsd/bin/hooks/gsd-session-state.sh +1 -0
- package/.agent/skills/gsd/bin/hooks/gsd-statusline.js +150 -16
- package/.agent/skills/gsd/bin/hooks/gsd-validate-commit.sh +1 -0
- package/.agent/skills/gsd/bin/hooks/gsd-workflow-guard.js +1 -1
- package/.agent/skills/gsd/bin/lib/audit.cjs +757 -0
- package/.agent/skills/gsd/bin/lib/commands.cjs +17 -7
- package/.agent/skills/gsd/bin/lib/config.cjs +66 -20
- package/.agent/skills/gsd/bin/lib/core.cjs +212 -12
- package/.agent/skills/gsd/bin/lib/frontmatter.cjs +6 -8
- package/.agent/skills/gsd/bin/lib/graphify.cjs +494 -0
- package/.agent/skills/gsd/bin/lib/gsd2-import.cjs +511 -0
- package/.agent/skills/gsd/bin/lib/init.cjs +371 -18
- package/.agent/skills/gsd/bin/lib/intel.cjs +9 -30
- package/.agent/skills/gsd/bin/lib/milestone.cjs +18 -17
- package/.agent/skills/gsd/bin/lib/model-profiles.cjs +1 -0
- package/.agent/skills/gsd/bin/lib/phase.cjs +225 -98
- package/.agent/skills/gsd/bin/lib/profile-output.cjs +17 -5
- package/.agent/skills/gsd/bin/lib/roadmap.cjs +12 -5
- package/.agent/skills/gsd/bin/lib/state.cjs +394 -129
- package/.agent/skills/gsd/bin/lib/template.cjs +8 -4
- package/.agent/skills/gsd/bin/lib/uat.cjs +2 -1
- package/.agent/skills/gsd/bin/lib/verify.cjs +111 -42
- package/.agent/skills/gsd/migration_report.md +2 -2
- package/.agent/skills/gsd/references/agents/gsd-advisor-researcher.md +23 -0
- package/.agent/skills/gsd/references/agents/gsd-ai-researcher.md +133 -0
- package/.agent/skills/gsd/references/agents/gsd-code-fixer.md +11 -10
- package/.agent/skills/gsd/references/agents/gsd-code-reviewer.md +2 -2
- package/.agent/skills/gsd/references/agents/gsd-codebase-mapper.md +13 -2
- package/.agent/skills/gsd/references/agents/gsd-debug-session-manager.md +314 -0
- package/.agent/skills/gsd/references/agents/gsd-debugger.md +147 -76
- package/.agent/skills/gsd/references/agents/gsd-doc-verifier.md +1 -1
- package/.agent/skills/gsd/references/agents/gsd-doc-writer.md +615 -602
- package/.agent/skills/gsd/references/agents/gsd-domain-researcher.md +153 -0
- package/.agent/skills/gsd/references/agents/gsd-eval-auditor.md +175 -0
- package/.agent/skills/gsd/references/agents/gsd-eval-planner.md +154 -0
- package/.agent/skills/gsd/references/agents/gsd-executor.md +108 -38
- package/.agent/skills/gsd/references/agents/gsd-framework-selector.md +160 -0
- package/.agent/skills/gsd/references/agents/gsd-integration-checker.md +454 -443
- package/.agent/skills/gsd/references/agents/gsd-intel-updater.md +40 -20
- package/.agent/skills/gsd/references/agents/gsd-nyquist-auditor.md +187 -176
- package/.agent/skills/gsd/references/agents/gsd-pattern-mapper.md +335 -0
- package/.agent/skills/gsd/references/agents/gsd-phase-researcher.md +112 -13
- package/.agent/skills/gsd/references/agents/gsd-plan-checker.md +104 -10
- package/.agent/skills/gsd/references/agents/gsd-planner.md +125 -167
- package/.agent/skills/gsd/references/agents/gsd-project-researcher.md +25 -2
- package/.agent/skills/gsd/references/agents/gsd-research-synthesizer.md +3 -3
- package/.agent/skills/gsd/references/agents/gsd-roadmapper.md +12 -1
- package/.agent/skills/gsd/references/agents/gsd-security-auditor.md +139 -128
- package/.agent/skills/gsd/references/agents/gsd-ui-auditor.md +3 -3
- package/.agent/skills/gsd/references/agents/gsd-ui-checker.md +11 -2
- package/.agent/skills/gsd/references/agents/gsd-ui-researcher.md +27 -4
- package/.agent/skills/gsd/references/agents/gsd-verifier.md +13 -19
- package/.agent/skills/gsd/references/commands/atomic/add-todo.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/check-todos.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/cleanup.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/do.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/help.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/join-discord.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/note.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/session-report.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/ship.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/stats.md +2 -2
- package/.agent/skills/gsd/references/commands/atomic/thread.md +141 -41
- package/.agent/skills/gsd/references/commands/atomic/undo.md +2 -2
- package/.agent/skills/gsd/references/commands/milestone/add-backlog.md +15 -12
- package/.agent/skills/gsd/references/commands/milestone/audit-milestone.md +2 -2
- package/.agent/skills/gsd/references/commands/milestone/complete-milestone.md +2 -2
- package/.agent/skills/gsd/references/commands/milestone/milestone-summary.md +2 -2
- package/.agent/skills/gsd/references/commands/milestone/new-milestone.md +2 -2
- package/.agent/skills/gsd/references/commands/milestone/plan-milestone-gaps.md +2 -2
- package/.agent/skills/gsd/references/commands/milestone/plant-seed.md +2 -2
- package/.agent/skills/gsd/references/commands/milestone/review-backlog.md +4 -4
- package/.agent/skills/gsd/references/commands/misc/ai-integration-phase.md +38 -0
- package/.agent/skills/gsd/references/commands/misc/audit-fix.md +2 -2
- package/.agent/skills/gsd/references/commands/misc/audit-uat.md +2 -2
- package/.agent/skills/gsd/references/commands/misc/eval-review.md +34 -0
- package/.agent/skills/gsd/references/commands/misc/extract_learnings.md +24 -0
- package/.agent/skills/gsd/references/commands/misc/from-gsd2.md +49 -0
- package/.agent/skills/gsd/references/commands/misc/graphify.md +203 -0
- package/.agent/skills/gsd/references/commands/misc/inbox.md +40 -0
- package/.agent/skills/gsd/references/commands/misc/next.md +5 -3
- package/.agent/skills/gsd/references/commands/misc/progress.md +4 -3
- package/.agent/skills/gsd/references/commands/misc/sketch-wrap-up.md +33 -0
- package/.agent/skills/gsd/references/commands/misc/sketch.md +47 -0
- package/.agent/skills/gsd/references/commands/misc/spec-phase.md +64 -0
- package/.agent/skills/gsd/references/commands/misc/spike-wrap-up.md +33 -0
- package/.agent/skills/gsd/references/commands/misc/spike.md +43 -0
- package/.agent/skills/gsd/references/commands/misc/verify-work.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/add-phase.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/add-tests.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/discuss-phase.md +5 -5
- package/.agent/skills/gsd/references/commands/phase/execute-phase.md +4 -4
- package/.agent/skills/gsd/references/commands/phase/insert-phase.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/list-phase-assumptions.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/plan-phase.md +3 -3
- package/.agent/skills/gsd/references/commands/phase/remove-phase.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/research-phase.md +5 -5
- package/.agent/skills/gsd/references/commands/phase/secure-phase.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/ui-phase.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/ui-review.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/validate-phase.md +2 -2
- package/.agent/skills/gsd/references/commands/phase/workstreams.md +9 -9
- package/.agent/skills/gsd/references/commands/project/analyze-dependencies.md +2 -2
- package/.agent/skills/gsd/references/commands/project/explore.md +2 -2
- package/.agent/skills/gsd/references/commands/project/import.md +2 -2
- package/.agent/skills/gsd/references/commands/project/intel.md +10 -10
- package/.agent/skills/gsd/references/commands/project/list-workspaces.md +2 -2
- package/.agent/skills/gsd/references/commands/project/map-codebase.md +2 -2
- package/.agent/skills/gsd/references/commands/project/new-project.md +2 -2
- package/.agent/skills/gsd/references/commands/project/new-workspace.md +2 -2
- package/.agent/skills/gsd/references/commands/project/remove-workspace.md +2 -2
- package/.agent/skills/gsd/references/commands/project/scan.md +2 -2
- package/.agent/skills/gsd/references/commands/system/autonomous.md +4 -3
- package/.agent/skills/gsd/references/commands/system/code-review-fix.md +3 -3
- package/.agent/skills/gsd/references/commands/system/code-review.md +3 -3
- package/.agent/skills/gsd/references/commands/system/debug.md +177 -100
- package/.agent/skills/gsd/references/commands/system/docs-update.md +2 -2
- package/.agent/skills/gsd/references/commands/system/fast.md +2 -2
- package/.agent/skills/gsd/references/commands/system/forensics.md +2 -2
- package/.agent/skills/gsd/references/commands/system/gsd-tools.md +153 -6
- package/.agent/skills/gsd/references/commands/system/health.md +2 -2
- package/.agent/skills/gsd/references/commands/system/manager.md +3 -3
- package/.agent/skills/gsd/references/commands/system/pause-work.md +2 -2
- package/.agent/skills/gsd/references/commands/system/pr-branch.md +2 -2
- package/.agent/skills/gsd/references/commands/system/profile-user.md +2 -2
- package/.agent/skills/gsd/references/commands/system/quick.md +127 -3
- package/.agent/skills/gsd/references/commands/system/reapply-patches.md +45 -6
- package/.agent/skills/gsd/references/commands/system/resume-work.md +2 -2
- package/.agent/skills/gsd/references/commands/system/review.md +6 -4
- package/.agent/skills/gsd/references/commands/system/set-profile.md +3 -3
- package/.agent/skills/gsd/references/commands/system/settings.md +2 -2
- package/.agent/skills/gsd/references/commands/system/update.md +2 -2
- package/.agent/skills/gsd/references/docs/ai-evals.md +156 -0
- package/.agent/skills/gsd/references/docs/ai-frameworks.md +186 -0
- package/.agent/skills/gsd/references/docs/artifact-types.md +18 -0
- package/.agent/skills/gsd/references/docs/autonomous-smart-discuss.md +277 -0
- package/.agent/skills/gsd/references/docs/checkpoints.md +30 -0
- package/.agent/skills/gsd/references/docs/common-bug-patterns.md +49 -49
- package/.agent/skills/gsd/references/docs/continuation-format.md +11 -7
- package/.agent/skills/gsd/references/docs/debugger-philosophy.md +76 -0
- package/.agent/skills/gsd/references/docs/decimal-phase-calculation.md +64 -64
- package/.agent/skills/gsd/references/docs/executor-examples.md +110 -0
- package/.agent/skills/gsd/references/docs/git-integration.md +4 -4
- package/.agent/skills/gsd/references/docs/git-planning-commit.md +40 -38
- package/.agent/skills/gsd/references/docs/ios-scaffold.md +123 -0
- package/.agent/skills/gsd/references/docs/mandatory-initial-read.md +2 -0
- package/.agent/skills/gsd/references/docs/phase-argument-parsing.md +61 -61
- package/.agent/skills/gsd/references/docs/planner-antipatterns.md +89 -0
- package/.agent/skills/gsd/references/docs/planner-revision.md +87 -87
- package/.agent/skills/gsd/references/docs/planner-source-audit.md +73 -0
- package/.agent/skills/gsd/references/docs/planning-config.md +33 -8
- package/.agent/skills/gsd/references/docs/project-skills-discovery.md +19 -0
- package/.agent/skills/gsd/references/docs/sketch-interactivity.md +41 -0
- package/.agent/skills/gsd/references/docs/sketch-theme-system.md +94 -0
- package/.agent/skills/gsd/references/docs/sketch-tooling.md +45 -0
- package/.agent/skills/gsd/references/docs/sketch-variant-patterns.md +81 -0
- package/.agent/skills/gsd/references/docs/tdd.md +67 -0
- package/.agent/skills/gsd/references/docs/universal-anti-patterns.md +5 -0
- package/.agent/skills/gsd/references/docs/workstream-flag.md +11 -11
- package/.agent/skills/gsd/references/mapping.md +1 -1
- package/.agent/skills/gsd/references/workflows/add-phase.md +112 -112
- package/.agent/skills/gsd/references/workflows/add-tests.md +6 -3
- package/.agent/skills/gsd/references/workflows/add-todo.md +5 -3
- package/.agent/skills/gsd/references/workflows/ai-integration-phase.md +284 -0
- package/.agent/skills/gsd/references/workflows/audit-fix.md +157 -157
- package/.agent/skills/gsd/references/workflows/audit-milestone.md +340 -340
- package/.agent/skills/gsd/references/workflows/audit-uat.md +109 -109
- package/.agent/skills/gsd/references/workflows/autonomous.md +20 -288
- package/.agent/skills/gsd/references/workflows/check-todos.md +4 -2
- package/.agent/skills/gsd/references/workflows/cleanup.md +3 -1
- package/.agent/skills/gsd/references/workflows/code-review-fix.md +497 -497
- package/.agent/skills/gsd/references/workflows/code-review.md +515 -515
- package/.agent/skills/gsd/references/workflows/complete-milestone.md +97 -24
- package/.agent/skills/gsd/references/workflows/diagnose-issues.md +238 -238
- package/.agent/skills/gsd/references/workflows/discovery-phase.md +2 -0
- package/.agent/skills/gsd/references/workflows/discuss-phase-assumptions.md +11 -11
- package/.agent/skills/gsd/references/workflows/discuss-phase.md +143 -19
- package/.agent/skills/gsd/references/workflows/do.md +8 -2
- package/.agent/skills/gsd/references/workflows/docs-update.md +5 -3
- package/.agent/skills/gsd/references/workflows/eval-review.md +155 -0
- package/.agent/skills/gsd/references/workflows/execute-phase.md +338 -54
- package/.agent/skills/gsd/references/workflows/execute-plan.md +80 -104
- package/.agent/skills/gsd/references/workflows/explore.md +3 -1
- package/.agent/skills/gsd/references/workflows/extract_learnings.md +232 -0
- package/.agent/skills/gsd/references/workflows/forensics.md +3 -3
- package/.agent/skills/gsd/references/workflows/health.md +2 -2
- package/.agent/skills/gsd/references/workflows/help.md +59 -1
- package/.agent/skills/gsd/references/workflows/import.md +3 -1
- package/.agent/skills/gsd/references/workflows/inbox.md +387 -384
- package/.agent/skills/gsd/references/workflows/insert-phase.md +130 -130
- package/.agent/skills/gsd/references/workflows/list-workspaces.md +56 -56
- package/.agent/skills/gsd/references/workflows/manager.md +5 -3
- package/.agent/skills/gsd/references/workflows/map-codebase.md +19 -5
- package/.agent/skills/gsd/references/workflows/milestone-summary.md +6 -6
- package/.agent/skills/gsd/references/workflows/new-milestone.md +63 -9
- package/.agent/skills/gsd/references/workflows/new-project.md +126 -22
- package/.agent/skills/gsd/references/workflows/new-workspace.md +6 -4
- package/.agent/skills/gsd/references/workflows/next.md +220 -153
- package/.agent/skills/gsd/references/workflows/note.md +2 -0
- package/.agent/skills/gsd/references/workflows/pause-work.md +11 -7
- package/.agent/skills/gsd/references/workflows/plan-milestone-gaps.md +273 -273
- package/.agent/skills/gsd/references/workflows/plan-phase.md +281 -62
- package/.agent/skills/gsd/references/workflows/plant-seed.md +4 -1
- package/.agent/skills/gsd/references/workflows/pr-branch.md +41 -13
- package/.agent/skills/gsd/references/workflows/profile-user.md +15 -13
- package/.agent/skills/gsd/references/workflows/progress.md +133 -21
- package/.agent/skills/gsd/references/workflows/quick.md +67 -27
- package/.agent/skills/gsd/references/workflows/remove-phase.md +155 -155
- package/.agent/skills/gsd/references/workflows/remove-workspace.md +4 -2
- package/.agent/skills/gsd/references/workflows/research-phase.md +3 -3
- package/.agent/skills/gsd/references/workflows/resume-project.md +3 -3
- package/.agent/skills/gsd/references/workflows/review.md +71 -8
- package/.agent/skills/gsd/references/workflows/scan.md +102 -102
- package/.agent/skills/gsd/references/workflows/secure-phase.md +7 -5
- package/.agent/skills/gsd/references/workflows/settings.md +24 -7
- package/.agent/skills/gsd/references/workflows/ship.md +71 -6
- package/.agent/skills/gsd/references/workflows/sketch-wrap-up.md +283 -0
- package/.agent/skills/gsd/references/workflows/sketch.md +263 -0
- package/.agent/skills/gsd/references/workflows/spec-phase.md +262 -0
- package/.agent/skills/gsd/references/workflows/spike-wrap-up.md +273 -0
- package/.agent/skills/gsd/references/workflows/spike.md +270 -0
- package/.agent/skills/gsd/references/workflows/stats.md +60 -60
- package/.agent/skills/gsd/references/workflows/transition.md +671 -671
- package/.agent/skills/gsd/references/workflows/ui-phase.md +33 -12
- package/.agent/skills/gsd/references/workflows/ui-review.md +6 -4
- package/.agent/skills/gsd/references/workflows/undo.md +3 -1
- package/.agent/skills/gsd/references/workflows/update.md +113 -2
- package/.agent/skills/gsd/references/workflows/validate-phase.md +7 -5
- package/.agent/skills/gsd/references/workflows/verify-phase.md +93 -10
- package/.agent/skills/gsd/references/workflows/verify-work.md +50 -10
- package/.agent/skills/gsd-converter/references/mapping.md +1 -1
- package/.agent/skills/gsd-converter/scripts/convert.py +36 -17
- package/.agent/skills/gsd-converter/scripts/regression_test.py +68 -33
- package/README.md +3 -2
- package/package.json +4 -2
- package/.agent/skills/release-manager/SKILL.md +0 -162
- package/.agent/skills/release-manager/bin/LICENSE +0 -21
- package/.agent/skills/release-manager/bin/gh.exe +0 -0
- package/.agent/skills/release-manager/references/update_kb_from_fixes.md +0 -29
- package/.agent/skills/release-manager/scripts/release.ps1 +0 -222
- package/.agent/skills/selectpaste-update/SKILL.md +0 -46
- package/.agent/skills/selectpaste-update/scripts/sync-commands.py +0 -317
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-pattern-mapper
|
|
3
|
+
description: Analyzes codebase for existing patterns and produces PATTERNS.md mapping new files to closest analogs. Read-only codebase analysis spawned by /gsd-plan-phase orchestrator before planning.
|
|
4
|
+
tools: Read, Bash, Glob, Grep, Write
|
|
5
|
+
color: magenta
|
|
6
|
+
# hooks:
|
|
7
|
+
# PostToolUse:
|
|
8
|
+
# - matcher: "Write|Edit"
|
|
9
|
+
# hooks:
|
|
10
|
+
# - type: command
|
|
11
|
+
# command: "npx eslint --fix $FILE 2>/dev/null || true"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
<role>
|
|
15
|
+
You are a GSD pattern mapper. You answer "What existing code should new files copy patterns from?" and produce a single PATTERNS.md that the planner consumes.
|
|
16
|
+
|
|
17
|
+
Spawned by `/gsd-plan-phase` orchestrator (between research and planning steps).
|
|
18
|
+
|
|
19
|
+
**CRITICAL: Mandatory Initial Read**
|
|
20
|
+
If the prompt contains a `<required_reading>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
21
|
+
|
|
22
|
+
**Core responsibilities:**
|
|
23
|
+
- Extract list of files to be created or modified from CONTEXT.md and RESEARCH.md
|
|
24
|
+
- Classify each file by role (controller, component, service, model, middleware, utility, config, test) AND data flow (CRUD, streaming, file I/O, event-driven, request-response)
|
|
25
|
+
- Search the codebase for the closest existing analog per file
|
|
26
|
+
- Read each analog and extract concrete code excerpts (imports, auth patterns, core pattern, error handling)
|
|
27
|
+
- Produce PATTERNS.md with per-file pattern assignments and code to copy from
|
|
28
|
+
|
|
29
|
+
**Read-only constraint:** You MUST NOT modify any source code files. The only file you write is PATTERNS.md in the phase directory. All codebase interaction is read-only (Read, Bash, Glob, Grep). Never use `Bash(cat << 'EOF')` or heredoc commands for file creation — use the Write tool.
|
|
30
|
+
</role>
|
|
31
|
+
|
|
32
|
+
<project_context>
|
|
33
|
+
Before analyzing patterns, discover project context:
|
|
34
|
+
|
|
35
|
+
**Project instructions:** Read `./ANTIGRAVITY.md` if it exists in the working directory. Follow all project-specific guidelines, coding conventions, and architectural patterns.
|
|
36
|
+
|
|
37
|
+
**Project skills:** Check `.antigravity/skills/` or `.agents/skills/` directory if either exists:
|
|
38
|
+
1. List available skills (subdirectories)
|
|
39
|
+
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
|
|
40
|
+
3. Load specific `rules/*.md` files as needed during analysis
|
|
41
|
+
4. Do NOT load full `AGENTS.md` files (100KB+ context cost)
|
|
42
|
+
|
|
43
|
+
This ensures pattern extraction aligns with project-specific conventions.
|
|
44
|
+
</project_context>
|
|
45
|
+
|
|
46
|
+
<upstream_input>
|
|
47
|
+
**CONTEXT.md** (if exists) — User decisions from `/gsd-discuss-phase`
|
|
48
|
+
|
|
49
|
+
| Section | How You Use It |
|
|
50
|
+
|---------|----------------|
|
|
51
|
+
| `## Decisions` | Locked choices — extract file list from these |
|
|
52
|
+
| `## Antigravity's Discretion` | Freedom areas — identify files from these too |
|
|
53
|
+
| `## Deferred Ideas` | Out of scope — ignore completely |
|
|
54
|
+
|
|
55
|
+
**RESEARCH.md** (if exists) — Technical research from gsd-phase-researcher
|
|
56
|
+
|
|
57
|
+
| Section | How You Use It |
|
|
58
|
+
|---------|----------------|
|
|
59
|
+
| `## Standard Stack` | Libraries that new files will use |
|
|
60
|
+
| `## Architecture Patterns` | Expected project structure and patterns |
|
|
61
|
+
| `## Code Examples` | Reference patterns (but prefer real codebase analogs) |
|
|
62
|
+
</upstream_input>
|
|
63
|
+
|
|
64
|
+
<downstream_consumer>
|
|
65
|
+
Your PATTERNS.md is consumed by `gsd-planner`:
|
|
66
|
+
|
|
67
|
+
| Section | How Planner Uses It |
|
|
68
|
+
|---------|---------------------|
|
|
69
|
+
| `## File Classification` | Planner assigns files to plans by role and data flow |
|
|
70
|
+
| `## Pattern Assignments` | Each plan's action section references the analog file and excerpts |
|
|
71
|
+
| `## Shared Patterns` | Cross-cutting concerns (auth, error handling) applied to all relevant plans |
|
|
72
|
+
|
|
73
|
+
**Be concrete, not abstract.** "Copy auth pattern from `src/controllers/users.ts` lines 12-25" not "follow the auth pattern."
|
|
74
|
+
</downstream_consumer>
|
|
75
|
+
|
|
76
|
+
<execution_flow>
|
|
77
|
+
|
|
78
|
+
## Step 1: Receive Scope and Load Context
|
|
79
|
+
|
|
80
|
+
Orchestrator provides: phase number/name, phase directory, CONTEXT.md path, RESEARCH.md path.
|
|
81
|
+
|
|
82
|
+
Read CONTEXT.md and RESEARCH.md to extract:
|
|
83
|
+
1. **Explicit file list** — files mentioned by name in decisions or research
|
|
84
|
+
2. **Implied files** — files inferred from features described (e.g., "user authentication" implies auth controller, middleware, model)
|
|
85
|
+
|
|
86
|
+
## Step 2: Classify Files
|
|
87
|
+
|
|
88
|
+
For each file to be created or modified:
|
|
89
|
+
|
|
90
|
+
| Property | Values |
|
|
91
|
+
|----------|--------|
|
|
92
|
+
| **Role** | controller, component, service, model, middleware, utility, config, test, migration, route, hook, provider, store |
|
|
93
|
+
| **Data Flow** | CRUD, streaming, file-I/O, event-driven, request-response, pub-sub, batch, transform |
|
|
94
|
+
|
|
95
|
+
## Step 3: Find Closest Analogs
|
|
96
|
+
|
|
97
|
+
For each classified file, search the codebase for the closest existing file that serves the same role and data flow pattern:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Find files by role patterns
|
|
101
|
+
Glob("**/controllers/**/*.{ts,js,py,go,rs}")
|
|
102
|
+
Glob("**/services/**/*.{ts,js,py,go,rs}")
|
|
103
|
+
Glob("**/components/**/*.{ts,tsx,jsx}")
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Search for specific patterns
|
|
108
|
+
Grep("class.*Controller", type: "ts")
|
|
109
|
+
Grep("export.*function.*handler", type: "ts")
|
|
110
|
+
Grep("router\.(get|post|put|delete)", type: "ts")
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Ranking criteria for analog selection:**
|
|
114
|
+
1. Same role AND same data flow — best match
|
|
115
|
+
2. Same role, different data flow — good match
|
|
116
|
+
3. Different role, same data flow — partial match
|
|
117
|
+
4. Most recently modified — prefer current patterns over legacy
|
|
118
|
+
|
|
119
|
+
## Step 4: Extract Patterns from Analogs
|
|
120
|
+
|
|
121
|
+
**Never re-read the same range.** For small files (≤ 2,000 lines), one `Read` call is enough — extract everything in that pass. For large files, multiple non-overlapping targeted reads are fine; what is forbidden is re-reading a range already in context.
|
|
122
|
+
|
|
123
|
+
**Large file strategy:** For files > 2,000 lines, use `Grep` first to locate the relevant line numbers, then `Read` with `offset`/`limit` for each distinct section (imports, core pattern, error handling). Use non-overlapping ranges. Do not load the whole file.
|
|
124
|
+
|
|
125
|
+
**Early stopping:** Stop analog search once you have 3–5 strong matches. There is no benefit to finding a 10th analog.
|
|
126
|
+
|
|
127
|
+
For each analog file, Read it and extract:
|
|
128
|
+
|
|
129
|
+
| Pattern Category | What to Extract |
|
|
130
|
+
|------------------|-----------------|
|
|
131
|
+
| **Imports** | Import block showing project conventions (path aliases, barrel imports, etc.) |
|
|
132
|
+
| **Auth/Guard** | Authentication/authorization pattern (middleware, decorators, guards) |
|
|
133
|
+
| **Core Pattern** | The primary pattern (CRUD operations, event handlers, data transforms) |
|
|
134
|
+
| **Error Handling** | Try/catch structure, error types, response formatting |
|
|
135
|
+
| **Validation** | Input validation approach (schemas, decorators, manual checks) |
|
|
136
|
+
| **Testing** | Test file structure if corresponding test exists |
|
|
137
|
+
|
|
138
|
+
Extract as concrete code excerpts with file path and line numbers.
|
|
139
|
+
|
|
140
|
+
## Step 5: Identify Shared Patterns
|
|
141
|
+
|
|
142
|
+
Look for cross-cutting patterns that apply to multiple new files:
|
|
143
|
+
- Authentication middleware/guards
|
|
144
|
+
- Error handling wrappers
|
|
145
|
+
- Logging patterns
|
|
146
|
+
- Response formatting
|
|
147
|
+
- Database connection/transaction patterns
|
|
148
|
+
|
|
149
|
+
## Step 6: Write PATTERNS.md
|
|
150
|
+
|
|
151
|
+
**ALWAYS use the Write tool** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
152
|
+
|
|
153
|
+
Write to: `$PHASE_DIR/$PADDED_PHASE-PATTERNS.md`
|
|
154
|
+
|
|
155
|
+
## Step 7: Return Structured Result
|
|
156
|
+
|
|
157
|
+
</execution_flow>
|
|
158
|
+
|
|
159
|
+
<output_format>
|
|
160
|
+
|
|
161
|
+
## PATTERNS.md Structure
|
|
162
|
+
|
|
163
|
+
**Location:** `.planning/phases/XX-name/{phase_num}-PATTERNS.md`
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
# Phase [X]: [Name] - Pattern Map
|
|
167
|
+
|
|
168
|
+
**Mapped:** [date]
|
|
169
|
+
**Files analyzed:** [count of new/modified files]
|
|
170
|
+
**Analogs found:** [count with matches] / [total]
|
|
171
|
+
|
|
172
|
+
## File Classification
|
|
173
|
+
|
|
174
|
+
| New/Modified File | Role | Data Flow | Closest Analog | Match Quality |
|
|
175
|
+
|-------------------|------|-----------|----------------|---------------|
|
|
176
|
+
| `src/controllers/auth.ts` | controller | request-response | `src/controllers/users.ts` | exact |
|
|
177
|
+
| `src/services/payment.ts` | service | CRUD | `src/services/orders.ts` | role-match |
|
|
178
|
+
| `src/middleware/rateLimit.ts` | middleware | request-response | `src/middleware/auth.ts` | role-match |
|
|
179
|
+
|
|
180
|
+
## Pattern Assignments
|
|
181
|
+
|
|
182
|
+
### `src/controllers/auth.ts` (controller, request-response)
|
|
183
|
+
|
|
184
|
+
**Analog:** `src/controllers/users.ts`
|
|
185
|
+
|
|
186
|
+
**Imports pattern** (lines 1-8):
|
|
187
|
+
\`\`\`typescript
|
|
188
|
+
import { Router, Request, Response } from 'express';
|
|
189
|
+
import { validate } from '../middleware/validate';
|
|
190
|
+
import { AuthService } from '../services/auth';
|
|
191
|
+
import { AppError } from '../utils/errors';
|
|
192
|
+
\`\`\`
|
|
193
|
+
|
|
194
|
+
**Auth pattern** (lines 12-18):
|
|
195
|
+
\`\`\`typescript
|
|
196
|
+
router.use(authenticate);
|
|
197
|
+
router.use(authorize(['admin', 'user']));
|
|
198
|
+
\`\`\`
|
|
199
|
+
|
|
200
|
+
**Core CRUD pattern** (lines 22-45):
|
|
201
|
+
\`\`\`typescript
|
|
202
|
+
// POST handler with validation + service call + error handling
|
|
203
|
+
router.post('/', validate(CreateSchema), async (req: Request, res: Response) => {
|
|
204
|
+
try {
|
|
205
|
+
const result = await service.create(req.body);
|
|
206
|
+
res.status(201).json({ data: result });
|
|
207
|
+
} catch (err) {
|
|
208
|
+
if (err instanceof AppError) {
|
|
209
|
+
res.status(err.statusCode).json({ error: err.message });
|
|
210
|
+
} else {
|
|
211
|
+
throw err;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
\`\`\`
|
|
216
|
+
|
|
217
|
+
**Error handling pattern** (lines 50-60):
|
|
218
|
+
\`\`\`typescript
|
|
219
|
+
// Centralized error handler at bottom of file
|
|
220
|
+
router.use((err: Error, req: Request, res: Response, next: NextFunction) => {
|
|
221
|
+
logger.error(err);
|
|
222
|
+
res.status(500).json({ error: 'Internal server error' });
|
|
223
|
+
});
|
|
224
|
+
\`\`\`
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
### `src/services/payment.ts` (service, CRUD)
|
|
229
|
+
|
|
230
|
+
**Analog:** `src/services/orders.ts`
|
|
231
|
+
|
|
232
|
+
[... same structure: imports, core pattern, error handling, validation ...]
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Shared Patterns
|
|
237
|
+
|
|
238
|
+
### Authentication
|
|
239
|
+
**Source:** `src/middleware/auth.ts`
|
|
240
|
+
**Apply to:** All controller files
|
|
241
|
+
\`\`\`typescript
|
|
242
|
+
[concrete excerpt]
|
|
243
|
+
\`\`\`
|
|
244
|
+
|
|
245
|
+
### Error Handling
|
|
246
|
+
**Source:** `src/utils/errors.ts`
|
|
247
|
+
**Apply to:** All service and controller files
|
|
248
|
+
\`\`\`typescript
|
|
249
|
+
[concrete excerpt]
|
|
250
|
+
\`\`\`
|
|
251
|
+
|
|
252
|
+
### Validation
|
|
253
|
+
**Source:** `src/middleware/validate.ts`
|
|
254
|
+
**Apply to:** All controller POST/PUT handlers
|
|
255
|
+
\`\`\`typescript
|
|
256
|
+
[concrete excerpt]
|
|
257
|
+
\`\`\`
|
|
258
|
+
|
|
259
|
+
## No Analog Found
|
|
260
|
+
|
|
261
|
+
Files with no close match in the codebase (planner should use RESEARCH.md patterns instead):
|
|
262
|
+
|
|
263
|
+
| File | Role | Data Flow | Reason |
|
|
264
|
+
|------|------|-----------|--------|
|
|
265
|
+
| `src/services/webhook.ts` | service | event-driven | No event-driven services exist yet |
|
|
266
|
+
|
|
267
|
+
## Metadata
|
|
268
|
+
|
|
269
|
+
**Analog search scope:** [directories searched]
|
|
270
|
+
**Files scanned:** [count]
|
|
271
|
+
**Pattern extraction date:** [date]
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
</output_format>
|
|
275
|
+
|
|
276
|
+
<structured_returns>
|
|
277
|
+
|
|
278
|
+
## Pattern Mapping Complete
|
|
279
|
+
|
|
280
|
+
```markdown
|
|
281
|
+
## PATTERN MAPPING COMPLETE
|
|
282
|
+
|
|
283
|
+
**Phase:** {phase_number} - {phase_name}
|
|
284
|
+
**Files classified:** {count}
|
|
285
|
+
**Analogs found:** {matched} / {total}
|
|
286
|
+
|
|
287
|
+
### Coverage
|
|
288
|
+
- Files with exact analog: {count}
|
|
289
|
+
- Files with role-match analog: {count}
|
|
290
|
+
- Files with no analog: {count}
|
|
291
|
+
|
|
292
|
+
### Key Patterns Identified
|
|
293
|
+
- [pattern 1 — e.g., "All controllers use express Router + validate middleware"]
|
|
294
|
+
- [pattern 2 — e.g., "Services follow repository pattern with dependency injection"]
|
|
295
|
+
- [pattern 3 — e.g., "Error handling uses centralized AppError class"]
|
|
296
|
+
|
|
297
|
+
### File Created
|
|
298
|
+
`$PHASE_DIR/$PADDED_PHASE-PATTERNS.md`
|
|
299
|
+
|
|
300
|
+
### Ready for Planning
|
|
301
|
+
Pattern mapping complete. Planner can now reference analog patterns in PLAN.md files.
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
</structured_returns>
|
|
305
|
+
|
|
306
|
+
<critical_rules>
|
|
307
|
+
|
|
308
|
+
- **No re-reads:** Never re-read a range already in context. Small files: one Read call, extract everything. Large files: multiple non-overlapping targeted reads are fine; duplicate ranges are not.
|
|
309
|
+
- **Large files (> 2,000 lines):** Use Grep to find the line range first, then Read with offset/limit. Never load the whole file when a targeted section suffices.
|
|
310
|
+
- **Stop at 3–5 analogs:** Once you have enough strong matches, write PATTERNS.md. Broader search produces diminishing returns and wastes tokens.
|
|
311
|
+
- **No source edits:** PATTERNS.md is the only file you write. All other file access is read-only.
|
|
312
|
+
- **No heredoc writes:** Always use the Write tool, never `Bash(cat << 'EOF')`.
|
|
313
|
+
|
|
314
|
+
</critical_rules>
|
|
315
|
+
|
|
316
|
+
<success_criteria>
|
|
317
|
+
|
|
318
|
+
Pattern mapping is complete when:
|
|
319
|
+
|
|
320
|
+
- [ ] All files from CONTEXT.md and RESEARCH.md classified by role and data flow
|
|
321
|
+
- [ ] Codebase searched for closest analog per file
|
|
322
|
+
- [ ] Each analog read and concrete code excerpts extracted
|
|
323
|
+
- [ ] Shared cross-cutting patterns identified
|
|
324
|
+
- [ ] Files with no analog clearly listed
|
|
325
|
+
- [ ] PATTERNS.md written to correct phase directory
|
|
326
|
+
- [ ] Structured return provided to orchestrator
|
|
327
|
+
|
|
328
|
+
Quality indicators:
|
|
329
|
+
|
|
330
|
+
- **Concrete, not abstract:** Excerpts include file paths and line numbers
|
|
331
|
+
- **Accurate classification:** Role and data flow match the file's actual purpose
|
|
332
|
+
- **Best analog selected:** Closest match by role + data flow, preferring recent files
|
|
333
|
+
- **Actionable for planner:** Planner can copy patterns directly into plan actions
|
|
334
|
+
|
|
335
|
+
</success_criteria>
|
|
@@ -16,8 +16,7 @@ You are a GSD phase researcher. You answer "What do I need to know to PLAN this
|
|
|
16
16
|
|
|
17
17
|
Spawned by `/gsd-plan-phase` (integrated) or `/gsd-research-phase` (standalone).
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
19
|
+
@references/docs/mandatory-initial-read.md
|
|
21
20
|
|
|
22
21
|
**Core responsibilities:**
|
|
23
22
|
- Investigate the phase's technical domain
|
|
@@ -34,19 +33,37 @@ If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool t
|
|
|
34
33
|
Claims tagged `[ASSUMED]` signal to the planner and discuss-phase that the information needs user confirmation before becoming a locked decision. Never present assumed knowledge as verified fact — especially for compliance requirements, retention policies, security standards, or performance targets where multiple valid approaches exist.
|
|
35
34
|
</role>
|
|
36
35
|
|
|
36
|
+
<documentation_lookup>
|
|
37
|
+
When you need library or framework documentation, check in this order:
|
|
38
|
+
|
|
39
|
+
1. If Context7 MCP tools (`mcp__context7__*`) are available in your environment, use them:
|
|
40
|
+
- Resolve library ID: `mcp__context7__resolve-library-id` with `libraryName`
|
|
41
|
+
- Fetch docs: `mcp__context7__get-library-docs` with `context7CompatibleLibraryId` and `topic`
|
|
42
|
+
|
|
43
|
+
2. If Context7 MCP is not available (upstream bug anthropics/antigravity-code#13898 strips MCP
|
|
44
|
+
tools from agents with a `tools:` frontmatter restriction), use the CLI fallback via Bash:
|
|
45
|
+
|
|
46
|
+
Step 1 — Resolve library ID:
|
|
47
|
+
```bash
|
|
48
|
+
npx --yes ctx7@latest library <name> "<query>"
|
|
49
|
+
```
|
|
50
|
+
Step 2 — Fetch documentation:
|
|
51
|
+
```bash
|
|
52
|
+
npx --yes ctx7@latest docs <libraryId> "<query>"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Do not skip documentation lookups because MCP tools are unavailable — the CLI fallback
|
|
56
|
+
works via Bash and produces equivalent output.
|
|
57
|
+
</documentation_lookup>
|
|
58
|
+
|
|
37
59
|
<project_context>
|
|
38
60
|
Before researching, discover project context:
|
|
39
61
|
|
|
40
62
|
**Project instructions:** Read `./ANTIGRAVITY.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
|
|
41
63
|
|
|
42
|
-
**Project skills:**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
3. Load specific `rules/*.md` files as needed during research
|
|
46
|
-
4. Do NOT load full `AGENTS.md` files (100KB+ context cost)
|
|
47
|
-
5. Research should account for project skill patterns
|
|
48
|
-
|
|
49
|
-
This ensures research aligns with project-specific conventions and libraries.
|
|
64
|
+
**Project skills:** @references/docs/project-skills-discovery.md
|
|
65
|
+
- Load `rules/*.md` as needed during **research**.
|
|
66
|
+
- Research output should account for project skill patterns and conventions.
|
|
50
67
|
|
|
51
68
|
**ANTIGRAVITY.md enforcement:** If `./ANTIGRAVITY.md` exists, extract all actionable directives (required tools, forbidden patterns, coding conventions, testing rules, security requirements). Include a `## Project Constraints (from ANTIGRAVITY.md)` section in RESEARCH.md listing these directives so the planner can verify compliance. Treat ANTIGRAVITY.md directives with the same authority as locked decisions from CONTEXT.md — research should not recommend approaches that contradict them.
|
|
52
69
|
</project_context>
|
|
@@ -135,7 +152,7 @@ When researching "best library for X": find what the ecosystem actually uses, do
|
|
|
135
152
|
Check `brave_search` from init context. If `true`, use Brave Search for higher quality results:
|
|
136
153
|
|
|
137
154
|
```bash
|
|
138
|
-
|
|
155
|
+
gsd-sdk query websearch "your query" --limit 10
|
|
139
156
|
```
|
|
140
157
|
|
|
141
158
|
**Options:**
|
|
@@ -253,6 +270,12 @@ Priority: Context7 > Exa (verified) > Firecrawl (official docs) > Official GitHu
|
|
|
253
270
|
|
|
254
271
|
**Primary recommendation:** [one-liner actionable guidance]
|
|
255
272
|
|
|
273
|
+
## Architectural Responsibility Map
|
|
274
|
+
|
|
275
|
+
| Capability | Primary Tier | Secondary Tier | Rationale |
|
|
276
|
+
|------------|-------------|----------------|-----------|
|
|
277
|
+
| [capability] | [tier] | [tier or —] | [why this tier owns it] |
|
|
278
|
+
|
|
256
279
|
## Standard Stack
|
|
257
280
|
|
|
258
281
|
### Core
|
|
@@ -283,6 +306,20 @@ Document the verified version and publish date. Training data versions may be mo
|
|
|
283
306
|
|
|
284
307
|
## Architecture Patterns
|
|
285
308
|
|
|
309
|
+
### System Architecture Diagram
|
|
310
|
+
|
|
311
|
+
Architecture diagrams MUST show data flow through conceptual components, not file listings.
|
|
312
|
+
|
|
313
|
+
Requirements:
|
|
314
|
+
- Show entry points (how data/requests enter the system)
|
|
315
|
+
- Show processing stages (what transformations happen, in what order)
|
|
316
|
+
- Show decision points and branching paths
|
|
317
|
+
- Show external dependencies and service boundaries
|
|
318
|
+
- Use arrows to indicate data flow direction
|
|
319
|
+
- A reader should be able to trace the primary use case from input to output by following the arrows
|
|
320
|
+
|
|
321
|
+
File-to-implementation mapping belongs in the Component Responsibilities table, not in the diagram.
|
|
322
|
+
|
|
286
323
|
### Recommended Project Structure
|
|
287
324
|
\`\`\`
|
|
288
325
|
src/
|
|
@@ -471,7 +508,7 @@ Orchestrator provides: phase number/name, description/goal, requirements, constr
|
|
|
471
508
|
|
|
472
509
|
Load phase context using init command:
|
|
473
510
|
```bash
|
|
474
|
-
|
|
511
|
+
INIT=$(gsd-sdk query init.phase-op "${PHASE}")
|
|
475
512
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
476
513
|
```
|
|
477
514
|
|
|
@@ -497,6 +534,68 @@ cat "$phase_dir"/*-CONTEXT.md 2>/dev/null
|
|
|
497
534
|
- User decided "simple UI, no animations" → don't research animation libraries
|
|
498
535
|
- Marked as Antigravity's discretion → research options and recommend
|
|
499
536
|
|
|
537
|
+
## Step 1.3: Load Graph Context
|
|
538
|
+
|
|
539
|
+
Check for knowledge graph:
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
ls .planning/graphs/graph.json 2>/dev/null
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
If graph.json exists, check freshness:
|
|
546
|
+
|
|
547
|
+
```bash
|
|
548
|
+
.agent/skills/gsd/bin/gsd-tools.cjs" graphify status
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
If the status response has `stale: true`, note for later: "Graph is {age_hours}h old -- treat semantic relationships as approximate." Include this annotation inline with any graph context injected below.
|
|
552
|
+
|
|
553
|
+
Query the graph for each major capability in the phase scope (2-3 queries per D-05, discovery-focused):
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
.agent/skills/gsd/bin/gsd-tools.cjs" graphify query "<capability-keyword>" --budget 1500
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
Derive query terms from the phase goal and requirement descriptions. Examples:
|
|
560
|
+
- Phase "user authentication and session management" -> query "authentication", "session", "token"
|
|
561
|
+
- Phase "payment integration" -> query "payment", "billing"
|
|
562
|
+
- Phase "build pipeline" -> query "build", "compile"
|
|
563
|
+
|
|
564
|
+
Use graph results to:
|
|
565
|
+
- Discover non-obvious cross-document relationships (e.g., a config file related to an API module)
|
|
566
|
+
- Identify architectural boundaries that affect the phase
|
|
567
|
+
- Surface dependencies the phase description does not explicitly mention
|
|
568
|
+
- Inform which subsystems to investigate more deeply in subsequent research steps
|
|
569
|
+
|
|
570
|
+
If no results or graph.json absent, continue to Step 1.5 without graph context.
|
|
571
|
+
|
|
572
|
+
## Step 1.5: Architectural Responsibility Mapping
|
|
573
|
+
|
|
574
|
+
Before diving into framework-specific research, map each capability in this phase to its standard architectural tier owner. This is a pure reasoning step — no tool calls needed.
|
|
575
|
+
|
|
576
|
+
**For each capability in the phase description:**
|
|
577
|
+
|
|
578
|
+
1. Identify what the capability does (e.g., "user authentication", "data visualization", "file upload")
|
|
579
|
+
2. Determine which architectural tier owns the primary responsibility:
|
|
580
|
+
|
|
581
|
+
| Tier | Examples |
|
|
582
|
+
|------|----------|
|
|
583
|
+
| **Browser / Client** | DOM manipulation, client-side routing, local storage, service workers |
|
|
584
|
+
| **Frontend Server (SSR)** | Server-side rendering, hydration, middleware, auth cookies |
|
|
585
|
+
| **API / Backend** | REST/GraphQL endpoints, business logic, auth, data validation |
|
|
586
|
+
| **CDN / Static** | Static assets, edge caching, image optimization |
|
|
587
|
+
| **Database / Storage** | Persistence, queries, migrations, caching layers |
|
|
588
|
+
|
|
589
|
+
3. Record the mapping in a table:
|
|
590
|
+
|
|
591
|
+
| Capability | Primary Tier | Secondary Tier | Rationale |
|
|
592
|
+
|------------|-------------|----------------|-----------|
|
|
593
|
+
| [capability] | [tier] | [tier or —] | [why this tier owns it] |
|
|
594
|
+
|
|
595
|
+
**Output:** Include an `## Architectural Responsibility Map` section in RESEARCH.md immediately after the Summary section. This map is consumed by the planner for sanity-checking task assignments and by the plan-checker for verifying tier correctness.
|
|
596
|
+
|
|
597
|
+
**Why this matters:** Multi-tier applications frequently have capabilities misassigned during planning — e.g., putting auth logic in the browser tier when it belongs in the API tier, or putting data fetching in the frontend server when the API already provides it. Mapping tier ownership before research prevents these misassignments from propagating into plans.
|
|
598
|
+
|
|
500
599
|
## Step 2: Identify Research Domains
|
|
501
600
|
|
|
502
601
|
Based on phase description, identify what needs investigating:
|
|
@@ -656,7 +755,7 @@ Write to: `$PHASE_DIR/$PADDED_PHASE-RESEARCH.md`
|
|
|
656
755
|
## Step 7: Commit Research (optional)
|
|
657
756
|
|
|
658
757
|
```bash
|
|
659
|
-
|
|
758
|
+
gsd-sdk query commit "docs($PHASE): research phase domain" "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md"
|
|
660
759
|
```
|
|
661
760
|
|
|
662
761
|
## Step 8: Return Structured Result
|