473f61b4cc
- 废弃 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>
108 lines
4.1 KiB
Markdown
108 lines
4.1 KiB
Markdown
---
|
||
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 按需执行
|