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
needsattribute — 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.assigneeattribute — 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.conditionlabels — attachyes/noor case names todecision/selectchildren. Changing a label marks downstream items as suspect.trace_treetool — 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 createauto-generates a checklist from scoped items' acceptance criteria- Record
pass/fail/blocked/waivedper item, attaching evidence (file paths, screenshots, captions) - Track completion rates in real time via
progress
Campaign results feed into the report engine (handoff_report):
| Report | Content |
|---|---|
| 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_typeinference — automatically detected from slug, title, and tag keywordsscaffold_suggestions— on save, lists plan items not yet linked to any taskschedule_stale— detects when task or document changes have invalidated the auto-scheduleorphaned_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:
- Worker — drafts requirement documents per scope (architecture → feature → condition branch → testable leaf)
- Checker — quality-checks against ISO/IEC/IEEE 29148 and the ISO/IEC 25010 NFR checklist
- Reviewer — cross-document review for duplicates, contradictions, omissions, and granularity consistency
- 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 bothAT-*andAC-*prefixes- Link validation (v0.40) —
refines/verifieslinks 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

