playbook/templates/README.md

211 lines
8.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目架构模板
本目录包含基于 superpowers 工作流的项目模板,用于快速初始化 AI 代理工作环境。
## 与 Playbook 其他部分的关系
```text
playbook/
├── rulesets/ # 语言级硬规则 → 部署到 .agents/
├── skills/ # 按需加载的技能
├── docs/ # 权威静态文档
├── templates/ # 本目录:项目架构模板 → 部署到 memory-bank/ 等
└── scripts/
└── playbook.py # 统一入口
```
部署方式详见主 README.md 的"在其他项目中使用本 Playbook"章节。
## 目录结构
```text
templates/
├── AGENTS.template.md # 入口导航模板
├── AGENT_RULES.template.md # superpowers 执行规则模板
├── memory-bank/ # 项目上下文模板6 个)
├── prompts/ # 任务入口模板6 个 + README
├── ci/ # CI 配置模板
├── cpp/ # C++ 工具链模板
└── python/ # Python 工具链模板
```
## 模板分类
从部署和维护角度,模板分为三类:
### 1. 框架模板(会自动更新)
这些文件由 playbook 框架维护,每次同步时可能更新:
- `AGENT_RULES.md`
- `AGENTS.md`、`CLAUDE.md`(按 playbook 区块更新)
- `docs/prompts/README.md`
- `docs/prompts/system/*.md`
- `docs/prompts/coding/*.md`
### 2. 项目上下文(首次创建后由项目维护)
这些文件首次创建后应由项目填写,`force=true` 会覆盖已填写内容并先备份:
- `memory-bank/*.md`
- `AGENT_RULES.local.md`(首次自动创建,后续不再覆盖)
### 3. 参考模板(需手动复制)
这些模板保留在快照中供参考,需手动复制到项目根目录:
- `ci/`Gitea Actions 工作流
- `cpp/`C++ 工具链配置
- `python/`Python 工具链配置
**补充说明**
- `docs/prompts/custom/` 和项目新增的 `docs/prompts/**/*` 不会被 playbook 删除
- `CLAUDE.md` 如已有 playbook 区块则更新;如未引用 `@AGENTS.md` 则追加;如已手工引用则跳过
- 流程约束统一收敛到 `AGENT_RULES.md``docs/prompts/` 只负责把代理导向正确的任务入口
## 部署方式
使用 `playbook.py` 统一入口部署,通过配置节控制同步内容:
```toml
# playbook.toml
[sync_rules] # 同步 AGENT_RULES.md
[sync_memory_bank] # 同步 memory-bank/
[sync_prompts] # 同步 docs/prompts/
```
详细配置说明见主 README.md 和 playbook.toml.example。
## 模板说明
### memory-bank/
项目上下文文档,用于让 AI 快速理解项目:
| 文件 | 用途 |
| ----------------------------- | -------------------------- |
| `project-brief.template.md` | 项目定位、边界、约束 |
| `tech-context.template.md` | 技术上下文、工具链、入口 |
| `system-patterns.template.md` | 系统模式、边界、不变量 |
| `active-context.template.md` | 当前目标、最近变更、下一步 |
| `progress.template.md` | 人类摘要 + Plan 状态块 |
| `decisions.template.md` | 架构决策记录ADR |
### prompts/
任务入口模板,部署后去掉 `.template` 后缀。`prompts/README.md` 作为任务入口索引。
| 文件 | 用途 | 使用场景 |
| ----------------------------------- | ------------ | ------------------- |
| `system/agent-behavior.template.md` | 入口路由模板 | 选择执行路径 |
| `coding/clarify.template.md` | 需求澄清模板 | 需求不明确时 |
| `coding/verify-change.template.md` | 变更验证模板 | 声称完成前验证 |
| `coding/close-task.template.md` | 本轮收尾模板 | 一轮工作结束时 |
| `coding/update-memory.template.md` | 回写记忆模板 | 上下文变化后回写 |
| `coding/code-review.template.md` | 代码评审入口 | 执行 MR/PR 代码评审 |
### AGENT_RULES.template.md
执行规则模板,定义 AI 的工作循环和约束。如需项目私有规则,建议维护 `AGENT_RULES.local.md`;该文件通常由 `[sync_rules]` 首次自动创建,其优先级高于 `AGENT_RULES.md`,且后续不会被 playbook 覆盖。
计划编排与执行细节统一指向 `docs/superpowers/`、`playbook.py -record-spec/-record-plan` 与 `main_loop.py claim/finish`
### AGENTS.template.md
入口导航模板作为项目的主入口Codex 入口)。
**设计理念**
- **最小化内容**:只包含导航链接,不包含详细规则
- **结构化导航**:分为核心规则、项目上下文、任务入口三个板块
**playbook 标记**(用于自动更新):
- `<!-- playbook:agents:start/end -->`:语言规则链接,由 `[sync_standards]` 管理
- `<!-- playbook:templates:start/end -->`:路由链接,`AGENTS.md` 始终按区块更新
- `<!-- playbook:framework:start/end -->`:完整框架,`AGENTS.md` 始终按区块更新
### superpowers 工作流约定
`docs/superpowers/` 统一承载设计稿和实施计划:
- **设计稿**`specs/YYYY-MM-DD-<topic>-design.md``brainstorming` 产出)
- **实施计划**`plans/YYYY-MM-DD-<topic>.md``writing-plans` 产出)
- **执行状态**:回写到 `memory-bank/progress.md`
其中 `plans/` 为主执行入口;`specs/` 只作为设计背景和上游文档。
**生命周期**
- `docs/prompts/`:任务入口层,只负责把代理导向正确入口
- `docs/superpowers/specs/`:设计稿
- `docs/superpowers/plans/`:实施计划与主执行输入
- `memory-bank/progress.md`:执行状态留痕
完整主链只在 `AGENT_RULES.template.md` 定义。
### 语言配置模板ci/、cpp/、python/
语言和 CI 配置模板,`install_mode = "snapshot"` 安装快照时会复制这些模板:
- `ci/gitea/`Gitea Actions 工作流与辅助脚本,部署到快照 `templates/ci/`
- `cpp/``.clang-format`、`.clangd`、`CMakeLists.txt` 等文件,部署到快照 `templates/cpp/`
- `python/``pyproject.toml`、`.editorconfig` 等文件,部署到快照 `templates/python/`
**使用方式**:这些模板保留在快照中供参考,需手动复制到项目根目录使用。其中 `ci/gitea/` 应按 `templates/ci/README.md` 的说明,整块复制 `.gitea/` 目录。
## 技术细节
### 占位符说明
模板中使用 `{{PLACEHOLDER}}` 格式的占位符,需要替换为实际值:
| 占位符 | 说明 | 自动替换 |
| ------------------------- | ------------ | -------- |
| `{{DATE}}` | 日期 | ✅ 是 |
| `{{PROJECT_NAME}}` | 项目名称 | ✅ 可选 |
| `{{PLAYBOOK_ROOT}}` | Playbook 根 | ✅ 是 |
| `{{PLAYBOOK_SCRIPTS}}` | 脚本路径 | ✅ 是 |
| `{{PROJECT_GOAL}}` | 项目目标 | ❌ 手动 |
| `{{PROJECT_DESCRIPTION}}` | 项目描述 | ❌ 手动 |
| 其他 `{{...}}` | 项目特定内容 | ❌ 手动 |
- `{{PROJECT_NAME}}` 可通过 `sync_memory_bank.project_name` 自动替换;未配置时保持原样
- `{{PLAYBOOK_ROOT}}` 自动替换为项目内 Playbook 根目录(默认 `docs/standards/playbook`
- `{{PLAYBOOK_SCRIPTS}}` 自动替换为 Playbook 脚本路径(默认 `docs/standards/playbook/scripts`
### 部署后的目录结构
```text
project/
├── AGENTS.md # 入口导航Codex 入口)
├── AGENT_RULES.md # superpowers 执行规则
├── AGENT_RULES.local.md # 项目私有规则(自动创建,项目维护)
├── CLAUDE.md # Claude Code 入口
├── memory-bank/ # 项目上下文
│ ├── project-brief.md
│ ├── tech-context.md
│ ├── system-patterns.md
│ ├── active-context.md
│ ├── progress.md
│ └── decisions.md
└── docs/
├── prompts/ # 任务入口层
│ ├── README.md
│ ├── system/agent-behavior.md
│ └── coding/
│ ├── clarify.md
│ ├── verify-change.md
│ ├── close-task.md
│ ├── update-memory.md
│ └── code-review.md
└── superpowers/
├── specs/ # brainstorming 产物
└── plans/ # writing-plans / main_loop 消费
```
---
**最后更新**2026-06-17