chore(infra): WAVE_AXIOMS V1 + Stop hook + gitignore prep for Plan #581 Main#583
Merged
chore(infra): WAVE_AXIOMS V1 + Stop hook + gitignore prep for Plan #581 Main#583
Conversation
… Main Pre-launch infrastructure cleanup bundling four small mechanical changes into one commit so the /wavemachine pre-flight gate passes and the Main campaign has minimum prep-wave protection: - .gitignore — add validate_output.txt (transient validate.sh output dump) - WAVE_AXIOMS.md — V1 first-round draft, 8 axioms governing wave-pattern execution behavior. Structural rework + Axiom 9 + skill-body wiring land in a follow-up issue (tasks #73/#74 in session task list). - CLAUDE.md — add MANDATORY: WAVE_AXIOMS section with inline 8-axiom shorthand list. Makes the constitutional layer load-bearing via the always-loaded CLAUDE.md. - config/settings.template.json — add second Stop hook entry (alongside existing precheck-asking-detector) using decision:block conditional on the wavemachine_active flag in .claude/status/state.json. Validated 2026-05-05 in blueshift-cue Plan #179 (advanced wave-4 → wave-5 without stall after deployment). Code review (Opus feature-dev:code-reviewer) found 2 Important fixes, both applied: - Axiom 6 divergence between WAVE_AXIOMS.md V1 and CLAUDE.md inline summary. Applied the split version (per-command gate frequency: /nextwave per-wave, /wavemachine at terminal state) to both. - Stop hook used relative path for state.json that would silently no-op on cwd-drift (cross-repo orchestration, CC bugs). Now uses \${CLAUDE_PROJECT_DIR:-.}/.claude/status/state.json with sensible fallback when env var is unset. Re-review clean after fixes. Pre-existing pytest failures on main (16 in test_install_merge.py due to install.sh → install rename in commit 9d0b06d not propagated to test files) verified by running tests on origin/main; out of scope for this PR, separate chore needed. Closes #582 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pre-launch infrastructure cleanup bundling four small mechanical changes so the
/wavemachinepre-flight gate passes for Plan #581's Main campaign and the campaign has minimum prep-wave protection.Changes
.gitignore— addvalidate_output.txt(transientscripts/ci/validate.shoutput dump)WAVE_AXIOMS.md(new) — V1 first-round draft, 8 axioms governing wave-pattern execution behavior. Structural rework + Axiom 9 (no-polling) + skill-body wiring land in a follow-up issueCLAUDE.md— addMANDATORY: WAVE_AXIOMSsection with inline 8-axiom shorthand list; makes the constitutional layer load-bearing via the always-loaded CLAUDE.mdconfig/settings.template.json— add secondStophook entry (alongside existing precheck-asking-detector) usingdecision:blockconditional onwavemachine_activeflag in.claude/status/state.json. Validated 2026-05-05 in blueshift-cue Plan docs: add artifact manifest, CI/CD pipeline, and documentation kit to PRD template #179 (advanced wave-4 → wave-5 without stall after deployment)Linked Issues
Closes #582
Test Plan
scripts/ci/validate.sh— 124/124 regression tests PASS (shellcheck, shfmt, py_compile, regression)trivy fs --scanners vuln --severity HIGH,CRITICAL— 0 findingsjq -e .onconfig/settings.template.json— JSON valid post-editfeature-dev:code-reviewer) — initial pass found 2 Important + 1 Minor; both Important fixed; re-review CLEANgit status --porcelainreturns nothing post-stage (clean sandbox per /wavemachine pre-flight feat: add sync.sh for local-to-repo reverse sync #4)Findings (review)
Fixed (2 Important):
/nextwaveper-wave,/wavemachineat terminal state) but WAVE_AXIOMS.md V1 had only the unsplit "per-wave" framing. Applied the split to WAVE_AXIOMS.md so both files agree.state.json.state=".claude/status/state.json"would silently no-op on cwd-drift (cross-repo orchestration, CC bugs #3583/#50960/#22343). Now uses${CLAUDE_PROJECT_DIR:-.}/.claude/status/state.jsonwith sensible fallback.Deferred (1 Minor, follow-up): Stop hook reason text assumes
/wavemachineis in flight but fires on barewavemachine_active=trueflag. Stale flag from aborted session could misdirect a user who invoked/nextwavedirectly. Captured for the WAVE_AXIOMS structural-rework follow-up issue (which also covers Axiom 9 / no-polling).Pre-existing (out of scope):
pytestreports 103 failures across the test suite, including 16 intests/test_install_merge.pydue toinstall.sh → installrename in commit 9d0b06d not propagated to test files. Verified pre-existing on origin/main (failures present without this PR's changes). Separate chore issue should track the test-suite cleanup.🤖 Generated with Claude Code