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 按需执行
|