🔧 chore(playbook): split sync_templates into sections

This commit is contained in:
csh
2026-01-27 08:49:40 +08:00
parent 278750e3c9
commit 73d5c261b1
7 changed files with 263 additions and 113 deletions
+50 -19
View File
@@ -37,16 +37,25 @@ templates/
## 快速部署
使用统一入口 `playbook.py`
使用统一入口 `playbook.py`,配置节存在即启用
```toml
# playbook.toml
[playbook]
project_root = "/path/to/project"
[sync_templates]
# 同步 AGENT_RULES.md(配置节存在即启用)
[sync_rules]
# force = true # 可选,强制覆盖已存在的文件
# 同步 memory-bank/(配置节存在即启用)
[sync_memory_bank]
project_name = "MyProject"
full = false
# force = true # 可选,强制覆盖(会先备份)
# 同步 docs/prompts/(配置节存在即启用)
[sync_prompts]
# force = true # 可选,强制覆盖(会先备份)
```
```bash
@@ -55,14 +64,37 @@ python docs/standards/playbook/scripts/playbook.py -config playbook.toml
参数说明见 `playbook.toml.example`(仓库根目录)或 vendoring 后的 `docs/standards/playbook/playbook.toml.example`
### 部署行为
### 配置节说明
- **新项目**:创建完整的 AGENTS.md、AGENT_RULES.md、memory-bank/、docs/prompts/
- **已有 AGENTS.md**
- 默认:追加路由链接(`<!-- playbook:templates:start/end -->`
- `full = true`:追加完整框架(规则优先级 + 路由 + 新会话开始时)
- **其他文件**:如果已存在则跳过(使用 `force = true` 覆盖)
- **占位符替换**:自动替换 `{{DATE}}` 为当前日期
| 配置节 | 部署内容 | 选项 |
| -------------------- | -------------- | ----------------------- |
| `[sync_rules]` | AGENT_RULES.md | `force` |
| `[sync_memory_bank]` | memory-bank/ | `project_name`, `force` |
| `[sync_prompts]` | docs/prompts/ | `force` |
- **配置节存在即启用**:只写需要同步的配置节
- **AGENTS.md**:始终按区块更新(`<!-- playbook:xxx:start/end -->`),不受配置节控制
- **force**:默认 false,已存在则跳过;设为 true 时强制覆盖(memory-bank/ 和 prompts/ 会先备份)
- **占位符替换**:自动替换 `{{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
```
### 部署后的目录结构
@@ -99,9 +131,8 @@ project/
| `{{PLAYBOOK_SCRIPTS}}` | 脚本路径 | ✅ 是 |
| 其他 `{{...}}` | 项目特定内容 | ❌ 手动 |
`{{PROJECT_NAME}}` 可通过 `sync_templates.project_name` 自动替换;未配置时保持原样。
`{{MAIN_LANGUAGE}}` 可通过 `sync_templates.main_language``sync_standards.langs[0]` 自动替换;
未配置时默认 `tsl`
`{{PROJECT_NAME}}` 可通过 `sync_memory_bank.project_name` 自动替换;未配置时保持原样。
`{{MAIN_LANGUAGE}}` 可通过 `sync_standards.langs[0]` 自动替换;未配置时默认 `tsl`
`{{PLAYBOOK_SCRIPTS}}` 自动替换为 Playbook 脚本路径(默认 `docs/standards/playbook/scripts`)。
## 模板说明
@@ -170,11 +201,11 @@ project/
**playbook 标记**(用于自动更新):
| 标记 | 用途 | 管理入口 |
| --------------------------------------- | --------------------- | ------------------------------ |
| `<!-- playbook:agents:start/end -->` | 语言规则链接 | playbook.py `[sync_standards]` |
| `<!-- playbook:templates:start/end -->` | 路由链接(默认追加) | playbook.py `[sync_templates]` |
| `<!-- playbook:framework:start/end -->` | 完整框架full 追加) | playbook.py `[sync_templates]` |
| 标记 | 用途 | 说明 |
| --------------------------------------- | ------------ | -------------------------- |
| `<!-- playbook:agents:start/end -->` | 语言规则链接 | 由 `[sync_standards]` 管理 |
| `<!-- playbook:templates:start/end -->` | 路由链接 | AGENTS.md 始终按区块更新 |
| `<!-- playbook:framework:start/end -->` | 完整框架 | AGENTS.md 始终按区块更新 |
### ci/、cpp/、python/
@@ -213,7 +244,7 @@ playbook/
├── docs/ # 权威静态文档
├── templates/ # 本目录:项目架构模板 → 部署到 memory-bank/ 等
└── scripts/
├── playbook.py # 统一入口:vendor/sync_templates/sync_standards/...
├── playbook.py # 统一入口:vendor/sync_rules/sync_memory_bank/sync_prompts/sync_standards/...
└── plan_progress.py # Plan 选择与进度记录
```