valent-pipeline 0.1.6 → 0.1.7
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/package.json +1 -1
- package/pipeline/agents-manifest.yaml +16 -16
- package/pipeline/docs/agent-reference.md +2 -2
- package/pipeline/docs/knowledge-system.md +5 -5
- package/pipeline/docs/lead-lifecycle.md +4 -4
- package/pipeline/docs/lean-spawn-human-tasks.md +7 -7
- package/pipeline/docs/npx-implementation-plan.md +16 -16
- package/pipeline/docs/npx-packaging.md +31 -31
- package/pipeline/docs/pipeline-overview.md +5 -5
- package/pipeline/docs/template-skeleton.md +4 -4
- package/pipeline/prompts/bend.md +6 -6
- package/pipeline/prompts/critic.md +8 -8
- package/pipeline/prompts/embed.md +2 -2
- package/pipeline/prompts/fend.md +6 -6
- package/pipeline/prompts/help.md +2 -2
- package/pipeline/prompts/judge-g1.md +3 -3
- package/pipeline/prompts/judge-g2.md +4 -4
- package/pipeline/prompts/lead.md +16 -16
- package/pipeline/prompts/pmcp.md +1 -1
- package/pipeline/prompts/qa-a.md +15 -15
- package/pipeline/prompts/qa-b.md +17 -17
- package/pipeline/prompts/reqs.md +7 -7
- package/pipeline/prompts/retrospective.md +14 -14
- package/pipeline/prompts/uxa.md +5 -5
- package/pipeline/scripts/embed-sqlite.ts +4 -4
- package/pipeline/scripts/embed.ts +3 -3
- package/pipeline/spawn-templates/knowledge-spawn.template.md +1 -1
- package/pipeline/steps/bend/handoff.md +2 -2
- package/pipeline/steps/critic/write-verdict.md +2 -2
- package/pipeline/steps/fend/handoff.md +2 -2
- package/pipeline/steps/judge-g2/ship-decision.md +2 -2
- package/pipeline/steps/orchestration/adopt-lead-and-create-team.md +8 -8
- package/pipeline/steps/orchestration/load-agents-manifest.md +2 -2
- package/pipeline/steps/orchestration/load-pipeline-config.md +2 -2
- package/pipeline/steps/orchestration/validate-story-inputs.md +1 -1
- package/pipeline/steps/qa-a/write-spec.md +1 -1
- package/pipeline/steps/qa-b/execute-tests.md +4 -4
- package/pipeline/steps/qa-b/write-report.md +1 -1
- package/pipeline/steps/reqs/draft-brief.md +1 -1
- package/pipeline/steps/reqs/write-output.md +1 -1
- package/pipeline/steps/retrospective/embed-instructions.md +1 -1
- package/pipeline/steps/retrospective/report.md +1 -1
- package/pipeline/steps/uxa/write-output.md +1 -1
- package/pipeline/task-graphs/backend-api.yaml +8 -8
- package/pipeline/task-graphs/data-pipeline.yaml +8 -8
- package/pipeline/task-graphs/document-generation.yaml +8 -8
- package/pipeline/task-graphs/frontend-only.yaml +10 -10
- package/pipeline/task-graphs/fullstack-web.yaml +10 -10
- package/pipeline/task-graphs/library.yaml +8 -8
- package/pipeline/task-graphs/mcp-server.yaml +8 -8
- package/pipeline/templates/embed-instructions.template.md +1 -1
- package/pipeline/templates/retrospective.template.md +1 -1
- package/skills/{v3-configure → valent-configure}/SKILL.md +10 -10
- package/skills/{v3-debug-export → valent-debug-export}/SKILL.md +16 -16
- package/skills/{v3-help → valent-help}/SKILL.md +24 -24
- package/skills/{v3-run-epic → valent-run-epic}/SKILL.md +14 -14
- package/skills/{v3-run-retrospective → valent-run-retrospective}/SKILL.md +4 -4
- package/skills/{v3-run-story → valent-run-story}/SKILL.md +10 -10
- package/skills/{v3-setup-backlog → valent-setup-backlog}/SKILL.md +6 -6
- package/src/commands/db-init.js +3 -3
- package/src/commands/db-rebuild.js +3 -3
- package/src/commands/init.js +17 -14
- package/src/commands/upgrade.js +6 -6
- package/src/commands/validate.js +4 -4
- package/src/lib/config-schema.js +1 -1
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@ agents:
|
|
|
29
29
|
model: opus
|
|
30
30
|
lifecycle: persistent
|
|
31
31
|
role: "Pipeline orchestrator — spawns team, monitors execution, manages story lifecycle"
|
|
32
|
-
prompt_template:
|
|
32
|
+
prompt_template: .valent-pipeline/prompts/lead.md
|
|
33
33
|
reads_from: [story-input, agents-manifest.yaml, pipeline-config.yaml, pipeline-state.json]
|
|
34
34
|
writes_to: [pipeline-state.json]
|
|
35
35
|
|
|
@@ -38,7 +38,7 @@ agents:
|
|
|
38
38
|
model: sonnet
|
|
39
39
|
lifecycle: per-story
|
|
40
40
|
role: "Requirements analyst — translates ACs into implementation brief"
|
|
41
|
-
prompt_template:
|
|
41
|
+
prompt_template: .valent-pipeline/prompts/reqs.md
|
|
42
42
|
reads_from: [story-input] # all story folder contents: ACs, trigger-map, architecture-decisions, UX spec when available
|
|
43
43
|
writes_to: [reqs-brief.md]
|
|
44
44
|
|
|
@@ -47,7 +47,7 @@ agents:
|
|
|
47
47
|
model: sonnet
|
|
48
48
|
lifecycle: per-story
|
|
49
49
|
role: "UX specification agent — translates UX spec into component specs"
|
|
50
|
-
prompt_template:
|
|
50
|
+
prompt_template: .valent-pipeline/prompts/uxa.md
|
|
51
51
|
reads_from: [reqs-brief.md, ux-spec, trigger-map, scenarios]
|
|
52
52
|
writes_to: [uxa-spec.md]
|
|
53
53
|
project_types: [fullstack-web, frontend-only]
|
|
@@ -58,7 +58,7 @@ agents:
|
|
|
58
58
|
model: sonnet
|
|
59
59
|
lifecycle: per-story
|
|
60
60
|
role: "QA spec writer — produces behavioral test specifications"
|
|
61
|
-
prompt_template:
|
|
61
|
+
prompt_template: .valent-pipeline/prompts/qa-a.md
|
|
62
62
|
reads_from: [reqs-brief.md, uxa-spec.md]
|
|
63
63
|
writes_to: [qa-test-spec.md, visual-validation-checklist.md]
|
|
64
64
|
|
|
@@ -67,7 +67,7 @@ agents:
|
|
|
67
67
|
model: sonnet
|
|
68
68
|
lifecycle: per-story
|
|
69
69
|
role: "Quality gate — validates reqs, UXA spec, test specs (Pass 1) and bug priorities (Pass 2)"
|
|
70
|
-
prompt_template:
|
|
70
|
+
prompt_template: .valent-pipeline/prompts/judge-g1.md
|
|
71
71
|
passes:
|
|
72
72
|
pass1_review_order: [reqs-validation, uxa-validation, qa-spec-validation] # sequential, stop on first failure
|
|
73
73
|
pass2: bug-review
|
|
@@ -79,7 +79,7 @@ agents:
|
|
|
79
79
|
model: sonnet
|
|
80
80
|
lifecycle: per-story
|
|
81
81
|
role: "Backend developer — implements production code and tests"
|
|
82
|
-
prompt_template:
|
|
82
|
+
prompt_template: .valent-pipeline/prompts/bend.md
|
|
83
83
|
reads_from: [reqs-brief.md, qa-test-spec.md]
|
|
84
84
|
writes_to: [bend-handoff.md]
|
|
85
85
|
|
|
@@ -88,7 +88,7 @@ agents:
|
|
|
88
88
|
model: sonnet
|
|
89
89
|
lifecycle: per-story
|
|
90
90
|
role: "Frontend developer — implements UI components and tests"
|
|
91
|
-
prompt_template:
|
|
91
|
+
prompt_template: .valent-pipeline/prompts/fend.md
|
|
92
92
|
reads_from: [reqs-brief.md, uxa-spec.md, qa-test-spec.md]
|
|
93
93
|
writes_to: [fend-handoff.md]
|
|
94
94
|
project_types: [fullstack-web, frontend-only]
|
|
@@ -98,7 +98,7 @@ agents:
|
|
|
98
98
|
model: opus
|
|
99
99
|
lifecycle: per-story
|
|
100
100
|
role: "Code reviewer — 3-pass adversarial review of production and test code"
|
|
101
|
-
prompt_template:
|
|
101
|
+
prompt_template: .valent-pipeline/prompts/critic.md
|
|
102
102
|
review_passes: [blind-hunt, edge-case-hunt, acceptance-audit, triage]
|
|
103
103
|
reads_from: [git-diff, reqs-brief.md, qa-test-spec.md]
|
|
104
104
|
writes_to: [critic-review.md]
|
|
@@ -108,7 +108,7 @@ agents:
|
|
|
108
108
|
model: sonnet
|
|
109
109
|
lifecycle: per-story
|
|
110
110
|
role: "Test executor — runs tests, validates spec alignment, files bugs"
|
|
111
|
-
prompt_template:
|
|
111
|
+
prompt_template: .valent-pipeline/prompts/qa-b.md
|
|
112
112
|
reads_from: [qa-test-spec.md, critic-review.md, reqs-brief.md]
|
|
113
113
|
writes_to: [execution-report.md, bugs.md, traceability-matrix.md]
|
|
114
114
|
can_request_spawn: [pmcp] # asks lead to spawn PMCP
|
|
@@ -118,7 +118,7 @@ agents:
|
|
|
118
118
|
model: sonnet
|
|
119
119
|
lifecycle: per-story
|
|
120
120
|
role: "Final ship gate — evidence-based approval or rejection"
|
|
121
|
-
prompt_template:
|
|
121
|
+
prompt_template: .valent-pipeline/prompts/judge-g2.md
|
|
122
122
|
reads_from: [execution-report.md, traceability-matrix.md, pmcp-evidence.md, bugs.md, judge-g1-review.md, qa-test-spec.md] # critic-review.md intentionally excluded — G2 validates test/execution evidence, not code review; qa-test-spec.md used as reference for assertion cross-check
|
|
123
123
|
writes_to: [judge-g2-decision.md, story-report.md]
|
|
124
124
|
|
|
@@ -127,7 +127,7 @@ agents:
|
|
|
127
127
|
model: haiku
|
|
128
128
|
lifecycle: per-story
|
|
129
129
|
role: "Knowledge retrieval — answers queries from persistent data sources"
|
|
130
|
-
prompt_template:
|
|
130
|
+
prompt_template: .valent-pipeline/prompts/knowledge.md
|
|
131
131
|
data_sources: [chromadb, curated-knowledge-files, correction-directives]
|
|
132
132
|
context_variables: [knowledge_mode, chromadb_host, chromadb_collection_prefix, curated_files_path, correction_directives]
|
|
133
133
|
# No writes_to — Knowledge Agent responds via inbox only, no file output
|
|
@@ -137,7 +137,7 @@ ephemeral_agents:
|
|
|
137
137
|
name: PMCP
|
|
138
138
|
model: sonnet
|
|
139
139
|
role: "Visual validation — executes browser automation MCP checklist, captures screenshots"
|
|
140
|
-
prompt_template:
|
|
140
|
+
prompt_template: .valent-pipeline/prompts/pmcp.md
|
|
141
141
|
reads_from: [visual-validation-checklist.md]
|
|
142
142
|
writes_to: [pmcp-evidence.md]
|
|
143
143
|
spawned_by: lead
|
|
@@ -148,7 +148,7 @@ ephemeral_agents:
|
|
|
148
148
|
name: Embed
|
|
149
149
|
model: haiku
|
|
150
150
|
role: "Knowledge indexer — indexes curated patterns into knowledge base"
|
|
151
|
-
prompt_template:
|
|
151
|
+
prompt_template: .valent-pipeline/prompts/embed.md
|
|
152
152
|
spawned_by: lead
|
|
153
153
|
triggered_by: retrospective # only runs after Retrospective Agent curates what to index
|
|
154
154
|
|
|
@@ -156,7 +156,7 @@ ephemeral_agents:
|
|
|
156
156
|
name: Retrospective
|
|
157
157
|
model: sonnet
|
|
158
158
|
role: "Batch reviewer — analyzes last N stories for recurring patterns"
|
|
159
|
-
prompt_template:
|
|
159
|
+
prompt_template: .valent-pipeline/prompts/retrospective.md
|
|
160
160
|
spawned_by: lead
|
|
161
161
|
triggered_by: every-n-stories
|
|
162
162
|
|
|
@@ -164,7 +164,7 @@ ephemeral_agents:
|
|
|
164
164
|
name: Help
|
|
165
165
|
model: haiku
|
|
166
166
|
role: "Pipeline help — explains any piece of the pipeline from documentation"
|
|
167
|
-
prompt_template:
|
|
168
|
-
reads_from: [
|
|
167
|
+
prompt_template: .valent-pipeline/prompts/help.md
|
|
168
|
+
reads_from: [.valent-pipeline/docs/]
|
|
169
169
|
spawned_by: lead
|
|
170
170
|
triggered_by: user-request
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# V3 Agent Reference
|
|
2
2
|
|
|
3
3
|
> Quick reference for all 15 agents in the v3 pipeline.
|
|
4
|
-
> Definitive source:
|
|
4
|
+
> Definitive source: `.valent-pipeline/agents-manifest.yaml`
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -41,7 +41,7 @@ Spawned on-demand by the Lead when triggered by specific events.
|
|
|
41
41
|
| PMCP | Sonnet | Visual validation -- browser automation MCP, captures screenshots | `visual-validation-checklist.md` | `pmcp-evidence.md` | Requested by QA-B, BEND, or FEND |
|
|
42
42
|
| Embed | Haiku | Knowledge indexer -- indexes curated patterns into knowledge base | _(retrospective output)_ | _(indexing instructions)_ | After Retrospective agent curates what to index |
|
|
43
43
|
| Retrospective | Sonnet | Batch reviewer -- analyzes last N stories for recurring patterns | _(story reports)_ | _(retrospective report)_ | Every N stories (configurable) |
|
|
44
|
-
| Help | Haiku | Pipeline help -- explains any piece of the pipeline from documentation |
|
|
44
|
+
| Help | Haiku | Pipeline help -- explains any piece of the pipeline from documentation | `.valent-pipeline/docs/` | _(inbox only)_ | User request |
|
|
45
45
|
|
|
46
46
|
---
|
|
47
47
|
|
|
@@ -10,8 +10,8 @@ The knowledge system has three data sources, three agents, and one principle: th
|
|
|
10
10
|
|
|
11
11
|
| Source | Format | Purpose |
|
|
12
12
|
|--------|--------|---------|
|
|
13
|
-
| **Curated knowledge files** | Markdown in
|
|
14
|
-
| **Correction directives** | YAML in
|
|
13
|
+
| **Curated knowledge files** | Markdown in `.valent-pipeline/knowledge/curated/` | Conventions, validated patterns, known pitfalls, test stability data |
|
|
14
|
+
| **Correction directives** | YAML in `.valent-pipeline/knowledge/correction-directives.yaml` | Behavioral changes for agents -- translates observations into prompt-level guidance |
|
|
15
15
|
| **ChromaDB** (optional) | Vector store via Docker or remote host | Embedding-based retrieval for code patterns and build artifacts |
|
|
16
16
|
|
|
17
17
|
### Agents
|
|
@@ -34,7 +34,7 @@ Retrospective Agent
|
|
|
34
34
|
v
|
|
35
35
|
Embed Agent
|
|
36
36
|
|--- indexes ---> ChromaDB collections (if configured)
|
|
37
|
-
|--- writes --->
|
|
37
|
+
|--- writes ---> .valent-pipeline/knowledge/curated/ files
|
|
38
38
|
v
|
|
39
39
|
Knowledge Agent (next story)
|
|
40
40
|
|--- reads ---> correction directives (active only)
|
|
@@ -175,7 +175,7 @@ Configured via `knowledge.mode` in `pipeline-config.yaml`.
|
|
|
175
175
|
|
|
176
176
|
### `local-docker`
|
|
177
177
|
|
|
178
|
-
- ChromaDB runs locally via `docker compose -f
|
|
178
|
+
- ChromaDB runs locally via `docker compose -f .valent-pipeline/docker-compose.chromadb.yml up -d`
|
|
179
179
|
- Knowledge Agent connects to ChromaDB at the configured `chromadb_host` (typically `http://localhost:8000`)
|
|
180
180
|
- Falls back to curated-only mode if ChromaDB is unreachable
|
|
181
181
|
- Embed Agent indexes into both ChromaDB collections and curated files
|
|
@@ -224,7 +224,7 @@ Each instruction specifies content, target, and metadata:
|
|
|
224
224
|
|
|
225
225
|
| Target | Behavior |
|
|
226
226
|
|--------|----------|
|
|
227
|
-
| `curated/{filename}` | Write or update a file in
|
|
227
|
+
| `curated/{filename}` | Write or update a file in `.valent-pipeline/knowledge/curated/`. Existing content is preserved unless the instruction specifies replacement. |
|
|
228
228
|
| `chromadb-collection:{name}` | Index into the named ChromaDB collection with the specified metadata. Only executed when `knowledge_mode` is `local-docker` or `connect-to-existing`. |
|
|
229
229
|
|
|
230
230
|
### Embed Agent Behavior
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Lead Agent Lifecycle Reference
|
|
2
2
|
|
|
3
|
-
> Detailed reference for lead agent behavior. The lead prompt (
|
|
3
|
+
> Detailed reference for lead agent behavior. The lead prompt (`.valent-pipeline/prompts/lead.md`) references this document for long-form details.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -49,12 +49,12 @@ The lead reads `agents-manifest.yaml`, filters by `lifecycle: per-story`, and ch
|
|
|
49
49
|
### Step 3: Prepare Shared Context
|
|
50
50
|
|
|
51
51
|
- Place story input files in the story directory (`{story_output_dir}/`)
|
|
52
|
-
- Read active correction directives from
|
|
52
|
+
- Read active correction directives from `.valent-pipeline/knowledge/correction-directives.yaml`
|
|
53
53
|
- Include correction directives in the shared context for all agents
|
|
54
54
|
|
|
55
55
|
### Step 4: Build Task Dependency Graph
|
|
56
56
|
|
|
57
|
-
See
|
|
57
|
+
See `.valent-pipeline/docs/task-graph.md` for the full specification. The lead constructs the graph from manifest `reads_from`/`writes_to` fields and the story execution sequence.
|
|
58
58
|
|
|
59
59
|
### Step 5: Spawn Teammates
|
|
60
60
|
|
|
@@ -94,7 +94,7 @@ When a gate rejects, the lead reads the rejection reason and routes per the Reje
|
|
|
94
94
|
|
|
95
95
|
### Escalation Handling
|
|
96
96
|
|
|
97
|
-
Any teammate can send an inbox escalation to the lead. The lead either resolves autonomously or surfaces to the user via the Human Escalation Protocol (see
|
|
97
|
+
Any teammate can send an inbox escalation to the lead. The lead either resolves autonomously or surfaces to the user via the Human Escalation Protocol (see `.valent-pipeline/docs/communication-standard.md#7`).
|
|
98
98
|
|
|
99
99
|
### PMCP / Embed Requests
|
|
100
100
|
|
|
@@ -123,19 +123,19 @@ valent-pipeline init --yes
|
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
Verify:
|
|
126
|
-
-
|
|
127
|
-
- `.claude/skills/
|
|
128
|
-
-
|
|
126
|
+
- `.valent-pipeline/` directory created with all infrastructure files
|
|
127
|
+
- `.claude/skills/valent-*/SKILL.md` files installed
|
|
128
|
+
- `.valent-pipeline/pipeline-config.yaml` generated with defaults
|
|
129
129
|
- `pipeline-backlog.yaml` created
|
|
130
|
-
-
|
|
131
|
-
-
|
|
130
|
+
- `.valent-pipeline/knowledge/curated/` directory with README
|
|
131
|
+
- `.valent-pipeline/knowledge/correction-directives.yaml` exists
|
|
132
132
|
|
|
133
133
|
Then test other commands:
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
136
|
valent-pipeline config validate # should exit 0
|
|
137
137
|
valent-pipeline upgrade --dry-run # should show no changes (just installed)
|
|
138
|
-
valent-pipeline db init # should create
|
|
138
|
+
valent-pipeline db init # should create .valent-pipeline/pipeline.db
|
|
139
139
|
valent-pipeline db rebuild # should complete (no stories to index yet)
|
|
140
140
|
```
|
|
141
141
|
|
|
@@ -204,4 +204,4 @@ npx valent-pipeline upgrade
|
|
|
204
204
|
1. **Package name:** `valent-pipeline` (unscoped) or `@valent/pipeline` (scoped)?
|
|
205
205
|
2. **Embedding model:** Start with FTS5-only (simpler, no model dependency) or include vector embeddings from day 1?
|
|
206
206
|
3. **ChromaDB deprecation:** Remove ChromaDB support entirely or keep as alternate mode?
|
|
207
|
-
4. **
|
|
207
|
+
4. **valent-run-epic team lifecycle:** The Knowledge persistence change means teams persist across stories in an epic. Confirm you're OK with this behavioral change.
|
|
@@ -33,7 +33,7 @@ valent-pipeline/
|
|
|
33
33
|
bin/cli.js
|
|
34
34
|
src/commands/{init,upgrade,validate}.js
|
|
35
35
|
src/lib/{templates,config-schema}.js
|
|
36
|
-
pipeline/ # infrastructure copied to user's
|
|
36
|
+
pipeline/ # infrastructure copied to user's .valent-pipeline/
|
|
37
37
|
prompts/
|
|
38
38
|
templates/
|
|
39
39
|
task-graphs/ # 7 yaml files (one per project type)
|
|
@@ -43,9 +43,9 @@ valent-pipeline/
|
|
|
43
43
|
docker-compose.chromadb.yml
|
|
44
44
|
docs/
|
|
45
45
|
skills/ # copied to user's .claude/skills/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
valent-run-story/SKILL.md
|
|
47
|
+
valent-configure/SKILL.md
|
|
48
|
+
valent-run-retrospective/SKILL.md
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
---
|
|
@@ -76,24 +76,24 @@ valent-pipeline/
|
|
|
76
76
|
- ChromaDB settings
|
|
77
77
|
- `--yes` flag for non-interactive defaults
|
|
78
78
|
- File scaffolding on completion:
|
|
79
|
-
- Copy `pipeline/` contents to
|
|
80
|
-
- Generate
|
|
79
|
+
- Copy `pipeline/` contents to `./.valent-pipeline/`
|
|
80
|
+
- Generate `.valent-pipeline/pipeline-config.yaml` from answers
|
|
81
81
|
- Create empty `pipeline-backlog.yaml`
|
|
82
82
|
- Copy `skills/` contents to `./.claude/skills/`
|
|
83
|
-
- Create
|
|
84
|
-
- Create
|
|
85
|
-
- Append
|
|
86
|
-
- Write
|
|
87
|
-
- Guard: warn if
|
|
83
|
+
- Create `.valent-pipeline/knowledge/curated/` with seeded README
|
|
84
|
+
- Create `.valent-pipeline/knowledge/correction-directives.yaml` (empty template)
|
|
85
|
+
- Append `.valent-pipeline/chromadb-data/` to `.gitignore`
|
|
86
|
+
- Write `.valent-pipeline/.valent-version` with current package version
|
|
87
|
+
- Guard: warn if `.valent-pipeline/pipeline-config.yaml` already exists; require `--force` to overwrite
|
|
88
88
|
|
|
89
89
|
---
|
|
90
90
|
|
|
91
91
|
## Step 4: Implement `upgrade` command [Medium]
|
|
92
92
|
|
|
93
93
|
**Deliverables:**
|
|
94
|
-
- Reads
|
|
94
|
+
- Reads `.valent-pipeline/.valent-version` to determine currently installed version
|
|
95
95
|
- Replaces infrastructure files only (prompts, templates, task-graphs, spawn-templates, agents-manifest, scripts, docker-compose, docs, skills)
|
|
96
|
-
- Never touches project-specific files: `pipeline-config.yaml`, `correction-directives.yaml`, `pipeline-backlog.yaml`,
|
|
96
|
+
- Never touches project-specific files: `pipeline-config.yaml`, `correction-directives.yaml`, `pipeline-backlog.yaml`, `.valent-pipeline/knowledge/curated/`
|
|
97
97
|
- `--dry-run` flag: prints what would change without writing
|
|
98
98
|
- Major version bumps require `--force` and print migration notes
|
|
99
99
|
|
|
@@ -102,7 +102,7 @@ valent-pipeline/
|
|
|
102
102
|
## Step 5: Implement `config validate` command [Small]
|
|
103
103
|
|
|
104
104
|
**Deliverables:**
|
|
105
|
-
- JSON schema validation of
|
|
105
|
+
- JSON schema validation of `.valent-pipeline/pipeline-config.yaml` against schema in `src/lib/config-schema.js`
|
|
106
106
|
- Exit code `0` on valid, `1` on invalid (CI-friendly)
|
|
107
107
|
- Human-readable error output with field paths
|
|
108
108
|
|
|
@@ -111,10 +111,10 @@ valent-pipeline/
|
|
|
111
111
|
## Step 6: Repo reorganization [Medium]
|
|
112
112
|
|
|
113
113
|
**Deliverables:**
|
|
114
|
-
- Infrastructure files moved/copied from
|
|
114
|
+
- Infrastructure files moved/copied from `.valent-pipeline/` and `.claude/skills/valent-*/` into `valent-pipeline/pipeline/` and `valent-pipeline/skills/`
|
|
115
115
|
- All 7 task graph YAML files created under `valent-pipeline/pipeline/task-graphs/` (existing 3 moved; 4 new ones authored: data-pipeline, mcp-server, document-generation, library)
|
|
116
116
|
- Kanban test project (`kanban/`) stays as-is; consumes via `npm link` after this step
|
|
117
|
-
- Current repo
|
|
117
|
+
- Current repo `.valent-pipeline/` remains as the "installed pipeline" for live testing
|
|
118
118
|
|
|
119
119
|
---
|
|
120
120
|
|
|
@@ -20,29 +20,29 @@ The v3 pipeline splits into three categories of files:
|
|
|
20
20
|
|
|
21
21
|
| File | Category | Notes |
|
|
22
22
|
|------|----------|-------|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
| `.claude/skills/
|
|
36
|
-
| `.claude/skills/
|
|
37
|
-
| `.claude/skills/
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
23
|
+
| `.valent-pipeline/prompts/*.md` (14 files) | Pipeline infrastructure | Shipped with package |
|
|
24
|
+
| `.valent-pipeline/templates/*.md` (17 files) | Pipeline infrastructure | Shipped with package |
|
|
25
|
+
| `.valent-pipeline/task-graphs/fullstack-web.yaml` | Pipeline infrastructure | Shipped with package |
|
|
26
|
+
| `.valent-pipeline/task-graphs/backend-api.yaml` | Pipeline infrastructure | Shipped with package |
|
|
27
|
+
| `.valent-pipeline/task-graphs/frontend-only.yaml` | Pipeline infrastructure | Shipped with package |
|
|
28
|
+
| `.valent-pipeline/spawn-templates/pipeline-context.template.md` | Pipeline infrastructure | Shipped with package; filled at runtime |
|
|
29
|
+
| `.valent-pipeline/spawn-templates/agent-spawn.template.md` | Pipeline infrastructure | Shipped with package |
|
|
30
|
+
| `.valent-pipeline/spawn-templates/knowledge-spawn.template.md` | Pipeline infrastructure | Shipped with package |
|
|
31
|
+
| `.valent-pipeline/agents-manifest.yaml` | Pipeline infrastructure | Shipped with package; models section overridable via project config |
|
|
32
|
+
| `.valent-pipeline/scripts/embed.ts` | Pipeline infrastructure | Shipped with package |
|
|
33
|
+
| `.valent-pipeline/docker-compose.chromadb.yml` | Pipeline infrastructure | Shipped with package |
|
|
34
|
+
| `.valent-pipeline/docs/*.md` | Pipeline infrastructure | Shipped with package |
|
|
35
|
+
| `.claude/skills/valent-run-story/SKILL.md` | Pipeline infrastructure | Installed to project's `.claude/skills/` by init |
|
|
36
|
+
| `.claude/skills/valent-configure/` | Pipeline infrastructure | Installed to project's `.claude/skills/` by init |
|
|
37
|
+
| `.claude/skills/valent-run-retrospective/` | Pipeline infrastructure | Installed to project's `.claude/skills/` by init |
|
|
38
|
+
| `.valent-pipeline/pipeline-config.yaml` | Project-specific | Generated by init wizard from user answers |
|
|
39
|
+
| `.valent-pipeline/knowledge/curated/` | Project-specific | Directory created by init; README seeded; content added by project team |
|
|
40
|
+
| `.valent-pipeline/knowledge/correction-directives.yaml` | Project-specific | Empty template written by init; populated by Retrospective agent over time |
|
|
41
41
|
| `pipeline-backlog.yaml` | Project-specific | Initialized empty by init |
|
|
42
42
|
| `stories/` | Runtime-generated | Created during story execution |
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
43
|
+
| `.valent-pipeline/steps/qa-a/` | Runtime-generated | QA-A step files written during story execution |
|
|
44
|
+
| `.valent-pipeline/steps/qa-b/` | Runtime-generated | QA-B step files written during story execution |
|
|
45
|
+
| `.valent-pipeline/chromadb-data/` | Runtime-generated | ChromaDB persistent volume; not committed |
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
@@ -51,14 +51,14 @@ The v3 pipeline splits into three categories of files:
|
|
|
51
51
|
`npx valent-pipeline init` runs an interactive wizard and then sets up the project:
|
|
52
52
|
|
|
53
53
|
1. **Prompt** for project type (`fullstack-web`, `backend-api`, `frontend-only`, etc.), tech stack (language, frameworks, test tools), model tier preferences, and knowledge store mode.
|
|
54
|
-
2. **Copy pipeline infrastructure** to
|
|
55
|
-
3. **Generate
|
|
54
|
+
2. **Copy pipeline infrastructure** to `.valent-pipeline/` in the project: prompts, templates, task graphs, spawn templates, agents manifest, scripts, docker-compose, docs.
|
|
55
|
+
3. **Generate `.valent-pipeline/pipeline-config.yaml`** from user answers.
|
|
56
56
|
4. **Initialize `pipeline-backlog.yaml`** as an empty backlog template.
|
|
57
|
-
5. **Install skills** to the project's `.claude/skills/` directory (not the user's global `~/.claude/skills/`): `
|
|
58
|
-
6. **Create
|
|
59
|
-
7. **Create
|
|
57
|
+
5. **Install skills** to the project's `.claude/skills/` directory (not the user's global `~/.claude/skills/`): `valent-run-story`, `valent-configure`, `valent-run-retrospective`. Project-scoped skills are resolved by Claude Code from the repo root, so they travel with the repo and don't collide with other projects on the same machine.
|
|
58
|
+
6. **Create `.valent-pipeline/knowledge/curated/`** with a seeded README explaining how to add curated files.
|
|
59
|
+
7. **Create `.valent-pipeline/knowledge/correction-directives.yaml`** as an empty template.
|
|
60
60
|
|
|
61
|
-
The `stories/` directory and all runtime-generated content are created on demand during the first `/
|
|
61
|
+
The `stories/` directory and all runtime-generated content are created on demand during the first `/valent-run-story` invocation.
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
@@ -66,7 +66,7 @@ The `stories/` directory and all runtime-generated content are created on demand
|
|
|
66
66
|
|
|
67
67
|
The new task-graph and spawn-template files shift logic from imperative SKILL.md code to declarative data files. This has direct implications for packaging:
|
|
68
68
|
|
|
69
|
-
**Task graphs are static per project type.** The Lead reads
|
|
69
|
+
**Task graphs are static per project type.** The Lead reads `.valent-pipeline/task-graphs/{project_type}.yaml` at startup to get the dependency graph, rather than building it from logic embedded in SKILL.md. Adding a new project type means adding a new YAML file — no changes to SKILL.md.
|
|
70
70
|
|
|
71
71
|
**Spawn templates are static.** The orchestrator fills `pipeline-context.template.md` at runtime with story ID, pipeline config, and knowledge context, then uses it when spawning agents. The template itself ships unchanged with the package.
|
|
72
72
|
|
|
@@ -78,8 +78,8 @@ The new task-graph and spawn-template files shift logic from imperative SKILL.md
|
|
|
78
78
|
|
|
79
79
|
## 5. Future Considerations
|
|
80
80
|
|
|
81
|
-
**Version management.** When a new package version is released, infrastructure files in
|
|
81
|
+
**Version management.** When a new package version is released, infrastructure files in `.valent-pipeline/` need to be updated. A `npx valent-pipeline upgrade` command (or a check during init/run) should diff the installed versions of infrastructure files against the package version and offer a guided upgrade. Project-specific files (`pipeline-config.yaml`, `correction-directives.yaml`, backlog) must never be overwritten during upgrade.
|
|
82
82
|
|
|
83
|
-
**Knowledge and ChromaDB.** The
|
|
83
|
+
**Knowledge and ChromaDB.** The `.valent-pipeline/knowledge/curated/` directory and `correction-directives.yaml` are project-specific and grow over time. ChromaDB data (`.valent-pipeline/chromadb-data/`) is a runtime artifact that should be in `.gitignore`. The embed script (`.valent-pipeline/scripts/embed.ts`) is infrastructure and ships with the package, but the ChromaDB instance itself is the project team's responsibility to stand up and maintain.
|
|
84
84
|
|
|
85
|
-
**Skills installation.** Skills are installed to the project's `.claude/skills/` directory, not the user's global `~/.claude/skills/`. Claude Code resolves skills from the project root first, so project-scoped skills take precedence and don't collide across projects. This means multiple projects on the same machine can run different pipeline versions without conflict. The init command should create `.claude/skills/
|
|
85
|
+
**Skills installation.** Skills are installed to the project's `.claude/skills/` directory, not the user's global `~/.claude/skills/`. Claude Code resolves skills from the project root first, so project-scoped skills take precedence and don't collide across projects. This means multiple projects on the same machine can run different pipeline versions without conflict. The init command should create `.claude/skills/valent-run-story/`, `.claude/skills/valent-configure/`, and `.claude/skills/valent-run-retrospective/` inside the project repo.
|
|
@@ -92,7 +92,7 @@ All inter-agent communication uses the distilled communication standard:
|
|
|
92
92
|
- **Design Council** protocol for structured deliberation on contested design decisions
|
|
93
93
|
- **Human Escalation** protocol when agent deliberation is insufficient
|
|
94
94
|
|
|
95
|
-
See
|
|
95
|
+
See `.valent-pipeline/docs/communication-standard.md` for the full specification.
|
|
96
96
|
|
|
97
97
|
---
|
|
98
98
|
|
|
@@ -109,21 +109,21 @@ See `v3/docs/communication-standard.md` for the full specification.
|
|
|
109
109
|
## How to Run It
|
|
110
110
|
|
|
111
111
|
```
|
|
112
|
-
/
|
|
112
|
+
/valent-run-story STORY-ID
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
This spawns the Lead agent, which reads the story input from `stories/STORY-ID/`, builds the team, and executes the pipeline.
|
|
116
116
|
|
|
117
117
|
### Prerequisites
|
|
118
118
|
|
|
119
|
-
1. A
|
|
119
|
+
1. A `.valent-pipeline/pipeline-config.yaml` file exists (run `/valent-configure` to generate one)
|
|
120
120
|
2. A story directory exists at `stories/STORY-ID/` with at least a `story.md` file containing the user story and acceptance criteria
|
|
121
121
|
|
|
122
122
|
---
|
|
123
123
|
|
|
124
124
|
## How to Configure
|
|
125
125
|
|
|
126
|
-
Run `/
|
|
126
|
+
Run `/valent-configure` to interactively set:
|
|
127
127
|
|
|
128
128
|
- **Project type** -- fullstack-web, backend-api, frontend-only, data-pipeline, mcp-server, document-generation, library
|
|
129
129
|
- **Tech stack** -- language, frameworks, test tools, browser automation
|
|
@@ -131,7 +131,7 @@ Run `/v3-configure` to interactively set:
|
|
|
131
131
|
- **Quality thresholds** -- max rejection cycles, retrospective frequency, stall detection timeout
|
|
132
132
|
- **Knowledge store** -- none (curated files only), local-docker (ChromaDB), or connect-to-existing
|
|
133
133
|
|
|
134
|
-
Configuration is stored in
|
|
134
|
+
Configuration is stored in `.valent-pipeline/pipeline-config.yaml`. See that file for detailed comments on every setting.
|
|
135
135
|
|
|
136
136
|
---
|
|
137
137
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Template Skeleton Reference
|
|
2
2
|
|
|
3
|
-
Universal structure that all 16 handoff document templates follow. Consult this document before authoring or modifying any template in
|
|
3
|
+
Universal structure that all 16 handoff document templates follow. Consult this document before authoring or modifying any template in `.valent-pipeline/templates/`.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -197,7 +197,7 @@ blockers: []
|
|
|
197
197
|
|
|
198
198
|
### What does NOT go in a template
|
|
199
199
|
|
|
200
|
-
- Agent reasoning logic or decision procedures. That belongs in the agent's prompt (
|
|
200
|
+
- Agent reasoning logic or decision procedures. That belongs in the agent's prompt (`.valent-pipeline/prompts/{agent}.md`).
|
|
201
201
|
- Hardcoded tech stack references. Use `{backend_framework}`, `{test_framework_unit}`, etc. when the section content varies by tech stack.
|
|
202
202
|
- Prose instructions to the agent. Templates are output schemas, not input prompts.
|
|
203
203
|
- Default values or example data. Placeholders use `{token}` syntax only.
|
|
@@ -222,7 +222,7 @@ The lead agent validates handoff artifacts against templates at two points:
|
|
|
222
222
|
|
|
223
223
|
### At pipeline initialization
|
|
224
224
|
|
|
225
|
-
- For every agent in the manifest, verify that each `writes_to` artifact has a corresponding `.template.md` file in
|
|
225
|
+
- For every agent in the manifest, verify that each `writes_to` artifact has a corresponding `.template.md` file in `.valent-pipeline/templates/`.
|
|
226
226
|
- For every `reads_from` entry, verify that some other agent's `writes_to` produces it (or it is a story input).
|
|
227
227
|
- Missing templates are a configuration error; the lead halts and reports.
|
|
228
228
|
|
|
@@ -259,7 +259,7 @@ Templates do not restate the communication standard rules. They embody them stru
|
|
|
259
259
|
|
|
260
260
|
## 7. Template Inventory
|
|
261
261
|
|
|
262
|
-
The 16 templates in
|
|
262
|
+
The 16 templates in `.valent-pipeline/templates/`, mapped to their producing agents:
|
|
263
263
|
|
|
264
264
|
| Template | Producing Agent | Primary Consumers |
|
|
265
265
|
|----------|----------------|-------------------|
|
package/pipeline/prompts/bend.md
CHANGED
|
@@ -69,7 +69,7 @@ Read active correction directives from `{correction_directives}`. If the file do
|
|
|
69
69
|
|
|
70
70
|
## Output
|
|
71
71
|
|
|
72
|
-
Write `bend-handoff.md` using the template at
|
|
72
|
+
Write `bend-handoff.md` using the template at `.valent-pipeline/templates/bend-handoff.template.md`. Update YAML frontmatter as you complete each step.
|
|
73
73
|
|
|
74
74
|
## Quality Standards
|
|
75
75
|
|
|
@@ -99,13 +99,13 @@ Update `stepsCompleted` and `pendingSteps` in frontmatter as you progress.
|
|
|
99
99
|
|
|
100
100
|
### Decision Gate: testing_profiles
|
|
101
101
|
|
|
102
|
-
If `testing_profiles` excludes `api`, read
|
|
102
|
+
If `testing_profiles` excludes `api`, read `.valent-pipeline/steps/common/no-api-passthrough.md` and skip remaining steps.
|
|
103
103
|
|
|
104
104
|
### Steps
|
|
105
105
|
|
|
106
106
|
| Step | File | Summary |
|
|
107
107
|
|------|------|---------|
|
|
108
|
-
| 1. Read Inputs |
|
|
109
|
-
| 2. Implement |
|
|
110
|
-
| 3. Write Tests |
|
|
111
|
-
| 4. Handoff |
|
|
108
|
+
| 1. Read Inputs | `.valent-pipeline/steps/bend/read-inputs.md` | Read reqs-brief, qa-test-spec, correction directives, knowledge queries |
|
|
109
|
+
| 2. Implement | `.valent-pipeline/steps/bend/implement.md` | DB changes, API endpoints, business logic |
|
|
110
|
+
| 3. Write Tests | `.valent-pipeline/steps/bend/write-tests.md` | Test writing, DB verification, execution, integration readiness |
|
|
111
|
+
| 4. Handoff | `.valent-pipeline/steps/bend/handoff.md` | Write bend-handoff.md, final verification |
|
|
@@ -74,7 +74,7 @@ Update YAML frontmatter as you complete each step. Fields: `stepsCompleted`, `pe
|
|
|
74
74
|
|
|
75
75
|
## Output
|
|
76
76
|
|
|
77
|
-
Write `critic-review.md` using the template at
|
|
77
|
+
Write `critic-review.md` using the template at `.valent-pipeline/templates/critic-review.template.md`. Update YAML frontmatter as you complete each step.
|
|
78
78
|
|
|
79
79
|
## Step Sequence
|
|
80
80
|
|
|
@@ -82,15 +82,15 @@ After triage-depth, execute only the passes indicated by your selected depth lev
|
|
|
82
82
|
|
|
83
83
|
| Step | File | Condition |
|
|
84
84
|
|------|------|-----------|
|
|
85
|
-
| 0. Triage Depth |
|
|
85
|
+
| 0. Triage Depth | `.valent-pipeline/steps/critic/triage-depth.md` | Always |
|
|
86
86
|
| 1. Read git diff | (inline) | Always |
|
|
87
|
-
| 2. Pass 1: Blind Hunt |
|
|
87
|
+
| 2. Pass 1: Blind Hunt | `.valent-pipeline/steps/critic/blind-hunt.md` | standard, deep |
|
|
88
88
|
| 2b. Query Knowledge Agent | (inline -- conditional) | If Knowledge Agent available |
|
|
89
|
-
| 3. Pass 2: Edge Case Hunt |
|
|
90
|
-
| 4. Pass 3: Acceptance Audit |
|
|
91
|
-
| 5. Test Code Review |
|
|
92
|
-
| 6. Triage |
|
|
93
|
-
| 7. Write Verdict |
|
|
89
|
+
| 3. Pass 2: Edge Case Hunt | `.valent-pipeline/steps/critic/edge-case-hunt.md` | deep only |
|
|
90
|
+
| 4. Pass 3: Acceptance Audit | `.valent-pipeline/steps/critic/acceptance-audit.md` | Always |
|
|
91
|
+
| 5. Test Code Review | `.valent-pipeline/steps/critic/test-review.md` | standard, deep |
|
|
92
|
+
| 6. Triage | `.valent-pipeline/steps/critic/triage.md` | Always |
|
|
93
|
+
| 7. Write Verdict | `.valent-pipeline/steps/critic/write-verdict.md` | Always |
|
|
94
94
|
|
|
95
95
|
### Step 1: Read the git diff
|
|
96
96
|
Read ALL changed files. Categorize into production code vs test code. Note file count and line count for the Review Scope section.
|
|
@@ -32,7 +32,7 @@ Verify `{story_output_dir}/embed-instructions.md` exists. If missing, send `[BLO
|
|
|
32
32
|
**If `{knowledge_mode}` is `sqlite` (recommended):**
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
npx tsx
|
|
35
|
+
npx tsx .valent-pipeline/scripts/embed-sqlite.ts {story_output_dir}/embed-instructions.md \
|
|
36
36
|
--db-path {sqlite_db_path} \
|
|
37
37
|
--curated-path {curated_files_path}
|
|
38
38
|
```
|
|
@@ -46,7 +46,7 @@ The script handles:
|
|
|
46
46
|
**If `{knowledge_mode}` is `local-docker` or `connect-to-existing` (legacy):**
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
npx tsx
|
|
49
|
+
npx tsx .valent-pipeline/scripts/embed.ts {story_output_dir}/embed-instructions.md \
|
|
50
50
|
--chromadb-host {chromadb_host} \
|
|
51
51
|
--collection-prefix {chromadb_collection_prefix} \
|
|
52
52
|
--curated-path {curated_files_path}
|
package/pipeline/prompts/fend.md
CHANGED
|
@@ -66,7 +66,7 @@ Read active correction directives from `{correction_directives}`. If the file do
|
|
|
66
66
|
|
|
67
67
|
## Output
|
|
68
68
|
|
|
69
|
-
Write `fend-handoff.md` using the template at
|
|
69
|
+
Write `fend-handoff.md` using the template at `.valent-pipeline/templates/fend-handoff.template.md`. Update YAML frontmatter as you complete each step.
|
|
70
70
|
|
|
71
71
|
## Quality Standards
|
|
72
72
|
|
|
@@ -124,13 +124,13 @@ Update `stepsCompleted` and `pendingSteps` in frontmatter as you progress.
|
|
|
124
124
|
|
|
125
125
|
### Decision Gate: testing_profiles
|
|
126
126
|
|
|
127
|
-
If `testing_profiles` excludes `ui`, read
|
|
127
|
+
If `testing_profiles` excludes `ui`, read `.valent-pipeline/steps/common/no-ui-passthrough.md` and skip remaining steps.
|
|
128
128
|
|
|
129
129
|
### Steps
|
|
130
130
|
|
|
131
131
|
| Step | File | Summary |
|
|
132
132
|
|------|------|---------|
|
|
133
|
-
| 1. Read Inputs |
|
|
134
|
-
| 2. Implement |
|
|
135
|
-
| 3. Write Tests |
|
|
136
|
-
| 4. Handoff |
|
|
133
|
+
| 1. Read Inputs | `.valent-pipeline/steps/fend/read-inputs.md` | Read reqs-brief, uxa-spec, qa-test-spec, correction directives, knowledge queries |
|
|
134
|
+
| 2. Implement | `.valent-pipeline/steps/fend/implement.md` | Components, states, accessibility, routing |
|
|
135
|
+
| 3. Write Tests | `.valent-pipeline/steps/fend/write-tests.md` | Test writing, execution, integration readiness |
|
|
136
|
+
| 4. Handoff | `.valent-pipeline/steps/fend/handoff.md` | Write fend-handoff.md, final verification |
|