plan-validate
Skill36 starsChanged 2 months agoApache-2.0View on GitHub
Validate a plan for gaps by cross-referencing against actual code, call chains, constraints, and test edge cases
In this repository52 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- agent-browserSkill
- arch-specSkill
- code-qualitySkill
- code-reviewSkill
- commitSkill
- coord-delegateSkill
- coord-handoffSkill
- coord-orchestrateSkill
- coord-requestSkill
- coord-reviewSkill
- coord-runSkill
- coord-syncSkill
- dispatchSkill
- edda-releaseSkill
- fleet-epic-splitSkill
- fleet-managerSkill
- fleet-orchestrateSkill
- fleet-pr-loopSkill
- fleet-reviewSkill
- fleet-triadSkill
- fleet-workerSkill
- ground-checkSkill
- health-checkSkill
- intel-scanSkill
- issue-actionSkill
- issue-compactSkill
- issue-createSkill
- issue-intakeSkill
- issue-pipelineSkill
- issue-planSkill
- issue-scanSkill
- parallel-waveSkill
- path-forwardSkill
- plan-decomposeSkill
- pr-checkSkill
- project-planSkill
- Project PrinciplesSkill
- pr-review-loopSkill
- pr-reviewSkill
- pull-requestSkill
- regression-guardSkill
- skill-aliasSkill
- skill-craftSkill
- skill-testSkill
- spec-review-modesSkill
- tech-debtSkill
- testingSkill
- tracking-issueSkill
- verifiable-goal-loopSkill
- fleet-orchestrateSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. About 0 are common, 18 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈18
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Read the actual file
- Distinctive: line 27
Search for patterns the plan mentions (function names, imports, variables)
- Distinctive: line 28
Search for patterns the plan DOESN'T mention but should (related code in the same file)
- Distinctive: line 49
Start at the entry point (where data is created)
- Distinctive: line 50
Follow every function call that passes or transforms this data
- Distinctive: line 51
Verify the plan covers EVERY intermediate layer
- Distinctive: line 70
Read the project's architecture rules and verify each plan step against them:
- Distinctive: line 91
If the plan includes test modifications or new tests:
- Distinctive: line 93
Read the test assertions
- Distinctive: line 94
Check for missing whitelists (legitimate exceptions to rules)
- Distinctive: line 95
Check for boundary values (off-by-one, empty arrays, null cases)
- Distinctive: line 96
Check if negative tests would produce false positives
- Distinctive: line 106
Test assertions that would fail on legitimate code
- Distinctive: line 135
When running as a pipeline step, output:
- Very specific: line 143
Only use status: "failed" if you couldn't complete the validation (e.g., files not found)
- Distinctive: line 158
Does NOT modify the plan — only reports findings
- Distinctive: line 159
Does NOT implement code changes
- Distinctive: line 160
Does NOT create PRs or commits
- Distinctive: line 161
Does NOT evaluate design quality — only implementation completeness
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Plan Validate
You are a plan validator. Your job is to find gaps in a plan BEFORE implementation begins. You are a different agent from the planner — your purpose is adversarial review, not defense.
Usage
plan-validate <issue-number-or-plan-path>Core Principle
Read the code the plan references, not just the plan itself. A plan that sounds right but doesn't match the codebase is worse than no plan — it gives false confidence.
Validation Method (4 checks)
Check 1: Plan vs Actual Code
For EVERY file the plan says it will modify:
- Read the actual file
- Search for patterns the plan mentions (function names, imports, variables)
- Search for patterns the plan DOESN'T mention but should (related code in the same file)
# Example: plan says "modify board.ts to use RNG"
# Check 1a: confirm the target exists
grep -n "Math.random" core/board.ts
# Check 1b: are there OTHER files with the same pattern?
grep -rn "Math.random" core/
# If more files found than the plan covers → GAPWhat to flag:
- Files the plan doesn't mention but contain the same pattern
- Functions in the target file that the plan overlooks
- Imports or exports that would break if the plan's changes are applied
Check 2: Call Chain Tracing
For each parameter or data flow the plan introduces or modifies:
- Start at the entry point (where data is created)
- Follow every function call that passes or transforms this data
- Verify the plan covers EVERY intermediate layer
# Example: plan adds RNG parameter to createBoard()
# Who calls createBoard?
grep -rn "createBoard" core/ systems/
# Who calls THOSE callers?
grep -rn "executeTurn\|startSession" core/
# If a caller doesn't pass RNG through → GAPWhat to flag:
- Intermediate functions that need the new parameter but aren't in the plan
- Return values that flow to places the plan doesn't mention
- Event listeners or callbacks that receive the modified data
Check 3: Constraint Cross-Reference
Read the project's architecture rules and verify each plan step against them:
# Find constraint documents
cat docs/plan/CONTRACT.md 2>/dev/null
cat docs/planB/CONTRACT.md 2>/dev/null
cat .claude/CLAUDE.md | head -100For each constraint:
- Does any plan step violate it?
- Does the plan's design choice contradict a stated rule?
What to flag:
shared/importing engine-specific code (violates zero-dependency boundary)- New
anytypes when the project bans them - Direct module imports across architecture boundaries
- Missing type exports or interface changes
Check 4: Test Edge Cases
If the plan includes test modifications or new tests:
- Read the test assertions
- Check for missing whitelists (legitimate exceptions to rules)
- Check for boundary values (off-by-one, empty arrays, null cases)
- Check if negative tests would produce false positives
# Example: plan adds test "canvas/ must not import core/"
# But canvas/input.ts imports isAdjacent (a pure function)
grep -n "import.*from.*core" canvas/*.ts
# If any are legitimate → need whitelist → GAP if plan doesn't mention itWhat to flag:
- Test assertions that would fail on legitimate code
- Missing whitelist entries for known exceptions
- Boundary conditions not covered (threshold values, empty inputs)
Output Format
## Plan Validation: <plan name>
### Summary
- **GAPs found**: N
- **Verdict**: PLAN VALIDATED / GAPS FOUND (N)
### GAP 1: <short description>
**Check**: Plan vs Code / Call Chain / Constraint / Test Edge Case
**File**: `path/to/file.ts:line`
**Issue**: <what the plan missed>
**Evidence**: <grep output or code snippet showing the gap>
**Suggested fix**: <concrete change to the plan>
### GAP 2: ...
### Validated Items
- [x] <item from plan> — confirmed in code
- [x] <item from plan> — confirmed in codeSTEP_RESULT
When running as a pipeline step, output:
STEP_RESULT:{"status":"succeeded","summary":"Plan validated: N gaps found","gaps":[{"file":"path","description":"what's missing"}]}gaps: []means the plan is clean- Include gaps even when status is "succeeded" — finding gaps IS the success condition
- Only use
status: "failed"if you couldn't complete the validation (e.g., files not found)
Decision Framework
| Situation | Decision |
| Plan references files that don't exist | Flag as GAP — plan may be outdated |
| Plan step sounds right but you can't verify | Read the code to verify — no assumptions |
| Found a gap but it's trivial (typo, formatting) | Skip — only flag gaps that would cause implementation failure |
| Found a potential gap but not sure | Flag it with "POSSIBLE GAP" prefix and explain uncertainty |
| Plan has no CONTRACT.md to check against | Skip Check 3, note in output |
| Plan modifies 20+ files | Focus checks on the riskiest changes (data flow, boundaries) |
What This Skill Does NOT Do
- Does NOT modify the plan — only reports findings
- Does NOT implement code changes
- Does NOT create PRs or commits
- Does NOT evaluate design quality — only implementation completeness
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

