v0.3.0 — PM runtime spine
Added
pmctl dispatch run— single command to send any brief to any executorinstall.shnow putspmctlon PATH; fresh installs no longer fail with "command not found"- Claude adapter — codex-as-PM can drive claude-as-executor
- Reviewer write-guard — restricts reviewer agents to
.gate-results/only (prompt-injection defense) pr-gate --allow-dirty— gate now fails explicitly on dirty worktrees (was silently proceeding)- Layer-boundary test suite —
core/must stay declarative; adapters must stay thin - Config resolver —
pmctl dispatch runowns timeout/model config; adapters receive env vars
Changed
- Executor routing switched from hardcoded paths to adapter convention (
adapters/<name>/dispatch.sh) - Concurrent dispatch race fixed: post-verify uses per-run artifact paths instead of overwritable
latest.*symlinks
Removed
/cavemanand/caveman-commit— text compression causes information loss in design discussions
Full details: CHANGELOG.md § 0.3.0