approval-stage-plan-hygiene

Prevent approval-stage adversarial review churn by keeping plans implementation-focused, schema-complete, and free of stale review-process narration.

5 stars

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

$curl -o ~/.claude/skills/approval-stage-plan-hygiene/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/software-development/approval-stage-plan-hygiene/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/approval-stage-plan-hygiene/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How approval-stage-plan-hygiene Compares

Feature / Agentapproval-stage-plan-hygieneStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

5
from vamseeachanta/workspace-hub

Interpret the daily read-only repo ecosystem hygiene audit and route remediation through approved workflows.

plan-review-prompt-refresh-after-plan-edits

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Class-level branch, worktree, dirty-main, stash, sync, and hook hygiene for workspace-hub style multi-repo work.

workspace-hub-overnight-plan-monitor

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Orchestrate phase execution by discovering dependencies, grouping into waves, spawning subagents, and collecting results with optional wave filtering

staged-issue-tree-creation-with-deduplication

5
from vamseeachanta/workspace-hub

Pattern for creating hierarchical GitHub issue trees from phased project plans while checking for duplicate/overlapping issues

plan-gated-issue-validation-workflow

5
from vamseeachanta/workspace-hub

Systematic validation pattern for plan-approved GitHub issues with pre-existing deliverables

plan-gated-issue-implementation

5
from vamseeachanta/workspace-hub

Workflow for executing pre-approved GitHub issues with mandatory validation checkpoints

multi-repo-branch-hygiene-at-scale

5
from vamseeachanta/workspace-hub

Systematic approach to cleaning stale branches, resolving merge conflicts, and syncing multiple repos

git-worktree-cleanup-and-branch-hygiene

5
from vamseeachanta/workspace-hub

Systematic approach to cleaning up stale git worktrees, orphan branches, and branch hygiene at scale across multiple repos