Repository navigation
policy-rev 8: a leaner policy block with one failure ladder (3.5.0) - #46
Merged
Merged
Conversation
The always-loaded policy block had two internal conflicts and restated behavior Claude Code already has. It drops from 952 to 700 words. - One failure ladder replaces the 2-cycle cap and the two-strike rule: first failure -> executor retries, second -> advisor re-plans, third -> stop and go to the user; the count never resets. executor.md agrees. - Read-heavy scans go to a fork, never to executor (policy, executor.md description, Codex executor template). - Removed the memory/plans/tasks bullet and "don't re-read a file you just wrote" (Claude Code defaults); merged "consult advisor before" into the mandatory-sandwich rule; compressed the orchestrator bullet, keeping each agent's input list (the main session sees only agent descriptions). - The handoff rule keeps .stackwich/ out of git. - CI fails if the block grows past 735 words. - Codex rev 6 and Grok rev 5 take the ladder (Codex also the scan rule); their other bullets stay, since the cuts rely on Claude Code behavior. - Release 3.5.0: plugin.json, SKILL metadata and step 4, CHANGELOG, README Versions table, port READMEs, evals cases 1-2, enforcement.md. Closes #39, #40, #41, #42. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TgCNfwCj3YG9xP3pMB6z2k
ovhirup
marked this pull request as ready for review
November 2, 2026 08:00
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Fixes #36. Closes #39, #40, #41 and #42.
This changes the policy every installed session reads on every turn. The two design choices, the ladder and the scan routing, were made by the owner in this session.
Problem
The
<!-- stackwich:v1 -->block was 952 words. It had two internal conflicts:executor.mdhad a third stop rule of its own.executorin Graph.It also restated behavior Claude Code already has.
Policy changes (policy-rev 7 → 8)
GATE: FAILorREVISE:goes back toexecutorwith the original plan. A second goes toadvisorto re-plan from what was tried. A third stops and goes to the user, and the count never resets. This matchestools/verify_gate.py, which already allows the first run plus 2 correction cycles.executor.md's stop rule now points at the ladder.executor. This is in the policy,executor.md's description, and the Codex executor template.advisorbefore…" bullet: merged into the mandatory-sandwich bullet, which had the same trigger list.description:, not its body, so this bullet is the main session's only source for what each agent must receive. I compressed it and kept every item..stackwich/out of git. It complements Keep .stackwich/ out of git when the tools create it #44, which makes the tools do this themselves.skill-lintjob so it doesn't conflict with Run CI's repository checks with one local command #45; once both merge, it can move intotools/validate.py.Ports
stackwich-codex-rev 6: the ladder, and scans never go toexecutor.stackwich-grok-rev 5: the ladder as EXECUTE → PLAN → user. Grok has no separateexecutor, so the scan rule doesn't apply.Release 3.5.0
plugin.json, the SKILL metadata, and step 4 check 2.CHANGELOG.md, which says to re-run the installer and to accept the agent refresh, becauseexecutor.mdchanged.evals/evals.jsoncases 1 and 2, anddocs/enforcement.md.docs/first-task.mdkeeps its recorded 3.4.0 output. Only its prose now says "the checkout's currentpolicy-rev".Verification
validate.ymlskill-lintjob, run locally, passes, ending withpolicy block: 700 of 735 words OK.tools/: 45 tests pass, with none skipped.measured/: 12 tests pass.::error::policy block is 760 words, over its 735-word budget…, exit 1.mainbeneath user notes):check_install.pyreportsFAIL: policy-rev … found 7, anddiagnose.pyreportspolicy-rev 7, current is 8.INSTALL: PASS, includingunrelated content preserved.verify_gate.py's own counter row, which is still accurate.Risk and limits
evals/evals.jsoncase 2 andSKILL.md. Whichever merges second needs a small conflict resolution: keep the rev 8 numbers from this PR and the stale-agent text from Detect and refresh stale scaffolded agents on upgrade #43.Generated by Claude Code