Releases: ryan-mt/mission
Release list
Mission v1.0.0 — Factory-Grade 3-Role Orchestration for Claude Code
Mission v1.0.0 — Factory-Grade 3-Role Orchestration
The most robust mission orchestration plugin for Claude Code. Achieve Factory Droid AI-level quality with strict role enforcement, structured feature tracking, and 10+ defense layers — all powered by Python hooks with zero external dependencies.
Highlights
3-Role Separation, Enforced at Tool-Call Level
Not just instructions — actual hook-level enforcement. Orchestrator plans, Workers implement, Validators test. Each role is physically blocked from actions outside its scope.
10 Defense Layers
Completion Guard, Cleanup Guard, Worker Test Block, Validator Path Lock, Anti-Premature-Completion, Model Enforcement, Phase Lock, Unknown Phase Block, Stop Guard, SubagentStop Guard — all enforced by phase-guard.py.
Structured Feature Tracking (features.json)
Machine-tracked feature lifecycle: pending → in-progress → completed | failed. Per-feature dispatch, structured JSON handoffs, dependency resolution, and failureReason taxonomy.
8 Hooks Across 7 Event Types
| Hook | Event | Purpose |
|---|---|---|
phase-guard.py |
PreToolUse | Role enforcement + defense layers |
mission-reminder.py |
PreToolUse | Anti-drift context injection |
mission-continue.py |
PostToolUse | Continuation reminders with strength gradient |
mission-stop.py |
Stop | Prevents premature session stop |
mission-subagent-stop.py |
SubagentStop | Ensures structured handoffs from sub-agents |
mission-precompact.py |
PreCompact | Checkpoint before context compaction |
mission-session-start.py |
SessionStart | Auto-resume with full context recovery |
mission-prompt.py |
UserPromptSubmit | Keeps model aware of active mission |
Model Enforcement
Configure models per role (opus/sonnet/haiku). Hooks auto-inject the correct model on Agent dispatch or block mismatches. State-level overrides take precedence over global config.
What's New in v1.0.0
Factory Droid Parity Features
- Atomic file writes —
state.jsonandfeatures.jsonuse write-to-tmp +os.replace()to prevent corruption on crash - Backup recovery —
load_features()automatically falls back to.bakcopy when primary file is corrupt - maxRounds + maxDurationMinutes enforcement — Blocks dispatch when limits exceeded (standard/cautious mode), warns in relentless mode
- Structured failureReason — Failed features carry machine-parseable failure reasons, shown in checkpoint and recovery context
Critical Security Fixes
- Exit-mission bypass hardened — Only Orchestrator can force-exit via
endedAt; Workers/Validators are blocked - MultiEdit guard bypass closed —
MultiEdittool now properly extracts content for all state.json guards - Verdict regex anchored — Prevents false-positive completion when report contains "PASS" in non-verdict context
Quality Improvements
is_test_file()precision —test_*pattern restricted to code extensions; data files (test_data.json) no longer blocked for Workers- Failed feature counting —
_feature_progress()counts"failed"separately instead of bucketing as"pending" - Legacy
plan.mdremoved —features.jsonis the sole source of truth - Checkpoint error handling — PreCompact write failures now emit diagnostic warnings
Test Coverage
757 tests across 6 suites, verified on 3 OS platforms:
| Suite | Tests | Coverage |
|---|---|---|
| phase-guard | 222 | Role enforcement, defense layers, model validation, round/duration limits |
| mission-reminder | 120 | Context injection, feature-awareness, role separation |
| mission-continue | 143 | Strength gradient, worker counts, compaction recovery |
| mission-stop | 94 | Stop prevention, infinite loop guard, feature context |
| mission-lifecycle | 97 | PreCompact, SessionStart, UserPromptSubmit |
| E2E simulation | 81 | Full lifecycle: init → dispatch → enforce → complete → cleanup |
CI: Ubuntu + macOS + Windows — all green.
Quick Start
# Install as Claude Code plugin
claude plugin add riftzen-bit/mission
# Enter mission mode
/enter-mission Build a user authentication system with JWT
# View progress
/mission-status
# Emergency stop (always works)
/exit-missionConfiguration
# Set models per role
/mission-config models.worker=sonnet
/mission-config models.validator=opus
# Set persistence mode
/mission-config persistence=relentless # never stop until PASS
/mission-config persistence=standard # respect round/duration limits
/mission-config persistence=cautious # stop at first critical issue
# Set limits
/mission-config maxRounds=10
/mission-config maxDurationMinutes=120Requirements
- Python 3.8+ (stdlib only — zero external dependencies)
- Claude Code with hook support
Full documentation: See CLAUDE.md and AGENTS.md in the repository.