src/autoskillit/skills_extended/dry-walkthrough/SKILL.md
Plan validation executor. ALWAYS invoke this skill when instructed to validate or dry-walkthrough a plan. Do not read the plan or trace changes directly — use this skill first to load the validation workflow.
npx skillsauth add talont-org/autoskillit dry-walkthroughInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Validate a proposed implementation plan by performing a dry walkthrough of each change without implementing. Fix issues directly in the plan and report what changed to the terminal.
The plan file must remain a clean, self-contained implementation instruction set. No gap analysis, no commentary, no "issues found" sections in the plan itself. All reporting goes to terminal output.
Your role is technical validation, not strategic decision-making. Fix factual inaccuracies (wrong file paths, nonexistent functions, incorrect line numbers). Preserve all goals and scope.
{plan_path} — Absolute path to the plan file to validate (optional: falls back to most recent {{AUTOSKILLIT_TEMP}}/ artifact if omitted)
NEVER:
run_in_background: true is prohibited)ALWAYS:
model: "sonnet" when spawning all subagents via the Task toolWhen context is exhausted mid-execution, plan file edits may be partially applied.
The recipe routes to on_context_limit (typically register_clone_failure or a
restart step), abandoning the partial walkthrough.
This skill modifies only the plan file (not source code), so partial edits have limited blast radius. The downstream step will restart the walkthrough on retry.
Read the plan from:
After resolving the plan path, check whether this is a part file of a multi-part plan:
Detect the part suffix: If the plan filename contains _part_ (e.g., _part_a, _part_b, _part_1), this is one part of a multi-part plan. Extract the part identifier (A, B, C… or number) from the suffix.
⚠️ SCOPE BOUNDARY — CRITICAL: If a part suffix is detected, immediately output to the terminal:
"⚠️ MULTI-PART PLAN DETECTED: Validating PART {X} ONLY. This session MUST NOT read, open, reference, or validate any other part files. Sibling part files visible in {{AUTOSKILLIT_TEMP}}/ or any other directory are entirely out of scope and must be ignored."
Verify the scope warning block: Check that the plan file contains the mandatory scope warning block immediately after the title line. The block must match this form:
> **PART {X} ONLY. Do not implement any other part. Other parts are separate tasks requiring explicit authorization.**
If the block is absent, or contains the wrong part label or wording, insert or correct it as your first edit to the plan file before proceeding to phase validation.
For each phase, verify using subagents:
1. Do the target files exist?
2. Do the referenced functions/classes exist?
3. Are the assumptions about current state correct?
4. Will the changes introduce circular dependencies?
5. Are there hidden dependencies not mentioned?
6. Does this violate any project rules?
7. Does the implmentation make sense given the reality of the current state of code?
8. Is every new component, class, or function actually wired into the call chain? Nothing should be created but left unconnected.
9. If the plan adds tests that call mutating methods on shared objects (singletons, global
registries, server instances), does the plan account for state restoration? Scan the
plan text for method calls on module-scope objects (e.g., enable(...), disable(...),
register(...), connect(...)). If found, verify the plan specifies cleanup. Inspect
the target test directory's existing isolation pattern (conftest autouse fixtures,
setup/teardown) and confirm the plan's new tests comply. If the plan prescribes
mutating shared state without specifying cleanup, flag it.
Verify phase ordering:
PROJECT RULES CHECKLIST:
[ ] No backward compatibility code
[ ] No fallbacks that hide errors
[ ] No stakeholder sections
[ ] No PR breakdown sections
[ ] Follows existing architectural patterns
[ ] Uses existing utilities (not reinventing) unless refactoring is part of plan or provides major improvement
[ ] Test command uses the project's configured `test_check.commands` (list of commands, if set) or `test_check.command` (from `.autoskillit/config.yaml`, default: `task test-check`) — no unconfigured direct test runner invocations (pytest, python -m pytest, etc.)
[ ] Worktree setup uses `worktree_setup.command` or `task install-worktree` — no hardcoded `uv venv`, `pip install`, or direct package manager invocations
Test command enforcement: Scan the entire plan for any test invocation. Read the project's configured test commands from .autoskillit/config.yaml: check test_check.commands first (list of ordered commands, if set); fall back to test_check.command (single command, default: task test-check). If the plan contains pytest, python -m pytest, make test, or any other unconfigured test runner invocation, replace it with the config-driven command(s).
Worktree setup enforcement: Scan the plan for any worktree environment setup. The plan should reference the project's configured worktree_setup.command or task install-worktree. If the plan contains hardcoded uv venv, uv pip install, pip install -e, npm install (as worktree setup, not as a configured command), flag it and replace with the config-driven approach.
Run a lightweight two-part scan to detect whether the plan risks reintroducing patterns that were previously fixed or conflicts with tracked GitHub issues. This is a quick cross-reference sanity check — not a deep audit.
Defaults: Last 100 recent commits · Issues closed in last 30 days
A. Git History Scan
Extract the set of source files the plan proposes to touch by grepping the plan
text for paths matching src/**/*.py and tests/**/*.py. Store as PLAN_FILES.
Scan recent commit messages on those files for fix/revert/remove/replace keywords:
git log --oneline -100 --format="%H %s" --grep="fix\|revert\|remove\|replace\|delete" -- {PLAN_FILES}
For each matching commit, determine signal strength:
git show {hash} | rg "^-def |^-class |^-async def " and compare against
function/class names the plan introduces.Classify:
> ⚠️ Historical note: {symbol} was removed in {hash} ("{commit_message}") — verify this addition is intentional and does not reintroduce a known bug.B. GitHub Issues Cross-Reference
Check gh authentication:
gh auth status 2>/dev/null
If this fails, skip Part B and record an informational note: "GitHub issues scan skipped — gh not authenticated."
Fetch open and recently closed issues:
gh issue list --state open --json number,title,body --limit 100
gh issue list --state closed --json number,title,body,closedAt --limit 100
Filter closed issues to those closedAt within the last 30 days.
Build a keyword set from the plan: target file basenames (without .py), function
names mentioned in the plan, and key terms from described changes.
Cross-reference each issue's title and body against the keyword set:
> ⚠️ Historical note: Issue #{N} ("{title}") addressed this area — ensure the plan does not reintroduce the fixed pattern.C. Collect informational findings
Gather all weak-signal git findings and open-issue area overlaps into a list.
These are forwarded to Step 7 for inclusion in the ### Historical Context terminal section.
If Part A and Part B produce no findings, record: "No historical regressions or issue overlaps detected."
For each issue found:
After fixing all issues, add this exact line as the first line of the plan file:
Dry-walkthrough verified = TRUE
This marker indicates the plan has been validated and is ready for implementation. The implement-worktree skill checks for this marker before proceeding.
After updating the plan, output a summary to the terminal (your response text):
## Dry Walkthrough Complete
**Plan:** {path}
**Status:** {PASS - Ready to implement / REVISED - See changes below}
### Changes Made
1. {What was changed and why}
2. {What was changed and why}
### Verified
- {Key assumption that was confirmed}
- {Key assumption that was confirmed}
### Historical Context
- {finding}: {description}
(or: No historical regressions or issue overlaps detected.)
### Recommendation
{Implement as-is / Review changes before implementing}
| Content | Where it goes | |---------|---------------| | Fixed plan content | Written to plan file (Edit tool) | | Gap analysis | Terminal output (your response text) | | Change summary | Terminal output (your response text) | | Recommendations | Terminal output (your response text) |
Input: User says "dry walkthrough {{AUTOSKILLIT_TEMP}}/make-plan/api_retry_plan.md"
Process:
src/db/client.py not referenced - needs fixTerminal Output:
## Dry Walkthrough Complete
**Plan:** {{AUTOSKILLIT_TEMP}}/make-plan/api_retry_plan.md
**Status:** REVISED
### Changes Made
1. Phase 2: Added reference to existing retry pattern in `src/db/client.py:45-67` - implementation should follow this pattern for consistency
### Verified
- `src/api/client.py` exists with expected `__init__` signature
- No circular dependency risk identified
- Test commands are correct
### Historical Context
- Issue #302: "consolidate retry logic" — addresses the same area. Verify alignment before implementing.
### Recommendation
Ready to implement. Review the updated Phase 2 to see the pattern reference.
Plan file: Updated cleanly with no gap analysis sections - just the corrected implementation instructions.
development
Generate YAML recipes for .autoskillit/recipes/. Use when user says "make script skill", "generate script", "script a workflow", "write a script", "create a script", "new recipe", "write a pipeline", or when loaded by other skills for script formatting.
data-ai
Create Uncertainty Representation visualization planning spec showing error bar definitions, distribution-aware alternatives, and multi-seed variance protocols. Statistical lens answering "How is uncertainty honestly represented?"
data-ai
Create Temporal Dynamics visualization planning spec showing axis scaling (linear vs log), smoothing disclosure, epoch/step alignment, run aggregation (mean + variance bands), early-stopping markers, and wall-clock vs step-count x-axis. Temporal lens answering "Are training dynamics shown clearly and honestly?"
data-ai
Create Narrative Story Arc visualization planning spec showing visual consistency across the report (same color = same model everywhere), logical figure progression, redundant figure detection, and narrative dependency between figures. Narrative lens answering "Do the figures tell a coherent story across the report?"