valent-pipeline 0.7.0 → 0.18.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 +68 -55
- package/bin/cli.js +502 -40
- package/package.json +2 -3
- package/pipeline/docs/agent-reference.md +11 -7
- package/pipeline/docs/communication-standard.md +1 -1
- package/pipeline/docs/index.md +1 -1
- package/pipeline/docs/knowledge-system.md +12 -12
- package/pipeline/docs/npx-implementation-plan.md +5 -7
- package/pipeline/docs/npx-packaging.md +10 -13
- package/pipeline/docs/pipeline-overview.md +13 -13
- package/pipeline/docs/task-graph.md +3 -3
- package/pipeline/docs/template-skeleton.md +1 -1
- package/pipeline/orchestrators/claude-code/README.md +21 -23
- package/pipeline/orchestrators/claude-code/plan.workflow.js +180 -61
- package/pipeline/orchestrators/claude-code/retro.workflow.js +31 -14
- package/pipeline/orchestrators/claude-code/sprint.workflow.js +1724 -260
- package/pipeline/prompts/bend.md +10 -21
- package/pipeline/prompts/cli-dev.md +61 -0
- package/pipeline/prompts/critic.md +12 -23
- package/pipeline/prompts/data.md +8 -9
- package/pipeline/prompts/docgen.md +8 -9
- package/pipeline/prompts/fend.md +10 -21
- package/pipeline/prompts/iac.md +10 -11
- package/pipeline/prompts/judge.md +10 -22
- package/pipeline/prompts/libdev.md +8 -9
- package/pipeline/prompts/mcp-dev.md +8 -9
- package/pipeline/prompts/mobile.md +10 -11
- package/pipeline/prompts/pmcp.md +1 -1
- package/pipeline/prompts/qa-a.md +23 -16
- package/pipeline/prompts/qa-b.md +14 -24
- package/pipeline/prompts/reqs.md +11 -12
- package/pipeline/prompts/retrospective.md +8 -8
- package/pipeline/prompts/uxa.md +9 -10
- package/pipeline/schemas/atdd-proof.schema.json +62 -0
- package/pipeline/schemas/atdd-red-baseline.schema.json +78 -0
- package/pipeline/schemas/bugs-block.schema.json +30 -0
- package/pipeline/schemas/evidence-assert.schema.json +63 -0
- package/pipeline/schemas/evidence-baseline.schema.json +38 -0
- package/pipeline/schemas/evidence-run.schema.json +118 -0
- package/pipeline/schemas/gate-pin.schema.json +20 -0
- package/pipeline/schemas/qa-spec-manifest.schema.json +53 -0
- package/pipeline/schemas/reqs-manifest.schema.json +28 -0
- package/pipeline/schemas/verdict.schema.json +5 -0
- package/pipeline/steps/bend/estimate.md +1 -1
- package/pipeline/steps/bend/handoff.md +2 -2
- package/pipeline/steps/bend/read-inputs.md +2 -2
- package/pipeline/steps/bend/write-tests.md +8 -5
- package/pipeline/steps/cli-dev/estimate.md +49 -0
- package/pipeline/steps/cli-dev/handoff.md +12 -0
- package/pipeline/steps/cli-dev/implement.md +19 -0
- package/pipeline/steps/cli-dev/read-inputs.md +13 -0
- package/pipeline/steps/cli-dev/write-tests.md +22 -0
- package/pipeline/steps/common/agent-protocol.md +13 -31
- package/pipeline/steps/common/distilled-handoff-format.md +2 -2
- package/pipeline/steps/common/no-api-passthrough.md +1 -1
- package/pipeline/steps/common/no-ui-passthrough.md +1 -1
- package/pipeline/steps/critic/acceptance-audit.md +8 -6
- package/pipeline/steps/critic/cli-tool.md +25 -0
- package/pipeline/steps/critic/write-verdict.md +6 -12
- package/pipeline/steps/data/estimate.md +1 -1
- package/pipeline/steps/data/handoff.md +2 -2
- package/pipeline/steps/data/read-inputs.md +2 -2
- package/pipeline/steps/data/write-tests.md +5 -0
- package/pipeline/steps/docgen/estimate.md +1 -1
- package/pipeline/steps/docgen/handoff.md +2 -2
- package/pipeline/steps/docgen/read-inputs.md +2 -2
- package/pipeline/steps/docgen/write-tests.md +5 -0
- package/pipeline/steps/fend/estimate.md +1 -1
- package/pipeline/steps/fend/handoff.md +3 -3
- package/pipeline/steps/fend/read-inputs.md +2 -2
- package/pipeline/steps/fend/write-tests.md +8 -5
- package/pipeline/steps/iac/estimate.md +1 -1
- package/pipeline/steps/iac/handoff.md +2 -2
- package/pipeline/steps/iac/implement.md +1 -1
- package/pipeline/steps/iac/read-inputs.md +2 -2
- package/pipeline/steps/iac/write-tests.md +7 -4
- package/pipeline/steps/judge/bug-review.md +1 -1
- package/pipeline/steps/judge/evidence-review.md +32 -17
- package/pipeline/steps/judge/ship-decision.md +3 -6
- package/pipeline/steps/libdev/estimate.md +1 -1
- package/pipeline/steps/libdev/handoff.md +2 -2
- package/pipeline/steps/libdev/read-inputs.md +2 -2
- package/pipeline/steps/libdev/write-tests.md +5 -0
- package/pipeline/steps/mcp-dev/estimate.md +1 -1
- package/pipeline/steps/mcp-dev/handoff.md +2 -2
- package/pipeline/steps/mcp-dev/read-inputs.md +2 -2
- package/pipeline/steps/mcp-dev/write-tests.md +5 -0
- package/pipeline/steps/mobile/emulator-lifecycle.md +2 -2
- package/pipeline/steps/mobile/estimate.md +1 -1
- package/pipeline/steps/mobile/handoff.md +3 -6
- package/pipeline/steps/mobile/read-inputs.md +2 -2
- package/pipeline/steps/mobile/write-tests.md +8 -5
- package/pipeline/steps/orchestration/bug-intake.md +4 -1
- package/pipeline/steps/orchestration/git-flow.md +99 -0
- package/pipeline/steps/orchestration/pm-autonomy.md +109 -0
- package/pipeline/steps/orchestration/resolve-next-work-item.md +52 -27
- package/pipeline/steps/orchestration/update-backlog-status.md +84 -69
- package/pipeline/steps/orchestration/validate-story-inputs.md +7 -2
- package/pipeline/steps/qa-a/cli-tool.md +42 -0
- package/pipeline/steps/qa-a/read-inputs.md +4 -4
- package/pipeline/steps/qa-a/self-attack.md +14 -0
- package/pipeline/steps/qa-a/write-acceptance-tests.md +45 -0
- package/pipeline/steps/qa-a/write-spec.md +8 -4
- package/pipeline/steps/qa-b/api.md +10 -3
- package/pipeline/steps/qa-b/cli-tool.md +56 -0
- package/pipeline/steps/qa-b/execute-tests.md +21 -1
- package/pipeline/steps/qa-b/file-bugs.md +12 -1
- package/pipeline/steps/qa-b/write-report.md +19 -11
- package/pipeline/steps/reqs/cli-tool.md +46 -0
- package/pipeline/steps/reqs/pre-mortem.md +1 -1
- package/pipeline/steps/reqs/read-inputs.md +3 -3
- package/pipeline/steps/reqs/write-output.md +16 -1
- package/pipeline/steps/retrospective/directives.md +10 -4
- package/pipeline/steps/retrospective/embed-instructions.md +1 -2
- package/pipeline/steps/retrospective/report.md +5 -2
- package/pipeline/steps/uxa/read-inputs.md +2 -2
- package/pipeline/steps/uxa/write-output.md +0 -1
- package/pipeline/task-graphs/backend-api.yaml +3 -84
- package/pipeline/task-graphs/cli-tool.yaml +60 -0
- package/pipeline/task-graphs/data-pipeline.yaml +3 -84
- package/pipeline/task-graphs/document-generation.yaml +3 -84
- package/pipeline/task-graphs/frontend-only.yaml +3 -92
- package/pipeline/task-graphs/fullstack-web.yaml +4 -102
- package/pipeline/task-graphs/library.yaml +3 -84
- package/pipeline/task-graphs/mcp-server.yaml +3 -84
- package/pipeline/task-graphs/mobile-app.yaml +3 -92
- package/pipeline/templates/bugs.template.md +12 -0
- package/pipeline/templates/cli-dev-handoff.template.md +89 -0
- package/pipeline/templates/embed-instructions.template.md +1 -1
- package/pipeline/templates/qa-test-spec.template.md +6 -2
- package/pipeline/templates/reqs-brief.template.md +13 -1
- package/pipeline/templates/retrospective.template.md +1 -1
- package/pipeline/templates/story-report.template.md +1 -1
- package/pipeline/templates/uxa-spec.template.md +1 -1
- package/pipeline/templates/visual-validation-checklist.template.md +1 -1
- package/skills/valent-configure/SKILL.md +39 -8
- package/skills/valent-debug-export/SKILL.md +1 -2
- package/skills/valent-help/SKILL.md +5 -5
- package/skills/valent-knowledge/SKILL.md +3 -7
- package/skills/valent-resume/SKILL.md +3 -3
- package/skills/valent-review-cost/SKILL.md +2 -2
- package/skills/valent-run-deferred-tests/SKILL.md +17 -8
- package/skills/valent-run-epic-workflow/SKILL.md +60 -15
- package/skills/valent-run-project-workflow/SKILL.md +39 -14
- package/skills/valent-run-spike/SKILL.md +96 -0
- package/skills/valent-run-story-workflow/SKILL.md +7 -7
- package/skills/valent-setup-backlog/SKILL.md +44 -2
- package/src/commands/analyze.js +204 -0
- package/src/commands/audit.js +13 -1
- package/src/commands/backlog.js +376 -0
- package/src/commands/check-spec-conformance.js +21 -1
- package/src/commands/crosscheck.js +113 -0
- package/src/commands/db-directives.js +0 -0
- package/src/commands/db-index.js +3 -70
- package/src/commands/db-query.js +14 -1
- package/src/commands/db-rebuild.js +11 -10
- package/src/commands/detect-project.js +36 -0
- package/src/commands/evidence.js +609 -0
- package/src/commands/git-flow.js +143 -0
- package/src/commands/init.js +90 -11
- package/src/commands/rejection-cap.js +20 -15
- package/src/commands/resolve-eligible.js +16 -2
- package/src/commands/spec-check.js +72 -0
- package/src/commands/sprint-pack.js +15 -2
- package/src/commands/trace.js +99 -0
- package/src/commands/upgrade.js +8 -1
- package/src/commands/validate.js +7 -0
- package/src/lib/analyze.js +173 -0
- package/src/lib/audit.js +1 -0
- package/src/lib/backlog-lint.js +160 -0
- package/src/lib/backlog.js +559 -0
- package/src/lib/config-schema.js +229 -11
- package/src/lib/crosscheck.js +141 -0
- package/src/lib/db.js +21 -28
- package/src/lib/detect.js +385 -0
- package/src/lib/evidence.js +0 -0
- package/src/lib/git-flow.js +701 -0
- package/src/lib/graph.js +25 -4
- package/src/lib/handoff.js +16 -6
- package/src/lib/junit.js +231 -0
- package/src/lib/locked-file.js +61 -0
- package/src/lib/obsolete-manifest.js +11 -0
- package/src/lib/spec-check.js +98 -0
- package/src/lib/spec-conformance.js +39 -3
- package/src/lib/sprint.js +150 -23
- package/src/lib/trace.js +199 -0
- package/pipeline/prompts/readiness.md +0 -73
- package/pipeline/providers/claude-code/runtime.md +0 -148
- package/pipeline/providers/claude-code/spawn.template.md +0 -16
- package/pipeline/scripts/db-bootstrap.ts +0 -153
- package/pipeline/scripts/embed-sqlite.ts +0 -288
- package/pipeline/scripts/embed.ts +0 -425
- package/pipeline/scripts/query-kb.ts +0 -183
- package/pipeline/spawn-templates/agent-spawn.template.md +0 -16
- package/pipeline/spawn-templates/pipeline-context.template.md +0 -47
- package/pipeline/steps/orchestration/load-pipeline-config.md +0 -39
- package/pipeline/steps/readiness/sprint-review.md +0 -45
- package/pipeline/steps/readiness/standalone-review.md +0 -131
- package/pipeline/templates/readiness-review.template.md +0 -147
package/README.md
CHANGED
|
@@ -29,27 +29,28 @@ npx valent-pipeline init
|
|
|
29
29
|
|
|
30
30
|
## How It Works
|
|
31
31
|
|
|
32
|
-
A
|
|
32
|
+
A deterministic **Workflow orchestrator** (`sprint.workflow.js`) reads your story, spawns specialist agents per task, and drives them through a dependency-driven pipeline:
|
|
33
33
|
|
|
34
34
|
```
|
|
35
|
-
REQS -> UXA -> QA-A ->
|
|
35
|
+
REQS -> UXA -> QA-A -> SPECCHECK -> RED -> BEND + FEND -> STATIC -> CRITIC -> GREEN -> QA-B -> EVIDENCE -> JUDGE -> SHIP
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
1. **REQS** translates acceptance criteria into an implementation brief
|
|
38
|
+
1. **REQS** translates acceptance criteria into an implementation brief (+ a machine-readable AC manifest)
|
|
39
39
|
2. **UXA** converts UX specs into component specifications (frontend projects)
|
|
40
|
-
3. **QA-A** writes behavioral test specifications *before any code exists*
|
|
41
|
-
4. **
|
|
40
|
+
3. **QA-A** writes behavioral test specifications *before any code exists* (+ a spec manifest mapping every case to its AC)
|
|
41
|
+
4. **SPECCHECK** gate validates the spec chain mechanically (`valent spec check` + `trace check`); **RED** gate proves the acceptance suite fails pre-implementation (ATDD)
|
|
42
42
|
5. **BEND + FEND** implement production code and tests in parallel
|
|
43
|
-
6. **
|
|
44
|
-
7. **
|
|
45
|
-
8. **
|
|
46
|
-
9. **
|
|
43
|
+
6. **STATIC** gate runs deterministic checks at mechanical cost: lint/type commands, spec-conformance (no dropped assertion targets or un-waived skips), trace check (every AC has a covering case)
|
|
44
|
+
7. **CRITIC** runs a 3-pass adversarial code review (blind hunt, edge cases, acceptance audit), pinning the git SHA it reviewed
|
|
45
|
+
8. **QA-B** executes tests against real infrastructure **through `evidence run`** — exit codes, full logs, junit reports (frozen + SHA-256-hashed), and the git SHA are captured by the CLI, never transcribed by a model — then files bugs and builds the traceability matrix
|
|
46
|
+
9. **EVIDENCE** gate deterministically re-verifies the machine record: report hashes intact, junit green (with the brownfield pre-existing carve-out), every spec'd case executed, CRITIC's pin matches the tested SHA
|
|
47
|
+
10. **JUDGE** makes the SHIP or REJECT decision from the machine verdicts (its self-reported numbers are recounted from the artifacts afterward — a mismatch stops the run)
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
Quality gates (**SPECCHECK**, **RED**, **STATIC**, **CRITIC**, **GREEN**, **EVIDENCE**, **JUDGE**) enforce pass/fail checkpoints. Rejection loops send work back to the responsible agent with specific corrections, with a code-owned circuit breaker to prevent infinite cycles. The trust property throughout: **facts are captured by code, not transcribed by models** — test results live in `stories/<id>/evidence/` as hashed, machine-written records that gates re-verify.
|
|
49
50
|
|
|
50
51
|
## Project Types
|
|
51
52
|
|
|
52
|
-
The pipeline supports
|
|
53
|
+
The pipeline supports 9 project types, each with a tailored task graph and specialized developer agent:
|
|
53
54
|
|
|
54
55
|
| Project Type | Developer Agent | Agents Skipped |
|
|
55
56
|
|---|---|---|
|
|
@@ -60,9 +61,10 @@ The pipeline supports 7 project types, each with a tailored task graph and speci
|
|
|
60
61
|
| `mcp-server` | MCP-DEV | UXA, FEND, PMCP |
|
|
61
62
|
| `document-generation` | DOCGEN | UXA, FEND, PMCP |
|
|
62
63
|
| `library` | LIBDEV | UXA, FEND, PMCP |
|
|
64
|
+
| `cli-tool` | CLI-DEV | UXA, FEND, PMCP |
|
|
63
65
|
| `mobile-app` | MOBILE | *(conditional)* |
|
|
64
66
|
|
|
65
|
-
The
|
|
67
|
+
The workflow selects which agents to spawn based on `project.type` in your `pipeline-config.yaml` and the story's `testing_profiles` (resolved deterministically by `resolve-graph`).
|
|
66
68
|
|
|
67
69
|
## Agent Roster
|
|
68
70
|
|
|
@@ -75,13 +77,14 @@ Spawned fresh per story, torn down after ship or cancel.
|
|
|
75
77
|
| REQS | Sonnet | Requirements analyst | `reqs-brief.md` |
|
|
76
78
|
| UXA | Sonnet | UX specification | `uxa-spec.md` |
|
|
77
79
|
| QA-A | Sonnet | Test specification | `qa-test-spec.md`, `visual-validation-checklist.md` |
|
|
78
|
-
|
|
|
80
|
+
| SPECCHECK | Haiku | Mechanical spec gate (artifact matrix + AC coverage CLIs) | gate transcript |
|
|
79
81
|
| BEND | Sonnet | Backend developer | `bend-handoff.md` |
|
|
80
82
|
| FEND | Sonnet | Frontend developer | `fend-handoff.md` |
|
|
81
83
|
| CRITIC | Opus | Adversarial code reviewer | `critic-review.md` |
|
|
82
84
|
| QA-B | Sonnet | Test executor | `execution-report.md`, `bugs.md`, `traceability-matrix.md` |
|
|
83
|
-
| JUDGE | Sonnet | Final quality gate | `judge-review.md`, `judge-decision.md` |
|
|
84
|
-
|
|
85
|
+
| JUDGE | Sonnet/Opus | Final quality gate (evidence pass / binding decision) | `judge-review.md`, `judge-decision.md` |
|
|
86
|
+
|
|
87
|
+
Knowledge retrieval has no dedicated agent — every agent self-serves from curated files and the SQLite knowledge base via the `db` CLI commands.
|
|
85
88
|
|
|
86
89
|
### Domain Developer Agents
|
|
87
90
|
|
|
@@ -92,19 +95,18 @@ Specialized agents that replace BEND for non-API project types:
|
|
|
92
95
|
| DATA | Sonnet | `data-pipeline` | `data-handoff.md` |
|
|
93
96
|
| MCP-DEV | Sonnet | `mcp-server` | `mcp-dev-handoff.md` |
|
|
94
97
|
| LIBDEV | Sonnet | `library` | `libdev-handoff.md` |
|
|
98
|
+
| CLI-DEV | Sonnet | `cli-tool` | `cli-dev-handoff.md` |
|
|
95
99
|
| DOCGEN | Sonnet | `document-generation` | `docgen-handoff.md` |
|
|
96
100
|
| IAC | Sonnet | Cross-cutting (any type) | `iac-handoff.md` |
|
|
97
101
|
| MOBILE | Sonnet | `mobile-app` | `mobile-handoff.md` |
|
|
98
102
|
|
|
99
|
-
###
|
|
103
|
+
### Cross-Story Stages
|
|
100
104
|
|
|
101
|
-
|
|
|
102
|
-
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
| Retrospective | Sonnet | Ephemeral | Every N stories (configurable) |
|
|
107
|
-
| Help | Haiku | Ephemeral | User request |
|
|
105
|
+
| Stage | Model | Trigger |
|
|
106
|
+
|---|---|---|
|
|
107
|
+
| PMCP (visual evidence) | Haiku | Orchestrator stage after QA-B on `ui` stories |
|
|
108
|
+
| Retrospective | Sonnet | Retro workflow after a sprint |
|
|
109
|
+
| Knowledge persist | Haiku | `db index-curated` CLI step driven by the retro workflow |
|
|
108
110
|
|
|
109
111
|
## Installation
|
|
110
112
|
|
|
@@ -177,13 +179,19 @@ models:
|
|
|
177
179
|
haiku: [Knowledge, Embed, Help] # Retrieval, indexing, lookups
|
|
178
180
|
|
|
179
181
|
quality:
|
|
180
|
-
max_rejection_cycles:
|
|
182
|
+
max_rejection_cycles: 3 # Circuit breaker for rejection loops
|
|
181
183
|
retrospective_every_n_stories: 5 # Retrospective trigger frequency
|
|
182
184
|
stall_threshold_minutes: 15 # Agent stall detection timeout
|
|
183
185
|
|
|
184
|
-
git:
|
|
185
|
-
|
|
186
|
-
|
|
186
|
+
git: # Story git flow (valent git start-story|commit-phase|ship-story|leave-story)
|
|
187
|
+
enabled: true # Branch-per-story + typed commit trail + merge --no-ff on ship
|
|
188
|
+
target_branch: "" # Base/merge-back branch ("" = the branch the sprint starts on)
|
|
189
|
+
story_branch_prefix: story/ # Branch naming convention (story/<id>)
|
|
190
|
+
parallelism: # Concurrent stories in git worktrees (merges stay serialized)
|
|
191
|
+
enabled: false # OFF = strictly sequential sprint (the default)
|
|
192
|
+
max_stories: 2 # Concurrency cap when enabled
|
|
193
|
+
worktree_dir: .valent-worktrees # Worktrees at <dir>/<story-id> (ignored via .git/info/exclude)
|
|
194
|
+
setup_commands: [] # Run in each fresh worktree (env files, per-story ports, installs)
|
|
187
195
|
|
|
188
196
|
knowledge:
|
|
189
197
|
mode: sqlite # none | sqlite | local-docker | connect-to-existing
|
|
@@ -212,10 +220,17 @@ sprint: # Only used in epic/project mode
|
|
|
212
220
|
| Command | Description |
|
|
213
221
|
|---|---|
|
|
214
222
|
| `valent-pipeline db init` | Initialize SQLite knowledge database |
|
|
215
|
-
| `valent-pipeline db rebuild` |
|
|
216
|
-
| `valent-pipeline db index <
|
|
217
|
-
| `valent-pipeline db query <text>` | Full-text search across artifacts |
|
|
218
|
-
| `valent-pipeline db
|
|
223
|
+
| `valent-pipeline db rebuild` | Rebuild the database from story artifacts |
|
|
224
|
+
| `valent-pipeline db index-handoff --file <path>` | Index a single handoff artifact |
|
|
225
|
+
| `valent-pipeline db search --query <text>` | Full-text search across all artifacts |
|
|
226
|
+
| `valent-pipeline db query-artifact --story <id> --type <type>` | Fetch a specific artifact |
|
|
227
|
+
| `valent-pipeline db query-directives [--agent <role>]` | Get active correction directives |
|
|
228
|
+
| `valent-pipeline db add-directive --json-file <path> --batch <n>` | Persist correction directives (canonical YAML + queryable index, one call) |
|
|
229
|
+
| `valent-pipeline db retire-directive --id <id> [--status expired\|superseded]` | Expire/supersede a directive (status change only — audit trail kept) |
|
|
230
|
+
| `valent-pipeline db sync-directives` | Re-derive the directives index from knowledge/correction-directives.yaml |
|
|
231
|
+
| `valent-pipeline db index-curated --file <path>` | Process embed-instructions.md from a retrospective |
|
|
232
|
+
|
|
233
|
+
Calibration/query helpers: `db record-calibration`, `db query-velocity`, `db query-list`, `db query-stories`, `db query-bugs-since` (see `valent-pipeline db --help`).
|
|
219
234
|
|
|
220
235
|
### Claude Code Skills
|
|
221
236
|
|
|
@@ -228,6 +243,7 @@ Invoked as slash commands inside Claude Code:
|
|
|
228
243
|
| `/valent-run-story-workflow STORY-ID` | Execute a single story via the Claude Code **Workflow** orchestrator |
|
|
229
244
|
| `/valent-run-epic-workflow EPIC-ID` | Execute an epic (sprint planning + execution) via the **Workflow** orchestrator |
|
|
230
245
|
| `/valent-run-project-workflow` | Execute a full project across all epics via the **Workflow** orchestrator |
|
|
246
|
+
| `/valent-run-spike SPIKE-ID` | Run a time-boxed de-risking spike to a recorded GO/STEP-DOWN/HALT decision |
|
|
231
247
|
| `/valent-run-deferred-tests` | Run deferred iOS tests on Mac |
|
|
232
248
|
| `/valent-debug-export` | Export diagnostic dump |
|
|
233
249
|
| `/valent-help` | Pipeline documentation and FAQ |
|
|
@@ -263,7 +279,7 @@ For each story, the pipeline produces 15+ artifacts in `stories/{story-id}/outpu
|
|
|
263
279
|
| `execution-report.md` | QA-B | Test execution results |
|
|
264
280
|
| `bugs.md` | QA-B | Filed bugs with priorities |
|
|
265
281
|
| `traceability-matrix.md` | QA-B | AC-to-test coverage map |
|
|
266
|
-
| `
|
|
282
|
+
| `evidence/atdd-red.json`, `evidence/proof.json` | RED/GREEN gates (CLI-written) | ATDD red baseline + the red/green/diff proof object |
|
|
267
283
|
| `judge-review.md` | JUDGE | Bug review findings |
|
|
268
284
|
| `judge-decision.md` | JUDGE | Ship/reject decision with evidence |
|
|
269
285
|
| `story-report.md` | orchestrator | Story completion summary |
|
|
@@ -274,10 +290,10 @@ Plus committed, tested production code in your project source tree.
|
|
|
274
290
|
|
|
275
291
|
All inter-agent communication follows the [Distilled Communication Standard](pipeline/docs/communication-standard.md):
|
|
276
292
|
|
|
277
|
-
- **Handoff documents** -- structured artifacts with YAML frontmatter, orchestrator summary, and facts-only content. Every handoff follows a [template skeleton](pipeline/docs/template-skeleton.md).
|
|
278
|
-
- **
|
|
293
|
+
- **Handoff documents** -- structured artifacts with YAML frontmatter, orchestrator summary, and facts-only content. Every handoff follows a [template skeleton](pipeline/docs/template-skeleton.md). The handoff file IS the completion signal -- the orchestrator sequences agents from it.
|
|
294
|
+
- **Structured returns** -- each agent returns a terse, schema-validated machine block with file pointers; the orchestrator routes all coordination (rejections, bugs, escalations) from these.
|
|
279
295
|
- **Design Council** -- structured deliberation protocol for contested design decisions with position statements, synthesis, and escalation to user if consensus fails.
|
|
280
|
-
- **Human Escalation** -- when agent deliberation is insufficient, the
|
|
296
|
+
- **Human Escalation** -- when agent deliberation is insufficient, the orchestrator surfaces the issue to the user with full context.
|
|
281
297
|
|
|
282
298
|
## Knowledge System
|
|
283
299
|
|
|
@@ -287,9 +303,9 @@ The pipeline learns from its own output through a [knowledge system](pipeline/do
|
|
|
287
303
|
|---|---|---|
|
|
288
304
|
| Correction directives | `knowledge/correction-directives.yaml` | Behavioral changes for agents from past patterns |
|
|
289
305
|
| Curated knowledge | `knowledge/curated/` | Conventions, validated patterns, known pitfalls |
|
|
290
|
-
| SQLite
|
|
306
|
+
| SQLite (FTS5) | `.valent-pipeline/pipeline.db` | Full-text retrieval over indexed artifacts and curated lessons |
|
|
291
307
|
|
|
292
|
-
The
|
|
308
|
+
The retrospective workflow (`retro.workflow.js`, triggered every N stories) is the sole gatekeeper for what enters persistent knowledge: it analyzes batch outputs, synthesizes gated correction directives, and emits indexing instructions executed by its EMBED stage. During story execution, agents self-serve from the knowledge sources via the `valent-knowledge` skill.
|
|
293
309
|
|
|
294
310
|
### Knowledge Modes
|
|
295
311
|
|
|
@@ -302,7 +318,7 @@ The **Retrospective** agent (triggered every N stories) is the sole gatekeeper f
|
|
|
302
318
|
|
|
303
319
|
## Execution Modes
|
|
304
320
|
|
|
305
|
-
The pipeline runs on a single orchestration path: the **Claude Code Workflow** path. A deterministic Workflow script (`pipeline/orchestrators/claude-code/{plan,sprint,retro}.workflow.js`) drives the pipeline with schema-validated gates, a code-owned rejection cap, parallel CRITIC passes, and journal-based resume (`resumeFromRunId`). Control flow lives in JavaScript and the journal — not in a model interpreting prose.
|
|
321
|
+
The pipeline runs on a single orchestration path: the **Claude Code Workflow** path. A deterministic Workflow script (`pipeline/orchestrators/claude-code/{plan,sprint,retro}.workflow.js`) drives the pipeline with schema-validated gates, a code-owned rejection cap, parallel CRITIC passes, and journal-based resume (`resumeFromRunId`). Control flow lives in JavaScript and the journal — not in a model interpreting prose. Control flow is validated by `scripts/test-workflow.js`, and the orchestrator is exercised end-to-end against live stories (live runs have driven the version history). See `pipeline/orchestrators/claude-code/README.md`.
|
|
306
322
|
|
|
307
323
|
> Requires Claude Code (the Workflow tool). `runtime.provider` must be `claude-code`.
|
|
308
324
|
|
|
@@ -340,14 +356,20 @@ Converts your epics and stories documents into a prioritized `pipeline-backlog.y
|
|
|
340
356
|
|
|
341
357
|
## Quality Gates
|
|
342
358
|
|
|
343
|
-
###
|
|
359
|
+
### SPECCHECK Gate (mechanical)
|
|
360
|
+
|
|
361
|
+
Validates the spec chain before any code is written — as CLIs, not LLM judgment:
|
|
362
|
+
- `valent spec check`: artifact-existence matrix per testing profile, acceptance-file existence, and the acceptance-tier mock ban
|
|
363
|
+
- `valent trace check`: every unwaived AC covered by at least one spec'd case
|
|
364
|
+
|
|
365
|
+
Rework routes to the CLI-named owner (REQS/UXA/QA-A) with downstream specs re-derived automatically.
|
|
344
366
|
|
|
345
|
-
|
|
346
|
-
- REQS brief completeness and accuracy
|
|
347
|
-
- UXA spec consistency (frontend projects)
|
|
348
|
-
- QA test spec coverage and depth
|
|
367
|
+
### RED / GREEN Gates (ATDD)
|
|
349
368
|
|
|
350
|
-
|
|
369
|
+
When `atdd.command` is configured, QA-A authors **executable acceptance tests** before any implementation exists:
|
|
370
|
+
- **RED** (pre-dev): the suite runs via `valent evidence run` and every required acceptance case must FAIL — a pre-passing test is a spec bug. The passing red writes `evidence/atdd-red.json`, snapshot-hashing the acceptance sources.
|
|
371
|
+
- The acceptance tests are **read-only for dev agents** — any edit is hash-detected and auto-REJECTed to QA-A arbitration (restore, or amend with an audited `evidence rebaseline`).
|
|
372
|
+
- **GREEN** (post-CRITIC): the suite re-runs and must pass with the sources byte-identical since red. `valent evidence proof` then assembles `proof.json`: the failing run before AI wrote code, the passing run after, the exact diff between, and the hashes.
|
|
351
373
|
|
|
352
374
|
### JUDGE Gate
|
|
353
375
|
|
|
@@ -358,14 +380,14 @@ Makes the final ship decision based on evidence:
|
|
|
358
380
|
- PMCP visual evidence (UI projects)
|
|
359
381
|
- Applies "evidence over assertion" -- independently verifies every upstream claim
|
|
360
382
|
|
|
361
|
-
Verdicts: **SHIP** (
|
|
383
|
+
Verdicts: **SHIP** (the story branch merges `--no-ff` into the target branch and the backlog flips to shipped), **SHIP-PARTIAL** (mobile: ship Android, defer iOS), **REJECT** (the story branch is left unmerged for the fix/retry; send back with corrections).
|
|
362
384
|
|
|
363
385
|
### Rejection Loops
|
|
364
386
|
|
|
365
387
|
When CRITIC or JUDGE rejects work:
|
|
366
388
|
1. Lead re-queues the responsible agent with the specific rejection findings
|
|
367
389
|
2. Agent reworks and resubmits
|
|
368
|
-
3. Circuit breaker (`max_rejection_cycles`, default
|
|
390
|
+
3. Circuit breaker (`max_rejection_cycles`, default 3) prevents infinite loops
|
|
369
391
|
4. After max cycles, Lead escalates to user
|
|
370
392
|
|
|
371
393
|
## Crash Recovery
|
|
@@ -397,7 +419,6 @@ After initialization, the pipeline installs to `.valent-pipeline/` in your proje
|
|
|
397
419
|
qa-a/ # Test spec steps (domain-specific)
|
|
398
420
|
qa-b/ # Test execution steps (domain-specific)
|
|
399
421
|
reqs/ # Requirements analysis steps
|
|
400
|
-
readiness/ # Readiness gate steps
|
|
401
422
|
judge/ # Judge gate steps
|
|
402
423
|
orchestration/ # Shared orchestration steps (config, story resolution, status)
|
|
403
424
|
retrospective/ # Retrospective analysis steps
|
|
@@ -410,7 +431,6 @@ After initialization, the pipeline installs to `.valent-pipeline/` in your proje
|
|
|
410
431
|
mcp-dev/ # MCP server developer steps
|
|
411
432
|
mobile/ # Mobile developer steps
|
|
412
433
|
uxa/ # UX specification steps
|
|
413
|
-
spawn-templates/ # Agent spawn configuration
|
|
414
434
|
scripts/ # Pipeline utility scripts
|
|
415
435
|
docs/ # Pipeline reference documentation
|
|
416
436
|
knowledge/
|
|
@@ -428,19 +448,12 @@ Full reference documentation lives in `pipeline/docs/`:
|
|
|
428
448
|
| [Pipeline Overview](pipeline/docs/pipeline-overview.md) | Architecture, flow, artifact map |
|
|
429
449
|
| [Agent Reference](pipeline/docs/agent-reference.md) | All agents, models, inputs/outputs |
|
|
430
450
|
| [Communication Standard](pipeline/docs/communication-standard.md) | Handoff format, inbox protocol, Design Council |
|
|
431
|
-
| [Lead Lifecycle](pipeline/docs/lead-lifecycle.md) | Kick-off, monitoring, ship, crash recovery |
|
|
432
451
|
| [Task Graph Specification](pipeline/docs/task-graph.md) | Dependencies, task states, claiming |
|
|
433
452
|
| [Pipeline State Schema](pipeline/docs/pipeline-state-schema.md) | JSON schema for pipeline-state.json |
|
|
434
453
|
| [Knowledge System](pipeline/docs/knowledge-system.md) | RAG assessment, correction directives, curation |
|
|
435
454
|
| [Template Skeleton](pipeline/docs/template-skeleton.md) | Universal handoff document structure |
|
|
436
455
|
| [NPX Packaging](pipeline/docs/npx-packaging.md) | Package distribution and init workflow |
|
|
437
456
|
|
|
438
|
-
### Reference
|
|
439
|
-
|
|
440
|
-
| Document | Description |
|
|
441
|
-
|---|---|
|
|
442
|
-
| [Refactor Checklist](pipeline/docs/design/refactor-checklist.md) | Every location to update when changing agents, config, tables, or phases |
|
|
443
|
-
|
|
444
457
|
## License
|
|
445
458
|
|
|
446
459
|
MIT
|