Validates implementation plan execution by verifying success criteria and identifying deviations. This skill should be used after a phase or plan has been implemented and committed. It runs automated checks (tests, types, lint), compares actual changes against the plan's specifications, and generates a validation report documenting what was completed, what deviated, and what needs manual testing.
Validate that an implementation plan phase was correctly executed by running automated checks, comparing changes against the plan's specifications, and generating a validation report that documents completion status, deviations, and required manual testing.
The base directory for this skill is provided when loaded.
just -f {base_dir}/justfile <recipe> [args...]
| Recipe | Arguments | Description |
|--------|-----------|-------------|
| render | findings.json | Render to stdout |
| render-stdin | - | Render from piped JSON to stdout |
| save | findings.json output_dir | Save with auto-generated filename |
| save-stdin | output_dir | Pipe JSON, save to directory |
| schema | - | Show the expected JSON schema |
uv run {base_dir}/scripts/render_report.py <findings.json> [--output-dir <dir>]
# Render to stdout, redirect to file
just -f {base_dir}/justfile render /tmp/findings.json > thoughts/shared/validate/report.md
# Render from stdin
echo '{"plan": "..."}' | just -f {base_dir}/justfile render-stdin > report.md
# Save with auto-generated filename (use absolute path)
just -f {base_dir}/justfile save /tmp/findings.json /absolute/path/to/validate/
# Direct execution with output directory
uv run {base_dir}/scripts/render_report.py findings.json --output-dir thoughts/shared/validate
Note: When using save recipes, pass an absolute path for output_dir to ensure correct placement.
To validate a plan phase, the following information is needed:
| Input | Description | Example |
|-------|-------------|---------|
| Plan path | Location of the implementation plan | thoughts/shared/plans/2026-01-03_core-graph-validation-fixes.md |
| Phase number | Which phase to validate | Phase 1 |
| Worktree path | Working directory (if using worktrees) | .trees/plan-1-core-graph |
Run commands to understand what was implemented:
# Check recent commits
git log --oneline -n 10
# See what changed
git diff HEAD~N..HEAD # Where N covers the phase's commits
# Check current status
git status
Execute the success criteria commands from the plan. Common patterns:
# TypeScript/JavaScript projects
bun test # Run tests
bun run typecheck # Type checking
bun run lint # Linting
# Or if using make
make check # Combined checks
make test # Tests only
make build # Build verification
Document each result as pass (✓) or fail (✗).
For each item in the phase:
Use codebase analysis as needed:
codebase-locator to find modified filescodebase-analyzer to examine implementation detailscodebase-pattern-finder to verify patterns were followedStructure findings as JSON and use the render script:
{
"plan": "plan-alias",
"plan_path": "thoughts/shared/plans/...",
"phase": 1,
"phase_title": "Graph Logic Fixes",
"branch": "implement/plan-1",
"commit": "abc1234",
"verdict": "PROCEED",
"summary": "Phase 1 implemented correctly with all tests passing.",
"code_review": {
"critical": [],
"warnings": [],
"suggestions": ["Consider adding edge case test"],
"patterns": {"passed": ["Error handling", "Naming conventions"], "concerns": []}
},
"plan_validation": {
"checks": {
"tests": {"result": "pass", "detail": "665 pass, 0 fail"},
"types": {"result": "pass", "detail": "clean"},
"lint": {"result": "pass", "detail": "no issues"}
},
"steps": [
{"id": "1.1", "description": "Write failing tests", "status": "complete"},
{"id": "1.2", "description": "Remove parent blocking", "status": "complete"}
],
"deviations": [],
"manual_tests": ["Verify backlog blocked shows correct count"]
},
"next_steps": ["Proceed to Phase 2"]
}
Then render:
just -f {base_dir}/justfile render findings.json > thoughts/shared/validate/report.md
Always verify:
bun test)bun run typecheck)bun run lint)The render_report.py script generates a structured markdown report with:
The script handles all formatting mechanically. Focus on gathering accurate findings in the JSON structure.
thoughts/shared/validate/thoughts sync to commit the validation reportSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer