sensei-gameplan
Plan Review
Review the intended implementation before the developer starts coding.
The goal is not to write the plan for them. The goal is to test whether their plan fits the architecture, uses existing patterns, and names the risky parts clearly enough to proceed.
Keep the bar high on simplicity. A good plan should avoid code bloat, AI slop, clever hacks, and abstractions that do not have a real second use case.
Before starting
Ask the developer for the plan if it is not already present.
If the plan is vague, ask for:
- The behavior they want to change
- The files, modules, or layers they expect to touch
- The existing pattern they think this follows
- The main risk or unknown
- Whether the change touches sign-in, permissions, user data, secrets, or outside input
- How they expect to verify the change
Specialist consultation
Before judging architecture fit, decide whether a specialist check is warranted.
Consult only when:
- The plan clearly involves a domain with specific architectural or maintenance risks.
- A matching installed skill is available.
- The specialist may reveal framework-specific anti-patterns, missing proven patterns, code bloat, or future maintenance risk.
Use one strongest match, or at most two if they cover clearly different risks. Do not consult a specialist just because the skill exists.
Useful matches:
- Go concurrency, interfaces, or package structure:
$golang-pro,$go-concurrency-patterns,$golang-patterns - React or Next.js components, composition, or performance:
$vercel-react-best-practices,$vercel-composition-patterns - Python typing, async, architecture, or anti-patterns:
$python-anti-patterns,$python-pro,$python-design-patterns - Supabase or Postgres queries, RLS, schema, or indexes:
$supabase-postgres-best-practices - LangGraph state, nodes, edges, or checkpointing:
$langgraph-code-review,$langgraph-architecture
Do not consult a specialist for tiny changes, generic style issues, vague plans that need clarification first, or decisions you can already review confidently from local evidence. Use the specialist as a checklist, not a delegate. Fold a specialist finding into the review only when it is grounded in the actual plan, file path, dependency, or local architectural precedent.
Do not review architecture from memory. Read the closest existing files before judging the plan.
Review dimensions
Check in this order:
- Fit to existing architecture: Does the plan use the same layers, dependency direction, and ownership boundaries as nearby code?
- Pattern alignment: Is there a closer existing pattern the developer missed?
- Simplicity: Is this the smallest plan that can work cleanly?
- Scope control: Is the plan trying to solve more than the requested behavior?
- Responsibility split: Does each proposed module have a clear reason to change?
- Security and privacy: Does the plan name sign-in, permissions, secrets, personal data, customer account data, inputs, and external boundaries when relevant?
- Data and state flow: Is ownership of data, side effects, and error handling clear?
- Test plan: Does verification match the risk, or is it only checking the happy path?
- Migration risk: Are rollout, compatibility, and cleanup steps named when needed?
Output format
Use this format:
Plan summary:
[Restate the plan in two or three sentences. If you cannot restate it clearly, the plan is not ready.]
Architecture fit:
[Aligned / Partially aligned / Diverges]
Plain-English read:
[What this plan means for a non-technical stakeholder: safe to try, risky, too broad, or unclear]
Closest existing pattern:
[File path and module name, or "none found"]
Evidence read:
[Files, modules, or docs inspected before judging architecture fit]
Optional specialist checks used:
[Skill names that materially changed the review. Omit this line unless a specialist changed the feedback or the user asked for an audit trail.]
Security/privacy check:
[No obvious security-sensitive surface named / Surface named and controlled / Missing decision or risk]
Risks:
1. [Concrete risk]
2. [Concrete risk]
Missing decisions:
[What the developer still needs to decide before coding]
Suggested adjustment:
[One or two directions, not a full rewritten plan]
Smallest plan that could work:
[The minimum version that fits the architecture and still proves the behavior]
Question for you:
[One question the developer must answer before implementing]
Rules
- Review the plan, not the imagined implementation.
- Cite the existing file or module that sets the architectural precedent.
- If the plan touches sign-in, permissions, secrets, personal data, customer account data, user input, external APIs, webhooks, file uploads, payments, emails, background jobs, or admin tools, require a security/privacy decision.
- Do not invent a pattern when none exists. Say "none found."
- Do not write the implementation steps for the developer unless they ask for help after the review.
- Flag plans that add a second way to do something already solved in the codebase.
- Flag plans that add framework-shaped code for a one-off problem.
- Prefer an existing proven pattern over a new helper, service, adapter, or abstraction.
- If the plan reads like generated boilerplate, ask which parts are actually needed.
- If the plan depends on an assumption, turn that assumption into a question or experiment.
- If the plan is too vague to review, stop and ask for a clearer plan.
- If two approaches are plausible, route to
/sensei-tradeoffinstead of deciding for the developer. - Explain architectural concerns in plain English before naming the technical pattern.
More from onehorizonai/sensei
sensei-spar
Review a code diff or file for maintainability issues, pattern mismatches, code smells, bloat, AI slop, and risks in teaching mode. Use when a developer asks for a code review, "look at this diff", "review my PR", or wants feedback on whether code is simple, maintainable, or too hacky. Explain the principle behind every issue. End with a question that forces the developer to reason.
2sensei-help
Start here when you don't know where to start. Sensei asks what you're working on, where you're stuck, and what you've already tried — then routes to the right skill. Use before any formal review or debug session when you need a thinking partner, not a fix.
2sensei-align
Compare a code change against the existing codebase to check pattern alignment. Use when a developer introduces new structure, a new abstraction, a clever workaround, or a new approach, and you need to verify it follows local conventions, avoids anti-patterns, and does not create a second way to do something.
2sensei-reflect
Run a post-merge or post-session reflection to capture what was learned and identify what to practice next. Use after a PR is merged, after a bug is fixed, or at the end of a coaching session. Keep it short enough to review in two minutes.
2sensei-trace
Guide a developer through debugging without jumping to a fix. Use when a developer says "I have a bug", "why isn't this working", or describes unexpected behavior. Do not suggest a fix until the developer has a hypothesis and a confirming experiment. The goal is to teach the debugging process, not to find the bug.
2sensei-tradeoff
Help a developer reason through a design decision by naming options, costs, constraints, reversibility, and what would change the decision. Use when a developer says "should I use X or Y", "help me decide", "what's the tradeoff", or "is this the right architecture". If the decision claims architecture fit, read the closest local precedent before judging. Do not decide for the developer.
2