Handoff MCP v0.38–0.42 — End-to-End Requirement Lifecycle: Draft, Decompose, Approve, Verify, Report
Release

Handoff MCP v0.38–0.42 — End-to-End Requirement Lifecycle: Draft, Decompose, Approve, Verify, Report

Tracking alone is not enough. Approval workflows, requirement tree decomposition, verification campaigns, automated report generation, and multi-agent requirement drafting bring V-model traceability to production readiness.

Handoff MCP v0.38 through v0.42 is out. In v0.36–0.37 we introduced the V-model traceability foundation — the ability to track how requirements map to code. But in real projects, that is only the beginning. Who approved this requirement? How do we decompose a large requirement into testable pieces? How do we report verification results? Tracking is not enough — you need to drive the entire requirement lifecycle: drafting, decomposition, approval, verification, and reporting. These five releases deliver exactly that.

Three-Stage Approval Workflow (v0.38)

Every requirement and specification item now carries a draft → review → approved approval state. Moving to approved stamps approved_hash, the approver, and a timestamp.

The key design: if an approved item's definition changes, its approval automatically rolls back to draft. The rollback is hash-based — no manual intervention needed, and no stale approval can persist after an edit.

The done guard integrates with approval state: when a task's linked requirements are still in draft, task completion is blocked (or warned, depending on your done_guard setting).

Per-Item Verification Needs and Assignees

  • needs attribute — declare which verification layers a specific item requires, overriding the project profile default. Exempt an item from acceptance testing, or require additional system tests — per item.
  • assignee attribute — tie items to your existing [assignees] roster. trace_next(assignee="...") filters the action list to that person's own items.

Requirement Tree Decomposition (v0.41)

Breaking large requirements into small, testable units is fundamental to requirements management. v0.41 introduces a parent attribute within the same layer, enabling arbitrarily deep decomposition.

REQ-AUTH (group)
├── REQ-AUTH-001 Auth Method (decision)
│   ├── [Password] REQ-AUTH-001-PW
│   └── [OAuth]    REQ-AUTH-001-OA
├── REQ-AUTH-002 Session Management (leaf)
└── REQ-AUTH-003 Permission Model (group)
    ├── REQ-AUTH-003-R Role Definition (leaf)
    └── REQ-AUTH-003-P Permissions (leaf)
  • kind — leaf (testable endpoint), group (container), decision (binary branch), select (N-way branch). Intermediate nodes roll up verification status from their children.
  • condition labels — attach yes/no or case names to decision/select children. Changing a label marks downstream items as suspect.
  • trace_tree tool — read the tree as a nested structure with per-node verification state, progress ratios, and suspect counts rolled up per subtree.

Seventeen new lint rules (tree_cycle, empty_group, kind_conflict, condition_missing, and more) catch structural inconsistencies in the tree.

Verification Campaigns and the Report Engine (v0.38–v0.39)

Test runs are no longer one-off records. They are managed as verification campaigns with structured progress tracking.

  • test_run create auto-generates a checklist from scoped items' acceptance criteria
  • Record pass / fail / blocked / waived per item, attaching evidence (file paths, screenshots, captions)
  • Track completion rates in real time via progress

Campaign results feed into the report engine (handoff_report):

ReportContent
Verification (R1)Pass/fail counts, per-layer coverage, per-item results with evidence links
Inspection (R2)Inspection certificate from an approved campaign, non-conforming items with corrective tasks
Weekly (R3)Completed tasks and hours (this week / cumulative), blockers, verification progress, milestones
Effort (R5)Hours by week/day/task/assignee, estimate-vs-actual deviation table

Templates are Handlebars-based and customizable via .handoff/templates/. Reports themselves carry a draft → submitted → approved approval workflow.

Plan Lifecycle Automation (v0.40)

Plan documents (doc_type="plan") now serve as a traceability starting point.

  • doc_type inference — automatically detected from slug, title, and tag keywords
  • scaffold_suggestions — on save, lists plan items not yet linked to any task
  • schedule_stale — detects when task or document changes have invalidated the auto-schedule
  • orphaned_tasks — reports tasks that lost all requirement links when items were removed

On task completion, plan_update_needed suggests dev_stage updates for linked plan items, and auto_schedule uses the plan's order attribute to determine task priority.

Multi-Agent Requirement Drafting (v0.42)

The act of writing requirements is itself now subject to quality control. The requirement-loop workflow coordinates four agents:

  1. Worker — drafts requirement documents per scope (architecture → feature → condition branch → testable leaf)
  2. Checker — quality-checks against ISO/IEC/IEEE 29148 and the ISO/IEC 25010 NFR checklist
  3. Reviewer — cross-document review for duplicates, contradictions, omissions, and granularity consistency
  4. Registrar — generates verification items (trace_scaffold), creates tasks (trace_tasks), confirms lint is clean

The session-loop now consumes requirement-loop artifacts (Phase E), connecting the pipeline from plan to requirements to tasks to implementation and testing.

Layer Lifecycle Status (v0.39)

Each layer carries a not_started → in_progress → under_review → verified → approved lifecycle. verified is auto-determined when all items pass with no gaps. approved requires an explicit action. If verification state degrades after approval, the status automatically demotes.

project_status returns the lowest layer status across the project — complete when every layer is approved.

Other Changes

  • AC-* ID support (v0.39) — the acceptance layer now recognizes both AT-* and AC-* prefixes
  • Link validation (v0.40) — refines/verifies links are validated for correct layer direction at creation time
  • Quality lint (v0.38) — detects ambiguous wording (ambiguous_word), missing acceptance criteria (missing_acceptance), and passive voice (passive_voice_hint)
  • NFR checklist (v0.42) — trace_lint(action="nfr_check") checks eight ISO/IEC 25010 quality characteristics
  • GUI VRT skill (v0.42) — four-mode visual regression testing via Playwright MCP + pixelmatch
  • Skill rewrite (v0.41.1) — complete rewrite of the handoff-requirements, handoff-trace, handoff-docs, and handoff skills
  • [trace.requirement_gate] — quality gate configuration for the requirement workflow (fail_on, required_checks, skip_checks)

Install / Update

npx handoff-mcp-server@latest

If you use it as a Claude Code plugin:

/plugin install alphaelements/handoff-mcp

See Handoff case studies