🎉 init: 小龙的工作空间

This commit is contained in:
大海
2026-06-06 10:40:48 +08:00
commit a188ee1426
3201 changed files with 231817 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
# 错误处理规范
> 从 Claude Code 的 `categorizeRetryableAPIError()` + `isTerminalTaskStatus()` 模式迁移。
## 错误三分类
```
类别 处理方式 例子
───── ────────── ──────────
可重试 退避重试(3次) 网络超时、API 限流
不可重试 立即报告 权限不足、参数非法
用户取消 静默终止 用户中断、超时退出
```
## 具体规则
### 网络/API 相关
- 首次失败等待 2s → 第二次 5s → 第三次报告失败
- 网络超时不等同于系统故障,一律重试
- 重试时保持操作幂等(不产生重复副作用)
### 文件操作
- 写文件前置检查路径合法性
- 移动/删除文件用 `mv` 而非 `rm`(保留恢复可能)
- 目录创建用 `mkdir -p` 确保幂等
### 执行命令
- `exec` 失败时先看 stderr,非零退出不等同于失败
- `timeout` 后进程可能仍在运行,需 `process kill` 清理
-`pipefail` 确保中间步骤失败能被检测
### 用户取消
- 用户中断(如 `Ctrl+C`)不做重试
- 已产生的副作用不回滚,但标记状态
- 报告"已处理到哪一步"而非"失败了"
## Fast-Path 模式
```
复杂操作前先问快速路径:
1. 这个操作我能 10s 内完成吗?→ 直接干
2. 需要用户决策?→ 先问再干
3. 可能失败?→ 预估风险,必要时先问
```
+33
View File
@@ -0,0 +1,33 @@
# Git 提交规范
> 从 Claude Code commit.ts 的"why not what"原则迁移。
## 提交消息格式
```
<emoji> <简短描述>
<正文:说明"为什么"而非"做了什么"(可选)>
```
## Emoji 约定
| Emoji | 含义 |
|-------|------|
| 🎉 | 初次提交 / 新项目 |
| ✨ | 新功能 / 新模式 |
| 🐛 | 修 bug |
| 🔧 | 配置 / 工程变更 |
| 📝 | 文档 / 记忆 |
| ♻️ | 重构(行为不变) |
| ⚡️ | 性能优化 |
| 🧹 | 清理 / 删除 |
| 🚀 | 部署 / 发布 |
| 🐉 | 小龙专属(我的个人提交) |
## 原则
1. **消息说"为什么"** — 背景和动机,而非文件列表
2. **正文说"怎样"** — 只有复杂变更需要正文
3. **一个提交一件事** — 如果改了无关内容,拆提交
4. **提交前先编译** — 确保 `git status` 干净
+139
View File
@@ -0,0 +1,139 @@
# 任务执行规范 — Planning vs Reactive
> 此规范是 AGENTS.md Execution Protocol 的详细参考。
> 实际执行以 AGENTS.md(注入上下文)为准。
## 0. 总则 — 先分类,再执行
**收到任务后,第一步是分类,不是执行。**
- **Simple Task**(单文件/单命令/查询/对话)→ 直接执行
- **Complex Task**(多文件/多步骤/Schema变更/跨项目/新功能)→ 先输出 PLAN,再执行
分类标准见 AGENTS.md §0. Complexity Classification。
## 1. 任务理解
明确回答以下问题:
- 用户要解决什么问题?
- 目标是什么?(可衡量的标准)
- 输入是什么?(文件/参数/数据)
- 输出是什么?(代码/文档/分析/配置)
- 约束是什么?(时间/平台/兼容性/安全)
- 风险是什么?(数据丢失/功能破坏/回滚难度)
- 是否需要读文件/跑命令/查文档/测试?
**如果答案不明确,先问我,不要假设。**
## 2. 上下文建立
- 扫描项目顶层结构(`ls` / `find` / `wc -l`
- 扫描技术栈(`package.json` / `pyproject.toml` / `pom.xml` / `go.mod`
- 定位相关文件(入口文件、核心模块、配置文件)
- 理解已有的代码风格和架构约定
- 查找是否有类似已有实现
**不在没看项目的情况下写代码。**
## 3. 任务拆解
如果任务可以拆成多个子任务,必须拆解。每个子任务明确:
- 任务目标
- 输入 / 输出
- 依赖关系 / 执行顺序
- 验收标准
- 失败处理策略
并行子任务要分别列出(前端/后端/数据库/配置/测试/文档)。
## 4. Skill 匹配
- 是否处理过类似任务?→ 查 MEMORY.md
- 是否有类似项目的经验?→ 查 memory/daily/
- 是否有已有的 skill?→ 查 tools/、scripts/
- 如果有,优先复用并调整;如果没有,完成后判断是否创建新 skill
## 5. 方案设计
动手前给出方案:
- 推荐方案是什么?
- 为什么选这个?(选型理由)
- 最小改动点是什么?
- 影响范围是什么?
- 风险是什么?
- 如何验证?
**优先选择:低风险、可回滚、符合项目风格、可测试、可维护、不破坏现有功能。**
## 6. 执行修改
- 保持原有代码风格(缩进、命名、注释风格)
- **所有代码必须有注释** — 注释写 WHY,不重复代码本身
- 不做无关重构(除非安全或性能必须)
- 不引入不必要依赖
- 不硬编码敏感信息(路径/token/密码)
- 不删用户原有代码(除非明确要求)
- 不编造不存在的文件或 API
- 不跳过错误处理
- 不留下调试代码
## 7. 验证结果
明确回答:
- 如何运行?(命令或操作)
- 如何测试?(单元测试/集成测试/手动测试)
- 如何构建?(编译/打包)
- 如何手动验证?(UI 截图/日志/响应)
- 边界情况覆盖了吗?
- 失败时如何排查?
如果不能实际运行,也要给出用户可执行的验证命令。
## 8. 经验沉淀
任务完成后,必须判断:
- 是否有可复用的经验?
- 应创建 skill?(适用场景 + 输入 + 步骤 + 风险 + 验证 + 输出)
- 应更新 MEMORY.md
- 应更新默认工作流?
- 有不该再重复的错误?
**输出一段简短的"经验沉淀"。**
## 9. 输出格式
任务结果**必须**按以下格式组织:
```
## 任务结果
说明完成了什么,解决了什么问题。
## 关键修改 / 关键判断
核心改动或核心分析,不列无关细节。
## 影响范围
涉及哪些模块、文件、接口、数据或页面。
## 验证方式
如何运行、测试、构建或手动验证。给出可执行命令。
## 风险与注意事项
可能的问题、后续建议、未处理的情况。
## 经验沉淀
可复用经验 / skill 建议 / memory 更新 / 工作流改进。
```
## 10. 兜底原则
- **能读文件不靠猜**:不要假设文件内容,读它
- **能跑命令不空想**:不确定就执行确认
- **能测试不跳过**:改了什么要验证
- **能回滚才动手**:没有安全退路的修改先问
- **能问就别说"我猜"**:不确定就问,不丢人
+38
View File
@@ -0,0 +1,38 @@
# 工具定义规范
> 从 Claude Code `buildTool<T>()` 模式迁移而来。
> 适用于需要"统一接口"的重复任务。
## 模式
所有工具调用遵循以下骨架:
```
目的 + 输入 + 执行 + 输出 + 错误
```
## 通用工具定义格式
```typescript
// 伪代码思路:工具即定义
Tool = {
name: string, // 唯一名称
description: string, // 一句话说明"为什么"有这个工具
input: Schema, // 输入参数定义
validate(input): // 前置校验(快速失败)
run(input, ctx): // 核心执行
error(e, ctx): // 错误处理(分级)
}
```
## 规则
1. **快速失败优先**:参数校验在 run 之前,不执行无效操作
2. **输出确定性**:相同输入 + 相同状态 = 相同输出
3. **错误分级**:可重试 / 不可重试 / 用户取消
4. **执行时间预估**10s 以内的直接干,以上的先汇报
5. **不重复造轮子**:先看 tools/ 目录是否有已有工具
## 当前已定义工具
`tools/` 目录中的工具模板文件。