valent-pipeline 0.2.3 → 0.2.4

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valent-pipeline",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "v3 multi-agent AI pipeline for software development lifecycle",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,6 +8,18 @@ The story is your unit of work. The cycle is: **kick off story team -> monitor -
8
8
 
9
9
  You operate like a good manager: always able to answer "what is happening right now," accountable for the story shipping, but not micromanaging the work. Pipeline structure (task dependencies, quality gates, handoff contracts) enforces the rules -- you watch the board.
10
10
 
11
+ ## Agent Teams (CRITICAL)
12
+
13
+ **You MUST use Claude Code's Agent Teams to spawn teammates.** Do NOT use subagents. The pipeline requires persistent, named teammates that communicate via inbox — subagents cannot do this.
14
+
15
+ The correct pattern:
16
+ 1. `TeamCreate` to create the team (once per story or epic)
17
+ 2. **Agent tool** with `name` parameter to spawn each teammate onto the team. The `name` becomes the teammate's addressable identity for inbox messaging.
18
+ 3. `SendMessage` to communicate with living teammates by name
19
+ 4. `shutdown_request` via SendMessage to tear down individual teammates
20
+
21
+ **NEVER** spawn pipeline agents as anonymous subagents. Every agent must be a named teammate on the team so it can send and receive inbox messages with other teammates.
22
+
11
23
  ## Core Operating Principles
12
24
 
13
25
  These override all other instructions when in conflict:
@@ -73,13 +73,17 @@ This file is appended to incrementally during monitoring as agents complete phas
73
73
 
74
74
  ## 7. Spawn Agents
75
75
 
76
+ **IMPORTANT: Use the Agent tool to spawn teammates onto the team — NOT subagents.** Every pipeline agent must be a named teammate so it can send and receive inbox messages with other teammates. Use the `name` parameter on the Agent tool to set the teammate's addressable name (e.g., `name: "REQS"`).
77
+
76
78
  Read the spawn templates:
77
79
  - `.valent-pipeline/spawn-templates/knowledge-spawn.template.md` -- for the Knowledge Agent
78
80
  - `.valent-pipeline/spawn-templates/agent-spawn.template.md` -- for all other agents
79
81
 
80
- **Wave 1: Knowledge Agent first.** If `{is_epic_run}` is true and a Knowledge teammate already exists in the current team, skip the spawn. Instead, send a `[STORY-RESET]` message via inbox: `[STORY-RESET] story_id={story_id}, pipeline_context={story_output_dir}/pipeline-context.md`. Wait for `[KNOWLEDGE-READY]` response before proceeding.
82
+ Substitute all `{{variables}}` in the template with resolved values, then pass the filled template as the `prompt` parameter to the Agent tool. Set `name` to the agent's name from the manifest (e.g., `"REQS"`, `"UXA"`, `"Knowledge"`). Set `run_in_background: true` so agents work autonomously.
83
+
84
+ **Wave 1: Knowledge Agent first.** If `{is_epic_run}` is true and a Knowledge teammate already exists in the current team, skip the spawn. Instead, send a `[STORY-RESET]` message via `SendMessage(to: "Knowledge")`: `[STORY-RESET] story_id={story_id}, pipeline_context={story_output_dir}/pipeline-context.md`. Wait for `[KNOWLEDGE-READY]` response before proceeding.
81
85
 
82
- Otherwise, substitute variables in the knowledge spawn template (`{{story_id}}`, `{{story_output_dir}}`, knowledge config). Spawn with `run_in_background: true`. Wait for ready notification.
86
+ Otherwise, substitute variables in the knowledge spawn template (`{{story_id}}`, `{{story_output_dir}}`, knowledge config). Spawn as a named teammate with `run_in_background: true`. Wait for ready notification.
83
87
 
84
88
  **Wave 1 timestamp capture:** Before spawning each Wave 1 agent (except Knowledge), capture the start timestamp via `date -u +%Y-%m-%dT%H:%M:%SZ`. Record it as that agent's phase start time for `phase-timing.md`. Knowledge is excluded from phase timing (reactive service).
85
89
 
@@ -99,7 +103,7 @@ When spawning a later-wave agent:
99
103
  - Substitute all variables as for wave 1 agents
100
104
  - For agents with two task refs: populate `{{additional_task_ids}}` with the second task
101
105
  - Use the `model` from `pipeline-config.yaml` `models` section (match agent name to tier)
102
- - Spawn with `run_in_background: true`
106
+ - **Spawn as a named teammate** using the Agent tool with `name` set to the agent's name (e.g., `name: "BEND"`). Set `run_in_background: true`. Do NOT use subagents.
103
107
 
104
108
  ## 8. Enter Monitoring Mode
105
109