vibe-planning
Vibe Planning
Overview
Turn rough vibe-coding intent into an implementation plan another engineer or agent can execute without inventing missing behavior. Treat the user's request as valuable intent, not verified fact: preserve what they want, prove what can be proven, and make uncertainty visible.
This skill is independent. Do not assume another planning skill, guard, execution skill, commit-message skill, or other companion skill is available. When skill metadata is visible in the current environment, use it only to plan availability-driven skill usage in the generated artifact; do not make an unavailable skill a requirement.
Output Language and Artifact
Resolve the user-facing summary language before drafting the plan:
- Explicit user instruction in the current request.
VIBE_PLANNING_OUTPUT_LANG, if the environment is safely readable. If the prompt itself includes an assignment-like value such asVIBE_PLANNING_OUTPUT_LANG=English, treat it as the user's explicit setting for that request.- Agent or project configuration, if exposed in the current environment, system/developer instructions, project instructions, or already-loaded local config.
- The conversation language.
Do not run broad discovery just to find a language setting. If a configured language cannot be read, treat it as unset and continue. Keep file paths, code identifiers, API names, commands, field names, error messages, and quoted source material in their original language unless the user explicitly asks for translation.
Write the full implementation plan as a Markdown artifact by default, then give the user only a concise summary in the resolved user-facing language. Use this file path selection order:
- A user-specified local path.
- An existing project convention for plans or specs if it is obvious from the
workspace, such as
plans/,docs/plans/, orspecs/. plans/YYYY-MM-DD-<goal-slug>-implementation-plan.mdat the workspace root, using the current local date and a short lowercase ASCII slug.
Do not overwrite an existing plan file. If an explicit user path already exists,
ask before replacing it; use a non-destructive sibling only when the user allowed
that behavior. For generated default names, append a numeric suffix such as -2
on collision. Do not modify .gitignore only because a plan artifact was
created.
The artifact is for later agents and implementers. Use fixed English section headings and concise implementation-oriented English prose for structure. Preserve user-authored goals, requirements, in-scope and out-of-scope statements, quoted source material, domain vocabulary, product labels, identifiers, paths, commands, errors, API names, and field names in their original language. When an English operational paraphrase is useful, place it after the original wording instead of replacing the original.
After writing the file, reply with only the essentials in the resolved user-facing language:
- Plan file path.
- Current slice.
- Proceed condition.
- Key
Unproven,Accepted risk, blocker, or decision items. - The next action needed from the user, if any.
Do not paste the full plan into chat unless file writing is unavailable, unsafe, or explicitly declined. If no file was written, state the reason and provide the complete plan artifact in the reply using the same English artifact structure.
Core Rules
- Ground the plan in primary sources or actual investigation before asking the user to decide. Read relevant local code, tests, configs, schemas, docs, logs, issue text, or official documentation first.
- Use official docs, upstream source, vendor documentation, standards, or user-provided source material for claims about external systems. Use local reproduction or direct repository inspection for claims about the current workspace.
- Do not present memory, inference, forum summaries, or unchecked assumptions as
fact. Mark them as
Unproven. - Do not accept user claims blindly. If a claim is false, stale, unsupported, or infeasible, state the evidence and propose the closest viable alternative.
- Do not invent unavailable skills or assume a fixed companion skill set. A plan may name a specific skill only after its availability was verified from the current environment, user-provided material, project instructions, or local metadata.
- Respect the user's requested outcome as far as reality allows. When a request cannot be implemented literally, preserve the intent and adjust the mechanism.
- When the user asks for broad UX improvements, make the first slice complete or improve an existing verified surface before adding adjacent unverified channels, providers, modes, or settings.
- Ask questions only for intent, tradeoffs, permissions, business rules, or missing context that investigation cannot determine.
- For non-technical users, explain choices in plain language and translate technical consequences into product or workflow impact.
- Define acceptance criteria and tests before implementation steps.
- Do not invent numeric limits, thresholds, timing windows, quotas, or product
constants. Use values only when they come from user requirements, local
evidence, primary sources, or accepted risk; otherwise label the value
Unprovenand make proof or a product decision precede implementation. - For editable UI plans, include observable state transitions in the acceptance criteria and tests: save, cancel/reset or explicit no-cancel behavior, pending state, success feedback, validation failure, and error recovery when relevant.
- For narrow changes inside profile, account, settings, admin, billing, or other broad surfaces, explicitly name adjacent features that are not in the current slice when a later implementer could plausibly expand into them. Include destructive or high-risk adjacent account actions, such as account deletion, only as out of scope unless the user asked for them.
- If implementation proceeds with an
Unprovenassumption, require explicit user risk acceptance and keep the item labeled asAccepted risk; never convert it into verified fact.
Evidence Labels
Use these labels in the plan when a claim affects scope, feasibility, behavior, tests, or implementation order:
Primary source: official documentation, authoritative specification, upstream source, vendor docs, user-provided source material, or a known-good historical implementation.Local investigation: repository inspection, non-mutating command output, reproduced behavior, existing tests, configs, schemas, or logs from the current workspace.Unproven: memory, inference, secondhand claims, stale docs, unchecked user claims, missing access, or hypotheses.Accepted risk: anUnprovenitem the user explicitly chose to proceed with after the impact was explained.
Every Unproven or Accepted risk item must include impact, the fastest proof
path, and where it must be revisited.
Method Selection
Choose the lightest method that still protects the work:
| Situation | Preferred method |
|---|---|
| New feature | Spec-driven |
| Complex business logic | Spec-driven + test-driven |
| Bug fix | Test-driven |
| Existing-code refactor | Test-driven |
| UI/UX implementation | Spec-driven |
| API, database, auth, permissions, or external contracts | Spec-driven + test-driven |
| Small function | Test-driven is usually enough |
| Larger feature development | Spec-driven is close to required |
Use the full spec-driven + test-driven flow when behavior is complex, expensive to change later, or crosses data, security, permission, API, billing, persistence, or external-service boundaries. Use a compact version for small, localized work.
Planning Workflow
- Classify the work
- Identify whether the task is a feature, bug fix, refactor, UI/UX change, integration, API/DB/permission change, or small local implementation.
- Choose spec-driven, test-driven, or combined planning from the table.
- Split large requests into the smallest useful current slice.
- If local evidence shows an existing partial surface and the user mentions adjacent future capabilities, make the first slice complete or improve that surface unless a verified requirement makes an adjacent capability part of the current outcome.
- Investigate before asking
- Inspect the workspace and primary sources relevant to the current slice.
- Record facts with evidence labels.
- If primary sources are unavailable, say why and keep dependent claims
Unproven.
- Clarify intent
- Ask only plan-changing questions that cannot be answered from evidence.
- For non-technical users, offer concrete choices with consequences instead of abstract architecture terms.
- Write or refine the specification
- State the goal, users, in-scope behavior, out-of-scope behavior, constraints, and success criteria.
- Review the specification for ambiguity, contradiction, missing states, hidden dependencies, and unverifiable assumptions.
- Define acceptance criteria
- Convert the clarified specification into observable pass/fail criteria.
- Include negative cases, permissions, failure states, empty states, migration or compatibility expectations, and UX states when relevant.
- For editable forms or settings screens, explicitly decide whether cancel, reset, or navigation-away behavior is in scope; when it already exists, preserve it with acceptance criteria and tests.
- Design tests before implementation
- Derive tests from acceptance criteria.
- For bug fixes, include a failing regression test or a reproduction proof before production-code changes.
- If the reported symptom may depend on unverified callers, configuration, runtime state, external behavior, or data shape, put the fastest isolation step before implementation steps, even when a local defect is also visible.
- For refactors, include equivalence checks that prove behavior is preserved.
- For UI, include interaction, state, responsive layout, and accessibility checks when relevant.
- Plan available skill usage
- Inspect available skill metadata at plan creation time when it is already exposed in the runtime, supplied by the user, documented in project instructions, or cheaply discoverable from local skill metadata.
- Do not perform broad filesystem, network, package-manager, or marketplace discovery solely to find optional skills. If skill metadata is not visible or cannot be read cheaply, say that no matching optional skill was verified and continue with the normal plan.
- Select only skills whose descriptions match the planned work, method, stack, artifact, or workflow checkpoint. Do not include a skill just because it is installed.
- For each selected skill, state when to use it, why its description matches, the availability source, and the fallback if that skill is unavailable when the plan is executed.
- If no optional skill is verified as matching, still include one
Skill usage planentry using the same fields:Skill: No matching optional skill verified,Availability source,Use when: Not applicable,Matching reason: Not applicable, andFallback if unavailable. The fallback should say to continue with the normal plan, repository rules, and any proposed checkpoint messages. - When the plan includes commit checkpoints and a commit-message-writing skill is verified available, schedule that skill after checkpoint verification and before finalizing each commit message. If no matching commit-message skill is verified, fall back to the repository's commit rules, recent local history, and the proposed standalone Conventional Commit message in the checkpoint.
- Do not let optional skill usage weaken the core plan contract: acceptance criteria, tests, evidence labels, proceed conditions, and user decisions still control the work.
- Plan implementation
- Use only steps supported by
Primary source,Local investigation, or explicitAccepted risk. - Preserve local conventions and existing architecture unless evidence shows they are the source of the problem.
- Put proof-gathering steps before implementation steps when feasibility is still unproven.
- Use only steps supported by
- Plan verification and review
- Include test, lint, type-check, build, manual smoke, screenshot, diff review, or rollout checks appropriate to the stack.
- Include a final diff-review step that checks the result against the specification and acceptance criteria.
- For multi-slice implementation plans with code-producing slices, include commit checkpoints after each independently verifiable phase or slice. Each checkpoint states the intended scope, required verification, and a proposed standalone Conventional Commit message that names the concrete change.
- Do not plan commits for discovery-only, blocked, unverified, destructive, or work-in-progress states. For discovery-first or blocked plans, say that commit checkpoints are omitted until a code-producing slice is verified.
- Prepare the implementation handoff
- Include a short handoff that starts with "When implementing this plan" so pasted plans remain self-contained execution requests.
- Tell the implementer to treat the document as authoritative, re-check local
facts before editing, follow the acceptance criteria, test plan, and skill
usage plan, implement only the current in-scope slice, and stop on a
blocked
Proceed conditionor contradictory local evidence.
Handling Incorrect or Impossible Requests
When the user's requested mechanism is wrong or impossible:
- Restate the user's likely underlying goal.
- Cite the verified source or local evidence that blocks the literal request.
- Explain the risk in practical terms.
- Offer the closest viable alternative.
- Ask for a decision only if the alternatives change product behavior, cost, timeline, data handling, security posture, or user experience.
Do not bury impossibility inside a generic risk list. Put it near the decision it affects.
Accepted-Risk Branch
If the user explicitly chooses to continue with an unproven assumption:
- Record the exact assumption.
- Record the user's acceptance and rationale.
- Record the impact area: feasibility, behavior, data, integration, performance, security, UX, cost, or schedule.
- Keep the evidence label as
Accepted risk. - Include the fastest proof path and revisit trigger.
- Make implementation steps conditional where the unproven assumption could invalidate the plan.
Never use accepted risk for irreversible, destructive, unsafe, illegal, or credential-exposing actions. Those require proof or a safer alternative.
Standard Plan Artifact
Use this structure for the implementation-ready plan file. Keep it compact for small tasks, but preserve the order: requirements and tests come before implementation.
# [Plan title]
## Goal
- [What the user wants to accomplish and for whom]
## Verified facts and sources
| Claim | Evidence | Source | Impact |
| --- | --- | --- | --- |
## Requirements
- In scope:
- Out of scope:
- Constraints:
## Ambiguities, questions, and decisions
- Item:
- Options or decision:
- Evidence:
- Recommended path:
## Acceptance criteria
- [Observable pass/fail criterion]
## Test plan
- Acceptance tests:
- Regression tests:
- Negative and edge cases:
- Manual or visual checks:
## Skill usage plan
- Skill:
- Availability source:
- Use when:
- Matching reason:
- Fallback if unavailable:
- [If no optional skill was verified, include the same fields with
`Skill: No matching optional skill verified`, `Use when: Not applicable`, and
`Matching reason: Not applicable`.]
## Implementation plan
1. [Proof or setup step, if needed]
2. [Implementation step]
3. [Verification and diff-review step]
## Commit checkpoints
- [For multi-slice implementation plans with code-producing slices: checkpoint
scope, required verification, and proposed standalone Conventional Commit
message. Omit this section for single-slice, blocked, or discovery-only plans,
or state that commit checkpoints are omitted until a code-producing slice is
verified.]
## Risks and unproven items
- Item:
- Evidence label: `Unproven` | `Accepted risk`
- Impact:
- Fastest proof path:
- Revisit trigger:
## Implementation handoff
- When implementing this plan, treat this document as authoritative. Re-check
local facts before editing, follow the acceptance criteria, test plan, and
skill usage plan, implement only the current in-scope slice, and stop if the
`Proceed condition` is blocked or local evidence contradicts the plan.
## Proceed condition
- [State whether implementation is ready, conditional on accepted risk, or
blocked pending proof/user decision.]
For discovery-only phases, replace Implementation plan with Discovery plan
and list proof tasks, exit criteria, and the next decision point.
Quality Checklist
Before finalizing the plan, check that:
- Discoverable facts were investigated before asking the user.
- Technical jargon is explained or avoided when the user may be non-technical.
- The full plan was written to a durable Markdown artifact, or the fallback reason for chat-only output is stated.
- The plan artifact uses stable English section headings and preserves user-authored intent, requirements, quoted material, and domain terms in their original language.
- The user-facing reply is a concise summary in the resolved language and does not duplicate the full artifact unless file output was unavailable or declined.
- Every implementation-affecting claim has an evidence label.
- False or infeasible requirements are challenged with evidence and alternatives.
- Acceptance criteria are observable.
- Tests come before implementation steps.
- The skill usage plan names only verified available skills with timing and
fallback, or records
No matching optional skill verifiedwith the same availability source, timing, matching reason, and fallback fields. - Implementation steps do not rely on unlabeled assumptions.
- The implementation handoff is present, self-contained, and does not require unverified or unavailable skills.
- Accepted risks are explicit, scoped, and revisitable.
- The user-facing summary language follows the configured precedence.
More from adhi-jp/agent-skills
review-scope-guard
Use when Codex or code/plan review findings need Definition-of-Done scope triage, especially to separate must-fix issues from minimal hygiene, out-of-scope hardening, repeated noise, or self-induced refinements. Also use when codex-review-cycle invokes scope guard between validity checking and summary render. Do not use for single-shot lint or unrelated changes.
29codex-review-cycle
Use when the user explicitly asks to run an iterative Codex review cycle on a non-empty git diff, including working-tree changes, current branch vs base, explicit commit/tag/branch refs, code diffs, or Markdown planning documents. Do not use for one-shot reviews, auto-hardening, background checks, plan drafting, or empty review targets.
29writing-style-guide
Use when generating or editing user-facing prose, including docs, comments, READMEs, changelogs, commit messages, PR descriptions, and chat replies.
26minecraft-modding-workbench
>
18review-fix-cascade-guard
Use when applying user-selected review findings after scope triage, especially inside codex-review-cycle or after a standalone Codex adversarial review, and a line-scoped fix may create follow-on valid findings. Do not use for ordinary edits, plan drafting, single-shot lint, no-review contexts, or generic refactor checklists.
14vibe-plan-execution
Use when the user asks to execute, implement, continue, or apply an existing vibe-planning output, implementation plan, specification, acceptance criteria, or task plan. Do not use for plan creation or coding requests with no concrete plan to bind.
12