Plan Interview Skill
Install
npx skills
add
pskoett/pskoett-ai-skills/skills/plan-interview
Purpose
Run a structured requirements interview before planning implementation. This ensures alignment between you and the user by gathering explicit requirements rather than making assumptions.
When Invoked
User calls
/plan-interview
Success Criteria [Clear definition of done from interview]
Risk Assessment [What could go wrong + mitigations]
Affected Files/Areas [Which parts of codebase will be touched]
Test Strategy [Unit tests, integration tests, and e2e tests/scripts where applicable; include key scenarios, failure modes, and fixtures/mocks]
Validation and Diagnostics [How to verify the feature works after implementation; include detailed logging/diagnostics expectations in tests/scripts when useful for debugging]
Open Questions [Uncertainties to resolve during implementation] - [ ] Question 1 - [Blocks implementation / Can proceed] - [ ] Question 2 - [Blocks implementation / Can proceed]
Implementation Checklist
[ ] Step 1
- [ ] Step 2
- ...
- Optional Elements
- Include when relevant:
- Rejected Alternatives
-
- Only for major architectural decisions
- Decision Tree
-
- Only when multiple valid approaches exist
- Visual Diagrams
- ASCII or Mermaid when helpful for understanding
Constraints
No time estimates
- describe what needs doing, not how long
No length limits
- plan should match task complexity
No silent scope reduction
- do not drop agreed features to make the plan "cleaner"
Don't over-iterate simple work
- use the planning depth calibration above
Freeform structure beyond required elements
Phase 4: Post-Approval
When user approves the plan:
Auto-start implementation
immediately (no "proceed" confirmation needed)
Populate
TodoWrite
with checklist items
At
natural breakpoints
(significant decisions), compare progress to plan
Fast Mode
If user wants quick planning, use
draft + refine
:
Perform task-focused codebase search
Generate draft plan
Run abbreviated interview to refine
Run exactly one
fresh-eyes
refinement pass (preserve functionality, tighten steps, add test/validation coverage)
Resume Support
If a partial plan exists in
docs/plans/
:
AskUserQuestion: "I found an existing partial plan. Would you like to:"
- "Continue the interview"
- "Resume plan drafting/refinement"
- "Review current plan and finalize"
- "Start fresh with a new plan"
If resuming refinement, first summarize the current plan state and the most recent refinement changes, then continue with the fresh-eyes refinement loop.
Interoperability with Other Skills
What this skill consumes
From the user:
Task description, requirements, and answers to interview questions.
From the codebase:
Existing patterns, architecture, and conventions discovered during exploration.
From context-surfing handoff files (on resume):
If a previous session exited due to context drift, the handoff file in
.context-surfing/
provides the re-entry point and remaining work for replanning.
What this skill produces
Plan file
(
docs/plans/plan-NNN-
.md ) — consumed by intent-framed-agent as context for the intent frame, and by context-surfing as part of the wave anchor. Copied verbatim into handoff files on drift exit. Planning depth classification — informs how many skills to activate (see pipeline depth table in README). Pipeline position plan-interview (requirements and plan generation — you are here) intent-framed-agent (execution contract + scope drift monitoring) context-surfing (context quality monitoring — runs concurrently with intent-framed-agent) simplify-and-harden (post-completion quality/security pass) self-improvement (capture recurring patterns and promote durable rules) Example User: /plan-interview Add OAuth authentication to the API Claude: I'll help you plan the OAuth authentication feature. Let me gather requirements first. [AskUserQuestion - Scope batch] 1. Which OAuth providers need to be supported (Google, GitHub, etc.)? 2. Is this replacing existing auth or adding alongside it? [Copilot guidance: ask the same two questions in chat and wait for responses] User: Google and GitHub. Adding alongside existing JWT auth. [AskUserQuestion - Technical batch] 1. Should OAuth tokens be stored in the existing session table or separately? 2. Any specific callback URL constraints from your hosting setup? User: Separate table. We're on Vercel so callback URLs need to be configured per environment. [AskUserQuestion - Risk/Success batch] 1. What's the acceptable degradation if an OAuth provider is down? 2. How should we handle users who already exist with the same email? User: Fall back to standard login. Link accounts by email if user confirms. Claude: [Explores codebase for auth patterns, session handling, database schema] Claude: [Writes docs/plans/plan-003-oauth-authentication.md] Plan created. The main decision point is whether to use Passport.js or implement OAuth flows directly - I've documented both approaches with tradeoffs. Ready to review? User: Looks good, go with Passport.js Claude: [Auto-starts implementation with TodoWrite tracking]