v0.2.0 — Mecanismo D + A safety net
Mecanismo D + A safety net — second v0.2 milestone. Closes ticket #1 of the v0.2 backlog.
What's new
- Mecanismo D (Structured exit) — agents emit a JSON block at end of turn with
decisions_made_without_consultation+uncertainties. The orchestrator auto-promotes status toneeds_reviewwhen those are non-empty. Zero runtime cost — only changes the prompt. - Mecanismo A (Critic Haiku post-fan-in) — after
wait_for_agents, one Haiku per terminal agent reviews the working-tree diff and flags concerns. Toolset allow-listed toRead/Bash/Grep/Glob(no Write/Edit). Real findings (severityhigh/med) promote toneeds_review; synthetic flags from parser/timeout fallbacks stay visible for diagnostics but do not promote. - New setting
claudeOrchestrator.verification:'none' | 'structured' | 'critic' | 'both' | 'human-review'. Default'structured'(D-only). Enable'both'for migrations and assertion contract changes (adds ~$0.002–$0.05 per agent in Haiku critic cost). VerificationBadgeUI in the RECENT card:verifying…(italic),✓ Haiku OK(green),⚠ Flagged(orange).- 5th terminal status
needs_reviewextendsAgentStatus. Centralized viaTERMINAL_STATUSESSSoT +isTerminalStatus()predicate.
Fixes during smoke
git diff <headBefore>..HEADreturned empty because agents mutate working tree without committing — switched togit diff <headBefore>(working tree vs commit).- Synthetic low-severity flags from infra failures (
critic_timeout,critic_no_output, etc.) caused false-positive promotions — severity filter restricts promotion tohigh/medonly. emitStatusChangeinvariant gap:needs_reviewwas missing from the "once terminal, never back to running" guard — migrated toisTerminalStatus().
Stats
- +24 tests in
exit-schema.test.ts(parser + prompt content + tool allow-list) - +24 tests in
bridge.test.ts(verification flows +isTerminalStatus+readGitHead+captureCriticDiffasync) - 414/414 passing (was 358 at v0.2.0-pre.1)
- ~700 LOC in bridge.ts touched / +450 LOC new in exit-schema.ts
Validated
Full smoke E2E with adversarial flip prompts:
- Mecanismo D caught an honest agent declaring
decisions_made_without_consultationfor anassertTrue → assertFalseflip. - Mecanismo A caught the same flip via critic Haiku review of the diff (4 findings: 1
high+ 2med+ 1low). - Benign helper task (
_make_admin_user()) terminateddonewithcritic_findings: []— calibration of the critic prompt prevented over-eager false positives on additive changes.
Full CHANGELOG: CHANGELOG.md
Install
Download claude-orchestrator-0.2.0.vsix below and:
```bash
code --install-extension claude-orchestrator-0.2.0.vsix --force
```
Or via VS Code palette: Extensions: Install from VSIX...
After install, reload the window and verify /mcp shows claude-orchestrator: Connected.