feat(template): ADR-013 Skill 替代脚本 — 框架脱敏/初始化机制重构

- 废弃 ADR-008 双分支+shell脚本方案(ai_project分支已过时)
- 新增 project-init Skill:export(脱敏导出) + init(初始化新项目)双模式
- 保留 SYNC.md(框架/项目边界)+ TEMPLATE.yaml(变量定义)
- L-006: 当 AI 是执行者时,Skill 优于 Shell 脚本
- 3 文件替代 4文件+1分支,零维护成本

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
tupingr
2026-05-26 15:33:05 +08:00
parent 6992f59cd2
commit 473f61b4cc
6 changed files with 282 additions and 7 deletions
+27 -7
View File
@@ -59,18 +59,38 @@
## ADR-008: 框架/项目双分支 + 同步机制
- 日期: 2026-05-25
- 状态: 已采纳
- 决策: 采用双分支策略:`main` 分支开发具体项目(ErrLens),`ai_project` 分支保持为去敏的通用模板。通过 `sync-template.sh` 从 main 单向同步框架层变化到模板分支
- 理由:
- 状态: 已废弃(被 ADR-013 替代,2026-05-26
- 决策: ~~采用双分支策略:`main` 分支开发具体项目(ErrLens),`ai_project` 分支保持为去敏的通用模板。通过 `sync-template.sh` 从 main 单向同步框架层变化到模板分支~~ 废弃原因:双分支维护成本高,容易过时。ai_project 分支在新架构升级后已严重落后于 main
- 理由(原):
- 框架层变化需要传播到模板,但重做去敏化消耗巨大(~100K tokens
- 两个分支的差异本质是"变量替换",可以脚本自动化
- 框架层(AGENTS/权限/提示词/工作流)和项目层(任务/日志/代码)的边界清晰
- 影响:
- 新增 `SYNC.md` 定义框架层/项目层边界
- 新增 `sync-template.sh` 实现自动同步
- 新增 `TEMPLATE.yaml` + `init.sh` 实现一键初始化
- 影响(原):
- 新增 `SYNC.md` 定义框架层/项目层边界(保留,被 ADR-013 复用)
- 新增 `sync-template.sh` 实现自动同步(已删除)
- 新增 `TEMPLATE.yaml` + `init.sh` 实现一键初始化TEMPLATE.yaml 保留,init.sh 删除)
- AI 项目框架从此可复用,token 节省 95%+
## ADR-013: Skill 替代脚本 — 框架脱敏/初始化的正确方式
- 日期: 2026-05-26
- 状态: 已采纳
- 决策: 废弃 ADR-008 的「双分支 + shell 脚本」方案,改为「Skill + 配置文件」方案。框架脱敏和项目初始化由 `project-init` Skill 按需执行,不再维护独立模板分支
- 理由:
- **双分支方案的问题已被验证**ADR-008 的 ai_project 分支在新架构升级(dashboard.md / .ai/tasks/ / 归档)后严重过时,SYNC.md 和 sync-template.sh 的文件清单全是旧结构引用
- **AI 是执行者,不需要可执行脚本**:shell 脚本是给人类或 CI 用的。但当前场景中,脱敏/初始化是由 AI(Claude Code)执行的——AI 需要的是清晰的规格说明(SYNC.md + TEMPLATE.yaml + Skill 指令),而不是可执行脚本
- **Skill 方案不过时**:脚本写死了文件列表,框架一变脚本就过时。Skill 描述的是「方法」——读 SYNC.md 获取边界 → 读 TEMPLATE.yaml 获取变量 → 执行替换。框架变化时只需更新 SYNC.md,Skill 本身不变
- **零维护成本**:不再需要 sync-template.sh、init.sh、独立 Git 分支。3 个文件(SYNC.md + TEMPLATE.yaml + Skillvs 旧方案的 4 个文件 + 1 个分支
- 关键洞察:
- **「脚本优于 Skill」的前提是执行者是机器**。当执行者是 AI 时,Skill(语义描述 + 约束)优于脚本(硬编码文件列表)
- **边界定义文件(SYNC.md)是长期资产**,脚本是短期负债——脚本依赖边界定义,但边界定义不应绑定于特定的执行方式
- 影响:
- 保留 `SYNC.md`(更新为新架构文件结构)
- 保留 `TEMPLATE.yaml`(变量定义)
- 新增 `.trae/skills/project-init/SKILL.md`
- 废弃 `sync-template.sh``init.sh`
- 废弃 `ai_project` 分支(不再维护,仅保留历史参考)
## ADR-009: 人机协同数据质量闭环
- 日期: 2026-05-26