valent-pipeline 0.2.24 → 0.2.26

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.24",
3
+ "version": "0.2.26",
4
4
  "description": "v3 multi-agent AI pipeline for software development lifecycle",
5
5
  "type": "module",
6
6
  "bin": {
@@ -342,7 +342,7 @@ The decision block is written to `decisions.md` in the story directory. Any agen
342
342
 
343
343
  ### Time-box rule
344
344
 
345
- **2 exchanges maximum.** Each consulted agent gets one position statement and one optional rebuttal/clarification. If 2 exchanges do not resolve the issue, it is too complex for agent deliberation -- escalate to the user via the Human Escalation Protocol.
345
+ **2 exchanges maximum.** Each consulted agent gets one position statement and one optional rebuttal/clarification. If 2 exchanges do not resolve the issue, it is too complex for agent deliberation -- escalate to the user via the Headless Escalation Protocol.
346
346
 
347
347
  ### Governance
348
348
 
@@ -352,9 +352,11 @@ The decision block is written to `decisions.md` in the story directory. Any agen
352
352
 
353
353
  ---
354
354
 
355
- ## 7. Human Escalation Protocol
355
+ ## 7. Headless Escalation Protocol
356
356
 
357
- When the lead agent needs human input, it outputs a structured escalation block to the CLI and **blocks completely** until the user responds. There is no autonomous continuation on timeout.
357
+ When the lead agent encounters a blocker requiring human input, it classifies the blocker, logs it to `{story_output_dir}/escalation-log.md`, outputs the structured escalation block to CLI for visibility, and moves to the next unblocked story. The pipeline does not pause for skippable blockers. Blocking escalations (quality gate failures) stop the current story cleanly before moving on.
358
+
359
+ See `lead.md#headless-escalation-protocol` for full classification rules and behavior.
358
360
 
359
361
  ### Escalation block format
360
362
 
@@ -391,12 +393,14 @@ Need: Pick an option or provide guidance
391
393
 
392
394
  ### Rules
393
395
 
394
- - The pipeline **pauses completely** no work continues while waiting for user input
395
- - The user responds directly in the CLI session; the lead incorporates the answer and resumes
396
+ - **Skippable** blockers (missing inputs): pipeline logs the escalation and moves to the next unblocked story
397
+ - **Blocking** failures (quality gate exhaustion): pipeline stops cleanly on this story, persists state, then moves to the next unblocked story if safe
398
+ - If no unblocked stories remain, the pipeline stops cleanly with persisted state
396
399
  - Escalation is the **last resort** — the lead should attempt to resolve issues autonomously first (e.g., via the 2-tier rejection circuit breaker or Design Council deliberation)
397
- - All escalations are logged in `story-report.md` with timestamp, issue, and resolution
400
+ - All escalations are logged in both `{story_output_dir}/escalation-log.md` and `story-report.md`
401
+ - **Resume:** user fixes inputs, sets story status to `pending` in backlog, re-runs pipeline
398
402
 
399
- > **V4 research:** For headless/background pipeline execution, investigate Claude Dispatch (scheduled remote agents) and Slack integration (via MCP) as async escalation channels.
403
+ > **V4 note:** Headless escalation is now implemented (skip-and-log). For async notification when escalations occur during headless runs, investigate Claude Dispatch (scheduled remote agents) and Slack integration (via MCP) as notification channels.
400
404
 
401
405
  ### Bad example
402
406
 
@@ -446,7 +450,9 @@ Agents should verify their output against this checklist before finalizing.
446
450
  ### Escalation blocks
447
451
 
448
452
  - [ ] Uses the exact `[ESCALATION]` format with separator lines
453
+ - [ ] Includes `Classification: skippable | blocking` field
449
454
  - [ ] Issue is specific and one-line
450
455
  - [ ] Context references a file, not inline detail
451
456
  - [ ] Options are numbered, concrete, and actionable
452
457
  - [ ] Need statement tells the user exactly what is required
458
+ - [ ] Escalation entry written to `{story_output_dir}/escalation-log.md`