# 项目架构模板 本目录包含项目架构的模板文件,用于快速初始化新项目的 AI 代理工作环境。 ## 目录结构 ```text templates/ ├── README.md # 本文件 ├── AGENTS.template.md # 路由中心模板 ├── AGENT_RULES.template.md # 执行流程模板 ├── memory-bank/ # 项目上下文模板 │ ├── project-brief.template.md │ ├── tech-stack.template.md │ ├── architecture.template.md │ ├── progress.template.md │ └── decisions.template.md ├── prompts/ # 提示词库模板 │ ├── README.md │ ├── system/ │ │ └── agent-behavior.template.md │ ├── coding/ │ │ ├── clarify.template.md │ │ └── review.template.md │ └── meta/ │ └── prompt-generator.template.md ├── ci/ # CI 模板 │ └── gitea/ │ └── .gitea/workflows/ ├── cpp/ # C++ 配置模板 │ ├── .clang-format │ ├── .clangd │ └── ... └── python/ # Python 配置模板 ├── .editorconfig ├── pyproject.toml └── ... ``` ## 文件分类 从部署角度,文件分为四类: | 类型 | 说明 | 部署行为 | |------|------|----------| | **框架模板** | playbook 提供,可随框架升级 | 可覆盖更新 | | **项目上下文** | 首次部署后项目填写 | 首次创建,后续保护 | | **项目私有** | 项目手动创建 | 不部署 | | **参考资料** | 留在 playbook 快照中参考 | 不部署到项目根 | ### 框架模板(A类) ``` AGENT_RULES.md AGENTS.md(区块更新) docs/prompts/system/*.md # 框架提供 docs/prompts/coding/*.md # 框架提供 docs/prompts/meta/*.md # 框架提供 ``` ### 项目上下文(B类) ``` memory-bank/ ├── project-brief.md ├── tech-stack.md ├── architecture.md ├── progress.md └── decisions.md ``` > ⚠️ B类文件首次创建后应由项目填写。`force=true` 会覆盖已填写内容(自动备份)。 ### 项目私有(C类,不部署) ``` AGENT_RULES.local.md # 项目私有规则 docs/plans/ # 项目实施计划 docs/prompts/custom/ # 项目自定义提示词 docs/prompts/**/* # 项目新增的文件不会被删除 ``` ### 参考资料(D类,不部署到项目根) ``` # 留在 docs/standards/playbook/templates/ 中参考 ci/ # CI 配置 cpp/ # C++ 配置 python/ # Python 配置 ``` ## 快速部署 使用统一入口 `playbook.py`,配置节存在即启用: ```toml # playbook.toml [playbook] project_root = "/path/to/project" # 同步 AGENT_RULES.md(配置节存在即启用) [sync_rules] # force = true # 可选,强制覆盖已存在的文件 # 同步 memory-bank/(配置节存在即启用) [sync_memory_bank] project_name = "MyProject" # force = true # 可选,强制覆盖(会先备份) # 同步 docs/prompts/(配置节存在即启用) [sync_prompts] # force = true # 可选,强制覆盖(会先备份) ``` ```bash python docs/standards/playbook/scripts/playbook.py -config playbook.toml ``` 参数说明见 `playbook.toml.example`(仓库根目录)或 vendoring 后的 `docs/standards/playbook/playbook.toml.example`。 ### 配置节说明 | 配置节 | 部署内容 | 选项 | | -------------------- | -------------- | ----------------------- | | `[sync_rules]` | AGENT_RULES.md | `force` | | `[sync_memory_bank]` | memory-bank/ | `project_name`, `force` | | `[sync_prompts]` | docs/prompts/ | `force` | - **配置节存在即启用**:只写需要同步的配置节 - **AGENTS.md**:始终按区块更新(``),不受配置节控制 - **force**:默认 false,已存在则跳过;设为 true 时覆盖框架文件(会先备份) - **不删除项目文件**:只更新框架提供的文件,项目新增的文件不会被删除 - **占位符替换**:自动替换 `{{DATE}}`、`{{PLAYBOOK_SCRIPTS}}` 等 ### 典型场景 ```toml # 场景 1:初次部署(全部) [sync_rules] [sync_memory_bank] project_name = "MyProject" [sync_prompts] # 场景 2:框架升级(只更新规则) [sync_rules] force = true # 场景 3:重置项目上下文 [sync_memory_bank] project_name = "MyProject" force = true ``` ### 部署后的目录结构 ```text project/ ├── AGENTS.md # 路由中心(主入口) ├── AGENT_RULES.md # 执行流程 ├── AGENT_RULES.local.md # 项目私有规则(可选,手动维护) ├── memory-bank/ # 项目上下文 │ ├── project-brief.md │ ├── tech-stack.md │ ├── architecture.md │ ├── progress.md │ └── decisions.md └── docs/prompts/ # 提示词库 ├── README.md ├── system/agent-behavior.md ├── coding/ │ ├── clarify.md │ └── review.md └── meta/prompt-generator.md ``` ## 占位符说明 模板中使用 `{{PLACEHOLDER}}` 格式的占位符,需要替换为实际值: | 占位符 | 说明 | 自动替换 | | ------------------------- | ------------ | -------- | | `{{DATE}}` | 日期 | ✅ 是 | | `{{PROJECT_NAME}}` | 项目名称 | ✅ 可选 | | `{{PROJECT_GOAL}}` | 项目目标 | ❌ 手动 | | `{{PROJECT_DESCRIPTION}}` | 项目描述 | ❌ 手动 | | `{{MAIN_LANGUAGE}}` | 主语言 | ✅ 可选 | | `{{PLAYBOOK_SCRIPTS}}` | 脚本路径 | ✅ 是 | | 其他 `{{...}}` | 项目特定内容 | ❌ 手动 | `{{PROJECT_NAME}}` 可通过 `sync_memory_bank.project_name` 自动替换;未配置时保持原样。 `{{MAIN_LANGUAGE}}` 可通过 `sync_standards.langs[0]` 自动替换;未配置时默认 `tsl`。 `{{PLAYBOOK_SCRIPTS}}` 自动替换为 Playbook 脚本路径(默认 `docs/standards/playbook/scripts`)。 ## 模板说明 ### memory-bank/ 项目上下文文档,用于让 AI 快速理解项目: | 文件 | 用途 | | --------------------------- | -------------------- | | `project-brief.template.md` | 项目定位、边界、约束 | | `tech-stack.template.md` | 技术栈、工具链、环境 | | `architecture.template.md` | 架构设计、模块职责 | | `progress.template.md` | 开发进度追踪 | | `decisions.template.md` | 架构决策记录(ADR) | ### prompts/ 工作流程模板(部署后去掉 `.template` 后缀): | 文件 | 用途 | 使用场景 | | ----------------------------------- | -------------- | ---------------------- | | `system/agent-behavior.template.md` | 工作模式参考 | 切换探索/开发/调试模式 | | `coding/clarify.template.md` | 需求澄清模板 | 需求不明确时 | | `coding/review.template.md` | 复盘总结模板 | Plan 完成后复盘 | | `meta/prompt-generator.template.md` | 元提示词生成器 | 创建新的专用提示词 | ### AGENT_RULES.template.md 执行流程规范,定义 AI 的工作循环和约束。 如需项目私有规则,建议创建 `AGENT_RULES.local.md`,其优先级高于 `AGENT_RULES.md`, 且不会被 `playbook.py` 覆盖。 主循环会根据 `memory-bank/progress.md` 的 Plan 状态清单, 自动选择第一个 pending 的 Plan,并要求通过 `scripts/plan_progress.py` 写入状态。 ### 示例:不跑测试的计划提示词 当你需要修改代码但暂时不运行测试时,可用以下提示词生成“可执行且不失败”的实施计划: ```text 你是 Codex。先使用 $brainstorming。 目标:修改 <模块/功能>,细节如下:<你的需求> 约束: - 不跑任何测试(test/ci),但允许做可通过的局部验证(格式化/静态检查/人工 diff)。 - Plan 不能包含任何必然失败或未确认的任务;所有依赖必须在 brainstorming 阶段确认清楚。 - 采用 writing-plans 的固定头部格式,且在 `---` 之后追加 `## Plan Meta`: - Plan Group: - Parent Plan: - Verification Scope: local - Verification Gate: must-pass 流程: 1) 先完成 brainstorming,并输出设计文档 `docs/plans/YYYY-MM-DD--design.md`。 2) 询问我“是否进入 `docs/plans/` 实施计划编写阶段”,确认后使用 writing-plans 生成实现计划。 3) 实现计划内明确标注每步要改的文件与命令;验证步骤只包含可通过的局部验证,不包含测试。 4) 执行计划并更新 `memory-bank/progress.md`。 ``` ### AGENTS.template.md 路由中心模板,作为项目的主入口。 **设计理念**: - **最小化内容**:只包含导航链接,不包含详细规则 - **结构化导航**:分为核心规则、项目上下文、工作流程三个板块 **playbook 标记**(用于自动更新): | 标记 | 用途 | 说明 | | --------------------------------------- | ------------ | -------------------------- | | `` | 语言规则链接 | 由 `[sync_standards]` 管理 | | `` | 路由链接 | AGENTS.md 始终按区块更新 | | `` | 完整框架 | AGENTS.md 始终按区块更新 | ### ci/、cpp/、python/ 语言和 CI 配置模板。通过 playbook.py 的 `[vendor]` 复制到快照中: | 目录 | 内容 | 部署位置 | | ----------- | ----------------------------------------- | ------------------------ | | `ci/gitea/` | Gitea Actions 工作流 | 快照 `templates/ci/` | | `cpp/` | .clang-format, .clangd, CMakeLists.txt 等 | 快照 `templates/cpp/` | | `python/` | pyproject.toml, .editorconfig 等 | 快照 `templates/python/` | > 注意:这些模板通过 `[vendor]` 复制到快照的 `templates/` 目录,需手动从快照复制到项目根目录使用。 **使用方式**: ```toml # playbook.toml - 生成包含这些模板的快照 [playbook] project_root = "/path/to/project" [vendor] langs = ["tsl", "cpp", "python"] ``` ```bash python scripts/playbook.py -config playbook.toml # 然后手动从 docs/standards/playbook/templates/ 复制所需配置到项目根目录 ``` ## 与 playbook 其他部分的关系 ```text playbook/ ├── rulesets/ # 语言级硬规则 → 部署到 .agents/ ├── codex/skills/ # 按需加载的技能 ├── docs/ # 权威静态文档 ├── templates/ # 本目录:项目架构模板 → 部署到 memory-bank/ 等 └── scripts/ ├── playbook.py # 统一入口:vendor/sync_rules/sync_memory_bank/sync_prompts/sync_standards/... └── plan_progress.py # Plan 选择与进度记录 ``` ## 完整部署流程 ```bash # 1. 准备配置并执行统一入口 python docs/standards/playbook/scripts/playbook.py -config playbook.toml # 2. 编辑 memory-bank/*.md 填写项目信息 # 3. 替换剩余的 {{PLACEHOLDER}} 占位符 ``` --- **最后更新**:2026-01-26