tsl-devkit/templates
csh b52102b7bd Squashed 'docs/standards/playbook/' changes from b529012..a854534
a854534  feat(plan_progress): auto-detect env for blocked plans
0d9a8ec 🐛 fix(playbook): honor no_backup for sync
2d401fa  test(templates): update prompts validation
e23474e 📝 docs(playbook): update prompts and sync notes
60ff3cd 🐛 fix(playbook): sync templates per file
816f036  test(playbook): add sync and vendor coverage
625cabb 📝 docs(memory_bank): reformat templates
2554c87 📝 docs(prompts): refresh prompt templates
6774a9d  feat(plan_progress): track plan status in progress.md
73d5c26 🔧 chore(playbook): split sync_templates into sections
278750e  feat(playbook): add plan progress tracking and rules updates
6efd637 🐛 fix(sync): keep agents block blank lines
ea00d43 🐛 fix(playbook): support toml without tomllib
ab0dd11 📝 docs(playbook): drop docs/plans snapshots
398696c  feat(playbook): merge unified cli
d959f80 🎨 style(docs): format markdown
b4f712a 🗑️ remove(legacy): drop old scripts and tests
0c4cd0e  feat(actions): add install_skills and format_md
3d1582c  feat(sync): add templates and standards actions
49bbfa1  feat(vendor): add playbook snapshot generation
8cfcc25  feat(cli): parse toml config and dispatch actions
05903c3  feat(cli): add toml config and dispatch order
65d216e  test(cli): add basic playbook cli tests
f0bcf54 📝 docs(plans): add unified playbook cli plan
0885309 📝 docs(plans): add unified playbook cli design
3483d8a 🔧 chore(git): ignore .worktrees dir
eb75036 🔧 chore(templates): align agent templates and docs
efb93f1 📝 docs(playbook): drop todo/confirm mentions
4a85306 🗑️ remove(workflow): drop todo/confirm artifacts
9c5ee9f 🎨 style(markdown): format docs with prettier
5a2925f 🐛 fix(scripts): repair windows script parsing
26a35e0  test(ci): update required skills list
8df3883 🐛 fix(test): skip external root doc links
b067fc1 📦 deps(skills): sync superpowers
c03cda0 🔧 chore(ci): sync from origin main
55e05cb 🔧 chore(ci): use superpowers sync script
73c97f3 🔧 chore(ci): centralize superpowers sync
945704f 🔧 chore(ci): add superpowers sync workflow
e5d2c93 🗑️ remove(skills): drop duplicate workflows
3ae9708 🐛 fix(ci): update tests for flag-only scripts
c44b9aa 🔧 chore(scripts): require flag-driven args
e4e1d14 🔧 chore(scripts): unify single-dash options
b2eb475  test(templates): add template coverage
fc230b7 🎨 style(markdown): format markdown files
8dc8924 🔧 chore(markdown): add prettier config and usage
2045dd4  feat(vendor_playbook): add apply-templates option
872d8cf  feat(templates): add sync templates scaffolding
5b1ca45 📝 docs(skills): clarify todo-plan template
054967a  feat(skills): add todo-plan skill
cc340f1 🔧 chore(ci): align standards-check workflow template
e9de0aa 🔧 chore(ci): drop removed skill check
e5dd7d9 🔧 fix(sync): avoid backtick expansion
087b0b9 🔧 chore(sync): align agents block across ps1/bat
9481510 🔧 chore(sync): scope agents block to existing langs
b0ca842 🔧 fix(sync): rewrite docs path in agents
c98d65c 🔧 chore(sync): rewrite agents docs paths
c33611c 🗑️ remove(skills): drop unused skills and update references
2b37860 🎨 style(markdown): format markdown files
e3ecd26 📝 docs(tsl): align syntax annotations and examples
37546fe 🐛 fix(playbook): enforce rulesets to agents flow
f2df89d 🐛 fix(scripts): include language list in AGENTS.md
c0d0737 🐛 fix(playbook): add agents mirror for sync
3b8b99b 🎨 style(markdown): normalize md headings and lists
31f3000 ♻️ refactor(playbook): rename agents template directory to rulesets
11b2bed  feat(markdown): add ruleset and sync support
5b89580  test(scripts): quiet git init warnings
5822a87 ♻️ refactor(playbook): streamline agents and refresh tsl docs

git-subtree-dir: docs/standards/playbook
git-subtree-split: a85453439f65b0c0aa05a5bbece773a02216ce76
2026-02-02 10:51:38 +08:00
..
ci Squashed 'docs/standards/playbook/' changes from b529012..a854534 2026-02-02 10:51:38 +08:00
cpp Squashed 'docs/standards/playbook/' content from commit e504a68 2025-12-14 17:55:55 +08:00
memory-bank Squashed 'docs/standards/playbook/' changes from b529012..a854534 2026-02-02 10:51:38 +08:00
prompts Squashed 'docs/standards/playbook/' changes from b529012..a854534 2026-02-02 10:51:38 +08:00
python Squashed 'docs/standards/playbook/' changes from e504a68..b529012 2026-01-08 15:56:36 +08:00
AGENTS.template.md Squashed 'docs/standards/playbook/' changes from b529012..a854534 2026-02-02 10:51:38 +08:00
AGENT_RULES.template.md Squashed 'docs/standards/playbook/' changes from b529012..a854534 2026-02-02 10:51:38 +08:00
README.md Squashed 'docs/standards/playbook/' changes from b529012..a854534 2026-02-02 10:51:38 +08:00

README.md

项目架构模板

本目录包含项目架构的模板文件,用于快速初始化新项目的 AI 代理工作环境。

目录结构

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,配置节存在即启用:

# 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  # 可选,强制覆盖(会先备份)
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:始终按区块更新(<!-- playbook:xxx:start/end -->),不受配置节控制
  • force:默认 false已存在则跳过设为 true 时覆盖框架文件(会先备份)
  • 不删除项目文件:只更新框架提供的文件,项目新增的文件不会被删除
  • 占位符替换:自动替换 {{DATE}}{{PLAYBOOK_SCRIPTS}}

典型场景

# 场景 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

部署后的目录结构

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 写入状态。

示例:不跑测试的计划提示词

当你需要修改代码但暂时不运行测试时,可用以下提示词生成“可执行且不失败”的实施计划:

你是 Codex。先使用 $brainstorming。
目标:修改 <模块/功能>,细节如下:<你的需求>
约束:
- 不跑任何测试test/ci但允许做可通过的局部验证格式化/静态检查/人工 diff。
- Plan 不能包含任何必然失败或未确认的任务;所有依赖必须在 brainstorming 阶段确认清楚。
- 采用 writing-plans 的固定头部格式,且在 `---` 之后追加 `## Plan Meta`
  - Plan Group: <X>
  - Parent Plan: <docs/plans/...-design.md>
  - Verification Scope: local
  - Verification Gate: must-pass

流程:
1) 先完成 brainstorming并输出设计文档 `docs/plans/YYYY-MM-DD-<topic>-design.md`。
2) 询问我“是否进入 `docs/plans/` 实施计划编写阶段”,确认后使用 writing-plans 生成实现计划。
3) 实现计划内明确标注每步要改的文件与命令;验证步骤只包含可通过的局部验证,不包含测试。
4) 执行计划并更新 `memory-bank/progress.md`。

AGENTS.template.md

路由中心模板,作为项目的主入口。

设计理念

  • 最小化内容:只包含导航链接,不包含详细规则
  • 结构化导航:分为核心规则、项目上下文、工作流程三个板块

playbook 标记(用于自动更新):

标记 用途 说明
<!-- playbook:agents:start/end --> 语言规则链接 [sync_standards] 管理
<!-- playbook:templates:start/end --> 路由链接 AGENTS.md 始终按区块更新
<!-- playbook:framework:start/end --> 完整框架 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/ 目录,需手动从快照复制到项目根目录使用。

使用方式

# playbook.toml - 生成包含这些模板的快照
[playbook]
project_root = "/path/to/project"

[vendor]
langs = ["tsl", "cpp", "python"]
python scripts/playbook.py -config playbook.toml
# 然后手动从 docs/standards/playbook/templates/ 复制所需配置到项目根目录

与 playbook 其他部分的关系

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 选择与进度记录

完整部署流程

# 1. 准备配置并执行统一入口
python docs/standards/playbook/scripts/playbook.py -config playbook.toml

# 2. 编辑 memory-bank/*.md 填写项目信息

# 3. 替换剩余的 {{PLACEHOLDER}} 占位符

最后更新2026-01-26