Files
ai_soc_sw/.trae/skills/project-init/SKILL.md
T
tupingr 473f61b4cc 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>
2026-05-26 15:33:05 +08:00

108 lines
4.1 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.
---
name: "project-init"
description: "框架脱敏/初始化:将当前项目框架层导出为通用模板,或从模板初始化新项目。用户说「导出框架」「初始化新项目」「套这个框架开新项目」时调用。"
---
# 项目框架脱敏与初始化
## 功能
将当前项目的「框架层」(AI 协作体系)与「项目层」(ErrLens 具体内容)分离。框架层可导出为通用模板,用于初始化任意新项目。
**核心逻辑**:框架是骨架(角色、权限、工作流、Skill),项目是肉(PRD、架构、代码、ADR)。同一套骨架可以长出不同的肉。
## 触发条件
- 用户说「导出框架」「脱敏」「生成模板」
- 用户说「初始化新项目」「套这个框架开新项目」「用这个骨架开个 IC 验证项目」
- 当前项目框架层有重大更新后,用户想刷新模板
## 两个模式
### Export(脱敏导出)
将当前项目框架层文件复制 → 把 ErrLens 具体值替换为 `{{变量}}` → 输出干净的模板目录。
### Init(初始化新项目)
读取模板 → 把 `{{变量}}` 替换为用户提供的新项目值 → 输出可开工的新项目目录。
## 变量定义
`TEMPLATE.yaml`。核心变量:
| 变量 | 当前值(ErrLens | 说明 |
|------|-------------------|------|
| `{{PROJECT_NAME}}` | ErrLens | 项目名 |
| `{{PROJECT_CONCEPT}}` | 学生错题本 | 核心概念 |
| `{{PROJECT_DESCRIPTION}}` | AI 驱动的学生错题整理与分析应用 | 一句话描述 |
| `{{P01_NAME}}` | P01_errlens_app | 主应用目录名 |
| `{{DATABASE_URL}}` | postgresql://.../errlens | 数据库连接 |
## 框架层 vs 项目层
`SYNC.md`。核心区分:
**框架层(导出/同步)**
- `AGENTS.md` — AI 角色+权限
- `dashboard.md` — 控制面板结构
- `DECISIONS.md` — 决策入口
- `.ai/principles.md` — 设计原则
- `.ai/config/` — AI 配置
- `.ai/prompts/` — 提示词模板
- `.ai/roles/*/card.md` — 角色身份卡
- `.ai/phases/INDEX.md` — 阶段索引
- `.ai/knowledge/patterns.md` — 可复用模式
- `.ai/knowledge/lessons.md` — 框架级教训
- `.ai/tasks/templates/` — Task 模板
- `.trae/skills/` — 全部 Skill
- `docs/使用手册.md` — 使用说明
- `ENVIRONMENT.md` — 环境结构
- `TEMPLATE.yaml` — 变量定义
- `SYNC.md` — 边界定义
**项目层(不导出,新项目自己写)**
- `.ai/tasks/active/` — 具体 task
- `.ai/phases/phase-*/goal.md, scope.md, architecture.md, decisions.md, completion.md`
- `.ai/knowledge/decisions.md` — 项目 ADR
- `.ai/knowledge/journal/` — 开发日志
- `docs/01_*/ ~ docs/06_*/` — PRD、架构设计等
- `docs/share/` — 对外分享
- `projects/` — 代码
- `reports/` — 测试报告
## 执行步骤
### Export 模式
1.`SYNC.md` 确认框架层文件清单
2.`TEMPLATE.yaml` 获取变量清单和当前值
3. 对每个框架层文件:
- 复制内容
- 将当前值(如 `ErrLens`)替换为 `{{PROJECT_NAME}}`
-`errlens` 替换为 `{{PROJECT_NAME_LOWER}}`
- 依此类推,覆盖 TEMPLATE.yaml 中所有变量
4. 输出到指定目录(默认 `../project-template/`
### Init 模式
1. 询问用户:项目名、核心概念、一句话描述
2.`TEMPLATE.yaml`,生成新值(如 `PROJECT_NAME: "ICValidator"`
3. 复制框架层文件到新项目目录
4. 将所有 `{{变量}}` 替换为新值
5. 创建项目层空目录结构(.ai/tasks/active/, .ai/phases/, docs/01_产品需求/ 等)
6. 告知用户:新项目就绪,Arch AI 可以开始写 PRD
## 注意事项
1. **框架层不包含具体业务的 ADR**。ADR-009(人机协同)是 ErrLens 特有的,不导出。ADR-007(分层架构)是框架级的,可导出
2. **Skill 本身属于框架层**,会被导出。新项目自带全套 Skill
3. **TEMPLATE.yaml 导出后变量值变为 `{{}}` 占位符**,等待 init 时填入新值
4. **脱敏检查**:export 后应人工抽查,确保没有 ErrLens 特有信息泄露到模板
---
**Version**: 1.0
**Created**: 2026-05-26
**Based On**: ADR-008(模板同步机制),废弃 ai_project 分支方案,改为 Skill 按需执行