src/autoskillit/skills_extended/make-plan/SKILL.md
Planning executor. ALWAYS invoke this skill when instructed to create, devise, or write an implementation plan. Do not explore the codebase or draft a plan directly — use this skill first to load the planning workflow.
npx skillsauth add talont-org/autoskillit make-planInstall 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.
Create focused, actionable implementation plans that recommend the technically best solution.
The ONLY criterion for choosing an approach is technical quality and correctness of design. A well-designed system is the goal. Nothing else matters.
NEVER use these as reasons to choose or reject an approach:
Tests exist to validate that code works as intended. When functionality changes, tests SHOULD change. "Would break tests" is never a reason to reject an approach.
Git handles rollback. Feature flags for rollback are unnecessary complexity.
Existing code is not sacred. If the existing architecture is flawed, the right answer is to fix it, not preserve it.
If the ARGUMENTS contain a GitHub issue reference, call fetch_github_issue via the MCP
tool before beginning any analysis. Use the returned content field as the task description.
Detection — scan ARGUMENTS for any of these patterns:
https://github.com/{owner}/{repo}/issues/{N}
(e.g. https://github.com/acme/project/issues/42){owner}/{repo}#{N} (e.g. acme/project#42)#N or N when github.default_repo is configuredGitHub Issue: followed by a URL or shorthandBehavior:
fetch_github_issue and use the
returned content as the complete task description.GitHub Issue: {url} line (added by the pipeline
orchestrator) → call fetch_github_issue for that URL and append the returned content
as supplementary context appended after the task description.include_comments: true for full context.fetch_github_issue returns success: false, log the failure and proceed with the
raw ARGUMENTS as-is.Understand related systems and validate details - Use subagents to study the architecture, how components work together, their purpose, patterns, and standards. Validate any details provided in the task description. When the plan involves adding tests that call mutating methods on singleton or module-level objects (enable/disable, register/unregister, connect/disconnect), use a subagent to read the target test directory's existing isolation patterns (conftest fixtures, setup_method/teardown_method, autouse fixtures) before proceeding to Step 3.
Explore and design approaches - Use subagents to investigate different ways to solve the problem. Use subagents with web search to research modern solutions, approaches, designs, and architectures relevant to the problem. For each approach, focus on:
Design tests first - For the chosen approach, define tests that capture the intended behavior. These tests should fail against the current codebase and pass once the implementation is complete. The implementation steps should be ordered to make these tests pass.
Test isolation contract: When the plan adds tests that call mutating methods on a singleton or module-level object, the plan must specify the isolation strategy — how state is reset between tests. Ensure new tests either inherit the existing isolation mechanism or explicitly define their own. Plans that prescribe calling mutating methods on shared objects without specifying cleanup are incomplete.
Evaluate approaches on technical merit only - Use subagents to assess each approach. Evaluation criteria:
DO NOT evaluate based on: implementation effort, risk, number of changes, test breakage, or ease of rollback. These are not engineering criteria.
5a. Select the lens based on what the plan primarily affects:
| If the plan primarily involves... | Use Lens | |-----------------------------------|----------| | Adding/modifying containers, services, or integrations | C4 Container | | Changing workflow logic, state machines, or decision flow | Process Flow | | Altering data storage, transformations, or information flow | Data Lineage | | Restructuring modules, changing dependencies, or layering | Module Dependency | | Adding/modifying parallel execution or thread handling | Concurrency | | Changing error handling, retry logic, or recovery paths | Error/Resilience | | Modifying repository patterns or data access | Repository Access | | Changing CLI commands, config, or monitoring | Operational | | Adding/modifying validation, trust boundaries, or isolation | Security | | Changing build tools, test framework, or quality gates | Development | | Affecting multiple user journeys or cross-component flows | Scenarios | | Modifying state contracts, field lifecycles, or resume logic | State Lifecycle | | Changing deployment topology or infrastructure | Deployment |
5b. Write your lens selection rationale to a file using the Write tool:
{{AUTOSKILLIT_TEMP}}/make-plan/arch_lens_selection_{YYYY-MM-DD_HHMMSS}.md5c. MANDATORY: LOAD the appropriate arch-lens skill using the Skill tool:
| Lens | Skill to LOAD |
|------|---------------|
| C4 Container | /autoskillit:arch-lens-c4-container |
| Process Flow | /autoskillit:arch-lens-process-flow |
| Data Lineage | /autoskillit:arch-lens-data-lineage |
| Module Dependency | /autoskillit:arch-lens-module-dependency |
| Concurrency | /autoskillit:arch-lens-concurrency |
| Error/Resilience | /autoskillit:arch-lens-error-resilience |
| Repository Access | /autoskillit:arch-lens-repository-access |
| Operational | /autoskillit:arch-lens-operational |
| Security | /autoskillit:arch-lens-security |
| Development | /autoskillit:arch-lens-development |
| Scenarios | /autoskillit:arch-lens-scenarios |
| State Lifecycle | /autoskillit:arch-lens-state-lifecycle |
| Deployment | /autoskillit:arch-lens-deployment |
If the Skill tool cannot be used (disable-model-invocation) or refuses this invocation, proceed without the architectural diagram.
5d. Create the diagram following the loaded skill's instructions:
newComponent class for new elements)● prefix for modified existing components★ prefix for new componentsInclude the diagram in the plan document under a "## Proposed Architecture" section. More than one lens diagram is okay if it is complex plan (don't do more than 3, and make sure to load each appropriate skill).
When the task involves resolving conflicts to apply changes from one branch onto another
(i.e., the input is a conflict report produced by merge-pr), the plan
MUST produce a worktree with a linear commit history.
merge_worktree rebases the worktree branch before merging. Standard
git rebase cannot replay merge commits; a worktree containing them will
fail with WORKTREE_INTACT_MERGE_COMMITS_DETECTED.
NEVER prescribe in conflict-resolution plans:
git merge --no-ff origin/{branch} # creates merge commit — rebase fails
git merge --no-commit --no-ff origin/{branch} # same problem
ALWAYS use linear approaches instead:
# Option A: Per-file checkout (copies contents without merge relationship)
git checkout origin/{branch} -- path/to/file.py
# Option B: Cherry-pick (replays individual commits as regular commits)
git cherry-pick {commit-hash}
# Option C: Squash merge (single linear commit from all changes)
git merge --squash origin/{branch}
git commit -m "feat: apply changes from {branch}"
These produce regular (single-parent) commits that merge_worktree's rebase gate
handles correctly.
Before writing the final plan, verify:
/autoskillit:arch-lens-* skill using the Skill tool/autoskillit:mermaid skill for stylingNEVER use EnterPlanMode. This skill IS the planning process. Execute the planning steps directly — explore with subagents, design the approach, write the plan file to {{AUTOSKILLIT_TEMP}}/make-plan/ (relative to the current working directory). Do not enter plan mode, do not call ExitPlanMode. Just do the work and deliver the plan.
NEVER include:
NEVER:
{{AUTOSKILLIT_TEMP}}/make-plan/ directorygit merge in implementation plans. When a plan needs to bring in changes from another branch, use git cherry-pick <commit> for individual commits or git checkout <branch> -- <file> for specific files. merge_worktree requires linear commit history — merge commits cannot be rebased and will cause WORKTREE_INTACT_MERGE_COMMITS_DETECTED failure. See "Conflict-Resolution Plan Requirements" section for full guidance.run_in_background: true is prohibited)ALWAYS:
{{AUTOSKILLIT_TEMP}}/make-plan/ directory (relative to the current working directory){{AUTOSKILLIT_TEMP}}/make-plan/...) but
the token must use the absolute path (prepend the full CWD):
plan_path = /absolute/cwd/{{AUTOSKILLIT_TEMP}}/make-plan/{filename}.md
plan_parts = /absolute/cwd/{{AUTOSKILLIT_TEMP}}/make-plan/{filename}.md
This token is MANDATORY — the pipeline cannot capture the output without it.model: "sonnet" when spawning all subagents via the Task toolIf the plan exceeds 500 lines, split it into multiple files (_part_a, _part_b, etc.) at natural section boundaries. Use as many parts as needed.
CRITICAL — Multi-part plan rules:
— PART A ONLY (or B, C, etc.) so scope is immediately visible.Save the plan to: {{AUTOSKILLIT_TEMP}}/make-plan/{task_name}_plan_{YYYY-MM-DD_HHMMSS}.md (relative to the current working directory)
Structured output: After saving the file(s), emit the following lines so pipeline orchestrators can capture both fields:
For a single-part plan:
IMPORTANT: Emit the structured output tokens as literal plain text with no markdown formatting on the token names. Do not wrap token names in
**bold**,*italic*, or any other markdown. The adjudicator performs a regex match on the exact token name — decorators cause match failure.
plan_path = {absolute_path}
plan_parts = {absolute_path}
For a multi-part plan (list all part paths in alphabetical order):
plan_path = {path_to_part_a}
plan_parts = {path_to_part_a}
{path_to_part_b}
{path_to_part_c}
Plan structure (single-part):
# Implementation Plan: {Task Name}
## Summary
{Brief overview of what will be implemented}
## Proposed Architecture
{Mermaid diagram showing the proposed changes using the selected lens}
**Lens Used:** {lens name} - {why this lens was chosen}
## Tests
{Tests to write first — should fail now, pass after implementation}
## Implementation Steps
{Ordered steps, each making one or more of the above tests pass}
## Verification
{How to verify the implementation is correct}
Plan structure (multi-part — use for EACH part file):
# Implementation Plan: {Task Name} — PART {X} ONLY
> **PART {X} ONLY. Do not implement any other part. Other parts are separate tasks requiring explicit authorization.**
## Summary
{What THIS part covers. Explicitly note what is deferred: "Part B will cover X (separate task). Part C will cover Y (separate task)."}
## Proposed Architecture
{Mermaid diagram showing the proposed changes using the selected lens}
**Lens Used:** {lens name} - {why this lens was chosen}
## Tests
{Tests for THIS part only — should fail now, pass after THIS part's implementation}
## Implementation Steps
{Steps for THIS part only}
## Verification
{How to verify THIS part's implementation is correct}
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?"