alan-plan
supatest-ai/alan-skills
Create structured implementation plans as Alan artifacts with analysis, clarification, and visual diagrams.
What is alan-plan?
A skill for analyzing tasks, asking clarifying questions, and drafting actionable implementation plans in markdown format. Use this when you need to break down a complex problem into clear steps before coding, with support for mermaid diagrams and plan versioning.
- Analyze task scope and codebase to understand architecture, dependencies, and constraints
- Ask clarifying questions one at a time to resolve ambiguity before planning
- Draft plans in natural markdown with optional mermaid diagrams (flowchart, sequence, ER, state, C4, data flow)
- Persist plans as Alan artifacts with task, conversation, and team context
- Handle plan revisions with version tracking and parent artifact linking
- Fetch and update existing plans via MCP tools
How to install alan-plan
npx skills add https://github.com/supatest-ai/alan-skills --skill alan-plan- Alan environment with MCP tool support (mcp__alan__create_plan, mcp__alan__get_artifact, etc.)
- Access to ALAN_TASK_ID and ALAN_SESSION_ID environment variables or active task context
- Read/Grep/Glob access to the codebase for exploration
How to use alan-plan
- 1.Read the task description and explore the codebase to understand scope, architecture, and constraints
- 2.Ask clarifying questions one at a time if requirements are ambiguous; skip this step if scope is already clear
- 3.Draft the plan in markdown, using mermaid diagrams where they clarify multi-component interactions or architecture
- 4.Call mcp__alan__create_plan with title, content, summary, taskId, conversationId, and teamId to persist the plan
- 5.Call ExitPlanMode to present the plan for user approval, rejection, or feedback
- 6.For revisions: fetch the existing plan, re-analyze based on feedback, rewrite with deeper understanding, and persist with incremented version and parentId
Use cases
- Breaking down a large feature request into phased implementation steps before coding
- Creating a database schema migration plan with ER diagrams and dependency analysis
- Planning a multi-service API integration with sequence diagrams showing request flows
- Documenting a refactoring strategy with decision trees and file-by-file changes
- Revising an existing plan based on feedback or new constraints discovered during exploration
- Senior engineers planning complex features or refactors
- Teams collaborating on task breakdown and design review
- Developers who want to document their approach before implementation
- Project leads tracking implementation strategy and dependencies
alan-plan FAQ
Ask questions if scope is unclear, requirements are ambiguous, or you've found gaps during codebase exploration. Skip clarification if the task description is detailed, subtasks are clear, related documents exist, and exploration answered your open questions. One good question prevents a bad plan.
Use Sequence for service interactions, ER for schema changes, Flowchart for logic/decisions, State for entity lifecycles, C4 Container for architecture overview, and Data Flow for end-to-end data movement. Place diagrams at the top of relevant sections; don't diagram trivial changes.
No. Write naturally in markdown however makes sense for the problem: bullet lists, phased breakdowns, decision trees, file-by-file changes, or any structure that communicates clearly. There is no required format.
Fetch the existing plan with mcp__alan__get_artifact, re-analyze the codebase based on feedback, ask clarifying questions if needed, then rewrite the plan. Persist with an incremented version (e.g., 'Version 2') and set parentId to the previous plan's artifact ID to create a version chain.
Do not write or modify source files, execute destructive commands, skip the create_plan MCP call, or use rigid section formats. Plans must be persisted to Alan; exploration is read-only.
Full instructions (SKILL.md)
Source of truth, from supatest-ai/alan-skills.
name: alan-plan version: 1.0.1 description: Create an implementation plan artifact in Alan
Plan Creation
You are creating an implementation plan. Your job is to analyze the problem and produce a clear, actionable plan in markdown.
How to plan
-
Analyze — Read the task description and any linked context. Explore the codebase to understand architecture, dependencies, constraints, and risks. Use Read, Grep, Glob freely. Do NOT write or modify any files.
If this is a revision request (the user references feedback on an existing plan, or mentions a plan artifact), first fetch the existing plan with
mcp__alan__get_artifactto understand what was already proposed. -
Clarify — Before drafting, assess whether the scope is clear enough to plan against. If it's not — ask questions. One at a time.
This is how a senior engineer operates: they don't guess, they don't silently fill in gaps, they don't plan against assumptions. They ask until they understand. Walk down each branch of the decision tree and resolve ambiguity before committing it to a plan.
- Ask one question per message. Don't dump a list of 10 questions.
- If a question can be answered by exploring the codebase, explore instead of asking.
- If the scope or requirements are genuinely unclear, say so directly: "I need more clarity on X before I can plan this well."
- Don't be hesitant about asking. It's not friction — it's quality control. A plan built on assumptions is worse than no plan.
Break-glass: when to skip this step. If the task description is detailed, subtasks are clear, related documents exist, and the codebase exploration answered your open questions — go straight to Draft. Don't force clarification when none is needed. Read the room.
-
Draft — Write your plan as natural free-form markdown. Structure it however makes sense for this specific problem:
- Bullet list of steps
- Phased breakdown with dependencies
- Decision tree with trade-offs
- File-by-file change list
- Whatever communicates the plan most clearly
There is NO required format. Good plans are clear, specific, and actionable. Include file paths, function names, and reasoning where relevant.
Be visual. Plans render mermaid natively. Use diagrams to ground the reader before the details — pick the right type for what you're showing:
Diagram When to use Mermaid type Sequence Service-to-service interactions, API call chains, request lifecycle sequenceDiagramER (Schema) Database tables & relationships, schema changes erDiagramFlowchart Logic & process flows, decision paths, branching logic flowchart TDState Entity lifecycle, status transitions, workflow states stateDiagram-v2C4 Container System architecture overview, service topology, boundaries C4ContainerData Flow How data moves through the system end-to-end flowchart LRSelection rule: look at what the plan section is explaining, then pick:
- "How do these services talk?" → Sequence
- "What tables change?" → ER
- "What's the logic?" → Flowchart
- "What states can this be in?" → State
- "What's the high-level architecture?" → C4 Container
- "How does data flow through?" → Data Flow (left-to-right flowchart)
Place the diagram at the top of the relevant section — it sets context for the text that follows. Don't diagram trivial changes; use them when the plan involves multiple components, services, or non-obvious relationships. Most plans with architectural changes should have at least one diagram.
-
Persist — You MUST call the
mcp__alan__create_planMCP tool to save your plan. If you skip this, the plan is lost.Use the active task context when it is present in the prompt. Otherwise:
- The task ID is available from the
ALAN_TASK_IDenvironment variable. - The conversation ID is available from the
ALAN_SESSION_IDenvironment variable. - Resolve
teamIdwith Alan MCP context/tools before creating the plan.
Always pass
taskId,conversationId, andteamIdexplicitly. Do not substitute one ID for another.Tool: mcp__alan__create_plan Parameters: { "title": "Short descriptive title — Version N", "content": "<your full markdown plan>", "summary": "One-line summary of what this plan achieves", "taskId": "<active task ID or value of ALAN_TASK_ID, if set>", "conversationId": "<active conversation ID or value of ALAN_SESSION_ID>", "teamId": "<resolved team ID>" } - The task ID is available from the
-
Exit plan mode — After persisting, call
ExitPlanModeto present the plan for user approval. Lead with the plan title and, when possible, the artifact link (/teams/<teamId>/docs?artifactId=<artifactId>). Do not lead with a raw UUID; only include it as secondary debug context if no usable title or link is available. The user will approve, reject, or ask questions.
Handling feedback and revisions
Feedback is not a patch request — it's a signal that your understanding was incomplete. Treat it as a new analysis cycle, not a quick edit.
-
Understand the feedback — Read every point carefully. What is the user actually saying? Is it a correction, a concern, a missing requirement, or a change in direction? Don't assume you know — ask if anything is ambiguous.
-
Ask before replanning — If the feedback raises questions, changes scope, or introduces constraints you hadn't considered — ask. Get clarity before revising. One good question prevents a bad revision. Don't silently reinterpret feedback into something you're more comfortable with.
-
Re-analyze — Go back to the codebase. The feedback may reveal things you missed in the first pass. Read the relevant code again. Check assumptions that the feedback challenges. This is Phase 1 (Analyze) again, not a shortcut.
-
Revise the plan — Now rewrite with the deeper understanding. Address each feedback point explicitly. If you changed your approach, explain why.
-
Persist the revision — When saving:
- Use the same title with an incremented version:
"Title — Version 2","Title — Version 3", etc. - Set
parentIdto the previous plan's artifact ID — this creates a version chain and marks the old plan as "superseded" - Reference the specific feedback points to show they were addressed
- If the feedback includes quoted text (e.g.
On "Setup DB":), address that specific section
- Use the same title with an incremented version:
Use mcp__alan__get_artifact to fetch the previous plan if you need to
reference its full content during revision.
Available tools for plan artifacts
| Tool | Use |
|---|---|
mcp__alan__create_plan | Persist a new plan (or revision with parentId) |
mcp__alan__get_artifact | Fetch an existing plan/artifact by ID |
mcp__alan__update_artifact | Update an existing plan's content/metadata |
mcp__alan__add_artifact_comment | Add a comment to a plan artifact |
mcp__alan__resolve_artifact_comment | Resolve a comment on a plan |
Do NOT
- Write or modify any source files
- Execute destructive commands
- Skip the
create_planMCP call — the plan must be persisted - Use any rigid sections format — write naturally, however the plan is best expressed
Related skills
More from supatest-ai/alan-skills and the wider catalog.

alan-review-pr
Review GitHub pull requests using Alan's GitHub MCP tools with automated security, correctness, and quality analysis.

alan-test-feature
Automated feature testing with browser capture, S3 upload, and structured test reports.

ci-cd-security
Scan GitHub Actions workflows for security vulnerabilities without external tools or execution.

skill-security
Audit AI agent skills for security risks before installing—catches credential theft, prompt injection, malicious code, and intent mismatches.

superdesign
Design UIs, presentations, and graphics on an infinite canvas with multiple leading AI models.

super-search
Search your coding memory for past work, sessions, and implementation details.