关于 project-discovery
project-discovery 是面向开发项目的需求访谈技能,用于在编码前梳理约束并记录技术决策。它强调追问关键条件、说明取舍,并按所选技术栈生成项目文件与规则。
主要功能
- 01结构化项目发现问题
- 02追问技术约束
- 03说明推荐方案的取舍
- 04按技术栈记录决策
- 05项目模板与库文件
适用场景
- 01编码前澄清项目需求
- 02结合预算与合规要求选择技术方案
- 03记录架构与实施规范
- 04确定技术栈后准备项目文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bhagyamudgal/ skills --skill project-discovery安装后在 Claude Code 中输入/project-discovery确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/coding-standards.mdlib-files.mdoutput-templates.mdstack-menu.md详细介绍
项目探索
对每个回答都要追问。“PostgreSQL”是问题的开端,而不是终点:是自托管还是托管服务?数据量有多大?有哪些合规要求?备份方案是什么?第二个问题才能揭示真正的约束。
每项建议都要说明取舍。说清楚他们能获得什么、又会放弃什么。如果某个选择与他们的约束冲突,就直说,并指出成本更低的方案。
探索类别
1. 项目概览
| 问题 | 重要性 |
|---|---|
| 这个项目有什么用途?面向谁? | 为所有技术决策确定背景 |
| 我们要解决什么问题?目前有什么痛点? | 确保我们解决的是真实问题 |
| 我们如何判断项目是否成功? | 明确完成标准,避免范围蔓延 |
| 时间安排是什么?先推出 MVP 还是完整版本? | 决定自建还是购买,以及对复杂度的容忍度 |
| 谁来开发?个人、小型团队还是组织? | 影响架构和工具选择 |
| 基础设施/服务预算是多少? | 影响托管服务还是自托管的决策 |
2-10. 其他所有层
当访谈进入用户尚未决定的某一层时,读取 ${CLAUDE_SKILL_DIR}/references/stack-menu.md,并使用该层的选项列表和区分性问题。这里涵盖框架、数据库、ORM、身份验证、API 风格、样式、托管、集成和测试。不要凭记忆列出选项。这个文件的存在,是为了确保你每次引用的取舍都准确。
开展探索
开场
"Before we write any code, I want to understand what we're building and make sure we make good foundational decisions. This might take 15-30 minutes but will save hours later. Let's start with the big picture. What are we building and who is it for?"
探索过程中
- 将相关决策归在一起:“数据层方面,我们会使用 Supabase 上的 Postgres 和 Drizzle ORM。这样一来……”
- 标出需要进一步考虑的决策:“等我们更了解用户类型后,再回来讨论身份验证流程。”
- 质疑薄弱的理由:“你说‘因为大家都在用’。这对你的具体情况来说是合适的理由吗?”
结束探索
"Let me summarize what we've decided:
Project: [One sentence]
Stack: [Frontend] + [Backend] + [Database]
Auth: [Approach]
Hosting: [Where]
Key patterns: [2-3 important conventions]
Features for MVP:
1. [Feature]
2. [Feature]
...
Does this capture it? Anything we should revisit before we start building?"
要产出什么
-
阅读
${CLAUDE_SKILL_DIR}/references/output-templates.md,并按照其中的说明编写CLAUDE.md、文件夹骨架和配置文件。 -
规则库位于
${CLAUDE_SKILL_DIR}/references/coding-standards.md。编写PATTERNS.md时需要读取一次。届时,只复制所选技术栈实际使用的规则,并删除其余内容。如果项目没有某个库,却保留了针对该库的规则,Agent 就可能错误地套用它。 -
将
${CLAUDE_SKILL_DIR}/references/lib-files.md中的全部四个文件原样复制到lib/。规则库中的所有下游规则都假定这些签名完全一致。
当 ${CLAUDE_SKILL_DIR}/references/stack-menu.md 中的每个类别都已在 CLAUDE.md 中列出一项决策时,本次运行才算完成;若某个类别决定为“无需”,也要说明理由。PATTERNS.md 已创建,且只包含所选技术栈会用到的规则。${CLAUDE_SKILL_DIR}/references/lib-files.md 中的四个文件都已放入 lib/。未命名的类别就是尚未探索的类别。回去继续提问。