oac-approach
Plan Before You Code
Overview
Understand the request, discover relevant context, propose a concise plan, get approval. Keep it fast — the goal is alignment, not a design workshop.
The Process
Step 1: Understand the Request
Read the user's message. You already have the "what" — don't ask a series of questions up front. Only ask clarifying questions if:
- The request is genuinely ambiguous (two different valid interpretations)
- You discover during context check that key details are missing (e.g. which framework, which database)
In those cases, ask the specific questions you need — not a blanket "tell me more". Be explicit about what you need and why.
Step 2: Discover Context
Invoke oac:context-discovery with the task topic to find relevant project standards and patterns.
If context-discovery reports no context installed: proceed anyway — note it as "none" in the proposal and include the context hint (see Step 4). Do not pause or ask the user before proposing.
If context found: note the key files returned — reference them in your proposal.
Step 3: Ask Clarifying Questions (if needed)
After reviewing the context and the request, if there are still gaps that would significantly change the approach, ask them now — explicitly and concisely:
Before I propose an approach, I need a couple of details:
1. {specific question} — because {why it matters to the approach}
2. {specific question} — because {why it matters to the approach}
Keep it to the minimum needed. If you can make a reasonable assumption, state it in the proposal instead of asking.
Step 4: Propose
Present a lightweight plan. Short — not a full spec:
## Proposed Approach
**What**: {1-2 sentence description of what we're building/changing}
**How**: {brief description of approach — key decisions only}
**Assumptions**: {any assumptions made where questions weren't asked}
**Files**: {list of files to create or modify}
**Context loaded**: {key standards files found, or "none — using general best practices"}
**External docs needed**: {any library docs to fetch first, or "none"}
Approve or let me know what to adjust.
If context was missing or minimal, append this hint at the end of the proposal — do not replace or interrupt the proposal, just add it after:
💡 Tip: For better results tailored to your project's standards, run /install-context
to set up context files. This helps me follow your coding conventions automatically.
Step 5: Get Approval
Wait for the user to approve or adjust. If they adjust, update the proposal and ask again. Do not start implementation until explicitly approved.
Step 6: Hand Off to Implementation
Once approved:
- Simple (1–3 files, straightforward): implement directly
- Complex (4+ files, multiple components): invoke
oac:task-breakdownto create subtasks first
Key Principles
- Fast — Understand from the message, don't interrogate the user up front
- Context first — Always attempt discovery before proposing
- No context = hint, not block — Show the install tip at the bottom of the proposal, never before it
- Explicit questions — If you must ask, say what you need and why — not "tell me more"
- Assumptions over questions — State assumptions in proposal rather than asking for every detail
- Concise proposal — A paragraph, not a doc; enough for yes/no/adjust
- YAGNI — Propose the minimum that satisfies the requirement
Related
oac:context-discovery— invoked in Step 2oac:context-setup— when no context foundoac:task-breakdown— for complex features after approval
More from darrenhinde/opencode-agents
context7
Retrieve up-to-date documentation for software libraries, frameworks, and components via the Context7 API. This skill should be used when looking up documentation for any programming library or framework, finding code examples for specific APIs or features, verifying correct usage of library functions, or obtaining current information about library APIs that may have changed since training.
1debugger
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
1code-execution
Use when a subtask is ready to implement and has a subtask JSON file with acceptance criteria and deliverables.
1using-oac
Use when starting any conversation — establishes how to find and use OAC skills, requiring Skill tool invocation BEFORE ANY response including clarifying questions, this is your secret weapon to best perform your tasks
1test-generation
Use when the user asks for tests, mentions TDD, or when new code has been written and needs test coverage.
1context-manager
Context management skill providing discovery, fetching, harvesting, extraction, compression, organization, cleanup, and guided workflows for project context
1