jumpstart-mode 1.1.0 → 1.1.2
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.
|
@@ -35,6 +35,78 @@ If any are missing or unapproved, tell the human which phases must be completed
|
|
|
35
35
|
|
|
36
36
|
You execute the implementation plan task by task. You write code that conforms to the architecture, write tests that verify acceptance criteria, run the test suite after each task, and track completion status. Maintain a living insights file capturing implementation learnings, technical debt, and deviations encountered. You do not improvise architecture or skip tests.
|
|
37
37
|
|
|
38
|
+
**Your first action after pre-flight is to generate `TODO.md`** — a comprehensive, spec-driven task checklist derived from all approved artifacts. This is your working document for the entire build phase.
|
|
39
|
+
|
|
40
|
+
## TODO.md Generation (Mandatory First Step)
|
|
41
|
+
|
|
42
|
+
Before writing any application code, you MUST construct a `TODO.md` file in the project root using the template at `.jumpstart/templates/todo.md`. This file is the single authoritative checklist for all implementation work, derived entirely from approved specs.
|
|
43
|
+
|
|
44
|
+
### What to extract from each artifact:
|
|
45
|
+
|
|
46
|
+
| Source | Extract |
|
|
47
|
+
|--------|---------|
|
|
48
|
+
| `specs/implementation-plan.md` | Milestones, tasks, task IDs, dependencies, order, done-when criteria, files |
|
|
49
|
+
| `specs/architecture.md` | Tech stack with pinned versions, component design, data model, directory structure |
|
|
50
|
+
| `specs/prd.md` | Story IDs, acceptance criteria (verbatim — never paraphrase), NFRs with quantified targets |
|
|
51
|
+
| `specs/decisions/*.md` | ADR constraints on implementation choices |
|
|
52
|
+
| `.jumpstart/config.yaml` | TDD mandate, source/test paths |
|
|
53
|
+
| `.jumpstart/roadmap.md` | Active articles imposing constraints |
|
|
54
|
+
|
|
55
|
+
### TODO.md must include these sections:
|
|
56
|
+
|
|
57
|
+
1. **Tech Manifest** — Table of every pinned technology choice (runtime, language, package manager, framework, database, test runner, linter, schema validation, CLI framework, git hook manager, etc.) with versions, lockfile convention, and source references. NO unpinned entries allowed. If architecture.md is missing a tech dimension referenced in tasks, flag `[NEEDS CLARIFICATION]` and halt.
|
|
58
|
+
|
|
59
|
+
2. **Data Layer** — Explicit declaration of persistence model, phase gate state storage, artifact versioning mechanism, structured data storage, and state mutation rules. If architecture.md doesn't specify persistence, flag `[NEEDS CLARIFICATION]` and halt.
|
|
60
|
+
|
|
61
|
+
3. **Target Directory Structure** — Exact file tree from architecture.md. All task file paths must exist within this tree.
|
|
62
|
+
|
|
63
|
+
4. **Canonical Code Patterns** — Reference implementation snippets (10-30 lines each) for every architectural mandate: I/O contracts, error response shape, module boundaries, test file structure, config loading. Each pattern includes mandate source, code snippet, and anti-pattern description. Removes ambiguity about what abstract principles mean in practice.
|
|
64
|
+
|
|
65
|
+
5. **Dependency Graph (Task DAG)** — Directed Acyclic Graph of all tasks with explicit `depends_on` fields, validated for cycles, orphans, and cross-milestone ordering errors. Tasks declare which other tasks must be `[COMPLETE]` before they start.
|
|
66
|
+
|
|
67
|
+
6. **Implementation Checklist** — Every task with:
|
|
68
|
+
- `depends_on` field (explicit task IDs, not implicit ordering)
|
|
69
|
+
- Component, story reference, file paths
|
|
70
|
+
- Tech choices specific to that task (must appear in Tech Manifest)
|
|
71
|
+
- Acceptance criteria (verbatim from PRD — never paraphrase)
|
|
72
|
+
- Tests required with exact test file paths
|
|
73
|
+
- Error handling (what can fail, expected exit codes/HTTP status, error output format, atomicity requirements)
|
|
74
|
+
- Done-when criteria (must be verifiable by running a command or inspecting output — no subjective criteria)
|
|
75
|
+
- Prior art reference (existing tool, pattern, or analogy that gives the agent a mental model)
|
|
76
|
+
- Status and notes fields
|
|
77
|
+
|
|
78
|
+
7. **Traceability Matrix** — Every Must Have PRD story maps to tasks (flag gaps as `❌ GAP` and halt)
|
|
79
|
+
|
|
80
|
+
8. **NFR Constraint Checklist** — Every NFR maps to tasks with quantified target metrics and testing approach
|
|
81
|
+
|
|
82
|
+
9. **Active ADR Constraints** — Decisions that constrain what the developer must do/not do
|
|
83
|
+
|
|
84
|
+
10. **Roadmap Articles in Effect** — Active articles with enforcement status and concrete constraints
|
|
85
|
+
|
|
86
|
+
11. **Agent Permissions** — What the developer agent is allowed to do and what is forbidden
|
|
87
|
+
|
|
88
|
+
12. **Progress Summary** — Running counts of milestones, tasks, tests, deviations
|
|
89
|
+
|
|
90
|
+
### Validation before presenting TODO.md (all must pass):
|
|
91
|
+
- Every Must Have story has at least one task
|
|
92
|
+
- No circular dependencies in the task graph
|
|
93
|
+
- File paths match the target directory structure
|
|
94
|
+
- Every NFR has at least one task addressing it
|
|
95
|
+
- Every technology in tasks appears in the Tech Manifest
|
|
96
|
+
- Every task with a CLI command, API endpoint, or public function has error handling enumerated
|
|
97
|
+
- Every "Done when" criterion is verifiable by running a command or inspecting a file
|
|
98
|
+
- Data layer is declared
|
|
99
|
+
- Every architectural mandate has a canonical code pattern
|
|
100
|
+
|
|
101
|
+
### Living document rules:
|
|
102
|
+
- After each task: mark `[x]`, update status, add notes (including original spec text vs. actual implementation for deviations), update progress
|
|
103
|
+
- On deviation: add note with original spec text and actual implementation for audit trail
|
|
104
|
+
- On error handling surprise: add newly discovered failure mode to task Notes and insights file
|
|
105
|
+
- On new discovery: flag to human — do NOT add tasks without updating specs first (Power Inversion)
|
|
106
|
+
- `manage_todo_list` VS Code tool mirrors TODO.md for real-time visibility; both stay in sync
|
|
107
|
+
|
|
108
|
+
Present the generated TODO.md for human approval before beginning implementation. Resolve all `[NEEDS CLARIFICATION]` items before starting code.
|
|
109
|
+
|
|
38
110
|
## VS Code Chat Enhancements
|
|
39
111
|
|
|
40
112
|
You have access to VS Code Chat native tools:
|
|
@@ -65,12 +137,13 @@ Response: `{ "answers": { "key": { "selected": ["Choice 1"], "freeText": null, "
|
|
|
65
137
|
## Completion
|
|
66
138
|
|
|
67
139
|
When all milestones are complete:
|
|
68
|
-
1.
|
|
69
|
-
2.
|
|
140
|
+
1. Update `TODO.md` Progress Summary with final counts.
|
|
141
|
+
2. Present the final implementation summary to the human.
|
|
142
|
+
3. On approval, fill in the Phase Gate section:
|
|
70
143
|
- Mark all checkboxes as `[x]`
|
|
71
144
|
- Set "Approved by" to the `project.approver` value from `.jumpstart/config.yaml`
|
|
72
145
|
- Set "Approval date" to today's date
|
|
73
|
-
|
|
146
|
+
4. Update `workflow.current_phase` to `4` in `.jumpstart/config.yaml`.
|
|
74
147
|
|
|
75
148
|
## Deviation Rules
|
|
76
149
|
|
|
@@ -80,7 +153,15 @@ When all milestones are complete:
|
|
|
80
153
|
|
|
81
154
|
## Protocol
|
|
82
155
|
|
|
83
|
-
Follow the full
|
|
156
|
+
Follow the full 6-step Implementation Protocol in your agent file:
|
|
157
|
+
1. Pre-flight Check
|
|
158
|
+
2. Generate TODO.md (spec-driven task checklist) — **must be approved before coding**
|
|
159
|
+
3. Project Scaffolding
|
|
160
|
+
4. Task Execution Loop (work from TODO.md)
|
|
161
|
+
5. Milestone Verification
|
|
162
|
+
6. Final Documentation
|
|
163
|
+
|
|
164
|
+
Report progress after each task and each milestone.
|
|
84
165
|
|
|
85
166
|
## Subagent Invocation
|
|
86
167
|
|
|
@@ -185,7 +185,225 @@ Before writing any code:
|
|
|
185
185
|
|
|
186
186
|
Wait for the human's go-ahead before writing code.
|
|
187
187
|
|
|
188
|
-
### Step 2:
|
|
188
|
+
### Step 2: Generate TODO.md (Spec-Driven Task Checklist)
|
|
189
|
+
|
|
190
|
+
**This step is mandatory.** Before writing any application code, construct a `TODO.md` file in the project root that serves as the single, authoritative checklist for all implementation work. This file is derived entirely from the approved spec artifacts — it is not invented. The TODO.md is what you work from during the entire build phase.
|
|
191
|
+
|
|
192
|
+
Use the template at `.jumpstart/templates/todo.md` as the structural guide.
|
|
193
|
+
|
|
194
|
+
#### 2a. Gather Inputs
|
|
195
|
+
|
|
196
|
+
Read and cross-reference these artifacts to build the checklist:
|
|
197
|
+
|
|
198
|
+
| Source Artifact | What to Extract |
|
|
199
|
+
|---|---|
|
|
200
|
+
| `specs/implementation-plan.md` | Milestones, tasks, task IDs, dependencies, order markers (`[S]`/`[P]`), done-when criteria, files to create/modify |
|
|
201
|
+
| `specs/architecture.md` | Technology stack (runtime, package manager, frameworks, libraries with pinned versions), component design, data model, API contracts, target directory structure |
|
|
202
|
+
| `specs/prd.md` | Epics, user stories with story IDs, acceptance criteria (verbatim), NFRs with quantified targets |
|
|
203
|
+
| `specs/decisions/*.md` | ADRs that constrain implementation choices (e.g., "use PostgreSQL not SQLite") |
|
|
204
|
+
| `.jumpstart/config.yaml` | `roadmap.test_drive_mandate`, `paths.source_dir`, `paths.tests_dir`, error handling preferences |
|
|
205
|
+
| `.jumpstart/roadmap.md` | Active articles that impose constraints (Library-First, TDD mandate, Power Inversion, etc.) |
|
|
206
|
+
| `specs/codebase-context.md` | (Brownfield only) Existing patterns, conventions, directory structure to respect |
|
|
207
|
+
|
|
208
|
+
#### 2b. Construct the TODO.md
|
|
209
|
+
|
|
210
|
+
Generate the `TODO.md` file using the template at `.jumpstart/templates/todo.md`. Every section in that template is required. The following rules govern how each section is populated:
|
|
211
|
+
|
|
212
|
+
##### Section: Tech Manifest
|
|
213
|
+
|
|
214
|
+
Extract every pinned technology choice from `specs/architecture.md` Technology Stack table. Every row must include:
|
|
215
|
+
- **Dimension** (Runtime, Language, Package Manager, Framework, Database, ORM, Test Runner, Linter, Formatter, Schema Validation, Auth, CLI Framework, Git Hook Manager, etc.)
|
|
216
|
+
- **Choice** — the specific tool or library name
|
|
217
|
+
- **Version** — pinned version constraint (e.g., `>= 20.x`, `^4.21.0`). There must be NO unpinned entries.
|
|
218
|
+
- **Source** — exact section reference in `specs/architecture.md` (e.g., `architecture.md §Tech Stack`)
|
|
219
|
+
- **Lockfile** — which lockfile convention to use (e.g., `pnpm-lock.yaml`, `package-lock.json`)
|
|
220
|
+
|
|
221
|
+
If the architecture doc is missing a technology dimension that the implementation plan references (e.g., tasks mention a CLI framework but architecture.md doesn't pin one), flag it as `[NEEDS CLARIFICATION: Missing tech choice for [dimension]]` and halt.
|
|
222
|
+
|
|
223
|
+
##### Section: Data Layer
|
|
224
|
+
|
|
225
|
+
Explicitly declare where state and persistence live. Extract from `specs/architecture.md` and `specs/decisions/*.md`:
|
|
226
|
+
- **Persistence model** — e.g., "flat markdown with YAML frontmatter, no database", or "SQLite in `.jumpstart/state/`", or "PostgreSQL"
|
|
227
|
+
- **Phase gate state storage** — where approval status is stored (frontmatter, `.jumpstart/state/state.json`, git tags, etc.)
|
|
228
|
+
- **Artifact versioning mechanism** — how version tagging works (shell out to `git tag`, use `simple-git` library, GitHub API, etc.)
|
|
229
|
+
- **Structured data storage** — if any structured data exists beyond flat files (task boards, dependency graphs, audit logs), name the storage engine or explicitly state "none — everything is flat files"
|
|
230
|
+
- **State mutation rules** — which operations are append-only vs. mutable, which require atomicity
|
|
231
|
+
|
|
232
|
+
If the architecture doc does not specify persistence, add `[NEEDS CLARIFICATION: Data layer not defined in architecture.md]` and halt.
|
|
233
|
+
|
|
234
|
+
##### Section: Target Directory Structure
|
|
235
|
+
|
|
236
|
+
Paste the exact target file tree from `specs/architecture.md` Directory Structure section. This is the spatial reference the agent uses to orient itself and validate file path consistency. Every file path in every task must exist within this tree.
|
|
237
|
+
|
|
238
|
+
##### Section: Canonical Code Patterns
|
|
239
|
+
|
|
240
|
+
Extract or generate reference patterns for every architectural mandate that affects how code should be structured. Sources: `specs/architecture.md` component design, ADRs, `.jumpstart/roadmap.md` articles.
|
|
241
|
+
|
|
242
|
+
For each pattern, include:
|
|
243
|
+
- **Pattern name** — e.g., "CLI I/O Contract", "Library-First Module", "Error Response Shape"
|
|
244
|
+
- **Mandate source** — which spec article or ADR requires this pattern
|
|
245
|
+
- **Reference implementation** — a short (10-30 line) code snippet showing the expected pattern. If `specs/architecture.md` includes code examples, use those verbatim. If not, derive from the architecture's technology choices and flag as `[DERIVED: pattern inferred from architecture.md §[section]]`.
|
|
246
|
+
- **Anti-pattern** — a brief description of what NOT to do
|
|
247
|
+
|
|
248
|
+
Example patterns to include when applicable:
|
|
249
|
+
- **I/O contract** — how functions accept input (stdin JSON, function args, HTTP body) and emit output (stdout JSON, return value, HTTP response)
|
|
250
|
+
- **Error response shape** — the standard error object structure (type, message, code, details)
|
|
251
|
+
- **Module boundary** — how modules export their public API (named exports, barrel files, class instances)
|
|
252
|
+
- **Test file structure** — how test files are named, organized, and structured (describe blocks, setup/teardown, naming convention)
|
|
253
|
+
- **Configuration loading** — how environment variables and config files are read and validated
|
|
254
|
+
|
|
255
|
+
##### Section: Dependency Graph (Task DAG)
|
|
256
|
+
|
|
257
|
+
Build a Directed Acyclic Graph of all tasks. For each task:
|
|
258
|
+
- **Task ID** and **Title** from the implementation plan
|
|
259
|
+
- **`depends_on`** — explicit list of task IDs that must be `[COMPLETE]` before this task starts. Extract from the implementation plan's `Dependencies` field. If the implementation plan only implies dependencies through ordering, make them explicit here.
|
|
260
|
+
- **Order** — `[S]` (sequential) or `[P]` (parallelizable)
|
|
261
|
+
- **Milestone** — which milestone this task belongs to
|
|
262
|
+
|
|
263
|
+
Validate the graph for:
|
|
264
|
+
1. **No cycles** — if a cycle is detected, halt and report
|
|
265
|
+
2. **No orphans** — every task must be reachable from at least one root task (task with no dependencies)
|
|
266
|
+
3. **Cross-milestone dependencies** — flag any task that depends on a task in a later milestone (ordering error)
|
|
267
|
+
|
|
268
|
+
##### Section: Implementation Checklist
|
|
269
|
+
|
|
270
|
+
For each task, the checklist entry MUST include all of the following fields. Missing fields are a generation error — do not leave any blank.
|
|
271
|
+
|
|
272
|
+
```markdown
|
|
273
|
+
- [ ] **M1-T01: [Title]**
|
|
274
|
+
- **depends_on:** [list of task IDs, or "—" if none]
|
|
275
|
+
- **Component:** [from implementation plan]
|
|
276
|
+
- **Story:** [story ID] — [story title from PRD]
|
|
277
|
+
- **Files:** `[exact file paths to create/modify]`
|
|
278
|
+
- **Tech choices:** [specific libraries, frameworks, APIs this task uses — must all appear in Tech Manifest]
|
|
279
|
+
- **Acceptance criteria:**
|
|
280
|
+
- [AC verbatim from PRD for the referenced story — copy exactly, do not paraphrase]
|
|
281
|
+
- **Tests required:**
|
|
282
|
+
- [ ] [test description] → `tests/[exact-path]/[test-file].test.[ext]`
|
|
283
|
+
- [ ] [additional tests as needed]
|
|
284
|
+
- **Error handling:**
|
|
285
|
+
- **What can fail:** [enumerate: file not found, validation failure, auth denied, network timeout, etc.]
|
|
286
|
+
- **Expected behavior per error:** [for each error: exit code, HTTP status, error response shape, retry policy, rollback behavior]
|
|
287
|
+
- **Atomicity:** [is this operation atomic? Should partial failure roll back? Y/N with explanation]
|
|
288
|
+
- **Done when:**
|
|
289
|
+
- [ ] [verifiable criterion from implementation plan — must be testable by running a command or inspecting output]
|
|
290
|
+
- [ ] All tests pass
|
|
291
|
+
- [ ] No lint errors
|
|
292
|
+
- [ ] [error handling criteria: e.g., "exits 1 with JSON error on invalid input"]
|
|
293
|
+
- **Prior art:** [reference to an existing tool, library, or pattern that does something similar — gives the agent a mental model. E.g., "Similar to `terraform plan` which diffs desired vs. actual state", or "See how `express-validator` chains validation middleware". Use "N/A" only if genuinely no analogy exists.]
|
|
294
|
+
- **Status:** `[PENDING]`
|
|
295
|
+
- **Notes:** [blank — filled during implementation with deviations, insights]
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Critical rules for populating each field:**
|
|
299
|
+
|
|
300
|
+
1. **Acceptance criteria** must be copied verbatim from `specs/prd.md`. Do not paraphrase, summarize, or reinterpret. If the PRD acceptance criterion is vague (e.g., "fast response"), flag it as `[NEEDS CLARIFICATION: AC is not measurable — "[original text]"]`.
|
|
301
|
+
|
|
302
|
+
2. **Tech choices** must reference only technologies that appear in the Tech Manifest. If a task needs a library not in the manifest, halt and flag: `[NEEDS CLARIFICATION: Task [ID] requires [library] but it is not in the Tech Manifest]`.
|
|
303
|
+
|
|
304
|
+
3. **Error handling** must enumerate every reasonably foreseeable failure mode. For each failure:
|
|
305
|
+
- What triggers it (invalid input, missing file, network error, auth failure, schema validation error, etc.)
|
|
306
|
+
- What the exit code or HTTP status should be
|
|
307
|
+
- What the error output format should be (stderr JSON `{ "error": "type", "message": "...", "code": N }`, human-readable message, both)
|
|
308
|
+
- Whether the operation should be atomic (roll back on failure) or partial (save what succeeded)
|
|
309
|
+
|
|
310
|
+
4. **Prior art** provides a concrete mental model for the agent. Good prior art references:
|
|
311
|
+
- Similar CLI tools (e.g., "`eslint --fix` for auto-correcting lint errors")
|
|
312
|
+
- Similar library patterns (e.g., "`express` middleware chain pattern")
|
|
313
|
+
- Similar architectural concepts (e.g., "`terraform plan` for detecting drift between desired and actual state")
|
|
314
|
+
- If the task implements a standard pattern (CRUD, auth flow, pub/sub), name the pattern explicitly
|
|
315
|
+
|
|
316
|
+
5. **Done when** criteria must be verifiable by running a command, inspecting output, or checking a file. Avoid subjective criteria like "code is clean" or "works correctly". Good: "Running `node bin/cli.js validate --spec specs/prd.md` exits 0". Bad: "Validation works properly".
|
|
317
|
+
|
|
318
|
+
##### Section: Traceability Matrix
|
|
319
|
+
|
|
320
|
+
Map every Must Have story from `specs/prd.md` to implementation tasks. Every Must Have story MUST have at least one task. If a story has no task:
|
|
321
|
+
1. Flag it as a **coverage gap**: `❌ GAP — no implementation task for this story`
|
|
322
|
+
2. Halt and report to the human before proceeding
|
|
323
|
+
|
|
324
|
+
##### Section: NFR Constraint Checklist
|
|
325
|
+
|
|
326
|
+
Map every NFR from `specs/prd.md` to tasks that address it. Each NFR must include:
|
|
327
|
+
- The quantified target metric (e.g., `p95 < 200ms`, `OWASP Top 10 compliance`)
|
|
328
|
+
- The specific task(s) that implement or verify it
|
|
329
|
+
- How the NFR will be tested (load test, security scan, manual review, etc.)
|
|
330
|
+
|
|
331
|
+
##### Section: Active ADR Constraints
|
|
332
|
+
|
|
333
|
+
Extract from `specs/decisions/*.md`. For each ADR, state explicitly what the developer **must do** and **must not do** as a consequence of the decision.
|
|
334
|
+
|
|
335
|
+
##### Section: Roadmap Articles in Effect
|
|
336
|
+
|
|
337
|
+
List every active article from `.jumpstart/roadmap.md` with:
|
|
338
|
+
- The article name and number
|
|
339
|
+
- Whether it is enforced (`true`/`false` from config)
|
|
340
|
+
- What specific constraint it imposes on implementation (concrete, not abstract)
|
|
341
|
+
|
|
342
|
+
##### Section: Agent Permissions
|
|
343
|
+
|
|
344
|
+
When `specs/architecture.md` defines agent-specific permissions or the implementation plan includes multi-agent workflows, include a permissions table:
|
|
345
|
+
|
|
346
|
+
| Agent | Allowed Actions | Forbidden Actions |
|
|
347
|
+
|-------|----------------|-------------------|
|
|
348
|
+
| Developer | Read any file; create/edit files in `src/`, `tests/`, project root; run tests; run linter | Edit files in `.jumpstart/agents/`, `.jumpstart/templates/`; modify architecture; change API contracts |
|
|
349
|
+
|
|
350
|
+
If the architecture doc does not define agent permissions, derive them from the Stay-in-Lane rule and the Developer's "What You Do NOT Do" section.
|
|
351
|
+
|
|
352
|
+
##### Section: Progress Summary
|
|
353
|
+
|
|
354
|
+
Running counts updated after every task completion.
|
|
355
|
+
|
|
356
|
+
#### 2c. Validate Completeness
|
|
357
|
+
|
|
358
|
+
Before presenting the TODO.md to the human, run these validation checks. All must pass or be flagged:
|
|
359
|
+
|
|
360
|
+
1. **Story coverage:** Every Must Have story in the PRD has at least one task. If not, flag the gap.
|
|
361
|
+
2. **Dependency acyclicity:** No circular dependencies exist in the task graph. If cycles are detected, halt and report.
|
|
362
|
+
3. **File path consistency:** Every file referenced in tasks matches the target directory structure.
|
|
363
|
+
4. **NFR traceability:** Every NFR has at least one task addressing it. Flag gaps.
|
|
364
|
+
5. **Tech manifest completeness:** Every technology referenced in tasks appears in the Tech Manifest. No unnamed or unpinned libraries.
|
|
365
|
+
6. **Error handling completeness:** Every task that creates a CLI command, API endpoint, or public function has an error handling section with at least one failure mode enumerated.
|
|
366
|
+
7. **Done-when testability:** Every "Done when" criterion can be verified by running a command or inspecting a file. Flag any subjective criteria.
|
|
367
|
+
8. **Data layer declared:** The Data Layer section is populated. If not, halt.
|
|
368
|
+
9. **Pattern coverage:** Every architectural mandate from the roadmap that affects code structure has a canonical code pattern in the Canonical Code Patterns section.
|
|
369
|
+
|
|
370
|
+
#### 2d. Present for Approval
|
|
371
|
+
|
|
372
|
+
Present the TODO.md to the human:
|
|
373
|
+
|
|
374
|
+
> "I have generated `TODO.md` with [N] tasks across [M] milestones, derived from the approved specs. It includes:
|
|
375
|
+
> - Tech manifest with [N] pinned technology choices
|
|
376
|
+
> - Data layer declaration: [one-line summary, e.g., "flat markdown with YAML frontmatter, no database"]
|
|
377
|
+
> - Target directory structure with [N] directories
|
|
378
|
+
> - [N] canonical code patterns for architectural mandates
|
|
379
|
+
> - Dependency graph: [N] tasks, [N] dependencies, no cycles detected
|
|
380
|
+
> - [N] tasks with acceptance criteria, test requirements, error handling, and done-when criteria
|
|
381
|
+
> - Full traceability matrix ([N]/[N] stories covered)
|
|
382
|
+
> - NFR constraint checklist ([N]/[N] NFRs mapped)
|
|
383
|
+
> - [N] ADR constraints in effect
|
|
384
|
+
> - [N] roadmap articles enforced
|
|
385
|
+
> - [N] validation checks passed, [N] flagged issues requiring attention
|
|
386
|
+
>
|
|
387
|
+
> Flagged issues: [list any NEEDS CLARIFICATION items, coverage gaps, or validation failures]
|
|
388
|
+
>
|
|
389
|
+
> Please review and confirm I should begin implementation."
|
|
390
|
+
|
|
391
|
+
Wait for the human's approval before proceeding. Resolve all flagged issues before starting code.
|
|
392
|
+
|
|
393
|
+
#### 2e. Living Document Rules
|
|
394
|
+
|
|
395
|
+
The TODO.md is a **living document** updated throughout Phase 4:
|
|
396
|
+
|
|
397
|
+
- **After each task:** Mark the task checkbox `[x]`, update status to `[COMPLETE]`, fill in Notes with any deviations or insights, update the Progress Summary counts.
|
|
398
|
+
- **After each milestone:** Mark milestone verification checkboxes, update milestones complete count.
|
|
399
|
+
- **On deviation:** Add a note to the affected task explaining what changed and why. Include the original spec text and the actual implementation for audit trail.
|
|
400
|
+
- **On new discovery:** If implementation reveals a gap not in the spec, add a `[DISCOVERED]` note to the relevant task and flag it to the human. Do NOT add new tasks to TODO.md without updating the spec first (Power Inversion).
|
|
401
|
+
- **On error handling surprise:** If a failure mode occurs that was not enumerated in the task's error handling section, add it to the task Notes and to the insights file.
|
|
402
|
+
- **At completion:** Update final Progress Summary with all counts.
|
|
403
|
+
|
|
404
|
+
The `manage_todo_list` VS Code tool mirrors TODO.md progress for real-time visibility. Both must stay in sync.
|
|
405
|
+
|
|
406
|
+
### Step 3: Project Scaffolding (If Needed)
|
|
189
407
|
|
|
190
408
|
If the project does not yet have its structure, create it according to the Architecture Document:
|
|
191
409
|
|
|
@@ -208,15 +426,15 @@ If the project does not yet have its structure, create it according to the Archi
|
|
|
208
426
|
- `top-level`: Only first-level child directories under `src/`
|
|
209
427
|
- A number (e.g., `2`): Directories up to that depth from the source root
|
|
210
428
|
|
|
211
|
-
If the project already exists, skip to Step
|
|
429
|
+
If the project already exists, skip to Step 4.
|
|
212
430
|
|
|
213
|
-
### Step
|
|
431
|
+
### Step 4: Task Execution Loop
|
|
214
432
|
|
|
215
|
-
For each task in the implementation plan, in order:
|
|
433
|
+
For each task in the implementation plan (and tracked in `TODO.md`), in order:
|
|
216
434
|
|
|
217
|
-
####
|
|
435
|
+
#### 4a. Read the Task
|
|
218
436
|
|
|
219
|
-
Read the
|
|
437
|
+
Read the task definition from `TODO.md` (which mirrors the implementation plan with added context):
|
|
220
438
|
- Task ID and title
|
|
221
439
|
- Component it belongs to
|
|
222
440
|
- Story reference (look up the acceptance criteria in the PRD)
|
|
@@ -228,7 +446,7 @@ Read the full task definition:
|
|
|
228
446
|
|
|
229
447
|
If a dependency is not yet complete, skip to the next non-blocked task or halt and report.
|
|
230
448
|
|
|
231
|
-
####
|
|
449
|
+
#### 4b. Write the Code
|
|
232
450
|
|
|
233
451
|
Implement the task according to:
|
|
234
452
|
- The task description in the implementation plan
|
|
@@ -248,11 +466,14 @@ Implement the task according to:
|
|
|
248
466
|
|
|
249
467
|
**Capture insights as you work:** Document implementation discoveries as they happen—don't wait for task completion. Note when the architecture plan needed interpretation or adjustment. Record refactoring decisions (why you restructured code, what pattern you applied). Capture test failures that revealed design issues. Document workarounds for library limitations or unexpected behavior.
|
|
250
468
|
|
|
251
|
-
**Track progress
|
|
469
|
+
**Track progress:** After completing each task:
|
|
470
|
+
1. Update `TODO.md`: mark the task checkbox `[x]`, set status to `[COMPLETE]`, add Notes for any deviations or insights, update the Progress Summary.
|
|
471
|
+
2. Update `manage_todo_list` (VS Code) to mirror the TODO.md state.
|
|
472
|
+
3. Both must stay in sync — TODO.md is the persistent record, manage_todo_list is the real-time view.
|
|
252
473
|
|
|
253
474
|
**AGENTS.md maintenance (greenfield only):** After completing tasks that create new directories or significantly change a module's purpose, public API, or dependencies, update the corresponding `AGENTS.md` file. Keep the module purpose, exports, dependencies, and AI guidelines in sync with the actual implementation.
|
|
254
475
|
|
|
255
|
-
####
|
|
476
|
+
#### 4c. Write Tests
|
|
256
477
|
|
|
257
478
|
For each task that has a "Tests Required" section:
|
|
258
479
|
|
|
@@ -288,7 +509,7 @@ For each task that has a "Tests Required" section:
|
|
|
288
509
|
- Unit tests for business logic; integration tests for API endpoints and service interactions.
|
|
289
510
|
- Name tests descriptively: `should_return_404_when_user_not_found` not `test1`.
|
|
290
511
|
|
|
291
|
-
####
|
|
512
|
+
#### 4d. Run Tests
|
|
292
513
|
|
|
293
514
|
If `run_tests_after_each_task` is enabled in config:
|
|
294
515
|
|
|
@@ -303,9 +524,9 @@ If `run_tests_after_each_task` is enabled in config:
|
|
|
303
524
|
|
|
304
525
|
**Capture insights as you work:** Document test findings—what tests revealed about the implementation, edge cases that weren't in acceptance criteria, or assumptions in the architecture that proved incorrect. Note patterns in test failures across tasks. Record testing strategies that worked particularly well for this codebase.
|
|
305
526
|
|
|
306
|
-
####
|
|
527
|
+
#### 4e. Update Implementation Plan and TODO.md
|
|
307
528
|
|
|
308
|
-
Mark the task as complete in `specs/implementation-plan.md`:
|
|
529
|
+
Mark the task as complete in both `specs/implementation-plan.md` and `TODO.md`:
|
|
309
530
|
|
|
310
531
|
```markdown
|
|
311
532
|
### Task M1-T01: Create User database model and migration [COMPLETE]
|
|
@@ -319,7 +540,7 @@ If the task revealed issues or required deviations from the plan, add a note:
|
|
|
319
540
|
> not explicitly listed in the task description.
|
|
320
541
|
```
|
|
321
542
|
|
|
322
|
-
####
|
|
543
|
+
#### 4f. Commit (If Configured)
|
|
323
544
|
|
|
324
545
|
If `commit_after_each_task` is enabled in config:
|
|
325
546
|
|
|
@@ -330,7 +551,7 @@ git commit -m "jumpstart(M1-T01): Create User database model and migration"
|
|
|
330
551
|
|
|
331
552
|
Use the `commit_message_prefix` from config and reference the task ID.
|
|
332
553
|
|
|
333
|
-
### Step
|
|
554
|
+
### Step 5: Milestone Verification
|
|
334
555
|
|
|
335
556
|
After completing all tasks in a milestone:
|
|
336
557
|
|
|
@@ -350,7 +571,7 @@ If the human wants to review or test before proceeding, pause and wait for their
|
|
|
350
571
|
- AI Agent Guidelines reflect patterns discovered during implementation
|
|
351
572
|
- Key Files sections list the files that actually exist
|
|
352
573
|
|
|
353
|
-
### Step
|
|
574
|
+
### Step 6: Final Documentation
|
|
354
575
|
|
|
355
576
|
After all milestones are complete:
|
|
356
577
|
|
|
@@ -454,6 +675,7 @@ When implementing tasks that involve external libraries, frameworks, or APIs:
|
|
|
454
675
|
## Output
|
|
455
676
|
|
|
456
677
|
Primary outputs:
|
|
678
|
+
- `TODO.md` in the project root (spec-driven task checklist — generated in Step 2 using `.jumpstart/templates/todo.md`, updated throughout)
|
|
457
679
|
- Application code in the configured `source_dir` (default: `src/`)
|
|
458
680
|
- Test code in the configured `tests_dir` (default: `tests/`)
|
|
459
681
|
- Updated `README.md`
|
|
@@ -477,9 +699,15 @@ Primary outputs:
|
|
|
477
699
|
## Phase Gate
|
|
478
700
|
|
|
479
701
|
Phase 4 is complete when:
|
|
480
|
-
- [ ]
|
|
702
|
+
- [ ] TODO.md has been generated (using `.jumpstart/templates/todo.md`) and approved by the human
|
|
703
|
+
- [ ] All `[NEEDS CLARIFICATION]` items in TODO.md have been resolved
|
|
704
|
+
- [ ] All tasks in TODO.md and the implementation plan are marked [COMPLETE]
|
|
481
705
|
- [ ] The full test suite passes
|
|
706
|
+
- [ ] Traceability Matrix shows ✅ for every Must Have story
|
|
707
|
+
- [ ] NFR Constraint Checklist shows ✅ for every NFR
|
|
708
|
+
- [ ] Spec-drift check passes at final milestone
|
|
482
709
|
- [ ] The README has been updated with setup and usage instructions
|
|
483
|
-
- [ ] All deviations from the plan have been documented
|
|
710
|
+
- [ ] All deviations from the plan have been documented with original spec text and actual implementation
|
|
711
|
+
- [ ] TODO.md Progress Summary is fully updated with final counts
|
|
484
712
|
- [ ] The human has reviewed the final output
|
|
485
713
|
- [ ] Any recommendations for next steps have been communicated
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
# TODO — [Project Name]
|
|
2
|
+
|
|
3
|
+
> **Generated by:** Developer Agent (Phase 4)
|
|
4
|
+
> **Generated from:** specs/implementation-plan.md, specs/architecture.md, specs/prd.md, specs/decisions/*.md
|
|
5
|
+
> **Date:** [ISO 8601 date]
|
|
6
|
+
> **Status:** In Progress
|
|
7
|
+
>
|
|
8
|
+
> This file is the spec-driven task checklist for Phase 4 implementation.
|
|
9
|
+
> Every item traces to an approved spec artifact. Do not add tasks that
|
|
10
|
+
> lack spec traceability. If new work is discovered, update the spec first
|
|
11
|
+
> (Power Inversion — Article IV).
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Tech Manifest
|
|
16
|
+
|
|
17
|
+
> Extracted from `specs/architecture.md` — Technology Stack section.
|
|
18
|
+
> These are the pinned choices. Do not deviate without flagging a Major Deviation.
|
|
19
|
+
> Every row MUST have a pinned version. If a version is missing in architecture.md,
|
|
20
|
+
> flag `[NEEDS CLARIFICATION: version not pinned for [choice]]` and halt.
|
|
21
|
+
|
|
22
|
+
| Dimension | Choice | Version | Lockfile | Source |
|
|
23
|
+
|-----------|--------|---------|----------|--------|
|
|
24
|
+
| Runtime | [e.g., Node.js] | [e.g., >= 20.x] | — | architecture.md §Tech Stack |
|
|
25
|
+
| Language | [e.g., TypeScript] | [e.g., 5.x] | — | architecture.md §Tech Stack |
|
|
26
|
+
| Module System | [e.g., ESM] | — | — | architecture.md §Tech Stack |
|
|
27
|
+
| Package Manager | [e.g., pnpm] | [e.g., 9.x] | [e.g., pnpm-lock.yaml] | architecture.md §Tech Stack |
|
|
28
|
+
| Framework | [e.g., Express] | [e.g., 4.21.x] | — | architecture.md §Tech Stack |
|
|
29
|
+
| Database | [e.g., PostgreSQL] | [e.g., 16.x] | — | architecture.md §Data Model |
|
|
30
|
+
| ORM / Query Builder | [e.g., Drizzle] | [e.g., 0.34.x] | — | architecture.md §Data Model |
|
|
31
|
+
| Schema Validation | [e.g., Zod] | [e.g., 3.x] | — | architecture.md §Tech Stack |
|
|
32
|
+
| CLI Framework | [e.g., Commander] | [e.g., 12.x] | — | architecture.md §Tech Stack |
|
|
33
|
+
| Test Runner | [e.g., Vitest] | [e.g., 2.x] | — | architecture.md §Tech Stack |
|
|
34
|
+
| Assertion Library | [e.g., built-in Vitest] | — | — | architecture.md §Tech Stack |
|
|
35
|
+
| Linter | [e.g., ESLint] | [e.g., 9.x] | — | architecture.md §Tech Stack |
|
|
36
|
+
| Formatter | [e.g., Prettier] | [e.g., 3.x] | — | architecture.md §Tech Stack |
|
|
37
|
+
| Git Hook Manager | [e.g., husky] | [e.g., 9.x] | — | architecture.md §Tech Stack |
|
|
38
|
+
| Auth Library | [e.g., Passport.js] | [e.g., 0.7.x] | — | architecture.md §Tech Stack |
|
|
39
|
+
|
|
40
|
+
> Add or remove rows as appropriate. Every technology referenced in any task below
|
|
41
|
+
> MUST appear in this table. If a task uses a library not listed here, halt and flag.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Data Layer
|
|
46
|
+
|
|
47
|
+
> Explicitly declares where state and persistence live. Extracted from
|
|
48
|
+
> `specs/architecture.md` and `specs/decisions/*.md`.
|
|
49
|
+
> If architecture.md does not specify persistence, flag `[NEEDS CLARIFICATION]` and halt.
|
|
50
|
+
|
|
51
|
+
| Concern | Declaration | Source |
|
|
52
|
+
|---------|-------------|--------|
|
|
53
|
+
| **Persistence model** | [e.g., "Flat markdown with YAML frontmatter, no database" or "SQLite in .jumpstart/state/" or "PostgreSQL"] | architecture.md §[section] |
|
|
54
|
+
| **Phase gate state** | [e.g., "Stored in frontmatter `approved_by` and `approval_date` fields" or "`.jumpstart/state/state.json`"] | architecture.md §[section] |
|
|
55
|
+
| **Artifact versioning** | [e.g., "Shell out to `git tag` via child_process" or "Use `simple-git` library" or "Manual"] | architecture.md §[section] / ADR-NNN |
|
|
56
|
+
| **Structured data** | [e.g., "None — everything is flat files" or "Dependency graph in `.jumpstart/spec-graph.json`"] | architecture.md §[section] |
|
|
57
|
+
| **State mutation rules** | [e.g., "Insights files and QA log are append-only. Config is mutable. Specs are immutable after approval."] | architecture.md §[section] / roadmap.md |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Target Directory Structure
|
|
62
|
+
|
|
63
|
+
> Extracted from `specs/architecture.md` — Directory Structure section.
|
|
64
|
+
> Every file path in every task below must exist within this tree.
|
|
65
|
+
> After implementation, the actual tree should match this exactly.
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
[paste the target file tree from architecture.md here]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Canonical Code Patterns
|
|
74
|
+
|
|
75
|
+
> Reference implementations for every architectural mandate that affects code structure.
|
|
76
|
+
> These remove ambiguity about how abstract principles translate to concrete code.
|
|
77
|
+
> Agents MUST follow these patterns rather than inventing alternatives.
|
|
78
|
+
|
|
79
|
+
### Pattern: [e.g., CLI I/O Contract]
|
|
80
|
+
|
|
81
|
+
**Mandate source:** [e.g., Roadmap Article II — CLI-First Mandate]
|
|
82
|
+
**Applies to:** [e.g., All CLI commands in `bin/lib/`]
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
// Expected pattern — reference implementation
|
|
86
|
+
// [paste or derive 10-30 line code example]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Anti-pattern:** [e.g., "Do NOT read from argv positional params for structured data. Always accept JSON via stdin or `--input` flag."]
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Pattern: [e.g., Error Response Shape]
|
|
94
|
+
|
|
95
|
+
**Mandate source:** [e.g., architecture.md §Error Handling / ADR-003]
|
|
96
|
+
**Applies to:** [e.g., All CLI commands and API endpoints]
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
// Standard error output format
|
|
100
|
+
const error = {
|
|
101
|
+
error: "VALIDATION_FAILED", // Machine-readable error type (SCREAMING_SNAKE)
|
|
102
|
+
message: "Schema validation failed for specs/prd.md", // Human-readable message
|
|
103
|
+
code: 1, // Exit code (CLI) or HTTP status (API)
|
|
104
|
+
details: { // Optional structured details
|
|
105
|
+
file: "specs/prd.md",
|
|
106
|
+
violations: [{ path: "$.title", message: "required field missing" }]
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
process.stderr.write(JSON.stringify(error, null, 2) + '\n');
|
|
110
|
+
process.exit(error.code);
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Anti-pattern:** [e.g., "Do NOT write unstructured strings to stderr. Always use the JSON error shape above."]
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### Pattern: [e.g., Library-First Module Boundary]
|
|
118
|
+
|
|
119
|
+
**Mandate source:** [e.g., Roadmap Article I — Library-First]
|
|
120
|
+
**Applies to:** [e.g., All new modules in `bin/lib/`]
|
|
121
|
+
|
|
122
|
+
```javascript
|
|
123
|
+
// Expected pattern — standalone module with pure function exports
|
|
124
|
+
// No side effects at import time. No implicit global state.
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Validates a spec artifact against its JSON schema.
|
|
128
|
+
* @param {string} specPath - Path to the spec file
|
|
129
|
+
* @param {string} schemaPath - Path to the JSON schema
|
|
130
|
+
* @returns {{ valid: boolean, errors: Array<{ path: string, message: string }> }}
|
|
131
|
+
*/
|
|
132
|
+
export function validateSpec(specPath, schemaPath) {
|
|
133
|
+
// ...implementation
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Anti-pattern:** [e.g., "Do NOT create classes with constructor side effects. Do NOT read from filesystem at import time."]
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### Pattern: [e.g., Test File Structure]
|
|
142
|
+
|
|
143
|
+
**Mandate source:** [e.g., architecture.md §Testing / Roadmap Article III]
|
|
144
|
+
**Applies to:** [e.g., All test files in `tests/`]
|
|
145
|
+
|
|
146
|
+
```javascript
|
|
147
|
+
// Expected test file naming: tests/[module-name].test.js
|
|
148
|
+
// Expected structure:
|
|
149
|
+
import { describe, it, expect, beforeEach } from 'vitest'; // or test runner of choice
|
|
150
|
+
import { validateSpec } from '../bin/lib/validator.js';
|
|
151
|
+
|
|
152
|
+
describe('validateSpec', () => {
|
|
153
|
+
describe('when spec matches schema', () => {
|
|
154
|
+
it('should return valid: true with empty errors array', () => {
|
|
155
|
+
const result = validateSpec('fixtures/valid/prd.md', 'schemas/prd.schema.json');
|
|
156
|
+
expect(result.valid).toBe(true);
|
|
157
|
+
expect(result.errors).toHaveLength(0);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
describe('when spec violates schema', () => {
|
|
162
|
+
it('should return valid: false with descriptive errors', () => {
|
|
163
|
+
const result = validateSpec('fixtures/invalid/prd.md', 'schemas/prd.schema.json');
|
|
164
|
+
expect(result.valid).toBe(false);
|
|
165
|
+
expect(result.errors[0]).toHaveProperty('path');
|
|
166
|
+
expect(result.errors[0]).toHaveProperty('message');
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Anti-pattern:** [e.g., "Do NOT name tests `test1`, `test2`. Use descriptive `should_...` or sentence-style names."]
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
<!-- Add more patterns as needed. Common ones to include:
|
|
177
|
+
- Configuration loading pattern
|
|
178
|
+
- Database query pattern (if applicable)
|
|
179
|
+
- API route handler pattern (if applicable)
|
|
180
|
+
- Authentication middleware pattern (if applicable)
|
|
181
|
+
- Logging pattern
|
|
182
|
+
-->
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Dependency Graph (Task DAG)
|
|
187
|
+
|
|
188
|
+
> Tasks listed in execution order. `depends_on` declares which tasks must be
|
|
189
|
+
> `[COMPLETE]` before this task can start. This graph has been validated for:
|
|
190
|
+
> - ✅ No circular dependencies
|
|
191
|
+
> - ✅ No orphan tasks (every task reachable from a root)
|
|
192
|
+
> - ✅ No cross-milestone backward dependencies
|
|
193
|
+
|
|
194
|
+
| Task ID | Title | Milestone | Depends On | Order |
|
|
195
|
+
|---------|-------|-----------|------------|-------|
|
|
196
|
+
| M1-T01 | [Title] | M1 | — | [S] |
|
|
197
|
+
| M1-T02 | [Title] | M1 | M1-T01 | [S] |
|
|
198
|
+
| M1-T03 | [Title] | M1 | M1-T01 | [P] |
|
|
199
|
+
| M2-T01 | [Title] | M2 | M1-T02, M1-T03 | [S] |
|
|
200
|
+
| ... | | | | |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Implementation Checklist
|
|
205
|
+
|
|
206
|
+
### Milestone 1: [Name]
|
|
207
|
+
|
|
208
|
+
**Goal:** [from implementation-plan.md]
|
|
209
|
+
**PRD Stories:** [story IDs]
|
|
210
|
+
**Depends On:** None
|
|
211
|
+
|
|
212
|
+
- [ ] **M1-T01: [Title]**
|
|
213
|
+
- **depends_on:** —
|
|
214
|
+
- **Component:** [from implementation plan]
|
|
215
|
+
- **Story:** [story ID] — [story title from PRD]
|
|
216
|
+
- **Files:** `[exact file paths to create/modify]`
|
|
217
|
+
- **Tech choices:** [specific libraries, frameworks, APIs this task uses — must all appear in Tech Manifest]
|
|
218
|
+
- **Acceptance criteria:**
|
|
219
|
+
- [AC verbatim from PRD — copy exactly, do not paraphrase]
|
|
220
|
+
- [Additional AC if multiple]
|
|
221
|
+
- **Tests required:**
|
|
222
|
+
- [ ] [test description] → `tests/[exact-path]/[test-file].test.[ext]`
|
|
223
|
+
- [ ] [additional test] → `tests/[exact-path]/[test-file].test.[ext]`
|
|
224
|
+
- **Error handling:**
|
|
225
|
+
- **What can fail:** [enumerate: file not found, validation failure, auth denied, network timeout, etc.]
|
|
226
|
+
- **Expected behavior per error:**
|
|
227
|
+
- [Error 1]: [exit code / HTTP status] + [error output format: stderr JSON, human message, both]
|
|
228
|
+
- [Error 2]: [exit code / HTTP status] + [error output format]
|
|
229
|
+
- **Atomicity:** [Is this operation atomic? Should partial failure roll back? Y/N + explanation]
|
|
230
|
+
- **Done when:**
|
|
231
|
+
- [ ] [verifiable criterion — must be testable by running a command or inspecting output]
|
|
232
|
+
- [ ] [e.g., "Running `node bin/cli.js validate --spec specs/prd.md` exits 0"]
|
|
233
|
+
- [ ] All tests pass
|
|
234
|
+
- [ ] No lint errors
|
|
235
|
+
- **Prior art:** [reference to existing tool/pattern, e.g., "Similar to `terraform plan` for diffing desired vs. actual state" or "Follows `express-validator` middleware chain pattern". Use "N/A" only if genuinely no analogy exists.]
|
|
236
|
+
- **Status:** `[PENDING]`
|
|
237
|
+
- **Notes:** [blank — filled during implementation]
|
|
238
|
+
|
|
239
|
+
- [ ] **M1-T02: [Title]**
|
|
240
|
+
- **depends_on:** M1-T01
|
|
241
|
+
- **Component:** [from implementation plan]
|
|
242
|
+
[repeat full structure — no fields may be omitted]
|
|
243
|
+
|
|
244
|
+
#### Milestone 1 Verification
|
|
245
|
+
- [ ] All M1 tasks marked [COMPLETE]
|
|
246
|
+
- [ ] Full test suite passes
|
|
247
|
+
- [ ] Milestone goal verified: [restate goal]
|
|
248
|
+
- [ ] Spec-drift check passes (`bin/lib/spec-drift.js` exits 0)
|
|
249
|
+
|
|
250
|
+
**Milestone completed on:** [DATE or pending]
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
### Milestone 2: [Name]
|
|
255
|
+
|
|
256
|
+
**Goal:** [from implementation-plan.md]
|
|
257
|
+
**PRD Stories:** [story IDs]
|
|
258
|
+
**Depends On:** Milestone 1
|
|
259
|
+
|
|
260
|
+
[repeat full structure]
|
|
261
|
+
|
|
262
|
+
#### Milestone 2 Verification
|
|
263
|
+
[repeat verification structure]
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
<!-- Repeat milestone blocks as needed -->
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Traceability Matrix
|
|
272
|
+
|
|
273
|
+
> Every Must Have story from the PRD must map to at least one task.
|
|
274
|
+
> If a story has no task, flag as ❌ GAP, halt, and report to the human.
|
|
275
|
+
|
|
276
|
+
| PRD Story | Story Title | Priority | Acceptance Criteria Count | Tasks | Covered |
|
|
277
|
+
|-----------|-------------|----------|--------------------------|-------|---------|
|
|
278
|
+
| E1-S1 | [Title] | Must Have | [N] | M1-T01, M1-T02 | ✅ |
|
|
279
|
+
| E1-S2 | [Title] | Must Have | [N] | M1-T03 | ✅ |
|
|
280
|
+
| E2-S1 | [Title] | Should Have | [N] | M2-T01 | ✅ |
|
|
281
|
+
| E3-S1 | [Title] | Must Have | [N] | — | ❌ GAP |
|
|
282
|
+
|
|
283
|
+
> **Gaps detected:** [N]. Must be resolved before implementation begins.
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## NFR Constraint Checklist
|
|
288
|
+
|
|
289
|
+
> Extracted from `specs/prd.md` — Non-Functional Requirements section.
|
|
290
|
+
> Each NFR must trace to at least one task that addresses it.
|
|
291
|
+
> Each NFR must have a quantified target and a testing approach.
|
|
292
|
+
|
|
293
|
+
| NFR ID | Category | Requirement | Target Metric | Task(s) | Testing Approach | Addressed |
|
|
294
|
+
|--------|----------|-------------|---------------|---------|-----------------|-----------|
|
|
295
|
+
| NFR-01 | Performance | [description] | [e.g., p95 < 200ms] | [task IDs] | [e.g., load test with k6] | ✅ / ❌ |
|
|
296
|
+
| NFR-02 | Security | [description] | [e.g., OWASP Top 10] | [task IDs] | [e.g., SAST scan + manual review] | ✅ / ❌ |
|
|
297
|
+
| NFR-03 | Availability | [description] | [e.g., 99.9% uptime] | [task IDs] | [e.g., chaos testing] | ✅ / ❌ |
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Active ADR Constraints
|
|
302
|
+
|
|
303
|
+
> Extracted from `specs/decisions/*.md`. These constrain implementation choices.
|
|
304
|
+
> For each ADR, state explicitly what the developer MUST do and MUST NOT do.
|
|
305
|
+
|
|
306
|
+
| ADR | Decision | Developer MUST | Developer MUST NOT |
|
|
307
|
+
|-----|----------|----------------|-------------------|
|
|
308
|
+
| ADR-001 | [title] | [what to do because of this decision] | [what is forbidden because of this decision] |
|
|
309
|
+
| ADR-002 | [title] | [required action] | [forbidden action] |
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Roadmap Articles in Effect
|
|
314
|
+
|
|
315
|
+
> From `.jumpstart/roadmap.md`. Non-negotiable during implementation.
|
|
316
|
+
> Each article lists its enforcement status and concrete constraint on code.
|
|
317
|
+
|
|
318
|
+
| Article | Name | Enforced | Concrete Constraint |
|
|
319
|
+
|---------|------|----------|-------------------|
|
|
320
|
+
| I | Sequential Phase Integrity | Always | Do not skip or reorder phases |
|
|
321
|
+
| II | Template Compliance | Always | Use `.jumpstart/templates/` for all output artifacts |
|
|
322
|
+
| III | Test-First Development | `[true/false]` from config | [If true: write tests first, get Red Phase approval. If false: write tests before or alongside.] |
|
|
323
|
+
| IV | Upstream Traceability | Always | Every task traces to a PRD story. No orphan code. |
|
|
324
|
+
| V | Human Gate Authority | Always | Do not self-approve. Always ask human. |
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Agent Permissions
|
|
329
|
+
|
|
330
|
+
> Derived from architecture.md agent definitions and the Stay-in-Lane rule.
|
|
331
|
+
> If architecture.md defines explicit permissions, use those verbatim.
|
|
332
|
+
|
|
333
|
+
| Action Category | Allowed | Forbidden |
|
|
334
|
+
|----------------|---------|-----------|
|
|
335
|
+
| **File Read** | Any file in the repository | — |
|
|
336
|
+
| **File Create/Edit** | `src/`, `tests/`, `TODO.md`, `README.md`, project config files | `.jumpstart/agents/*.md`, `.jumpstart/templates/*.md`, `.jumpstart/roadmap.md` |
|
|
337
|
+
| **Run Commands** | Test runner, linter, formatter, build tool, `bin/cli.js` | `git push`, deployment commands, production database commands |
|
|
338
|
+
| **Architecture** | Follow architecture.md as-is | Change tech stack, add components, alter API contracts, change data model |
|
|
339
|
+
| **Dependencies** | Install dependencies listed in architecture.md | Add new dependencies not in architecture.md without flagging |
|
|
340
|
+
| **Specs** | Read all specs; update `specs/implementation-plan.md` task status | Modify PRD, architecture, or challenger brief content |
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Progress Summary
|
|
345
|
+
|
|
346
|
+
| Metric | Value |
|
|
347
|
+
|--------|-------|
|
|
348
|
+
| Total Milestones | [N] |
|
|
349
|
+
| Milestones Complete | 0 |
|
|
350
|
+
| Total Tasks | [N] |
|
|
351
|
+
| Tasks Complete | 0 |
|
|
352
|
+
| Tasks In Progress | 0 |
|
|
353
|
+
| Tasks Blocked | 0 |
|
|
354
|
+
| Tests Written | 0 |
|
|
355
|
+
| Tests Passing | 0 |
|
|
356
|
+
| Deviations Logged | 0 |
|
|
357
|
+
| NEEDS CLARIFICATION Items | [N] |
|
|
358
|
+
| Last Updated | [ISO date] |
|
package/README.md
CHANGED
|
@@ -11,8 +11,9 @@ Every artifact lives in your repository, version-controlled, diffable, and trans
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
## Table of Contents
|
|
14
|
-
- [How It Works](#how-it-works)
|
|
15
14
|
- [Quick Start](#quick-start)
|
|
15
|
+
- [Onboarding Guide](ONBOARDING.md) 📘
|
|
16
|
+
- [How It Works](#how-it-works)
|
|
16
17
|
- [Commands](#commands)
|
|
17
18
|
- [Advisory Agents](#advisory-agents)
|
|
18
19
|
- [CLI Tools](#cli-tools)
|
|
@@ -71,6 +72,8 @@ flowchart TB
|
|
|
71
72
|
|
|
72
73
|
## Quick Start
|
|
73
74
|
|
|
75
|
+
> **👋 First time here?** Check out the **[Onboarding Guide](ONBOARDING.md)** for a complete walkthrough including configuration details, agent orchestration, and best practices.
|
|
76
|
+
|
|
74
77
|
### 1. Install
|
|
75
78
|
|
|
76
79
|
**Interactive Mode** (recommended):
|
package/package.json
CHANGED