planning
Planning Skill
When to use
Use this skill when the user asks for planning, a roadmap, a spec-to-implementation breakdown, or wants decisions documented.
Modes
Choose the lightest mode that meets the request.
quick-plan
Use when:
- task is small/medium and non-breaking
- no migrations and no multi-phase rollout
Output:
- 3–8 Work Items (WI-###), each with tests + acceptance
full-plan (default)
Use when:
- migrations/persistence changes
- API/contract changes (public tools, schemas, SDKs)
- multi-phase roadmaps
- performance-sensitive work
Output:
- structured plan sections (see “Plan file template”)
Process
-
Clarify outcomes
- Restate desired behaviors and constraints.
- Identify ambiguities and propose defaults if the user doesn’t decide.
- Capture constraints & dependencies (runtime versions, OS, external services, feature flags, required tools).
- Capture gaps: list requirement/behavior gaps or missing decisions revealed here.
-
Inventory current behavior
- Trace entry points → state/store → side effects → persistence.
- List key files/modules and the invariants they rely on.
- Note ownership/priority rules (windows, workspaces, files).
- Capture gaps: list where current behavior diverges from the stated outcomes.
-
Define target rules
- Convert outcomes into explicit rules and precedence.
- For each rule, include: trigger/context, expected behavior, scope, constraints, and exclusions.
- Edge-case pass: cover empty/none, invalid/malformed, boundary sizes, conflicting state, multi-surface coordination, persistence/restore, and I/O failures.
- Capture gaps: list rules that lack implementation support or current behavior conflicts.
- Create a Decision Log:
- decision, options considered, rationale, and why alternatives were rejected.
- Create an Open Questions list:
- questions that block correctness, who decides, and what the default is if not decided.
-
Structure the plan
- Break into Work Items (WI-###), each with:
- Goal
- Acceptance (measurable) (correctness + performance + UX where relevant)
- Tests (first) (file names + test intent; unit/integration/e2e as applicable)
- Touched areas (file paths + key functions/classes/symbols)
- Dependencies (other WIs, external tools/services)
- Risks + mitigations
- Rollback / revert strategy
- Add priority + estimates (S/M/L) and explicit ordering/dependencies between WIs.
- Capture gaps: map each gap to at least one WI (or record as “out of scope”).
- Plan lint (required):
- Sections present (Outcomes, Constraints, Current Behavior, Target Rules, Work Items, Testing).
- WI numbering is sequential and referenced consistently.
- Every WI includes tests + acceptance.
- Break into Work Items (WI-###), each with:
-
Write the plan file
- Use the template at
templates/TEMPLATE.md(bundled with this skill) if available, otherwise follow the structure above. - Write plans to a local directory (e.g.
dev-docs/plans/YYYYMMDD-HHMM-<topic>.md— local, not in repo). - Always report the saved plan path.
- Use the template at
Testing Requirements
- Every WI must include explicit tests to write before implementation (file names and test intent).
- If tests cannot be written, call it out explicitly and propose the smallest test seam to enable them.
- Include a Testing Procedures section in the plan with required commands and when to run them.
- End the plan with a short Manual Test Checklist.
Acceptance Criteria Guidance
Acceptance must be measurable and verifiable:
- Good: “Search returns v1 schema with
locator_v1for every result (unit test).” - Bad: “Search feels better.”
Plan → Verify Handoff (required)
At the end of the plan, include:
- Evidence to collect per WI (tests, logs, manual steps).
- Any required fixtures or sample data.
Migration / persistence requirements (when applicable)
If the plan changes anything persisted (DB, on-disk cache, config files, APIs that clients store):
- Add a Data Model section (tables/columns/keys, versions).
- Add a Migration Plan:
- forward migration steps
- rollback steps
- compatibility guarantees (old clients vs new server)
- Add Invariants + validation queries (what to check post-migration).
- Add a Backfill / reindex strategy if needed.
Observability requirements (when applicable)
If the plan touches indexing/search/performance-sensitive paths:
- Define metrics (latency, throughput, memory, DB size growth).
- Define where logs go and how to enable verbose tracing.
- Add acceptance thresholds (e.g. “index 1000 docs < X minutes on machine Y”).
Rollout requirements (when applicable)
If behavior changes are user-visible or risky:
- Add a Rollout Plan (feature flags, staged enablement, default-off vs default-on).
- Define “kill switch” conditions and how to revert quickly.
Output Requirements
- Always produce a plan file and include its path in the response.
- Ask at most 1–2 clarifying questions only when they change the rules.
More from xiaolai/vmark
tiptap-editor
Tiptap editor API patterns for vmark WYSIWYG development. Use when working with editor commands, node traversal, selection handling, or format operations.
268ai-coding-agents
Comprehensive guide for using Codex CLI (OpenAI) and Claude Code CLI (Anthropic) - AI-powered coding agents. Use when orchestrating CLI commands, automating tasks, configuring agents, or troubleshooting issues.
138tiptap-dev
Expert guidance for building rich text editors with Tiptap - a headless, framework-agnostic editor built on ProseMirror. Use when creating custom nodes, marks, or extensions for Tiptap, implementing input rules or paste rules, working with the Tiptap commands API, building React integrations with useEditor, extending existing extensions, or creating custom node views.
71tauri-app-dev
Expert guidance for building cross-platform desktop applications with Tauri 2.0 and Rust. Use when developing Tauri apps including commands and IPC, file system operations, window management, state management, system tray, menus, plugin development, security configuration (capabilities/permissions), bundling/distribution, and auto-updates. Covers patterns for editor applications requiring file dialogs, native menus, and frontend-backend communication.
67tauri-mcp-testing
E2E testing expert for Tauri applications using Tauri MCP server. Use when testing running Tauri apps - session management, webview interaction, IPC verification, screenshot capture, and debugging. ALWAYS use tauri_* tools, NEVER Chrome DevTools MCP for Tauri apps.
65rust-tauri-backend
Implement or modify VMark's Rust/Tauri backend. Use when adding Tauri commands, menu items, filesystem integration, or platform behaviors in src-tauri.
61