yeg
2026-09-11 15e09c5ea3768f44265d97a7644fa2a384f4242e
项目文档
5个文件已添加
97 ■■■■■ 已修改文件
AGENTS.md 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CONTEXT.md 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/agents/domain.md 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/agents/issue-tracker.md 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/agents/triage-labels.md 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AGENTS.md
New file
@@ -0,0 +1,13 @@
## Agent skills
### Issue tracker
Issue 以 Markdown 文件存放在 `.scratch/<feature-slug>/`。详见 `docs/agents/issue-tracker.md`。
### Triage labels
使用默认标签:`needs-triage`、`needs-info`、`ready-for-agent`、`ready-for-human`、`wontfix`。详见 `docs/agents/triage-labels.md`。
### Domain docs
采用单上下文布局:根目录 `CONTEXT.md`,ADR 位于 `docs/adr/`。详见 `docs/agents/domain.md`。
CONTEXT.md
New file
@@ -0,0 +1,3 @@
# 项目领域上下文
(按需补充。)
docs/agents/domain.md
New file
@@ -0,0 +1,36 @@
# 领域文档
工程技能在探索代码库时应按以下规则读取领域文档。
## 开始探索前读取
- 根目录的 **`CONTEXT.md`**;或
- 如果根目录存在 **`CONTEXT-MAP.md`**,读取它指向的、与当前主题相关的各个 `CONTEXT.md`;
- **`docs/adr/`**:读取与即将处理区域相关的 ADR。在多上下文仓库中,还要检查 `src/<context>/docs/adr/` 下的上下文级决策。
如果这些文件或目录不存在,静默继续。不要标记缺失,也不要提前建议创建;`/domain-modeling` 技能会在术语或决策真正确定时按需创建它们。
## 使用术语表中的词汇
当输出中出现领域概念(例如 issue 标题、重构提案、假设或测试名称)时,使用 `CONTEXT.md` 定义的术语。如果术语表明确避免使用某个同义词,不要改用该同义词。
如果所需概念尚未出现在术语表中,这是一个信号:要么项目并不使用这个说法(应重新考虑),要么领域文档确实存在缺口(交由 `/domain-modeling` 记录)。
## 标记 ADR 冲突
如果输出与现有 ADR 冲突,应明确指出,而不是静默覆盖:
> _与 ADR-0007 冲突(事件溯源订单),但值得重新打开,因为……_
## 文件结构
单上下文仓库(大多数仓库):
```
/
├── CONTEXT.md
├── docs/adr/
│   ├── 0001-event-sourced-orders.md
│   └── 0002-postgres-for-write-model.md
└── src/
```
docs/agents/issue-tracker.md
New file
@@ -0,0 +1,30 @@
# Issue 跟踪:本地 Markdown
本仓库的 issue 和规格说明以 Markdown 文件存放在 `.scratch/` 中。
## 约定
- 每个功能使用一个目录:`.scratch/<feature-slug>/`
- 规格说明文件为 `.scratch/<feature-slug>/spec.md`
- 实现 issue 每个 ticket 使用一个文件:`.scratch/<feature-slug>/issues/<NN>-<slug>.md`,从 `01` 开始编号;不要合并为单个 tickets 文件
- triage 状态记录在 issue 文件顶部附近的 `Status:` 行中(角色字符串见 `triage-labels.md`)
- 评论和对话历史追加到文件底部的 `## Comments` 标题下
## 技能要求“发布到 issue 跟踪系统”时
在 `.scratch/<feature-slug>/` 下创建文件;目录不存在时一并创建。
## 技能要求“获取相关 ticket”时
读取引用的文件路径。用户通常会直接提供路径或 issue 编号。
## Wayfinder 导航操作
Wayfinder 使用一个 map 文件和每个 ticket 对应的子文件。
- **Map**:`.scratch/<effort>/map.md`,正文包含 Notes、Decisions-so-far 和 Fog
- **子 ticket**:`.scratch/<effort>/issues/NN-<slug>.md`,从 `01` 开始编号;正文中的 `Type:` 行记录 ticket 类型(`research`/`prototype`/`grilling`/`task`),`Status:` 行记录 `claimed`/`resolved`
- **阻塞关系**:文件顶部附近的 `Blocked by: NN, NN` 行记录依赖。列出的所有文件都为 `resolved` 时,ticket 才算解除阻塞
- **前沿 ticket**:扫描 `.scratch/<effort>/issues/`,查找未关闭、未阻塞且未认领的 ticket;优先选择编号最小者
- **认领**:设置 `Status: claimed` 并保存
- **解决**:在 `## Answer` 标题下追加答案,设置 `Status: resolved`,然后在 `map.md` 的 Decisions-so-far 中追加上下文指针(摘要和链接)
docs/agents/triage-labels.md
New file
@@ -0,0 +1,15 @@
# Triage 标签
各技能使用五个规范化的 triage 角色。本文件将这些角色映射到本仓库 issue 跟踪系统中的实际标签字符串。
| mattpocock/skills 中的标签 | 本仓库的标签 | 含义 |
| --- | --- | --- |
| `needs-triage` | `needs-triage` | 维护者需要评估此 issue |
| `needs-info` | `needs-info` | 等待报告者补充信息 |
| `ready-for-agent` | `ready-for-agent` | 规格完整,可交给 AFK agent |
| `ready-for-human` | `ready-for-human` | 需要人工实现 |
| `wontfix` | `wontfix` | 不会处理 |
当技能提到某个角色时(例如“应用 AFK-ready triage 标签”),使用表中对应的标签字符串。
如果本仓库的标签词汇发生变化,编辑右侧“本仓库的标签”列。