gsdd-cli 0.27.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -22
- package/agents/DISTILLATION.md +2 -2
- package/agents/README.md +4 -4
- package/agents/approach-explorer.md +4 -4
- package/agents/executor.md +20 -20
- package/agents/integration-checker.md +2 -2
- package/agents/planner.md +10 -26
- package/agents/researcher.md +2 -2
- package/agents/roadmapper.md +6 -6
- package/agents/synthesizer.md +18 -18
- package/agents/verifier.md +3 -3
- package/bin/adapters/agents.mjs +3 -3
- package/bin/adapters/claude.mjs +16 -14
- package/bin/adapters/opencode.mjs +15 -12
- package/bin/gsdd.mjs +16 -13
- package/bin/lib/{models.mjs → config.mjs} +23 -16
- package/bin/lib/control-map.mjs +17 -488
- package/bin/lib/health-truth.mjs +8 -13
- package/bin/lib/health.mjs +25 -39
- package/bin/lib/init-flow.mjs +44 -38
- package/bin/lib/init-prompts.mjs +3 -3
- package/bin/lib/init-runtime.mjs +11 -30
- package/bin/lib/lifecycle-preflight.mjs +97 -410
- package/bin/lib/lifecycle-state.mjs +2 -1
- package/bin/lib/next.mjs +243 -20
- package/bin/lib/phase.mjs +706 -280
- package/bin/lib/plan-constants.mjs +0 -5
- package/bin/lib/rendering.mjs +64 -44
- package/bin/lib/runtime-freshness.mjs +18 -15
- package/bin/lib/state-dir.mjs +45 -0
- package/bin/lib/templates.mjs +59 -22
- package/bin/lib/work-context.mjs +12 -1
- package/bin/lib/workflows.mjs +0 -1
- package/bin/lib/workspace-root.mjs +11 -6
- package/distilled/DESIGN.md +89 -31
- package/distilled/EVIDENCE-INDEX.md +18 -5
- package/distilled/README.md +23 -33
- package/distilled/SKILL.md +9 -10
- package/distilled/templates/agents.block.md +5 -5
- package/distilled/templates/approach.md +3 -3
- package/distilled/templates/auth-matrix.md +2 -2
- package/distilled/templates/brownfield-change/CHANGE.md +1 -1
- package/distilled/templates/delegates/approach-explorer.md +5 -5
- package/distilled/templates/delegates/mapper-arch.md +3 -3
- package/distilled/templates/delegates/mapper-concerns.md +4 -4
- package/distilled/templates/delegates/mapper-quality.md +3 -3
- package/distilled/templates/delegates/mapper-tech.md +3 -3
- package/distilled/templates/delegates/plan-checker.md +18 -19
- package/distilled/templates/delegates/researcher-architecture.md +3 -3
- package/distilled/templates/delegates/researcher-features.md +3 -3
- package/distilled/templates/delegates/researcher-pitfalls.md +3 -3
- package/distilled/templates/delegates/researcher-stack.md +3 -3
- package/distilled/templates/delegates/researcher-synthesizer.md +7 -7
- package/distilled/templates/research/architecture.md +1 -1
- package/distilled/templates/research/pitfalls.md +1 -1
- package/distilled/templates/research/stack.md +1 -1
- package/distilled/templates/roadmap.md +4 -4
- package/distilled/templates/spec.md +2 -2
- package/distilled/templates/ui-proof.md +81 -181
- package/distilled/workflows/audit-milestone.md +23 -23
- package/distilled/workflows/complete-milestone.md +35 -35
- package/distilled/workflows/execute.md +34 -35
- package/distilled/workflows/map-codebase.md +30 -30
- package/distilled/workflows/new-milestone.md +18 -18
- package/distilled/workflows/new-project.md +45 -45
- package/distilled/workflows/pause.md +15 -15
- package/distilled/workflows/plan.md +106 -114
- package/distilled/workflows/progress.md +40 -39
- package/distilled/workflows/quick.md +49 -50
- package/distilled/workflows/resume.md +23 -22
- package/distilled/workflows/verify-work.md +7 -7
- package/distilled/workflows/verify.md +26 -26
- package/docs/BROWNFIELD-PROOF.md +1 -1
- package/docs/RUNTIME-SUPPORT.md +13 -13
- package/docs/USER-GUIDE.md +26 -21
- package/docs/claude/context-monitor.md +1 -1
- package/docs/proof/consumer-node-cli/README.md +1 -1
- package/package.json +3 -3
- package/bin/lib/closeout-report.mjs +0 -318
- package/bin/lib/evidence-contract.mjs +0 -325
- package/bin/lib/provenance.mjs +0 -390
- package/bin/lib/session-fingerprint.mjs +0 -223
- package/bin/lib/ui-proof.mjs +0 -1007
- package/distilled/workflows/plan-milestone-gaps.md +0 -204
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
# Workspine
|
|
4
4
|
|
|
5
|
-
Workspine is a
|
|
5
|
+
Workspine is a Spec Driven Development framework for AI-assisted software work: planning, checking, execution, verification, and handoff live in the repo, so any agent or runtime can pick up where the last one stopped. Decisions keep their why.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Proof status: one real consumer lifecycle with Codex checker support. Qualified support: Cursor, Copilot, Gemini.
|
|
8
8
|
|
|
9
|
-
The public product name is Workspine. The retained technical contracts remain `gsdd-cli`, `gsdd`, `gsdd-*`, and `.
|
|
9
|
+
The public product name is Workspine. The retained technical contracts remain `gsdd-cli`, `gsdd`, `gsdd-*`, and `.work/`.
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/gsdd-cli)
|
|
12
12
|
[](LICENSE)
|
|
@@ -29,10 +29,10 @@ Tracked consumer proof pack: [docs/proof/consumer-node-cli/README.md](docs/proof
|
|
|
29
29
|
|
|
30
30
|
| Workflow | Writes | What for |
|
|
31
31
|
|----------|--------|----------|
|
|
32
|
-
| `gsdd-new-project` | `.
|
|
33
|
-
| `gsdd-plan` | `.
|
|
34
|
-
| `gsdd-execute` | `.
|
|
35
|
-
| `gsdd-verify` | `.
|
|
32
|
+
| `gsdd-new-project` | `.work/SPEC.md`, `ROADMAP.md` | Define the project and phases |
|
|
33
|
+
| `gsdd-plan` | `.work/phases/N/PLAN.md` | Research and review before any code gets written |
|
|
34
|
+
| `gsdd-execute` | `.work/phases/N/SUMMARY.md` | Implement the approved plan, nothing more |
|
|
35
|
+
| `gsdd-verify` | `.work/phases/N/VERIFICATION.md` | Confirm the plan's claims are actually true |
|
|
36
36
|
|
|
37
37
|
The discipline: plan first, execute only what's approved, verify before closing. Each phase summary carries forward what was decided, so the next session starts with context instead of from scratch.
|
|
38
38
|
|
|
@@ -40,15 +40,15 @@ For agent continuity across long sessions, `gsdd next` reads `.work/` plus repo
|
|
|
40
40
|
|
|
41
41
|
`gsdd next` keeps the human surface tight and the agent surface structured. JSON packets include typed `next_action` values for CLI commands, workflow skills, manual review, and user-question gates. Blocking questions, decisions, graph rebuilds, and dogfood findings use explicit subcommands; duplicate question, decision, and dogfood IDs replay as unchanged when the content matches and fail unless `--replace` is passed when the content differs. The continuity graph records answer and supersession edges so future agents can reconstruct decision history without rereading raw transcripts.
|
|
42
42
|
|
|
43
|
-
Workspine ships
|
|
43
|
+
Workspine ships 13 workflows. The package and CLI are `gsdd-cli` / `gsdd-*` — retained as the technical contract under the Workspine product name.
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
47
47
|
## What This Is
|
|
48
48
|
|
|
49
|
-
Workspine gives coding agents a durable workflow
|
|
49
|
+
Workspine gives coding agents a durable workflow for work that spans sessions, agents, or runtimes. There is no hosted service; it writes portable planning and proof artifacts into the repo.
|
|
50
50
|
|
|
51
|
-
Workspine began as a fork of Get Shit Done and keeps the verification-first
|
|
51
|
+
Workspine began as a fork of Get Shit Done and keeps the verification-first workflow while stripping runtime lock-in.
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
@@ -60,7 +60,42 @@ Workspine began as a fork of Get Shit Done and keeps the verification-first deli
|
|
|
60
60
|
npx -y gsdd-cli init
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
This creates:
|
|
64
|
+
|
|
65
|
+
1. `.work/` — durable workspace with templates, role contracts, and config
|
|
66
|
+
2. `.agents/skills/gsdd-*` — compact open-standard workflow entrypoints for agents
|
|
67
|
+
3. `.work/bin/gsdd.mjs` — repo-local helper runtime for deterministic workflow commands inside generated skills (run helper commands from the repo root)
|
|
68
|
+
4. Optional tool-specific adapters you choose in the install wizard (Claude skills/commands/agents, OpenCode commands/agents, Codex CLI agents, optional governance)
|
|
69
|
+
|
|
70
|
+
Then pick the first workflow lane that matches your situation:
|
|
71
|
+
|
|
72
|
+
- `gsdd-new-project` for greenfield work, fuzzy brownfield work, or milestone-shaped work
|
|
73
|
+
- `gsdd-quick` for a concrete bounded brownfield change
|
|
74
|
+
- `gsdd-map-codebase` first when the repo is unfamiliar, risky, or needs a deeper baseline before choosing a lane
|
|
75
|
+
|
|
76
|
+
In a terminal, `npx -y gsdd-cli init` opens a guided install wizard. If you installed the package globally, `gsdd init` is the equivalent shorthand:
|
|
77
|
+
|
|
78
|
+
- Step 1: select the runtimes/vendors you want to support
|
|
79
|
+
- Step 2: decide separately whether repo-wide `AGENTS.md` governance is worth installing
|
|
80
|
+
- Step 3: configure planning defaults in the same guided flow
|
|
81
|
+
|
|
82
|
+
Portable `.agents/skills/gsdd-*` skills and the repo-local `.work/bin/gsdd.mjs` helper runtime are always generated. The wizard controls extra native adapters and optional governance, not the portable baseline. Workflow helper commands assume the repo root as the current working directory.
|
|
83
|
+
When those generated surfaces exist locally, `npx -y gsdd-cli health` checks them against current render output instead of asking you to trust manual review. If installed globally, `gsdd health` is equivalent.
|
|
84
|
+
|
|
85
|
+
### Launch Proof Status
|
|
86
|
+
|
|
87
|
+
- **Recorded proof:** the proof pack below records a full plan -> execute -> verify lifecycle on a real consumer project, including Codex checker support. Claude Code and OpenCode run the same generated workflow surface.
|
|
88
|
+
- **Qualified support:** Cursor, Copilot, and Gemini CLI can use the shared `.agents/skills/` surface when their skill or slash discovery sees it; this release does not claim the same runtime proof or ergonomics.
|
|
89
|
+
- **Runtime-surface freshness:** Installed generated skills and native adapters are renderer-checked locally; repair stays deterministic through `npx -y gsdd-cli update` or, when globally installed, `gsdd update`.
|
|
90
|
+
|
|
91
|
+
Start with the public proof pack:
|
|
92
|
+
|
|
93
|
+
- [Brownfield proof](docs/BROWNFIELD-PROOF.md)
|
|
94
|
+
- [Exported consumer proof pack](docs/proof/consumer-node-cli/README.md)
|
|
95
|
+
- [Runtime support matrix](docs/RUNTIME-SUPPORT.md)
|
|
96
|
+
- [Verification discipline](docs/VERIFICATION-DISCIPLINE.md)
|
|
97
|
+
|
|
98
|
+
### Quickstart (after init)
|
|
64
99
|
|
|
65
100
|
Invoke after init:
|
|
66
101
|
|
|
@@ -85,7 +120,7 @@ npx -y gsdd-cli install --global --auto
|
|
|
85
120
|
npx -y gsdd-cli install --global --tools claude,opencode,codex,copilot
|
|
86
121
|
```
|
|
87
122
|
|
|
88
|
-
Use `--auto` for non-interactive install into detected local agent homes. Use `--tools <targets>` when you want to override detection explicitly. When run in a TTY without `--tools` or `--auto`, `install --global` lets you select which agents to install. It does not create `.
|
|
123
|
+
Use `--auto` for non-interactive install into detected local agent homes. Use `--tools <targets>` when you want to override detection explicitly. When run in a TTY without `--tools` or `--auto`, `install --global` lets you select which agents to install. It does not create `.work/` in the current repo. It writes Workspine-managed skills, native agent surfaces, and per-runtime manifests under the selected agent homes:
|
|
89
124
|
|
|
90
125
|
| Target | Global surfaces |
|
|
91
126
|
|--------|-----------------|
|
|
@@ -94,7 +129,7 @@ Use `--auto` for non-interactive install into detected local agent homes. Use `-
|
|
|
94
129
|
| Codex CLI | `~/.agents/skills`, `~/.codex/agents` |
|
|
95
130
|
| GitHub Copilot CLI | `~/.agents/skills`, `~/.copilot/agents` |
|
|
96
131
|
|
|
97
|
-
Install availability is not a parity claim. Claude Code, OpenCode, and Codex CLI
|
|
132
|
+
Install availability is not a parity claim. Repo proof currently covers Claude Code, OpenCode, and Codex CLI paths; GitHub Copilot CLI is available as a qualified global target.
|
|
98
133
|
|
|
99
134
|
OpenCode honors `OPENCODE_CONFIG_DIR` for commands and agents; Workspine installs portable skills once in the shared agent-compatible global root.
|
|
100
135
|
|
|
@@ -108,11 +143,11 @@ OpenCode honors `OPENCODE_CONFIG_DIR` for commands and agents; Workspine install
|
|
|
108
143
|
|
|
109
144
|
### Team Use
|
|
110
145
|
|
|
111
|
-
Commit `.
|
|
146
|
+
Commit `.work/` so the team shares specs, roadmaps, phase plans, and verification reports. Use `commitDocs` in `.work/config.json` to control whether documentation changes are expected as part of workflow execution. Each developer runs `init --tools <their-tool>` for their own repo-local runtime adapters without changing the shared delivery artifacts.
|
|
112
147
|
|
|
113
148
|
### What to Track in Git
|
|
114
149
|
|
|
115
|
-
Track `.
|
|
150
|
+
Track `.work/`, `.agents/skills/`, and any selected runtime adapters that are part of the team workflow. Track durable `.work/` contract and research files when they define shared milestone truth. Do not track `.work/.local/` or mutable `.work` runtime files such as `state.json`, graph logs, open questions, evidence manifests, handoff notes, or raw dogfood drafts unless you deliberately export or sanitize them.
|
|
116
151
|
|
|
117
152
|
---
|
|
118
153
|
|
|
@@ -128,7 +163,7 @@ npx -y gsdd-cli models profile budget # minimize cost
|
|
|
128
163
|
|
|
129
164
|
## Troubleshooting
|
|
130
165
|
|
|
131
|
-
Inside a repo-local `.
|
|
166
|
+
Inside a repo-local `.work/` workspace, start with `npx -y gsdd-cli health`. It checks local generated runtime surfaces against current render output and reports whether `npx -y gsdd-cli update` can repair drift. To repair or refresh a personal global install, rerun `npx -y gsdd-cli install --global --auto` or explicitly scope it with `npx -y gsdd-cli install --global --tools <targets>`. For details, see the [User Guide](docs/USER-GUIDE.md).
|
|
132
167
|
|
|
133
168
|
---
|
|
134
169
|
|
|
@@ -139,12 +174,12 @@ Use Workspine when a feature takes more than one session, or when you need to sw
|
|
|
139
174
|
| Tool | Good for | vs Workspine |
|
|
140
175
|
|------|----------|--------------|
|
|
141
176
|
| **Workspine** | Work that spans sessions, agents, or runtimes where plans and proof need to stay in the repo | — |
|
|
142
|
-
| [GSD](https://github.com/gsd-build/get-shit-done) | Broad AI prompting suite — 81 commands, 78 workflows, 33 agents | Workspine is narrower:
|
|
177
|
+
| [GSD](https://github.com/gsd-build/get-shit-done) | Broad AI prompting suite — 81 commands, 78 workflows, 33 agents | Workspine is narrower: 13 workflows, fewer moving parts for the human in the loop |
|
|
143
178
|
| [OpenSpec](https://openspec.dev/) | Living spec + change proposals in a lightweight format | Workspine adds the execution, verification, and handoff layer on top of planning |
|
|
144
179
|
| [LeanSpec](https://www.lean-spec.dev/docs/guide/first-principles) | Minimal specs that fit LLM context | Workspine adds workflow gates and runtime entrypoints for when you need the full structure |
|
|
145
180
|
| [GitHub Spec Kit](https://github.com/github/spec-kit) | Spec-first planning workflows in `.specify/` | Similar space; Workspine is one CLI with one delivery loop instead of a broader ecosystem |
|
|
146
181
|
| [Kiro](https://kiro.dev/docs/) | IDE-native agent dev with specs, steering, hooks, and MCP | Kiro is IDE-only; Workspine works across terminal and IDE agents that can read repo files |
|
|
147
|
-
| [Tessl](https://tessl.io/enterprise/) | Hosted platform for distributing agent skills across teams | Tessl needs a
|
|
182
|
+
| [Tessl](https://tessl.io/enterprise/) | Hosted platform for distributing agent skills across teams | Tessl needs a hosted service; Workspine is local-first with no hosted infrastructure |
|
|
148
183
|
|
|
149
184
|
<sub>Based on each tool's public docs as of May 2026. Open an issue if anything reads inaccurately.</sub>
|
|
150
185
|
|
|
@@ -163,10 +198,6 @@ npx -y gsdd-cli rigor # run planning/document guardrails
|
|
|
163
198
|
npx -y gsdd-cli file-op # deterministic repo-local copy/delete helper
|
|
164
199
|
npx -y gsdd-cli models profile quality # maximize review rigor
|
|
165
200
|
npx -y gsdd-cli models profile budget # minimize cost
|
|
166
|
-
npx -y gsdd-cli session-fingerprint # capture session continuity metadata
|
|
167
|
-
npx -y gsdd-cli ui-proof # collect UI proof artifacts
|
|
168
|
-
npx -y gsdd-cli control-map # repo and planning state at a glance
|
|
169
|
-
npx -y gsdd-cli closeout-report # summarize closeout evidence
|
|
170
201
|
npx -y gsdd-cli find-phase # locate a roadmap phase
|
|
171
202
|
npx -y gsdd-cli phase-status # inspect or update phase status
|
|
172
203
|
npx -y gsdd-cli verify # run verification discipline checks
|
package/agents/DISTILLATION.md
CHANGED
|
@@ -135,12 +135,12 @@ Evidence map from each of the 10 canonical GSDD roles to their GSD sources, with
|
|
|
135
135
|
- Checklist-driven completion
|
|
136
136
|
|
|
137
137
|
**Stripped from GSD:**
|
|
138
|
-
- Template-path references (output lives in `.
|
|
138
|
+
- Template-path references (output lives in `.work/ROADMAP.md`)
|
|
139
139
|
- Commit steps (GSDD handles git separately)
|
|
140
140
|
- Vendor-specific file conventions
|
|
141
141
|
|
|
142
142
|
**Gained in GSDD (PR #15 hardening):**
|
|
143
|
-
- Explicit `.
|
|
143
|
+
- Explicit `.work/ROADMAP.md` ownership contract
|
|
144
144
|
- Explicit `[ ]` / `[-]` / `[x]` status grammar
|
|
145
145
|
- Concrete `ROADMAP CREATED` artifact example
|
|
146
146
|
- Hard boundary: "this role does not settle the separate ROADMAP/STATE lifecycle seam"
|
package/agents/README.md
CHANGED
|
@@ -17,7 +17,7 @@ Workspine uses subagents when isolation earns its cost: research, review, mappin
|
|
|
17
17
|
|
|
18
18
|
Subagents must not become hidden implementation orchestration. Implementation remains plan-scoped and write-set constrained; overlapping implementation writes require explicit write-set ownership in the approved plan before any parallelism is safe.
|
|
19
19
|
|
|
20
|
-
Roadmapper is intentionally role-only/direct invocation in the current catalog. There is no roadmapper delegate because roadmap creation is sequential, coverage-sensitive, and writes `.
|
|
20
|
+
Roadmapper is intentionally role-only/direct invocation in the current catalog. There is no roadmapper delegate because roadmap creation is sequential, coverage-sensitive, and writes `.work/ROADMAP.md` in default workspaces; a future delegate would need a proven thin-wrapper use case before it is added.
|
|
21
21
|
|
|
22
22
|
Leverage record: lost flexibility to add delegates by symmetry; kept the two-layer role/delegate architecture and summaries-up/documents-to-disk model; gained a conservative boundary that prevents subagents from implying agent teams, parallel PR orchestration, or runtime parity claims.
|
|
23
23
|
|
|
@@ -50,11 +50,11 @@ The catalog contains 10 canonical roles across lifecycle, audit, and utility res
|
|
|
50
50
|
|
|
51
51
|
## Runtime Distribution
|
|
52
52
|
|
|
53
|
-
`gsdd init` copies all role contracts (excluding this README) from `agents/` into `.
|
|
53
|
+
`gsdd init` copies all role contracts (excluding this README) from `agents/` into `.work/templates/roles/` in the consumer project. Legacy `.planning/` workspaces receive localized `.planning/templates/roles/` paths. This gives consumer projects a portable, self-contained copy of the role library with no hard dependency on the GSDD framework repo at runtime.
|
|
54
54
|
|
|
55
55
|
- **Single source of truth:** `agents/*.md` in this repo. Consumer copies are generated, not edited.
|
|
56
|
-
- **Delegates reference the local copy:** `distilled/templates/delegates/*.md` point to `.
|
|
57
|
-
- **Idempotent:** `gsdd init` skips the copy if `.
|
|
56
|
+
- **Delegates reference the local copy:** `distilled/templates/delegates/*.md` point to `.work/templates/roles/<role>.md`, not back to this repo; legacy installs localize those paths to `.planning/templates/roles/<role>.md`.
|
|
57
|
+
- **Idempotent:** `gsdd init` skips the copy if `.work/templates/roles/` already exists.
|
|
58
58
|
- **Updates:** `gsdd update --templates` re-copies from latest framework sources with hash-based modification detection.
|
|
59
59
|
|
|
60
60
|
Verifier note:
|
|
@@ -46,12 +46,12 @@ Do NOT:
|
|
|
46
46
|
<input_contract>
|
|
47
47
|
Read only the explicit inputs provided. Extract only what you need:
|
|
48
48
|
|
|
49
|
-
- **From `.
|
|
50
|
-
- **From `.
|
|
49
|
+
- **From `.work/SPEC.md`:** locked decisions and deferred items ONLY (skip project description, requirements prose)
|
|
50
|
+
- **From `.work/ROADMAP.md`:** target phase goal, requirements, and success criteria ONLY (skip other phases)
|
|
51
51
|
- **Phase research** (if exists): skim for findings relevant to gray area identification
|
|
52
52
|
- **Codebase files** (if provided): existing patterns and conventions that inform approach choices
|
|
53
53
|
- **Existing APPROACH.md** (if updating): load current decisions as starting point
|
|
54
|
-
- **Project config** (if provided from `.
|
|
54
|
+
- **Project config** (if provided from `.work/config.json`): check `workflow.discuss` to decide whether alignment proof is mandatory
|
|
55
55
|
</input_contract>
|
|
56
56
|
|
|
57
57
|
<output_contract>
|
|
@@ -178,7 +178,7 @@ If any check fails, address it with the user before proceeding.
|
|
|
178
178
|
|
|
179
179
|
## Step 8: Write APPROACH.md
|
|
180
180
|
|
|
181
|
-
Write `{padded_phase}-APPROACH.md` to the phase directory using the approach template at `.
|
|
181
|
+
Write `{padded_phase}-APPROACH.md` to the phase directory using the approach template at `.work/templates/approach.md`.
|
|
182
182
|
|
|
183
183
|
Structure sections by what was actually discussed — section names match gray areas, not a generic template.
|
|
184
184
|
|
package/agents/executor.md
CHANGED
|
@@ -11,7 +11,7 @@ You DO NOT freelance. You DO NOT add features outside the plan.
|
|
|
11
11
|
CRITICAL: Tiered context intake
|
|
12
12
|
|
|
13
13
|
- `mandatory_now`: read the PLAN.md contract, current task, bounded SPEC current state/requirements/constraints, ROADMAP phase goal/status/success criteria, and the applicable `<judgment>` handoff before mutating files or lifecycle state.
|
|
14
|
-
- If no prior SUMMARY `<judgment>` exists, check for `.
|
|
14
|
+
- If no prior SUMMARY `<judgment>` exists, check for `.work/.continue-here.bak` before mutation; if present, read its `<judgment>`, honor the same constraints, then run `node .work/bin/gsdd.mjs file-op delete .work/.continue-here.bak --missing ok`.
|
|
15
15
|
- `task_scoped`: read files and focused references for the current task before editing that task. Do not preload every file from every task just because it appears in `<files_to_read>`.
|
|
16
16
|
- `reference_only`: consult deeper SPEC, ROADMAP, codebase maps, or project conventions only for the specific decision or invariant being validated.
|
|
17
17
|
- `deferred_or_conditional`: read broader history only when the current task or deviation requires it.
|
|
@@ -44,8 +44,8 @@ The executor is plan-scoped:
|
|
|
44
44
|
|
|
45
45
|
## Core Algorithm
|
|
46
46
|
|
|
47
|
-
1. **Load plan.** Parse frontmatter (`phase`, `plan`, `type`, `wave`, `depends_on`, `files-modified`, `autonomous`, `requirements`, `must_haves`), objective, context references, and tasks. Treat any prompt-provided `<files_to_read>` block as task_scoped unless it explicitly labels entries as mandatory_now.
|
|
48
|
-
2. **Run lifecycle preflight.** Before mutating lifecycle artifacts, run `node .
|
|
47
|
+
1. **Load plan.** Parse frontmatter (`phase`, `plan`, `type`, `wave`, `depends_on`, `files-modified`, `autonomous`, `requirements`, `browser_proof_required`, `browser_proof_rationale`, `must_haves`), objective, context references, and tasks. Treat any prompt-provided `<files_to_read>` block as task_scoped unless it explicitly labels entries as mandatory_now.
|
|
48
|
+
2. **Run lifecycle preflight.** Before mutating lifecycle artifacts, run `node .work/bin/gsdd.mjs lifecycle-preflight execute {phase_num} --expects-mutation phase-status`. If blocked, stop and surface the blocker.
|
|
49
49
|
3. **For each task:**
|
|
50
50
|
a. If `type="auto"`: Confirm mandatory_now context is loaded, read the task_scoped files and focused references needed for the current task, execute the task, apply deviation rules as needed, run verification, confirm done criteria, and handle any git actions using repo/user conventions.
|
|
51
51
|
b. If `type="checkpoint:*"`: STOP immediately. Return structured checkpoint message with all progress so far. A fresh agent will continue.
|
|
@@ -175,7 +175,7 @@ For each task in the plan, follow this loop:
|
|
|
175
175
|
### Frontmatter And Task Semantics
|
|
176
176
|
|
|
177
177
|
The executor consumes the plan schema defined by the planner:
|
|
178
|
-
- frontmatter keys: `phase`, `plan`, `type`, `wave`, `depends_on`, `files-modified`, `autonomous`, `requirements`, `must_haves`
|
|
178
|
+
- frontmatter keys: `phase`, `plan`, `type`, `wave`, `depends_on`, `files-modified`, `autonomous`, `requirements`, `browser_proof_required`, `browser_proof_rationale`, `must_haves`
|
|
179
179
|
- task types:
|
|
180
180
|
- `type="auto"` - proceed without pausing
|
|
181
181
|
- `type="checkpoint:user"` - stop for a required user decision or human-only step
|
|
@@ -187,7 +187,7 @@ Checkpoint tasks are contract boundaries. Continuing past one silently breaks th
|
|
|
187
187
|
### Implementation Rules
|
|
188
188
|
- Follow the `<action>` precisely.
|
|
189
189
|
- If a task references existing code, read it first and match existing patterns.
|
|
190
|
-
- If you are unsure about something, check `.
|
|
190
|
+
- If you are unsure about something, check `.work/SPEC.md` decisions first, then ask if still unclear.
|
|
191
191
|
- Do not run destructive git, broad cleanup, or file deletion actions without explicit human approval, except explicitly named workflow-owned housekeeping commands such as backup judgment auto-clean.
|
|
192
192
|
|
|
193
193
|
### Change-Impact Discipline
|
|
@@ -210,8 +210,8 @@ Before reporting a task complete:
|
|
|
210
210
|
- if an API change is involved, hit the endpoint or targeted integration path
|
|
211
211
|
- A task is not complete because code was written. It is complete when the intended verification path actually passes.
|
|
212
212
|
|
|
213
|
-
###
|
|
214
|
-
If the plan
|
|
213
|
+
### Browser Proof Execution
|
|
214
|
+
If the plan sets `browser_proof_required: true`, execute the Browser Proof Plan and record observed proof against the exact `Plan:` artifact path, route/state, viewport, observation, evidence kind, artifact path or manual step, privacy/safety note, result, and claim limit before claiming task completion.
|
|
215
215
|
|
|
216
216
|
Use `agent-browser` as the default live UI proof path:
|
|
217
217
|
- open the planned route/state
|
|
@@ -220,9 +220,9 @@ Use `agent-browser` as the default live UI proof path:
|
|
|
220
220
|
- capture screenshots for the planned viewport(s)
|
|
221
221
|
- record relevant console/network observations
|
|
222
222
|
|
|
223
|
-
If `agent-browser` is unavailable, record the availability constraint and closest project-native interactive browser fallback
|
|
223
|
+
If `agent-browser` is unavailable, record the availability constraint and closest project-native interactive browser fallback instead of silently treating the fallback as the default path. Existing Playwright/package-script browser tests remain canonical repeatable regression evidence when present; use Playwright scripting only for checks `agent-browser` cannot cover cleanly, such as JS-disabled, structured console, or multi-context verification.
|
|
224
224
|
|
|
225
|
-
|
|
225
|
+
Raw screenshots, traces, videos, DOM snapshots, and reports are local-only/unsafe by default and cannot back public, tracked, delivery, release, or publication proof claims unless sanitized. Artifact count, source comments, AST/cAST findings, semantic search, and Semble-like retrieval are not proof. Missing or weakly linked evidence must be recorded as proof debt, waiver, deferment, or reduced claim language rather than satisfied proof, using the failure-cause names in `distilled/references/proof-rules.md` when proof fails or is partial.
|
|
226
226
|
</execution_loop>
|
|
227
227
|
|
|
228
228
|
<checkpoint_protocol>
|
|
@@ -379,7 +379,7 @@ Summary-driven progress tracking avoids silent drift between the plan contract a
|
|
|
379
379
|
<state_updates>
|
|
380
380
|
After completing all tasks in the plan:
|
|
381
381
|
|
|
382
|
-
### 1. Update `.
|
|
382
|
+
### 1. Update `.work/SPEC.md` "Current State"
|
|
383
383
|
Keep the update factual and compact:
|
|
384
384
|
|
|
385
385
|
```markdown
|
|
@@ -393,14 +393,14 @@ Keep the update factual and compact:
|
|
|
393
393
|
### 2. Update ROADMAP.md Phase Status
|
|
394
394
|
Do not hand-edit ROADMAP status. Use the status-aware helper:
|
|
395
395
|
|
|
396
|
-
- `node .
|
|
396
|
+
- `node .work/bin/gsdd.mjs phase-status {phase_num} in_progress`
|
|
397
397
|
|
|
398
|
-
Do NOT run `node .
|
|
398
|
+
Do NOT run `node .work/bin/gsdd.mjs phase-status {phase_num} done` from execute. Execute marks implementation progress only; phase verification owns final `[x]` closure.
|
|
399
399
|
|
|
400
|
-
### 3.
|
|
400
|
+
### 3. Confirm Reviewed Planning State
|
|
401
401
|
After SPEC and ROADMAP status updates are reviewed as intentional, run:
|
|
402
402
|
|
|
403
|
-
- `node .
|
|
403
|
+
- `node .work/bin/gsdd.mjs next --json`
|
|
404
404
|
|
|
405
405
|
</state_updates>
|
|
406
406
|
|
|
@@ -413,10 +413,10 @@ For each completed task:
|
|
|
413
413
|
[ ] Local verification passed
|
|
414
414
|
|
|
415
415
|
For state updates:
|
|
416
|
-
[ ] .
|
|
416
|
+
[ ] .work/SPEC.md "Current State" is accurate
|
|
417
417
|
[ ] `phase-status` helper ran instead of direct ROADMAP status editing
|
|
418
418
|
[ ] ROADMAP.md status remains open (`[-]` if status was updated) until verification passes
|
|
419
|
-
[ ] `
|
|
419
|
+
[ ] `next --json` ran after reviewed planning-state updates
|
|
420
420
|
[ ] SUMMARY.md exists, records `runtime` and `assurance`, and reflects the actual work
|
|
421
421
|
[ ] SUMMARY.md includes structured `<checks>`, `<handoff>`, `<deltas>`, and `<judgment>` sections
|
|
422
422
|
|
|
@@ -439,7 +439,7 @@ After each task (verification passed, done criteria met):
|
|
|
439
439
|
|
|
440
440
|
Git rules:
|
|
441
441
|
- Repo and user conventions win first.
|
|
442
|
-
- `.
|
|
442
|
+
- `.work/config.json -> gitProtocol` is advisory only.
|
|
443
443
|
- Do not force one commit per task unless the repo or user asked for that.
|
|
444
444
|
|
|
445
445
|
<quality_guarantees>
|
|
@@ -471,13 +471,13 @@ Execution is done when all of these are true:
|
|
|
471
471
|
- [ ] Any checkpoint task caused an explicit stop and handoff instead of silent continuation
|
|
472
472
|
- [ ] Deviation rules were followed (Rules 1-3 auto-fixed, Rule 4 stopped)
|
|
473
473
|
- [ ] Authentication gates handled with the auth-gate protocol, not as bugs
|
|
474
|
-
- [ ] `.
|
|
474
|
+
- [ ] `.work/SPEC.md` current state is updated accurately
|
|
475
475
|
- [ ] `ROADMAP.md` progress was updated through `phase-status`, not hand-edited
|
|
476
|
-
- [ ] `
|
|
476
|
+
- [ ] `next --json` ran after reviewed planning-state updates
|
|
477
477
|
- [ ] `SUMMARY.md` is written with substantive one-liner, typed frontmatter, `runtime`, and `assurance`
|
|
478
478
|
- [ ] `SUMMARY.md` includes structured `<checks>`, `<handoff>`, `<deltas>`, and `<judgment>` sections
|
|
479
479
|
- [ ] Self-check passed
|
|
480
|
-
- [ ] Any git actions honor repo or user conventions and `.
|
|
480
|
+
- [ ] Any git actions honor repo or user conventions and `.work/config.json`
|
|
481
481
|
</success_criteria>
|
|
482
482
|
|
|
483
483
|
<vendor_hints>
|
|
@@ -45,7 +45,7 @@ Optional but useful context:
|
|
|
45
45
|
|
|
46
46
|
- expected cross-phase dependencies from the roadmap
|
|
47
47
|
- likely sensitive routes, pages, or flows that should enforce auth
|
|
48
|
-
- `.
|
|
48
|
+
- `.work/AUTH_MATRIX.md` (if it exists — enables matrix-driven auth verification in Step 4a)
|
|
49
49
|
|
|
50
50
|
Rules:
|
|
51
51
|
|
|
@@ -130,7 +130,7 @@ If a route or flow touches account, billing, admin, profile, or user-scoped data
|
|
|
130
130
|
|
|
131
131
|
## Step 4a: Matrix-Driven Auth Verification
|
|
132
132
|
|
|
133
|
-
If `.
|
|
133
|
+
If `.work/AUTH_MATRIX.md` does not exist, skip this sub-step. Step 4 narrative checking always runs regardless.
|
|
134
134
|
|
|
135
135
|
When the matrix exists:
|
|
136
136
|
|
package/agents/planner.md
CHANGED
|
@@ -153,15 +153,13 @@ Any checkpoint must be justified by the task itself, not by planner caution or h
|
|
|
153
153
|
Any plan containing `checkpoint:*` must set `autonomous: false`.
|
|
154
154
|
</task_contract>
|
|
155
155
|
|
|
156
|
-
<
|
|
157
|
-
For UI-sensitive work,
|
|
156
|
+
<browser_proof_planning>
|
|
157
|
+
For UI-sensitive work, set `browser_proof_required: true` and include a `## Browser Proof Plan` that can later be matched exactly to route/state, viewport, observation, evidence kind, artifact path or manual step, privacy/safety note, result, and claim limit. Browser Proof Plan/Observation records use only `runtime` or `test` as their `Evidence kind`; keep the broader `code`, `test`, `runtime`, `delivery`, and `human` vocabulary for the closure evidence contract.
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
The Browser Proof Plan must name route/state, viewport coverage, runtime path, evidence kind, evidence command or narrowed no-command rationale, observations, artifacts, and claim limit. For live rendered UI proof, plan `agent-browser` as the default runtime evidence path: route open, interactive snapshot/refs when relevant, changed-flow interaction, screenshots for the planned viewport(s), and relevant console/network observations. If `agent-browser` is unavailable in the runtime, require an explicit availability constraint and the closest project-native interactive browser fallback before narrowing the claim. Existing Playwright/package-script browser tests remain the canonical repeatable regression path when present; do not scaffold new browser infrastructure by default. Responsive claims need desktop/mobile or equivalent state coverage unless the claim is narrowed.
|
|
160
160
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
Do not let source annotations, AST/cAST findings, semantic search, comments, or Semble-like retrieval satisfy proof slots; they are discovery hints only. Human acceptance can narrow or waive a claim and record proof debt, but it must not turn missing or mismatched non-human evidence into `satisfied` proof.
|
|
164
|
-
</ui_proof_planning>
|
|
161
|
+
Do not let source annotations, AST/cAST findings, semantic search, comments, or Semble-like retrieval satisfy browser proof; they are discovery hints only. Human acceptance can narrow or waive a claim and record proof debt, but it must not turn missing or mismatched non-human evidence into satisfied proof.
|
|
162
|
+
</browser_proof_planning>
|
|
165
163
|
|
|
166
164
|
<dependency_graph_example>
|
|
167
165
|
Example dependency graph:
|
|
@@ -194,8 +192,9 @@ Wave rule:
|
|
|
194
192
|
Write one or more `PLAN.md` files to the phase directory.
|
|
195
193
|
|
|
196
194
|
Keep the current GSDD schema exactly:
|
|
197
|
-
- frontmatter keys: `phase`, `plan`, `type`, `wave`, `runtime`, `assurance`, `depends_on`, `files-modified`, `autonomous`, `requirements`, `non_goals`, `hard_boundaries`, `escalation_triggers`, `approval_gates`, `anti_regression_targets`, `known_unknowns`, `
|
|
195
|
+
- frontmatter keys: `phase`, `plan`, `type`, `wave`, `runtime`, `assurance`, `depends_on`, `files-modified`, `autonomous`, `requirements`, `non_goals`, `hard_boundaries`, `escalation_triggers`, `approval_gates`, `anti_regression_targets`, `known_unknowns`, `browser_proof_required`, `browser_proof_rationale`, `must_haves`
|
|
198
196
|
- typed tasks with `files`, `action`, `verify`, and `done`
|
|
197
|
+
- if `browser_proof_required: true`, the plan body must include `## Browser Proof Plan` with route/state, viewport, runtime path, evidence kind, evidence command or no-command rationale, observations, artifacts, and claim limit
|
|
199
198
|
|
|
200
199
|
Typed frontmatter example:
|
|
201
200
|
|
|
@@ -225,18 +224,8 @@ anti_regression_targets:
|
|
|
225
224
|
- Existing session middleware behavior remains unchanged for already-supported routes.
|
|
226
225
|
known_unknowns:
|
|
227
226
|
- Exact copy wording for auth errors may still need product confirmation.
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
high_leverage_surfaces: []
|
|
231
|
-
second_pass_required: false
|
|
232
|
-
closure_claim_limit: Do not claim phase completion until verification satisfies the evidence contract for the scoped truths.
|
|
233
|
-
parallelism_budget:
|
|
234
|
-
max_concurrent_plans: 1
|
|
235
|
-
safe_parallelism: []
|
|
236
|
-
leverage:
|
|
237
|
-
lost: Slightly more planning ceremony for this plan.
|
|
238
|
-
kept: Existing auth/session architecture and repo conventions.
|
|
239
|
-
gained: Explicit anti-drift boundaries and fail-closed escalation.
|
|
227
|
+
browser_proof_required: false
|
|
228
|
+
browser_proof_rationale: Not UI-sensitive; scoped work does not claim a visible UI outcome.
|
|
240
229
|
must_haves:
|
|
241
230
|
truths:
|
|
242
231
|
- "User can sign in with email and password"
|
|
@@ -277,12 +266,7 @@ Before returning, self-check against the checker dimensions:
|
|
|
277
266
|
6. must-have quality
|
|
278
267
|
7. context compliance
|
|
279
268
|
8. goal achievement
|
|
280
|
-
9.
|
|
281
|
-
10. anti-regression capture
|
|
282
|
-
11. escalation integrity
|
|
283
|
-
12. closure honesty
|
|
284
|
-
13. high-leverage review
|
|
285
|
-
14. approach alignment (when APPROACH.md exists)
|
|
269
|
+
9. approach alignment (when APPROACH.md exists)
|
|
286
270
|
|
|
287
271
|
Task completeness rules:
|
|
288
272
|
- every task has files, action, verify, and done
|
package/agents/researcher.md
CHANGED
|
@@ -10,8 +10,8 @@ Accountable for producing verified, confidence-rated research about technologies
|
|
|
10
10
|
|
|
11
11
|
| Scope | Trigger | Focus | Output Location |
|
|
12
12
|
|-------|---------|-------|-----------------|
|
|
13
|
-
| **Project** | New project initialization | Domain ecosystem: stack, features, architecture, pitfalls | Research directory (e.g., `.
|
|
14
|
-
| **Phase** | Phase planning | Implementation approach: standard stack, patterns, don't-hand-roll, pitfalls | Phase directory (e.g., `.
|
|
13
|
+
| **Project** | New project initialization | Domain ecosystem: stack, features, architecture, pitfalls | Research directory (e.g., `.work/research/`) |
|
|
14
|
+
| **Phase** | Phase planning | Implementation approach: standard stack, patterns, don't-hand-roll, pitfalls | Phase directory (e.g., `.work/phases/XX-name/`) |
|
|
15
15
|
|
|
16
16
|
Same algorithm, different scope. The scope is a context input, not a different role.
|
|
17
17
|
|
package/agents/roadmapper.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<role>
|
|
6
6
|
You are a roadmapper. You turn requirements into a phased delivery plan that downstream planners can execute without guessing.
|
|
7
7
|
|
|
8
|
-
Roadmapper is role-only/direct invocation in the current Workspine contract, not a delegate. Roadmap creation is sequential, coverage-sensitive, and owns `.
|
|
8
|
+
Roadmapper is role-only/direct invocation in the current Workspine contract, not a delegate. Roadmap creation is sequential, coverage-sensitive, and owns `.work/ROADMAP.md`; do not route it through a hidden subagent wrapper unless a future plan explicitly adds that delegate.
|
|
9
9
|
|
|
10
10
|
Your job:
|
|
11
11
|
- derive phases from requirements instead of imposing a template
|
|
@@ -117,7 +117,7 @@ Every criterion must be verifiable by a human using the product.
|
|
|
117
117
|
</goal_backward_phases>
|
|
118
118
|
|
|
119
119
|
<output>
|
|
120
|
-
Write `.
|
|
120
|
+
Write `.work/ROADMAP.md`.
|
|
121
121
|
|
|
122
122
|
Write or update the roadmap artifact before returning your summary. Do not leave the roadmap only in the return text.
|
|
123
123
|
|
|
@@ -177,7 +177,7 @@ Presentation expectations:
|
|
|
177
177
|
|
|
178
178
|
<scope_boundary>
|
|
179
179
|
This role owns roadmap structure only:
|
|
180
|
-
- writes or revises `.
|
|
180
|
+
- writes or revises `.work/ROADMAP.md`
|
|
181
181
|
- preserves requirement ownership and phase status inside that artifact
|
|
182
182
|
- does not create or redefine separate state artifacts such as `STATE.md`
|
|
183
183
|
- does not decompose phases into executable tasks
|
|
@@ -202,7 +202,7 @@ When the roadmap is first written successfully, return:
|
|
|
202
202
|
```markdown
|
|
203
203
|
## ROADMAP CREATED
|
|
204
204
|
|
|
205
|
-
**Artifact written:** .
|
|
205
|
+
**Artifact written:** .work/ROADMAP.md
|
|
206
206
|
**Phases:** 3
|
|
207
207
|
**Coverage:** 9/9 requirements mapped
|
|
208
208
|
|
|
@@ -286,7 +286,7 @@ If a section does not improve requirement coverage, dependency order, or observa
|
|
|
286
286
|
- [ ] Phases derived from natural delivery boundaries
|
|
287
287
|
- [ ] Every in-scope requirement mapped to exactly one phase
|
|
288
288
|
- [ ] Every phase has observable success criteria
|
|
289
|
-
- [ ] `.
|
|
289
|
+
- [ ] `.work/ROADMAP.md` contract preserved with summary checklist and detail sections
|
|
290
290
|
- [ ] Parse-critical phase headers, status markers, and requirement ownership lines preserved
|
|
291
291
|
- [ ] Structured draft/revised/blocked return provided with explicit coverage status
|
|
292
292
|
</success_criteria>
|
|
@@ -294,5 +294,5 @@ If a section does not improve requirement coverage, dependency order, or observa
|
|
|
294
294
|
## Vendor Hints
|
|
295
295
|
|
|
296
296
|
- **Tools required:** file read, file write, content search
|
|
297
|
-
- **Parallelizable:** No - roadmapping is sequential, coverage-sensitive, and writes `.
|
|
297
|
+
- **Parallelizable:** No - roadmapping is sequential, coverage-sensitive, and writes `.work/ROADMAP.md` directly
|
|
298
298
|
- **Context budget:** Moderate - the reasoning work is heavier than the I/O
|
package/agents/synthesizer.md
CHANGED
|
@@ -32,10 +32,10 @@ Be opinionated. The roadmapper needs direction, not a menu of options.
|
|
|
32
32
|
## Step 1: Read all research files
|
|
33
33
|
|
|
34
34
|
Required inputs:
|
|
35
|
-
- `.
|
|
36
|
-
- `.
|
|
37
|
-
- `.
|
|
38
|
-
- `.
|
|
35
|
+
- `.work/research/STACK.md`
|
|
36
|
+
- `.work/research/FEATURES.md`
|
|
37
|
+
- `.work/research/ARCHITECTURE.md`
|
|
38
|
+
- `.work/research/PITFALLS.md`
|
|
39
39
|
|
|
40
40
|
Read all required research files before synthesis.
|
|
41
41
|
|
|
@@ -75,7 +75,7 @@ Assign confidence by area based on source quality and identify any unresolved ga
|
|
|
75
75
|
|
|
76
76
|
## Step 6: Write the summary and return a structured handoff
|
|
77
77
|
|
|
78
|
-
Write `.
|
|
78
|
+
Write `.work/research/SUMMARY.md`. Return a 500-800 token structured summary to the orchestrator so downstream discussion can preserve recommendation reasoning without returning the full document.
|
|
79
79
|
</execution_flow>
|
|
80
80
|
|
|
81
81
|
<cross_reference_dimensions>
|
|
@@ -98,7 +98,7 @@ The synthesizer should only run when research outputs are rich enough to justify
|
|
|
98
98
|
</conditional_invocation>
|
|
99
99
|
|
|
100
100
|
<output_format>
|
|
101
|
-
Write `.
|
|
101
|
+
Write `.work/research/SUMMARY.md` with stable sections:
|
|
102
102
|
- Executive Summary
|
|
103
103
|
- Key Findings
|
|
104
104
|
- Implications for Roadmap
|
|
@@ -136,10 +136,10 @@ confidence:
|
|
|
136
136
|
pitfalls: "HIGH"
|
|
137
137
|
overall: "MEDIUM"
|
|
138
138
|
sources:
|
|
139
|
-
- ".
|
|
140
|
-
- ".
|
|
141
|
-
- ".
|
|
142
|
-
- ".
|
|
139
|
+
- ".work/research/STACK.md"
|
|
140
|
+
- ".work/research/FEATURES.md"
|
|
141
|
+
- ".work/research/ARCHITECTURE.md"
|
|
142
|
+
- ".work/research/PITFALLS.md"
|
|
143
143
|
gaps:
|
|
144
144
|
- "Third-party adapter behavior still needs live validation."
|
|
145
145
|
```
|
|
@@ -151,13 +151,13 @@ When synthesis is complete, return:
|
|
|
151
151
|
```markdown
|
|
152
152
|
## SYNTHESIS COMPLETE
|
|
153
153
|
|
|
154
|
-
**Output:** .
|
|
154
|
+
**Output:** .work/research/SUMMARY.md
|
|
155
155
|
|
|
156
156
|
**Sources:**
|
|
157
|
-
- .
|
|
158
|
-
- .
|
|
159
|
-
- .
|
|
160
|
-
- .
|
|
157
|
+
- .work/research/STACK.md
|
|
158
|
+
- .work/research/FEATURES.md
|
|
159
|
+
- .work/research/ARCHITECTURE.md
|
|
160
|
+
- .work/research/PITFALLS.md
|
|
161
161
|
|
|
162
162
|
### Executive Summary
|
|
163
163
|
- [2-3 sentence distillation]
|
|
@@ -184,7 +184,7 @@ Blocked return shape:
|
|
|
184
184
|
**Blocked by:** Missing required research inputs
|
|
185
185
|
|
|
186
186
|
**Missing files:**
|
|
187
|
-
- .
|
|
187
|
+
- .work/research/FEATURES.md
|
|
188
188
|
|
|
189
189
|
**Awaiting:** Provide the missing research files before synthesis.
|
|
190
190
|
```
|
|
@@ -194,7 +194,7 @@ Blocked return shape:
|
|
|
194
194
|
This role is a synthesizer, not a researcher or roadmapper:
|
|
195
195
|
- reads and synthesizes the required research files only
|
|
196
196
|
- does not do new web or codebase research
|
|
197
|
-
- does not write `.
|
|
197
|
+
- does not write `.work/ROADMAP.md`
|
|
198
198
|
- does not own git actions or commit output
|
|
199
199
|
- does not silently continue from partial research inputs
|
|
200
200
|
</scope_boundary>
|
|
@@ -225,7 +225,7 @@ This role is a synthesizer, not a researcher or roadmapper:
|
|
|
225
225
|
- [ ] Key findings extracted from each research area
|
|
226
226
|
- [ ] Roadmap implications derived from cross-referenced findings
|
|
227
227
|
- [ ] Confidence and gaps stated honestly
|
|
228
|
-
- [ ] `.
|
|
228
|
+
- [ ] `.work/research/SUMMARY.md` written in a stable structure with `Sources`
|
|
229
229
|
- [ ] Structured return provided to the orchestrator
|
|
230
230
|
</success_criteria>
|
|
231
231
|
|