plan-interview by pskoett/pskoett-ai-skills
npx skills add https://github.com/pskoett/pskoett-ai-skills --skill plan-interviewnpx skills add pskoett/pskoett-ai-skills/skills/plan-interview
在计划实施之前,进行一次结构化的需求访谈。这通过收集明确的需求而不是做出假设,确保你与用户之间达成一致。
用户调用 /plan-interview <任务描述>。
如果任务纯粹是研究/探索(非实施),请跳过此技能。
检查你是否有可用的 AskUserQuestion 工具。如果存在,使用它以主题性批次(2-3个问题) 的形式采访用户——这是首选方法,因为它为用户创建了一个结构化的提示来回应。如果 AskUserQuestion 不可用(例如,GitHub Copilot 或其他不提供此功能的提供商),直接在聊天中提出相同的问题,并在继续之前暂停等待回应。
在继续之前,涵盖所有四个领域:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在离开面试阶段之前,对任务进行分类并选择计划深度:
如果用户有明确的偏好,允许用户覆盖此设置(fast 与 deep)。
| 场景 | 操作 |
|---|---|
| 矛盾的需求 | 提出建议并附上理由,请求确认 |
| 用户改变需求 | 按照新方向重新开始面试 |
| 会话中断 | 询问用户:从上次中断的地方继续还是重新开始? |
面试完成后,探索代码库以了解:
对于复杂或不熟悉的项目,在进行深度计划之前进行简要的上下文刷新:
AGENTS.md 和 README.md将计划写入 docs/plans/plan-NNN-<slug>.md,其中 NNN 是顺序编号。
使用草稿 -> 细化的工作流程。当你仍在发现实质性改进时,保持在计划空间内。对于非琐碎的工作,计划令牌通常比实施令牌便宜得多。
根据复杂性运行 1..N 次细化迭代。对于每次迭代:
当以下任一情况为真时停止迭代:
如果用户提供了多个相互竞争的计划(来自不同模型或先前的迭代):
用于细化循环和多计划合成的可重用提示模板位于 references/iterative-plan-refinement-prompts.md。
每个计划必须包含:
## 成功标准
[来自面试的清晰完成定义]
## 风险评估
[可能出错的地方 + 缓解措施]
## 受影响文件/区域
[将触及代码库的哪些部分]
## 测试策略
[单元测试、集成测试和端到端测试/脚本(如适用);包括关键场景、故障模式和夹具/模拟]
## 验证与诊断
[实施后如何验证功能正常工作;在测试/脚本中包含详细的日志记录/诊断预期,以便于调试]
## 待解决问题
[在实施过程中需要解决的不确定性]
- [ ] 问题 1 - [阻碍实施 / 可以继续]
- [ ] 问题 2 - [阻碍实施 / 可以继续]
## 实施清单
- [ ] 步骤 1
- [ ] 步骤 2
...
在相关时包含:
当用户批准计划时:
TodoWrite如果用户想要快速计划,使用草稿 + 细化:
如果 docs/plans/ 中存在部分计划:
AskUserQuestion: "我找到了一个现有的部分计划。您希望:"
- "继续面试"
- "恢复计划起草/细化"
- "审查当前计划并定稿"
- "重新开始一个新计划"
如果恢复细化,首先总结当前计划状态和最近的细化更改,然后继续使用全新视角细化循环。
.context-surfing/ 中的移交文件提供了重新进入点和剩余工作,以便重新计划。docs/plans/plan-NNN-<slug>.md) —— 被意图框架代理用作意图框架的上下文,并被上下文冲浪用作波锚的一部分。在漂移退出时,逐字复制到移交文件中。plan-interview(需求和计划生成——你在这里)intent-framed-agent(执行合同 + 范围漂移监控)context-surfing(上下文质量监控——与意图框架代理同时运行)simplify-and-harden(完成后质量/安全检查)self-improvement(捕获重复模式并推广持久性规则)User: /plan-interview 为 API 添加 OAuth 身份验证
Claude: 我将帮助您规划 OAuth 身份验证功能。让我先收集需求。
[AskUserQuestion - 范围批次]
1. 需要支持哪些 OAuth 提供商(Google、GitHub 等)?
2. 这是要替换现有的身份验证还是与之并存?
[Copilot 指导:在聊天中提出相同的两个问题并等待回应]
User: Google 和 GitHub。与现有的 JWT 身份验证并存。
[AskUserQuestion - 技术批次]
1. OAuth 令牌应存储在现有的会话表中还是单独存储?
2. 您的托管设置是否有特定的回调 URL 限制?
User: 单独的表。我们在 Vercel 上,所以回调 URL 需要按环境配置。
[AskUserQuestion - 风险/成功批次]
1. 如果 OAuth 提供商宕机,可接受的降级程度是什么?
2. 我们应该如何处理已经存在相同电子邮件的用户?
User: 回退到标准登录。如果用户确认,则通过电子邮件链接账户。
Claude: [探索代码库中的身份验证模式、会话处理、数据库模式]
Claude: [写入 docs/plans/plan-003-oauth-authentication.md]
计划已创建。主要的决策点是使用 Passport.js 还是直接实现 OAuth 流程——我已经记录了两种方法的权衡。准备审查吗?
User: 看起来不错,使用 Passport.js
Claude: [使用 TodoWrite 跟踪自动开始实施]
每周安装量
307
仓库
GitHub 星标数
72
首次出现
2026年1月28日
安全审计
安装于
gemini-cli302
github-copilot302
codex302
cursor302
opencode301
amp299
npx skills add pskoett/pskoett-ai-skills/skills/plan-interview
Run a structured requirements interview before planning implementation. This ensures alignment between you and the user by gathering explicit requirements rather than making assumptions.
User calls /plan-interview <task description>.
Skip this skill if the task is purely research/exploration (not implementation).
Check your available tools for AskUserQuestion. If it exists, use it to interview the user in thematic batches of 2-3 questions — this is the preferred method as it creates a structured prompt for the user to respond to. If AskUserQuestion is not available (e.g., GitHub Copilot or other providers without it), ask the same questions directly in chat and pause for responses before continuing.
Cover ALL four domains before proceeding:
Technical Constraints
Scope Boundaries
Risk Tolerance
Success Criteria
Before leaving the interview phase, classify the task and choose a planning depth:
Let the user override this (fast vs deep) if they have a clear preference.
| Scenario | Action |
|---|---|
| Contradictory requirements | Make a recommendation with rationale, ask for confirmation |
| User pivots requirements | Restart interview fresh with new direction |
| Interrupted session | Ask user: continue where we left off or restart? |
After interview completes, explore the codebase to understand:
For complex or unfamiliar projects, do a brief context refresh before deep planning:
AGENTS.md and README.md if present and relevantWrite plan to docs/plans/plan-NNN-<slug>.md where NNN is sequential.
Use a draft - > refine workflow. Stay in plan space while you are still finding material improvements. Planning tokens are usually much cheaper than implementation tokens for non-trivial work.
Run 1..N refinement passes depending on complexity. For each pass:
Stop iterating when any of the following is true:
If the user provides multiple competing plans (from different models or prior iterations):
Reusable prompt templates for the refinement loop and multi-plan synthesis live in references/iterative-plan-refinement-prompts.md.
Every plan MUST include:
## 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
...
Include when relevant:
When user approves the plan:
TodoWrite with checklist itemsIf user wants quick planning, use draft + refine :
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.
.context-surfing/ provides the re-entry point and remaining work for replanning.docs/plans/plan-NNN-<slug>.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.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)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]
Weekly Installs
307
Repository
GitHub Stars
72
First Seen
Jan 28, 2026
Security Audits
Gen Agent Trust HubPassSocketWarnSnykPass
Installed on
gemini-cli302
github-copilot302
codex302
cursor302
opencode301
amp299
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
138,300 周安装