Skip to content

feat(orchestrator): long-session drift mitigation for /wavemachine campaigns#614

Merged
bakeb7j0 merged 1 commit into
kahuna/607-betafrom
feature/601-orchestrator-drift-mitigation
May 6, 2026
Merged

feat(orchestrator): long-session drift mitigation for /wavemachine campaigns#614
bakeb7j0 merged 1 commit into
kahuna/607-betafrom
feature/601-orchestrator-drift-mitigation

Conversation

@bakeb7j0
Copy link
Copy Markdown
Contributor

@bakeb7j0 bakeb7j0 commented May 6, 2026

Implements long-session drift mitigation per cc-workflow#601.

Adds per-wave drift instrumentation (wave_message_length_main, wave_stop_hook_blocks, wave_concerns_posts events) and one mitigation mechanism (per-wave system-reminder injection citing WAVE_AXIOMS, especially Axiom 9 — "User attention is the cost. Autonomy is the protection.").

Closes #601

Wave 3a / Flight 2 of Plan #607 (Beta). Sequenced after cc#605 due to shared edit on skills/wavemachine/SKILL.md. Worktree was rebased onto kahuna's post-#605 tip; references new Axiom 9 in re-grounding payload.

Adds per-wave drift instrumentation and a system-reminder re-grounding
mechanism to /wavemachine, so long campaigns (5+ waves, multi-hour
wall-clock) no longer drift in agent behavior. "Bug C" from the Plan
#581 campaign A debrief.

Mechanism (lightest of the three options the issue evaluated): at every
wave_complete boundary inside the Wave-to-Wave Handoff tool-use block,
the loop emits three drift-signal events (wave_message_length_main,
wave_stop_hook_blocks, wave_concerns_posts) via a new
scripts/wavemachine/drift-instrumentation.sh helper, plus a
system-reminder payload referencing WAVE_AXIOMS.md and explicitly
citing Axiom 9 (user attention as cost). Heavyweight options
(mandatory /engage, /compact-on-N-waves) are documented as rejected
alternatives held in reserve for empirical escalation.

The wiring is unconditional and mechanical (per Axiom 6 — agent does
not add gates the user did not invoke). The system-reminder is
out-of-band, so it does not violate the no-narrator-gap contract from
cc-workflow#600.

Tests: 15 unit tests in tests/test_drift_instrumentation_skill.py
covering script shape (executable, subcommands, self-test output,
input validation), report subcommand aggregation, and SKILL.md wiring
(section heading, three-event references, WAVE_AXIOMS + Axiom 9
citation, rejected-alternatives subsection, handoff block wiring,
non-negotiable). Self-test produces compact JSON identical in shape
to mcp-log output without touching the real fleet logfile.

Empirical baseline: a full A/B comparison (drift signals before/after
mitigation on the same 6-wave plan) cannot run inside a single Flight
context — Flights cannot run live /wavemachine campaigns. That is
tracked as a follow-up empirical-comparison task; the first natural
campaign of >=5 waves run after this lands provides the post-mitigation
data, with Plan #581 campaign A as the pre-mitigation baseline.

Closes #601
@bakeb7j0 bakeb7j0 merged commit bff882c into kahuna/607-beta May 6, 2026
@bakeb7j0 bakeb7j0 deleted the feature/601-orchestrator-drift-mitigation branch May 6, 2026 23:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant