valent-pipeline 0.2.19 → 0.2.21

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.
Files changed (115) hide show
  1. package/README.md +438 -0
  2. package/package.json +1 -1
  3. package/pipeline/agents-manifest.yaml +61 -1
  4. package/pipeline/docs/agent-reference.md +82 -23
  5. package/pipeline/docs/design/refactor-checklist.md +111 -0
  6. package/pipeline/docs/index.md +60 -0
  7. package/pipeline/docs/lead-lifecycle.md +1 -1
  8. package/pipeline/docs/pipeline-overview.md +4 -0
  9. package/pipeline/prompts/bend.md +5 -11
  10. package/pipeline/prompts/critic.md +9 -0
  11. package/pipeline/prompts/data.md +59 -0
  12. package/pipeline/prompts/docgen.md +61 -0
  13. package/pipeline/prompts/fend.md +3 -10
  14. package/pipeline/prompts/iac.md +70 -0
  15. package/pipeline/prompts/knowledge.md +2 -0
  16. package/pipeline/prompts/lead.md +97 -6
  17. package/pipeline/prompts/libdev.md +61 -0
  18. package/pipeline/prompts/mcp-dev.md +59 -0
  19. package/pipeline/prompts/mobile.md +92 -0
  20. package/pipeline/prompts/qa-a.md +1 -1
  21. package/pipeline/prompts/qa-b.md +1 -1
  22. package/pipeline/prompts/reqs.md +5 -1
  23. package/pipeline/scripts/db-bootstrap.ts +1 -1
  24. package/pipeline/scripts/embed-sqlite.ts +5 -0
  25. package/pipeline/steps/common/quality-standards.md +19 -0
  26. package/pipeline/steps/critic/data-pipeline.md +28 -0
  27. package/pipeline/steps/critic/document-generation.md +21 -0
  28. package/pipeline/steps/critic/iac.md +29 -0
  29. package/pipeline/steps/critic/library.md +24 -0
  30. package/pipeline/steps/critic/mcp-server.md +24 -0
  31. package/pipeline/steps/critic/mobile-app.md +29 -0
  32. package/pipeline/steps/data/estimate.md +51 -0
  33. package/pipeline/steps/data/handoff.md +9 -0
  34. package/pipeline/steps/data/implement.md +16 -0
  35. package/pipeline/steps/data/read-inputs.md +13 -0
  36. package/pipeline/steps/data/write-tests.md +13 -0
  37. package/pipeline/steps/docgen/estimate.md +49 -0
  38. package/pipeline/steps/docgen/handoff.md +9 -0
  39. package/pipeline/steps/docgen/implement.md +19 -0
  40. package/pipeline/steps/docgen/read-inputs.md +13 -0
  41. package/pipeline/steps/docgen/write-tests.md +15 -0
  42. package/pipeline/steps/iac/estimate.md +50 -0
  43. package/pipeline/steps/iac/handoff.md +9 -0
  44. package/pipeline/steps/iac/implement.md +19 -0
  45. package/pipeline/steps/iac/read-inputs.md +13 -0
  46. package/pipeline/steps/iac/write-tests.md +20 -0
  47. package/pipeline/steps/judge/ship-decision.md +14 -1
  48. package/pipeline/steps/libdev/estimate.md +49 -0
  49. package/pipeline/steps/libdev/handoff.md +9 -0
  50. package/pipeline/steps/libdev/implement.md +19 -0
  51. package/pipeline/steps/libdev/read-inputs.md +13 -0
  52. package/pipeline/steps/libdev/write-tests.md +16 -0
  53. package/pipeline/steps/mcp-dev/estimate.md +49 -0
  54. package/pipeline/steps/mcp-dev/handoff.md +9 -0
  55. package/pipeline/steps/mcp-dev/implement.md +29 -0
  56. package/pipeline/steps/mcp-dev/read-inputs.md +13 -0
  57. package/pipeline/steps/mcp-dev/write-tests.md +19 -0
  58. package/pipeline/steps/mobile/emulator-lifecycle.md +67 -0
  59. package/pipeline/steps/mobile/estimate.md +51 -0
  60. package/pipeline/steps/mobile/flutter.md +30 -0
  61. package/pipeline/steps/mobile/handoff.md +18 -0
  62. package/pipeline/steps/mobile/implement.md +20 -0
  63. package/pipeline/steps/mobile/react-native.md +32 -0
  64. package/pipeline/steps/mobile/read-inputs.md +10 -0
  65. package/pipeline/steps/mobile/write-tests.md +59 -0
  66. package/pipeline/steps/orchestration/adopt-lead-and-create-team.md +1 -1
  67. package/pipeline/steps/orchestration/sprint-execute.md +3 -2
  68. package/pipeline/steps/orchestration/sprint-groom.md +4 -0
  69. package/pipeline/steps/orchestration/sprint-size.md +26 -16
  70. package/pipeline/steps/orchestration/validate-story-inputs.md +9 -0
  71. package/pipeline/steps/qa-a/data-pipeline.md +32 -0
  72. package/pipeline/steps/qa-a/document-generation.md +52 -0
  73. package/pipeline/steps/qa-a/iac.md +30 -0
  74. package/pipeline/steps/qa-a/library.md +42 -0
  75. package/pipeline/steps/qa-a/mcp-server.md +31 -0
  76. package/pipeline/steps/qa-a/mobile-app.md +59 -0
  77. package/pipeline/steps/qa-b/data-pipeline.md +48 -0
  78. package/pipeline/steps/qa-b/document-generation.md +47 -0
  79. package/pipeline/steps/qa-b/iac.md +44 -0
  80. package/pipeline/steps/qa-b/library.md +61 -0
  81. package/pipeline/steps/qa-b/mcp-server.md +40 -0
  82. package/pipeline/steps/qa-b/mobile-app.md +71 -0
  83. package/pipeline/steps/readiness/standalone-review.md +7 -2
  84. package/pipeline/steps/reqs/data-pipeline.md +56 -0
  85. package/pipeline/steps/reqs/document-generation.md +55 -0
  86. package/pipeline/steps/reqs/draft-brief.md +10 -0
  87. package/pipeline/steps/reqs/iac.md +63 -0
  88. package/pipeline/steps/reqs/library.md +56 -0
  89. package/pipeline/steps/reqs/mcp-server.md +48 -0
  90. package/pipeline/steps/reqs/mobile-app.md +54 -0
  91. package/pipeline/steps/reqs/self-review.md +5 -3
  92. package/pipeline/task-graphs/backend-api.yaml +19 -2
  93. package/pipeline/task-graphs/data-pipeline.yaml +29 -12
  94. package/pipeline/task-graphs/document-generation.yaml +29 -12
  95. package/pipeline/task-graphs/frontend-only.yaml +19 -2
  96. package/pipeline/task-graphs/fullstack-web.yaml +19 -2
  97. package/pipeline/task-graphs/library.yaml +29 -12
  98. package/pipeline/task-graphs/mcp-server.yaml +29 -12
  99. package/pipeline/task-graphs/mobile-app.yaml +171 -0
  100. package/pipeline/templates/bugs.template.md +1 -1
  101. package/pipeline/templates/critic-review.template.md +1 -1
  102. package/pipeline/templates/data-handoff.template.md +96 -0
  103. package/pipeline/templates/docgen-handoff.template.md +83 -0
  104. package/pipeline/templates/iac-handoff.template.md +83 -0
  105. package/pipeline/templates/judge-decision.template.md +11 -1
  106. package/pipeline/templates/libdev-handoff.template.md +82 -0
  107. package/pipeline/templates/mcp-dev-handoff.template.md +87 -0
  108. package/pipeline/templates/mobile-handoff.template.md +122 -0
  109. package/pipeline/templates/reqs-brief.template.md +60 -4
  110. package/skills/valent-run-deferred-tests/SKILL.md +109 -0
  111. package/skills/valent-run-epic/SKILL.md +1 -1
  112. package/skills/valent-run-project/SKILL.md +1 -1
  113. package/src/commands/db-rebuild.js +5 -0
  114. package/src/lib/config-schema.js +1 -1
  115. package/src/lib/db.js +1 -1
@@ -0,0 +1,56 @@
1
+ # REQS Step: Library Requirements
2
+
3
+ ## Step 4b: Library-Specific Requirement Extraction
4
+
5
+ For stories with `library` in `testing_profiles`, extract additional requirements:
6
+
7
+ ### Public API Surface
8
+ - Exported symbols (functions, classes, constants, types)
9
+ - Function signatures with parameter types and return types
10
+ - Overload variants (if applicable)
11
+ - Re-export paths (subpath exports via package.json `exports` map)
12
+
13
+ ### Semver Policy
14
+ - What constitutes a breaking change (removed export, changed signature, changed behavior)
15
+ - What constitutes a minor change (new export, new optional parameter)
16
+ - What constitutes a patch change (bug fix, internal refactor, docs)
17
+ - Current version and expected version after this story ships
18
+
19
+ ### Backwards Compatibility Constraints
20
+ - Previously published API surface that must remain stable
21
+ - Deprecated symbols and their migration path
22
+ - Minimum supported runtime versions (Node.js, browser targets)
23
+ - Compatibility with existing consumer code patterns
24
+
25
+ ### Module System Requirements
26
+ - Package format: CJS, ESM, or dual
27
+ - Entry points: `main`, `module`, `exports` map configuration
28
+ - Conditional exports (node, import, require, default)
29
+ - Build output structure and file extensions (.js, .mjs, .cjs)
30
+
31
+ ### Type Declaration Requirements
32
+ - Type declaration strategy: `.d.ts` files, inline TypeScript, JSDoc
33
+ - Generic type parameters and constraints
34
+ - Strict mode compatibility (noImplicitAny, strictNullChecks)
35
+ - Type export completeness (every public symbol has a corresponding type)
36
+
37
+ ### Peer Dependency Contract
38
+ - Required peer dependencies with version ranges
39
+ - Optional peer dependencies and behavior when absent
40
+ - Conflict resolution for overlapping dependency ranges
41
+ - Runtime detection of missing peers (clear error messages)
42
+
43
+ ### Tree-Shaking Requirements
44
+ - `sideEffects` field value (false, or list of side-effectful files)
45
+ - Barrel re-export avoidance (no index files that re-export everything)
46
+ - Per-export isolation (importing one symbol must not pull in unrelated code)
47
+ - Bundle size expectations for selective imports
48
+
49
+ ## Quality Gate Additions
50
+
51
+ - [ ] Every exported symbol has defined behavior and type
52
+ - [ ] Semver impact classified (breaking, minor, or patch)
53
+ - [ ] Module system entry points specified (CJS, ESM, or dual)
54
+ - [ ] Type declarations defined for every public export
55
+ - [ ] Peer dependency contract documented with version ranges
56
+ - [ ] Tree-shaking requirements specified if sideEffects: false is declared
@@ -0,0 +1,48 @@
1
+ # REQS Step: MCP Server Requirements
2
+
3
+ ## Step 4b: MCP-Server-Specific Requirement Extraction
4
+
5
+ For stories with `mcp-server` in `testing_profiles`, extract additional requirements:
6
+
7
+ ### Tool Definitions
8
+ - Tool name, human-readable description, and purpose
9
+ - Which tools the server exposes at `tools/list`
10
+ - Tool grouping or categorization (if server exposes many tools)
11
+
12
+ ### Input Schemas per Tool
13
+ - Required and optional parameters with types
14
+ - Parameter constraints (min/max, regex, enum values, string length)
15
+ - Nested object schemas and array item types
16
+ - Default values for optional parameters
17
+
18
+ ### Output Content Types per Tool
19
+ - Content type per tool response (text, image, audio, resource)
20
+ - Response shape: key fields, MIME types, encoding
21
+ - Multi-content responses (tools returning mixed content types)
22
+ - Resource URIs and their resolution behavior
23
+
24
+ ### Capability Declarations
25
+ - What the server advertises in `initialize` response (tools, resources, prompts)
26
+ - Server info (name, version)
27
+ - Protocol version compatibility
28
+ - Resource subscription support (if applicable)
29
+
30
+ ### Transport Requirements
31
+ - Supported transport(s): stdio, SSE, streamable HTTP
32
+ - Connection lifecycle (startup, shutdown, reconnect behavior)
33
+ - Concurrency model (serial tool calls vs parallel)
34
+ - Timeout behavior per tool (long-running operations, cancellation)
35
+
36
+ ### Error Model per Tool
37
+ - JSON-RPC error codes for protocol-level failures (-32700, -32600, -32601, -32602, -32603)
38
+ - `isError: true` content responses for tool-level failures (business logic errors)
39
+ - Specific error scenarios per tool (invalid input, resource not found, permission denied, rate limited)
40
+ - Error message format and detail level
41
+
42
+ ## Quality Gate Additions
43
+
44
+ - [ ] Every tool has explicit error behavior defined (both JSON-RPC codes and isError:true scenarios)
45
+ - [ ] Every tool has an input schema with required/optional params and types
46
+ - [ ] Every tool has output content type(s) specified
47
+ - [ ] Capability declarations documented for initialize handshake
48
+ - [ ] Transport requirements specified
@@ -0,0 +1,54 @@
1
+ # REQS Step: Mobile App Requirements
2
+
3
+ ## Step 4b: Mobile-App-Specific Requirement Extraction
4
+
5
+ For stories with `mobile-app` in `testing_profiles`, extract additional requirements:
6
+
7
+ ### Screen Inventory
8
+ - Screen names and navigation hierarchy (stack, tab, drawer, modal)
9
+ - Deep link URI patterns per screen (e.g., `myapp://settings/profile`)
10
+ - Back button / gesture behavior per screen (Android hardware back, iOS swipe-to-go-back)
11
+ - Screen transition animations (if specified in UX)
12
+
13
+ ### Platform-Specific Behavior
14
+ - Android-only vs iOS-only vs shared behavior per AC
15
+ - Permission requirements per platform (camera, location, notifications, storage, contacts, biometrics)
16
+ - Minimum OS version targets (Android API level, iOS version)
17
+ - Platform-specific UI patterns (Material Design vs Human Interface Guidelines)
18
+
19
+ ### Offline and Connectivity Requirements
20
+ - Offline-capable features and sync behavior (queue-and-retry, optimistic UI, conflict resolution)
21
+ - Network error handling per screen (retry, fallback, offline banner)
22
+ - Local storage / caching strategy (AsyncStorage, MMKV, SQLite, Hive)
23
+ - Background sync requirements
24
+
25
+ ### Device Form Factor
26
+ - Phone vs tablet layout requirements
27
+ - Orientation support (portrait, landscape, both) per screen
28
+ - Safe area / notch / dynamic island handling
29
+ - Keyboard avoidance behavior for input screens
30
+
31
+ ### Push Notification Requirements
32
+ - Notification types and payload structure
33
+ - Foreground vs background handling behavior
34
+ - Deep link from notification tap (target screen, parameters)
35
+ - Silent / data-only notification handling
36
+
37
+ ### App Lifecycle Requirements
38
+ - Background → foreground behavior (refresh data, re-authenticate)
39
+ - App termination recovery (restore navigation state, pending form data)
40
+ - Multi-window / split-screen behavior (if applicable)
41
+
42
+ ### Native Module Dependencies
43
+ - Camera, biometrics, file system, Bluetooth, NFC, etc.
44
+ - Third-party SDK requirements (maps, analytics, crash reporting)
45
+ - Platform-specific native module availability
46
+
47
+ ## Quality Gate Additions
48
+
49
+ - [ ] Every screen has navigation path and deep link documented
50
+ - [ ] Platform-specific behavior explicit for each AC (or explicitly marked "identical on both platforms")
51
+ - [ ] Permission requirements listed per platform
52
+ - [ ] Offline behavior specified (or explicitly marked as online-only)
53
+ - [ ] Push notification handling defined (or explicitly marked as no-push)
54
+ - [ ] App lifecycle edge cases addressed (background/foreground, termination recovery)
@@ -10,13 +10,15 @@ Verify completeness:
10
10
  - [ ] Every AC has a priority classification (P0-P3)
11
11
  - [ ] All ambiguities are documented with resolution and rationale
12
12
  - [ ] Business rules cover all ACs with edge case notes
13
- - [ ] Database changes are specified (or explicitly marked "none" with rationale)
14
- - [ ] API endpoints are specified (or explicitly marked "none" with rationale)
15
- - [ ] Auth requirements are defined
13
+ - [ ] If api or data-pipeline in testing_profiles: database changes are specified (or explicitly marked "none" with rationale)
14
+ - [ ] If api in testing_profiles: API endpoints are specified (or explicitly marked "none" with rationale)
15
+ - [ ] If api or ui in testing_profiles: auth requirements are defined
16
16
  - [ ] Cross-cutting concerns are addressed
17
17
  - [ ] NFR targets are set
18
18
  - [ ] Pre-mortem has at least 3 findings
19
19
  - [ ] All pre-mortem `folded-in` findings are reflected in the brief
20
20
  - [ ] Cross-references section points to all consumed inputs
21
+ - [ ] All quality gate additions from loaded domain step files (Step 4b) are satisfied
22
+ - [ ] Domain-specific conditional sections from template are populated for each active profile
21
23
 
22
24
  If any check fails, go back and fix it before proceeding.
@@ -37,12 +37,20 @@ tasks:
37
37
  activeForm: "BEND implementing backend"
38
38
  blockedBy: [readiness]
39
39
 
40
+ - ref: iac
41
+ agent: IAC
42
+ subject: "IAC: Implement infrastructure definitions and tests"
43
+ description: "Read reqs-brief.md and qa-test-spec.md, implement infrastructure code, produce iac-handoff.md."
44
+ activeForm: "IAC implementing infrastructure"
45
+ blockedBy: [readiness]
46
+ conditional: "testing_profiles includes iac"
47
+
40
48
  - ref: critic
41
49
  agent: CRITIC
42
50
  subject: "CRITIC: Adversarial code review"
43
51
  description: "Read git-diff, reqs-brief.md, qa-test-spec.md. Run blind-hunt, edge-case-hunt, acceptance-audit, triage passes. Produce critic-review.md."
44
52
  activeForm: "CRITIC reviewing code"
45
- blockedBy: [bend]
53
+ blockedBy: [bend, iac]
46
54
 
47
55
  - ref: qa_b
48
56
  agent: QA-B
@@ -102,12 +110,21 @@ agents:
102
110
  completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
103
111
  cd_targets: [bend]
104
112
 
113
+ - name: IAC
114
+ ref: iac
115
+ wave: 2
116
+ spawn_trigger: "qa_a completed"
117
+ prompt: .valent-pipeline/prompts/iac.md
118
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
119
+ completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
120
+ cd_targets: [iac]
121
+
105
122
  - name: CRITIC
106
123
  ref: critic
107
124
  wave: 2
108
125
  spawn_trigger: "qa_a completed"
109
126
  prompt: .valent-pipeline/prompts/critic.md
110
- trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from BEND before starting review."
127
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from all active dev agents before starting review."
111
128
  completion: "Send [HANDOFF] to Lead and QA-B. Mark task completed."
112
129
  cd_targets: [critic]
113
130
 
@@ -30,19 +30,27 @@ tasks:
30
30
  activeForm: "READINESS reviewing pre-dev artifacts"
31
31
  blockedBy: [qa_a]
32
32
 
33
- - ref: bend
34
- agent: BEND
35
- subject: "BEND: Implement data pipeline production code and tests"
36
- description: "Read reqs-brief.md and qa-test-spec.md, implement data pipeline, produce bend-handoff.md."
37
- activeForm: "BEND implementing data pipeline"
33
+ - ref: data
34
+ agent: DATA
35
+ subject: "DATA: Implement data pipeline production code and tests"
36
+ description: "Read reqs-brief.md and qa-test-spec.md, implement data pipeline, produce data-handoff.md."
37
+ activeForm: "DATA implementing data pipeline"
38
38
  blockedBy: [readiness]
39
39
 
40
+ - ref: iac
41
+ agent: IAC
42
+ subject: "IAC: Implement infrastructure definitions and tests"
43
+ description: "Read reqs-brief.md and qa-test-spec.md, implement infrastructure code, produce iac-handoff.md."
44
+ activeForm: "IAC implementing infrastructure"
45
+ blockedBy: [readiness]
46
+ conditional: "testing_profiles includes iac"
47
+
40
48
  - ref: critic
41
49
  agent: CRITIC
42
50
  subject: "CRITIC: Adversarial code review"
43
51
  description: "Read git-diff, reqs-brief.md, qa-test-spec.md. Run blind-hunt, edge-case-hunt, acceptance-audit, triage passes. Produce critic-review.md."
44
52
  activeForm: "CRITIC reviewing code"
45
- blockedBy: [bend]
53
+ blockedBy: [data, iac]
46
54
 
47
55
  - ref: qa_b
48
56
  agent: QA-B
@@ -89,25 +97,34 @@ agents:
89
97
  wave: 1
90
98
  prompt: .valent-pipeline/prompts/readiness.md
91
99
  trigger: "Wait for [HANDOFF] from QA-A. Begin when task is unblocked."
92
- completion: "Send [READINESS-APPROVAL] to BEND, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
100
+ completion: "Send [READINESS-APPROVAL] to DATA, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
93
101
  cd_targets: [readiness]
94
102
 
95
103
  # Wave 2: Spawn when QA-A completes (spin up while READINESS reviews)
96
- - name: BEND
97
- ref: bend
104
+ - name: DATA
105
+ ref: data
106
+ wave: 2
107
+ spawn_trigger: "qa_a completed"
108
+ prompt: .valent-pipeline/prompts/data.md
109
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
110
+ completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
111
+ cd_targets: [data]
112
+
113
+ - name: IAC
114
+ ref: iac
98
115
  wave: 2
99
116
  spawn_trigger: "qa_a completed"
100
- prompt: .valent-pipeline/prompts/bend.md
117
+ prompt: .valent-pipeline/prompts/iac.md
101
118
  trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
102
119
  completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
103
- cd_targets: [bend]
120
+ cd_targets: [iac]
104
121
 
105
122
  - name: CRITIC
106
123
  ref: critic
107
124
  wave: 2
108
125
  spawn_trigger: "qa_a completed"
109
126
  prompt: .valent-pipeline/prompts/critic.md
110
- trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from BEND before starting review."
127
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from all active dev agents before starting review."
111
128
  completion: "Send [HANDOFF] to Lead and QA-B. Mark task completed."
112
129
  cd_targets: [critic]
113
130
 
@@ -30,19 +30,27 @@ tasks:
30
30
  activeForm: "READINESS reviewing pre-dev artifacts"
31
31
  blockedBy: [qa_a]
32
32
 
33
- - ref: bend
34
- agent: BEND
35
- subject: "BEND: Implement template and content pipeline production code and tests"
36
- description: "Read reqs-brief.md and qa-test-spec.md, implement document generation templates and content pipeline, produce bend-handoff.md."
37
- activeForm: "BEND implementing document generation"
33
+ - ref: docgen
34
+ agent: DOCGEN
35
+ subject: "DOCGEN: Implement template and content pipeline production code and tests"
36
+ description: "Read reqs-brief.md and qa-test-spec.md, implement document generation templates and content pipeline, produce docgen-handoff.md."
37
+ activeForm: "DOCGEN implementing document generation"
38
38
  blockedBy: [readiness]
39
39
 
40
+ - ref: iac
41
+ agent: IAC
42
+ subject: "IAC: Implement infrastructure definitions and tests"
43
+ description: "Read reqs-brief.md and qa-test-spec.md, implement infrastructure code, produce iac-handoff.md."
44
+ activeForm: "IAC implementing infrastructure"
45
+ blockedBy: [readiness]
46
+ conditional: "testing_profiles includes iac"
47
+
40
48
  - ref: critic
41
49
  agent: CRITIC
42
50
  subject: "CRITIC: Adversarial code review"
43
51
  description: "Read git-diff, reqs-brief.md, qa-test-spec.md. Run blind-hunt, edge-case-hunt, acceptance-audit, triage passes. Produce critic-review.md."
44
52
  activeForm: "CRITIC reviewing code"
45
- blockedBy: [bend]
53
+ blockedBy: [docgen, iac]
46
54
 
47
55
  - ref: qa_b
48
56
  agent: QA-B
@@ -89,25 +97,34 @@ agents:
89
97
  wave: 1
90
98
  prompt: .valent-pipeline/prompts/readiness.md
91
99
  trigger: "Wait for [HANDOFF] from QA-A. Begin when task is unblocked."
92
- completion: "Send [READINESS-APPROVAL] to BEND, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
100
+ completion: "Send [READINESS-APPROVAL] to DOCGEN, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
93
101
  cd_targets: [readiness]
94
102
 
95
103
  # Wave 2: Spawn when QA-A completes (spin up while READINESS reviews)
96
- - name: BEND
97
- ref: bend
104
+ - name: DOCGEN
105
+ ref: docgen
106
+ wave: 2
107
+ spawn_trigger: "qa_a completed"
108
+ prompt: .valent-pipeline/prompts/docgen.md
109
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
110
+ completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
111
+ cd_targets: [docgen]
112
+
113
+ - name: IAC
114
+ ref: iac
98
115
  wave: 2
99
116
  spawn_trigger: "qa_a completed"
100
- prompt: .valent-pipeline/prompts/bend.md
117
+ prompt: .valent-pipeline/prompts/iac.md
101
118
  trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
102
119
  completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
103
- cd_targets: [bend]
120
+ cd_targets: [iac]
104
121
 
105
122
  - name: CRITIC
106
123
  ref: critic
107
124
  wave: 2
108
125
  spawn_trigger: "qa_a completed"
109
126
  prompt: .valent-pipeline/prompts/critic.md
110
- trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from BEND before starting review."
127
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from all active dev agents before starting review."
111
128
  completion: "Send [HANDOFF] to Lead and QA-B. Mark task completed."
112
129
  cd_targets: [critic]
113
130
 
@@ -51,12 +51,20 @@ tasks:
51
51
  activeForm: "FEND implementing frontend"
52
52
  blockedBy: [readiness]
53
53
 
54
+ - ref: iac
55
+ agent: IAC
56
+ subject: "IAC: Implement infrastructure definitions and tests"
57
+ description: "Read reqs-brief.md and qa-test-spec.md, implement infrastructure code, produce iac-handoff.md."
58
+ activeForm: "IAC implementing infrastructure"
59
+ blockedBy: [readiness]
60
+ conditional: "testing_profiles includes iac"
61
+
54
62
  - ref: critic
55
63
  agent: CRITIC
56
64
  subject: "CRITIC: Adversarial code review"
57
65
  description: "Read git-diff, reqs-brief.md, qa-test-spec.md. Run blind-hunt, edge-case-hunt, acceptance-audit, triage passes. Produce critic-review.md."
58
66
  activeForm: "CRITIC reviewing code"
59
- blockedBy: [fend]
67
+ blockedBy: [fend, iac]
60
68
 
61
69
  - ref: qa_b
62
70
  agent: QA-B
@@ -132,12 +140,21 @@ agents:
132
140
  completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
133
141
  cd_targets: [fend]
134
142
 
143
+ - name: IAC
144
+ ref: iac
145
+ wave: 2
146
+ spawn_trigger: "qa_a completed"
147
+ prompt: .valent-pipeline/prompts/iac.md
148
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
149
+ completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
150
+ cd_targets: [iac]
151
+
135
152
  - name: CRITIC
136
153
  ref: critic
137
154
  wave: 2
138
155
  spawn_trigger: "qa_a completed"
139
156
  prompt: .valent-pipeline/prompts/critic.md
140
- trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from FEND before starting review."
157
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from all active dev agents before starting review."
141
158
  completion: "Send [HANDOFF] to Lead and QA-B. Mark task completed."
142
159
  cd_targets: [critic]
143
160
 
@@ -59,12 +59,20 @@ tasks:
59
59
  blockedBy: [readiness]
60
60
  skip_when: "testing_profiles excludes ui"
61
61
 
62
+ - ref: iac
63
+ agent: IAC
64
+ subject: "IAC: Implement infrastructure definitions and tests"
65
+ description: "Read reqs-brief.md and qa-test-spec.md, implement infrastructure code, produce iac-handoff.md."
66
+ activeForm: "IAC implementing infrastructure"
67
+ blockedBy: [readiness]
68
+ conditional: "testing_profiles includes iac"
69
+
62
70
  - ref: critic
63
71
  agent: CRITIC
64
72
  subject: "CRITIC: Adversarial code review"
65
73
  description: "Read git-diff, reqs-brief.md, qa-test-spec.md. Run blind-hunt, edge-case-hunt, acceptance-audit, triage passes. Produce critic-review.md."
66
74
  activeForm: "CRITIC reviewing code"
67
- blockedBy: [bend, fend]
75
+ blockedBy: [bend, fend, iac]
68
76
 
69
77
  - ref: qa_b
70
78
  agent: QA-B
@@ -149,12 +157,21 @@ agents:
149
157
  completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
150
158
  cd_targets: [fend]
151
159
 
160
+ - name: IAC
161
+ ref: iac
162
+ wave: 2
163
+ spawn_trigger: "qa_a completed"
164
+ prompt: .valent-pipeline/prompts/iac.md
165
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
166
+ completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
167
+ cd_targets: [iac]
168
+
152
169
  - name: CRITIC
153
170
  ref: critic
154
171
  wave: 2
155
172
  spawn_trigger: "qa_a completed"
156
173
  prompt: .valent-pipeline/prompts/critic.md
157
- trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from both BEND and FEND before starting review."
174
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from all active dev agents before starting review."
158
175
  completion: "Send [HANDOFF] to Lead and QA-B. Mark task completed."
159
176
  cd_targets: [critic]
160
177
 
@@ -30,19 +30,27 @@ tasks:
30
30
  activeForm: "READINESS reviewing pre-dev artifacts"
31
31
  blockedBy: [qa_a]
32
32
 
33
- - ref: bend
34
- agent: BEND
35
- subject: "BEND: Implement public API and module production code and tests"
36
- description: "Read reqs-brief.md and qa-test-spec.md, implement library public API and module, produce bend-handoff.md."
37
- activeForm: "BEND implementing library"
33
+ - ref: libdev
34
+ agent: LIBDEV
35
+ subject: "LIBDEV: Implement public API and module production code and tests"
36
+ description: "Read reqs-brief.md and qa-test-spec.md, implement library public API and module, produce libdev-handoff.md."
37
+ activeForm: "LIBDEV implementing library"
38
38
  blockedBy: [readiness]
39
39
 
40
+ - ref: iac
41
+ agent: IAC
42
+ subject: "IAC: Implement infrastructure definitions and tests"
43
+ description: "Read reqs-brief.md and qa-test-spec.md, implement infrastructure code, produce iac-handoff.md."
44
+ activeForm: "IAC implementing infrastructure"
45
+ blockedBy: [readiness]
46
+ conditional: "testing_profiles includes iac"
47
+
40
48
  - ref: critic
41
49
  agent: CRITIC
42
50
  subject: "CRITIC: Adversarial code review"
43
51
  description: "Read git-diff, reqs-brief.md, qa-test-spec.md. Run blind-hunt, edge-case-hunt, acceptance-audit, triage passes. Produce critic-review.md."
44
52
  activeForm: "CRITIC reviewing code"
45
- blockedBy: [bend]
53
+ blockedBy: [libdev, iac]
46
54
 
47
55
  - ref: qa_b
48
56
  agent: QA-B
@@ -89,25 +97,34 @@ agents:
89
97
  wave: 1
90
98
  prompt: .valent-pipeline/prompts/readiness.md
91
99
  trigger: "Wait for [HANDOFF] from QA-A. Begin when task is unblocked."
92
- completion: "Send [READINESS-APPROVAL] to BEND, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
100
+ completion: "Send [READINESS-APPROVAL] to LIBDEV, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
93
101
  cd_targets: [readiness]
94
102
 
95
103
  # Wave 2: Spawn when QA-A completes (spin up while READINESS reviews)
96
- - name: BEND
97
- ref: bend
104
+ - name: LIBDEV
105
+ ref: libdev
106
+ wave: 2
107
+ spawn_trigger: "qa_a completed"
108
+ prompt: .valent-pipeline/prompts/libdev.md
109
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
110
+ completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
111
+ cd_targets: [libdev]
112
+
113
+ - name: IAC
114
+ ref: iac
98
115
  wave: 2
99
116
  spawn_trigger: "qa_a completed"
100
- prompt: .valent-pipeline/prompts/bend.md
117
+ prompt: .valent-pipeline/prompts/iac.md
101
118
  trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
102
119
  completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
103
- cd_targets: [bend]
120
+ cd_targets: [iac]
104
121
 
105
122
  - name: CRITIC
106
123
  ref: critic
107
124
  wave: 2
108
125
  spawn_trigger: "qa_a completed"
109
126
  prompt: .valent-pipeline/prompts/critic.md
110
- trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from BEND before starting review."
127
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from all active dev agents before starting review."
111
128
  completion: "Send [HANDOFF] to Lead and QA-B. Mark task completed."
112
129
  cd_targets: [critic]
113
130
 
@@ -30,19 +30,27 @@ tasks:
30
30
  activeForm: "READINESS reviewing pre-dev artifacts"
31
31
  blockedBy: [qa_a]
32
32
 
33
- - ref: bend
34
- agent: BEND
35
- subject: "BEND: Implement MCP tool production code and tests"
36
- description: "Read reqs-brief.md and qa-test-spec.md, implement MCP server tools and handlers, produce bend-handoff.md."
37
- activeForm: "BEND implementing MCP server"
33
+ - ref: mcp_dev
34
+ agent: MCP-DEV
35
+ subject: "MCP-DEV: Implement MCP tool production code and tests"
36
+ description: "Read reqs-brief.md and qa-test-spec.md, implement MCP server tools and handlers, produce mcp-dev-handoff.md."
37
+ activeForm: "MCP-DEV implementing MCP server"
38
38
  blockedBy: [readiness]
39
39
 
40
+ - ref: iac
41
+ agent: IAC
42
+ subject: "IAC: Implement infrastructure definitions and tests"
43
+ description: "Read reqs-brief.md and qa-test-spec.md, implement infrastructure code, produce iac-handoff.md."
44
+ activeForm: "IAC implementing infrastructure"
45
+ blockedBy: [readiness]
46
+ conditional: "testing_profiles includes iac"
47
+
40
48
  - ref: critic
41
49
  agent: CRITIC
42
50
  subject: "CRITIC: Adversarial code review"
43
51
  description: "Read git-diff, reqs-brief.md, qa-test-spec.md. Run blind-hunt, edge-case-hunt, acceptance-audit, triage passes. Produce critic-review.md."
44
52
  activeForm: "CRITIC reviewing code"
45
- blockedBy: [bend]
53
+ blockedBy: [mcp_dev, iac]
46
54
 
47
55
  - ref: qa_b
48
56
  agent: QA-B
@@ -89,25 +97,34 @@ agents:
89
97
  wave: 1
90
98
  prompt: .valent-pipeline/prompts/readiness.md
91
99
  trigger: "Wait for [HANDOFF] from QA-A. Begin when task is unblocked."
92
- completion: "Send [READINESS-APPROVAL] to BEND, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
100
+ completion: "Send [READINESS-APPROVAL] to MCP-DEV, or [READINESS-REJECTION] to responsible agent. Mark task completed on approval."
93
101
  cd_targets: [readiness]
94
102
 
95
103
  # Wave 2: Spawn when QA-A completes (spin up while READINESS reviews)
96
- - name: BEND
97
- ref: bend
104
+ - name: MCP-DEV
105
+ ref: mcp_dev
106
+ wave: 2
107
+ spawn_trigger: "qa_a completed"
108
+ prompt: .valent-pipeline/prompts/mcp-dev.md
109
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
110
+ completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
111
+ cd_targets: [mcp-dev]
112
+
113
+ - name: IAC
114
+ ref: iac
98
115
  wave: 2
99
116
  spawn_trigger: "qa_a completed"
100
- prompt: .valent-pipeline/prompts/bend.md
117
+ prompt: .valent-pipeline/prompts/iac.md
101
118
  trigger: "Begin immediately — you were spawned because QA-A completed. Wait for READINESS approval before starting implementation."
102
119
  completion: "Send [HANDOFF] to Lead and CRITIC. Mark task completed."
103
- cd_targets: [bend]
120
+ cd_targets: [iac]
104
121
 
105
122
  - name: CRITIC
106
123
  ref: critic
107
124
  wave: 2
108
125
  spawn_trigger: "qa_a completed"
109
126
  prompt: .valent-pipeline/prompts/critic.md
110
- trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from BEND before starting review."
127
+ trigger: "Begin immediately — you were spawned because QA-A completed. Wait for [HANDOFF] from all active dev agents before starting review."
111
128
  completion: "Send [HANDOFF] to Lead and QA-B. Mark task completed."
112
129
  cd_targets: [critic]
113
130