skills/plan/SKILL.md
Strategic planning with optional interview workflow
npx skillsauth add Thomashighbaugh/opencode omc-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.
<Use_When>
--review--consensus, "ralplan"<Do_Not_Use_When>
autopilotralph or executor<Why_This_Exists> Structured requirements gathering prevents rework and scope creep. Consensus mode adds multi-perspective validation for high-stakes projects. </Why_This_Exists>
<Execution_Policy>
--interactive for user prompts; --deliberate for high-risk
</Execution_Policy>| Mode | Trigger | Behavior |
|------|---------|----------|
| Interview | Default for broad requests | Interactive requirements gathering |
| Direct | --direct, or detailed request | Skip interview, generate plan directly |
| Consensus | --consensus, "ralplan" | Planner->Architect->Critic loop with RALPLAN-DR; --deliberate for high-risk; --interactive for user prompts |
| Review | --review, "review this plan" | Critic evaluation of existing plan |
AskUserQuestion for preferences, scope, constraintsexplore agent for codebase facts before asking the user--consensus / "ralplan")RALPLAN-DR modes: Short (default) and Deliberate (--deliberate or high-risk). Same Planner->Architect->Critic sequence.
Provider overrides: --architect codex / --critic codex replaces OpenCode passes with omc ask codex --agent-prompt .... If unavailable, use default.
State lifecycle: On entry, state_write(mode="ralplan", active=true, session_id=...). On handoff, state_write(active=false, ...). Never state_clear before launching execution (30s cancel signal). On terminal exit, state_clear(mode="ralplan", session_id=...). Always pass session_id.
AskUserQuestion (Proceed/Request changes/Skip review). Without: auto-proceed.@architect: steelman counterargument, tradeoff tension, synthesis path. Deliberate: flag violations. Sequential with step 4.@critic: principle-option consistency, alternative exploration, risk clarity, testable criteria. Reject shallow alternatives, contradictions, vague risks. Deliberate: reject missing pre-mortem/test plan.AskUserQuestion: Approve via team (Recommended), Approve via ralph, Clear context and implement, Request changes, Reject. Without: output plan, state_clear, stop.state_clear and stop.state_write(active=false), then skill("team") or skill("ralph"). For "Clear context": state_write(active=false), Skill("compact"), skill("ralph").--review).opencode/state/plans/@criticEvery plan: Requirements Summary, Acceptance Criteria (testable), Implementation Steps (file refs), Risks/Mitigations, Verification Steps.
Saved to .opencode/state/plans/. Drafts to .opencode/state/drafts/.
</Steps>
<Tool_Usage>
AskUserQuestion for preferences; plain text for specific values (ports, names)explore agent (Haiku, 30s) for codebase facts@planner for validation, @analyst for requirements, @critic for reviewAskUserQuestion for feedback (step 2) and approval (step 7)skill("ralph") or skill("team") — never implement directlystate_write(active=false) for handoff, state_clear for terminal. Never state_clear before launching execution.
</Tool_Usage><Escalation_And_Stop_Conditions>
--interactive: output plan, state_clear, stop. With: require approval before execution.state_write(active=false), then skill("ralph"). Never implement directly.<Final_Checklist>
.opencode/state/plans/--interactive: user approved before execution; no --interactive: plan output onlystate_write(active=false) for handoff, state_clear for terminal
</Final_Checklist>tools
Create valid, type-safe TypeScript tools for OpenCode — generates correct boilerplate, typed interfaces, and handler stubs. Use when building new tools for global config or per-project .opencode/tools/.
testing
Explore multiple solution branches in parallel, evaluate each, and recommend the best path. Use when the user explicitly invokes /ideation tree-of-thoughts or asks for "tree of thought" / "branching exploration".
testing
Run multiple independent reasoning passes and find consensus. Use when the decision is critically important, the stakes are high, or the user explicitly requests "run it multiple times" / "check consistency" / "self-consistency".
testing
Optimization by PROmpting — generate candidate prompt variations, test each against a benchmark, and report the best performer. Use when the user invokes /ideation opro or asks for "prompt optimization" / "OPRO".