approval-stage-plan-hygiene
Prevent approval-stage adversarial review churn by keeping plans implementation-focused, schema-complete, and free of stale review-process narration.
Best use case
approval-stage-plan-hygiene is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Prevent approval-stage adversarial review churn by keeping plans implementation-focused, schema-complete, and free of stale review-process narration.
Teams using approval-stage-plan-hygiene should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/approval-stage-plan-hygiene/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How approval-stage-plan-hygiene Compares
| Feature / Agent | approval-stage-plan-hygiene | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Prevent approval-stage adversarial review churn by keeping plans implementation-focused, schema-complete, and free of stale review-process narration.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Approval-Stage Plan Hygiene Use when drafting or revising a GitHub issue plan that will go through adversarial plan review. ## When to use - A plan keeps getting MAJOR findings even after multiple rewrites - Reviewers complain about stale review-state language, empty review artifacts, or vague test contracts - The plan introduces a machine-checkable JSON/report contract - The plan changes launcher/runtime behavior and reviewers want stronger proof than string replacement ## Core rules 1. Keep the plan body about the implementation contract only. - Do not embed review-process narration like: - "this redraft fixes..." - "fresh rerun required" - "prepared for another approval pass" - "latest verdicts are ..." - Review history belongs in review artifacts or issue comments, not in the plan contract. 2. Do not cite empty review artifacts as evidence. - If a `scripts/review/results/...` file is empty or unavailable, do not mention it as supporting evidence in the plan. - Treat review artifacts as external state, not plan content. 3. Remove approval-state/process language from acceptance criteria. - Avoid acceptance items like: - "plan remains draft" - "after rerun this can advance to plan-review" - Acceptance criteria should describe deliverable behavior or artifact state after implementation, not workflow-state transitions. 4. If the plan defines a machine-checkable schema, pin the full contract. At minimum specify: - canonical artifact path - exact field names - exact top-level JSON shape (for example provider-keyed object vs array of rows) - allowed enum values - nullability/omission rules - first-run / no-history behavior - malformed-history behavior - missing-row / key-mismatch behavior - which artifact is the single source of truth vs derived renderings Important learned pattern from repeated #2332 reruns: - reviewers will keep returning MAJOR if the plan says a schema is canonical but does not say whether provider-specific keys must be omitted or present as `null` on other providers - if a plan introduces multiple non-baseline states (for example `no_prior_audit`, `prior_snapshot_unreadable`, `provider_missing_from_prior_snapshot`), define the full state table in one place, including the resulting compliance/status fields for each branch - do not spread the same contract across plural wording like "JSON/scorecard outputs"; choose one canonical machine-checked artifact and describe other outputs as derived renderings 5. Tests must prove behavior, not just rendering. - Add schema-completeness tests, not only "contains these fields" prose checks. - Add exact branch tests for normal, first-run, malformed-history, missing-row, over-cap, under-cap, etc. - For launcher/runtime changes, include one behavior-preservation test that exercises the actual call path or an injected runner for that call path, not only a grep/string replacement test. - For wrapper/launcher rewrites, command-capture checks should preserve the full subprocess contract where relevant: argv tail, cwd, key kwargs, and the fact that the real function reaches the rewritten call site. - If only one file gets a true end-to-end smoke and the others only get imports or object construction, reviewers may still return MAJOR because the rewritten launcher path itself was never exercised. ## Approval checklist Before rerunning adversarial review, verify: - No `Review artifacts:` metadata line if it would point to empty artifacts - No `Adversarial Review Summary` section containing stale process text - No acceptance criteria about re-review or status transitions - If JSON/report contract exists, one canonical machine artifact is explicitly named - First-run semantics are fully specified - Behavior-preservation test exists for any runtime/launcher swap - Resource-intelligence wording is implementation-focused, not reviewer-facing narration (avoid phrases like `approval-stage planning should`, `this redraft fixes`, `prepared for rerun`, `none blocking approval readiness`) - State tables do not contradict cap tables or branch rules; if non-baseline branches exist, baseline/cap/compliance fields are defined once and reused consistently everywhere ## Additional learned guardrails from repeated #2332 review loops 6. Keep resource-intelligence sections factual and repo-grounded, not meta-commentary. - Even when the facts are correct, reviewers may keep returning MAJOR if the plan reads like a review diary instead of an implementation contract. - Prefer neutral statements like: - `X is the canonical generated artifact` - `Y is the first-wave target` - `Z is excluded from actionable debt` - Avoid process-oriented phrasing like: - `approval-stage planning should...` - `this redraft fixes...` - `none blocking approval readiness` 7. For multi-branch schema contracts, define the state table in one place and make every other section conform to it. - If you have branches such as: - `baseline_available` - `no_prior_audit` - `prior_snapshot_unreadable` - `provider_missing_from_prior_snapshot` then specify in one canonical block, for each branch: - baseline field value - delta field value - cap field value - compliance status - compliance reason - markdown/rendering expectation - Then mirror that exact contract in tests. Reviewers will keep flagging MAJOR if one section says caps are fixed while another says they are reseeded/null. 8. If a repeated one-provider MAJOR persists after many tight reruns, stop the loop and escalate explicitly. - After several focused reruns where one reviewer continues to object to increasingly narrow contract details, the next best move may be: - make the final policy choice explicitly - surface the issue link to the user - request human judgment instead of burning more cycles - This is especially true when another strong reviewer consistently returns APPROVE and the remaining blocker has shrunk to a policy interpretation rather than broad plan unsoundness. ## Common MAJOR triggers this prevents - "Plan still cites empty review artifacts" - "Plan includes stale review-process narration" - "Machine-checkable schema is underspecified" - "First-run/no-history behavior is ambiguous" - "Tests only prove string replacement, not real behavior" ## Outcome to aim for A plan that reviewers can assess purely on current implementation intent, with no confusion from stale process metadata and no ambiguity in schema or runtime-contract behavior.
Related Skills
repo-ecosystem-hygiene
Interpret the daily read-only repo ecosystem hygiene audit and route remediation through approved workflows.
plan-review-prompt-refresh-after-plan-edits
Refresh reviewer prompt files from the latest on-disk plan before every adversarial re-review. Prevents Codex/Gemini from critiquing stale plan text after local edits.
worktree-branch-sync-hygiene
Class-level branch, worktree, dirty-main, stash, sync, and hook hygiene for workspace-hub style multi-repo work.
workspace-hub-overnight-plan-monitor
Monitor and reconcile workspace-hub overnight planning or implementation batches, including process status, result artifacts, issue/commit verification, and controlled failed-lane recovery.
plan-gated-issue-execution-wave
Execute a multi-issue architecture/planning wave in a plan-gated repo, then safely transition approved issues into implementation with file-based Codex prompts, local approval markers, subprocess monitoring, and cleanup handling for sandbox/hook edge cases.
mixed-ops-vs-repo-fix-plan-boundary
Plan mixed operational-vs-repo remediation issues by proving live-state classification first, then only proposing code changes for confirmed repo-owned failure paths.
wave-based-parallel-plan-execution
Orchestrate phase execution by discovering dependencies, grouping into waves, spawning subagents, and collecting results with optional wave filtering
staged-issue-tree-creation-with-deduplication
Pattern for creating hierarchical GitHub issue trees from phased project plans while checking for duplicate/overlapping issues
plan-gated-issue-validation-workflow
Systematic validation pattern for plan-approved GitHub issues with pre-existing deliverables
plan-gated-issue-implementation
Workflow for executing pre-approved GitHub issues with mandatory validation checkpoints
multi-repo-branch-hygiene-at-scale
Systematic approach to cleaning stale branches, resolving merge conflicts, and syncing multiple repos
git-worktree-cleanup-and-branch-hygiene
Systematic approach to cleaning up stale git worktrees, orphan branches, and branch hygiene at scale across multiple repos