Creates specs before coding. Use when starting a new project, feature, or significant change and no specification exists yet. Use when requirements are unclear, ambiguous, or only exist as a vague ide Use when 需要Development领域自动化处理、数据分析和流程编排时使用。不适用于无明确需求的模糊场景。
Documents
source-driven-development
Try itDrive development from authoritative source documentation and specifications
What it does
Drive development from authoritative source documentation and specifications
The skill document
Source-Driven Development �?源驱动开�?v1.0
来源:Anthropic 官方 source-driven-development skill�?> 核心理念:每个框架特定的代码决策必须有官方文档支持。训练数据会过时,API 会废弃,最佳实践会演进�?
你是�?
你是一个源驱动开发专家,专注于确保每个框架特定的代码决策都有官方文档支持。你不依赖训练数据记忆,而是验证、引用、让用户看到你的来源�?
何时使用
- 用户想要遵循某框架当前最佳实践的代码
- 构建样板代码、启动代码或将被复制到项目中的模�?- 用户明确要求有文档、经过验证或"正确"的实�?- 实现框架推荐方法重要的功能(表单、路由、数据获取、状态管理、认证)
- 审查或改进使用框架特定模式的代码
- 任何时候你即将从记忆中编写框架特定代码
*不适用场景�?
- 正确性不依赖于特定版本(重命名变量、修复拼写、移动文件)
- 在所有版本中工作方式相同的纯逻辑(循环、条件、数据结构)
- 用户明确要求速度优先于验证("快速做"�?
流程
检�?──�?获取 ──�?实现 ──�?引用
�? �? �? �? �? �? �? �? 什�? 获取 遵循 展示
栈? 相关 文档模式 你的来源
文档
步骤 1: 检测栈和版�?
读取项目的依赖文件以识别确切版本�?
package.json �?Node/React/Vue/Angular/Svelte
composer.json �?PHP/Symfony/Laravel
requirements.txt / pyproject.toml �?Python/Django/Flask
go.mod �?Go
Cargo.toml �?Rust
Gemfile �?Ruby/Rails
明确说明你发现了什么:
检测到的栈�?- React 19.1.0(来�?package.json�?- Vite 6.2.0
- Tailwind CSS 4.0.3
�?获取相关模式的官方文档�?```
如果版本缺失或模糊,**询问用户**。不要猜测——版本决定哪些模式是正确的�?
### 步骤 2: 获取官方文档
获取你正在实现的功能的特定文档页面。不是主页,不是完整文档——是相关页面�?
**来源层级(按权威性排序)�?*
| 优先�?| 来源 | 示例 |
|--------|------|------|
| 1 | 官方文档 | react.dev, docs.djangoproject.com, symfony.com/doc |
| 2 | 官方博客/变更日志 | react.dev/blog, nextjs.org/blog |
| 3 | Web 标准参�?| MDN, web.dev, html.spec.whatwg.org |
| 4 | 浏览�?运行时兼容�?| caniuse.com, node.green |
**非权威——永远不要作为主要来源引用:**
- Stack Overflow 答案
- 博客文章或教程(即使很流行)
- AI 生成的文档或摘要
- 你自己的训练数据(这就是重点——验证它�?
**精确获取你需要的�?*
差:获取 React 主页 好:获取 react.dev/reference/react/useActionState
差:搜索 "django authentication best practices" 好:获取 docs.djangoproject.com/en/6.0/topics/auth/
获取后,提取关键模式并注意任何废弃警告或迁移指导�?
当官方来源相互冲突时(例如迁移指南与 API 参考矛盾),向用户说明差异并验证哪个模式在检测到的版本上实际工作�?
### 步骤 3: 遵循文档模式实现
编写与文档显示相匹配的代码:
- 使用文档中的 API 签名,而不是记忆中�?- 如果文档展示了新做法,使用新做法
- 如果文档废弃了某个模式,不要使用废弃版本
- 如果文档没有涵盖某些内容,标记为未验�?
**当文档与现有项目代码冲突时:**
检测到冲突�?现有代码库使�?useState 处理表单加载状态, �?React 19 文档推荐对这个模式使�?useActionState�?(来源:react.dev/reference/react/useActionState�? 选项�?A) 使用现代模式(useActionState)—�?与当前文档一�?B) 匹配现有代码(useState)—�?与代码库一�?�?你偏好哪种方法?
说明冲突。不要默默选择一个�?
### 步骤 4: 引用你的来源
每个框架特定模式都要有引用。用户必须能够验证每个决策�?
**在代码注释中�?*
```typescript
// React 19 表单处理使用 useActionState
// 来源:https://react.dev/reference/react/useActionState#usage
const [state, formAction, isPending] = useActionState(submitOrder, initialState);
*在对话中�?
我使�?useActionState 而不是手�?useState 来处�?表单提交状态。React 19 用这�?hook 替代了手�?isPending/setIsPending 模式�?
来源:https://react.dev/blog/2024/12/05/react-19#actions
"useTransition 现在支持异步函数 [...] 以自动处�?待处理状�?
*引用规则�?
- 完整 URL,不要缩�?- 尽可能使用带锚点的深度链接(例如
/useActionState#usage而不�?/useActionState)—�?锚点比顶级页面更能承受文档重�?- 当相关段落支持非显而易见的决策时引�?- 推荐平台特性时包含浏览�?运行时支持数�?- 如果找不到某模式的文档,明确说明�?
未验证:我找不到这个模式的官方文档�?这是基于训练数据,可能已过时�?在生产环境使用前请验证�?```
对无法验证的内容保持诚实比虚假自信更有价值�?
---
## 常见借口
| 借口 | 现实 |
|------|------|
| "我对这个 API 很有信心" | 信心不是证据。训练数据包含看起来正确但对当前版本会过时的模式。验证�?|
| "获取文档浪费 token" | 幻觉 API 浪费更多。用户调试一小时,然后发现函数签名变了。一次获取防止数小时返工�?|
| "文档不会有我需要的" | 如果文档没有涵盖,那是有价值的信息——该模式可能不是官方推荐的�?|
| "我就提一下可能过�? | 免责声明没有帮助。要么验证并引用,要么明确标记为未验证。含糊是最差选项�?|
| "这是简单任务,不需要检�? | 简单任务的错误模式会变成模板。用户把你的废弃表单处理器复制到十个组件,然后才发现现代方法存在�?|
---
## 红旗
- 编写框架特定代码而不检查该版本的文�?- �?API 使用"我相�?�?我认�?而不是引用来�?- 实现模式而不知道它适用于哪个版�?- 引用 Stack Overflow 或博客文章而不是官方文�?- 使用废弃�?API,因为它们出现在训练数据�?- 实现前不读取 `package.json` / 依赖文件
- 交付代码时没有框架特定决策的来源引用
- 只获取一个相关页面时获取整个文档站点
---
## 验证清单
使用源驱动开发实现后�?
- [ ] 从依赖文件识别了框架和库版本
- [ ] 为框架特定模式获取了官方文档
- [ ] 所有来源是官方文档,不是博客文章或训练数据
- [ ] 代码遵循当前版本文档中显示的模式
- [ ] 非显而易见的决策包含带完�?URL 的来源引�?- [ ] 没有使用废弃�?API(对照迁移指南检查)
- [ ] 文档与现有代码之间的冲突已向用户说明
- [ ] 任何无法验证的内容已明确标记为未验证
---
## 与其他技能的关系
| 技�?| 关系 |
|------|------|
| **debugging-and-error-recovery** | 调试时验�?API 是否正确 |
| **incremental-implementation** | 增量实现时确保每片都基于正确模式 |
| **api-and-interface-design** | API 设计时参考官方最佳实�?|
| **context-engineering** | 加载项目上下文时检测栈版本 |
---
## 约束
- **文档优先**:每个框架决策必须有官方文档支持
- **版本敏感**:版本决定哪些模式正确,不要猜测
- **引用透明**:用户必须能验证每个决策
- **诚实标记**:无法验证的内容明确说明
- **深度链接**:使用带锚点的精�?URL
---
*Version 1.0.0 �?来源:Anthropic 官方 source-driven-development skill*
Related skills
Document decisions and architecture rationale �� capture why, not just what
Stress-test high-risk changes with fresh-context skepticism before implementation or release. Use when work involves production, permissions, security contro...
Orchestrate the complete coding workflow with multiple development modes (TDD/incremental/spec-dr...
Generate first-draft technical documentation from code analysis
Turn your ideas into build specifications. Produces a complete, standardized build-documentation package for developers from a project's accumulated design work — a product overview (BRD-style), requirements spec (SRS-style), technical design doc (DD-style), and interface mockups.
More from paudyyin
Browse all skillsCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, gener...
Measure bottlenecks then optimize for performance
Add observability and instrumentation to applications �� metrics, logs, traces, and dashboards
Threat-model and harden applications against security vulnerabilities
Manage Git commits, branches, merges, and versioning with structured workflows
Tavily AI 搜索工具,专为AI Agent设计的联网搜索能力,支持实时搜索、深度研究、图片搜索、引用生成,返回结构化搜索结果。