Plan Maker
Purpose
Produce a single, goal-aligned macro-level roadmap as a Markdown document that can guide execution without modifying the codebase.
When to use
Use the plan-maker skill when:
- Strong trigger: the user explicitly asks for a saved roadmap document/artifact (MUST use plan-maker unless the change is trivial: < 30 min)
- The user asks for a plan/milestones/implementation plan before coding
- The user asks to align thinking first or clarify direction before planning
- The task is large/ambiguous and benefits from staged execution and verification
- You need a roadmap artifact saved under module/integration
dev-docs/active/for collaboration and handoff
Avoid the skill when:
- The change is trivial (< 30 min) and does not benefit from staged execution/verification
- A roadmap already exists and only minor edits are needed (update the existing roadmap instead)
Inputs
- Task goal (required)
- If the goal is ambiguous or missing critical constraints, you MUST ask clarifying questions before drafting the roadmap.
- Requirements source (optional):
- Existing document: user provides a path to an existing requirements document; plan-maker reads and extracts key points
- Interactive collection: collect requirements through Q&A with the user
- Both: read existing document AND supplement with interactive Q&A
- Requirements alignment mode (optional):
- If user requests align thinking first / clarify direction, generate a requirements document alongside the roadmap before creating the roadmap
- See
./templates/requirement.mdfor the requirements document template
Outputs
roadmap.md(always) at exactly one scope:- Module-scoped:
modules/<module_id>/dev-docs/active/<task_slug>/roadmap.md - Integration-scoped:
modules/integration/dev-docs/active/<task_slug>/roadmap.md - Temporary (confirmation-failure fallback):
.ai/.tmp/dev-docs/<task_slug>/roadmap.md
- Module-scoped:
requirement.md(optional, when requirements alignment mode is active) at the same scope:- Module-scoped:
modules/<module_id>/dev-docs/active/<task_slug>/requirement.md - Integration-scoped:
modules/integration/dev-docs/active/<task_slug>/requirement.md - Temporary (confirmation-failure fallback):
.ai/.tmp/dev-docs/<task_slug>/requirement.md
- Module-scoped:
- Host plan-mode artifact(s) (optional, read-only input)
- May exist in the host runtime (Cursor/Codex/other planning surfaces); treat as seed input only and do not overwrite from plan-maker.
Scope resolution
| Scope | Path | When to use |
|---|---|---|
| Module | modules/<module_id>/dev-docs/active/<task_slug>/ |
Task is clearly about a single module |
| Integration | modules/integration/dev-docs/active/<task_slug>/ |
Task spans multiple modules or involves scenario testing |
| Temporary (default) | .ai/.tmp/dev-docs/<task_slug>/ |
Scope is unclear AND user cannot/will not confirm, OR user explicitly requests temporary location |
Path confirmation rules (MUST)
| Scope | Human confirmation required? | Auto-create allowed? |
|---|---|---|
| Module | YES (confirm module_id + task_slug) |
NO |
| Integration | YES (confirm task_slug) |
NO |
| Temporary | NO | YES |
Critical rule: NEVER create dev-docs under modules/ without explicit human confirmation of the full path. If confirmation is not obtained, fall back to .ai/.tmp/dev-docs/.
Plan-mode interoperability
- Runtime signal contract:
- Planning mode is active only when a reliable runtime signal exists (for example,
collaboration_mode=Plan) or the user explicitly confirms it. - If the signal is missing, ask the user once.
- If the signal remains unavailable and user confirmation is unavailable, continue as non-Plan mode and record that assumption.
- Planning mode is active only when a reliable runtime signal exists (for example,
- Seed artifact discovery order (after scope is resolved):
- User-provided artifact paths
- Runtime-provided host plan artifact paths
- Scope-resolved
requirement.mdpath (module/integration/temporary) - Scope-resolved existing
roadmap.mdpath (update flow only)
- Merge and conflict policy (required):
- Build the roadmap draft using set-union over available seed artifacts.
- Resolve conflicts using the strict precedence:
- Latest user-confirmed instruction
requirement.md- Host plan-mode artifact
- Model inference
- If conflicts remain unresolved, record them under roadmap open questions/assumptions and do not silently drop them.
- Consistency baseline for dual artifacts:
- If both host plan artifact and roadmap exist, keep semantic consistency for goal, boundaries, constraints, milestone/phase ordering, and acceptance criteria.
- Scope-resolved
roadmap.mdremains repository SSOT for execution.
Steps
Phase 0 - Requirements alignment (optional; triggered by user request)
- Check for requirements alignment request:
- If user asks to align thinking first / clarify direction, or provides an existing requirements document:
- Proceed to step 0a
- Otherwise, skip to step 1
- If user asks to align thinking first / clarify direction, or provides an existing requirements document:
0a. Requirements source handling:
- If user provides an existing document path:
- Read the document and extract: goal, use cases, boundaries, constraints
- Summarize key points and confirm understanding with user
- If user requests interactive collection:
- Ask structured questions to collect:
- Core goal (1 sentence)
- Main use cases (2-5)
- Boundaries / non-goals
- Key constraints
- Summarize collected requirements and confirm with user
- Ask structured questions to collect:
0b. Generate requirements document (if alignment mode is active):
- Confirm scope (module or integration):
- If single-module, confirm
module_id - If cross-module/system-level, use
modules/integration
- If single-module, confirm
- Propose
<task_slug>(if not yet confirmed) - Save aligned requirements to:
modules/<module_id>/dev-docs/active/<task_slug>/requirement.md, ormodules/integration/dev-docs/active/<task_slug>/requirement.md
- Confirm with user: "Requirements documented. Proceed to roadmap creation?"
Phase 1 - Roadmap drafting and save
- Detect planning-mode context.
- Use runtime signal when available; otherwise ask user once.
- Ask clarifying questions if needed (goal, constraints, scope, risks, verification).
- Resolve scope and path:
- Module:
modules/<module_id>/dev-docs/active/<task_slug>/ - Integration:
modules/integration/dev-docs/active/<task_slug>/ - Temporary:
.ai/.tmp/dev-docs/<task_slug>/
- Module:
- For module/integration scope, propose the full path and wait for explicit user confirmation before creating files.
- Discover seed artifacts.
- Follow the required discovery order from the interoperability rules.
- Draft the roadmap using
./templates/roadmap.md.- Keep it macro-level: phases, deliverables, verification, risks, rollback.
- Always include the "Project structure change preview" section from the template (may be empty).
- Include input trace and merge/conflict decisions in the roadmap draft.
- If plan-mode artifacts are available, use them as first-pass inputs and merge by union.
- Apply strict conflict precedence: user-confirmed > requirement.md > host artifact > inference.
- If planning-mode signal is unavailable and user confirmation is unavailable, proceed as non-Plan mode and record the assumption.
- Only include specific file paths/APIs when you have evidence; otherwise add a discovery step.
- Include an "Optional detailed documentation layout (convention)" section that declares the expected dev-docs layout without creating those files.
- Save the roadmap to the resolved scope.
- Return a short handoff message:
- confirmed goal
- where the roadmap was saved
- the next 3 actions to start execution (without executing them)
Phase 2 - Dev-docs linkage (conditional)
- Evaluate the dev-docs Decision Gate:
- Apply the Decision Gate in
.ai/skills/module/dev-docs/AGENTS.md. - If the task qualifies:
- Inform user that the task qualifies for a full dev-docs bundle for context preservation and handoff.
- Ask if they want to create the complete bundle now.
- If user confirms, trigger
create-dev-docs-planwith the roadmap as input (same scope +<task_slug>).
- If the task does not qualify:
- Note in the handoff message that the roadmap is sufficient for now.
- Apply the Decision Gate in
Verification
- Goal is restated and (where needed) confirmed with the user
- Ambiguities are resolved or recorded as explicit open questions/assumptions
- (If alignment mode) Requirements document saved alongside the roadmap at the chosen scope
- (If alignment mode) User confirmed requirements understanding before roadmap creation
- Planning-mode signal was checked; if missing, user was explicitly asked once before assuming non-Plan mode
- Seed artifact discovery order was applied and recorded
- Merge/conflict resolution applied strict precedence (user-confirmed > requirement.md > host artifact > inference)
- Unresolved conflicts are preserved as open questions/assumptions
- (If dual artifacts) Goal, boundaries, constraints, phases, and acceptance criteria are semantically consistent
- Roadmap includes phases and per-step deliverables
- Roadmap includes "Project structure change preview" section (may be empty)
- Roadmap defines verification/acceptance criteria and a rollback strategy
- Roadmap is saved at the chosen scope under
dev-docs/active/<task_slug>/roadmap.md(or.ai/.tmp/dev-docs/<task_slug>/roadmap.mdfor temporary scope) - Dev-docs Decision Gate evaluated; user prompted for full bundle if criteria met
- No application/source/config files were modified
Boundaries
- MUST NOT modify application/source code, project configuration, or database state
- MUST ask clarifying questions when the goal or constraints are ambiguous
- MUST NOT invent project-specific facts (APIs, file paths, schemas) without evidence
- MUST use plan-maker when the user explicitly asks for a saved roadmap document/artifact (strong trigger)
- MUST NOT create roadmap under
modules/(module or integration scope) without explicit human confirmation of the full path - MUST fall back to
.ai/.tmp/dev-docs/if human confirmation is not obtained for module/integration scope - MUST NOT assume planning mode unless a runtime signal exists or the user explicitly confirms planning mode
- MUST default to non-Plan mode when no reliable signal or user confirmation is available, and record the assumption
- MUST treat scope-resolved
roadmap.mdas repository SSOT - MUST apply conflict precedence: user-confirmed > requirement.md > host plan artifact > inference
- If the task meets the dev-docs Decision Gate, MUST prompt user whether to continue with
create-dev-docs-plan - If user confirms dev-docs bundle creation, MUST trigger
create-dev-docs-plan - SHOULD keep the roadmap macro-level; deep design details belong in separate documentation artifacts
- SHOULD NOT include secrets (credentials, tokens, private keys) in the roadmap
- SHOULD preserve semantic consistency across dual artifacts while documenting intentional divergences
- PRODUCES macro-level roadmaps: phases, scope, impact, risks, rollback strategy
- PRODUCES requirements documents (when alignment mode is active)
Included assets
- Templates:
./templates/roadmap.md(roadmap document)./templates/requirement.md(requirements alignment document)
- Reference:
./reference/detailed-docs-convention.md(optional file layout convention)
- Example:
./examples/sample-roadmap.md
Converted and distributed by TomeVault — claim your Tome and manage your conversions.