@geeseeker/easyai-dev 3.0.7 → 3.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skeleton/.agents/skills/common-session-close/SKILL.md +6 -5
- package/skeleton/.agents/skills/pm-framework-evolve/SKILL.md +44 -84
- package/skeleton/.agents/skills/pm-framework-evolve/references/architecture.md +33 -15
- package/skeleton/.agents/skills/pm-framework-evolve/references/directory-map.md +42 -40
- package/skeleton/.agents/skills/pm-framework-evolve/references/features.md +101 -59
- package/skeleton/.agents/skills/pm-framework-evolve/references/github-info.md +4 -5
- package/skeleton/.agents/skills/pm-framework-evolve/references/installation.md +25 -16
- package/skeleton/easyai-manifest.json +9 -9
package/package.json
CHANGED
|
@@ -11,6 +11,7 @@ description: 会话收尾与日志沉淀 — 汇总本会话工作、写入 jour
|
|
|
11
11
|
|
|
12
12
|
## 触发条件
|
|
13
13
|
|
|
14
|
+
- 用户明确表示「**收工**」(或等价表达,如"结束"、"下班"等)
|
|
14
15
|
- 用户明确表示本次会话结束
|
|
15
16
|
- 上下文预算接近阈值,需要新开会话
|
|
16
17
|
- 任务执行完成,准备提交验收
|
|
@@ -60,12 +61,12 @@ task_append_log({
|
|
|
60
61
|
2. **列出候选沉淀内容**
|
|
61
62
|
- 向用户展示候选文档列表,说明每项的建议目标路径:
|
|
62
63
|
|
|
63
|
-
| Artifacts 类型
|
|
64
|
-
|
|
65
|
-
| `walkthrough.md`
|
|
66
|
-
| `other`(分析报告等)
|
|
64
|
+
| Artifacts 类型 | 建议沉淀目标 |
|
|
65
|
+
| ------------------------ | ------------------------------------------ |
|
|
66
|
+
| `walkthrough.md` | `.docs/notes/` 或 `.docs/guides/` |
|
|
67
|
+
| `other`(分析报告等) | `.docs/notes/` 或 `.docs/design/` |
|
|
67
68
|
| `implementation_plan.md` | 通常已由 `pm-brainstorm` Step 6 处理,跳过 |
|
|
68
|
-
| `task.md`
|
|
69
|
+
| `task.md` | 不沉淀(`.trellis/tasks/` 已持久化) |
|
|
69
70
|
|
|
70
71
|
3. **用户确认后执行**
|
|
71
72
|
- 用户确认需要沉淀 → 提炼内容并写入目标路径
|
|
@@ -9,15 +9,27 @@ description: PM 框架自迭代 — 框架百科查询、安全迭代、迭代
|
|
|
9
9
|
|
|
10
10
|
PM 角色在以下场景**必须**激活本 Skill:
|
|
11
11
|
|
|
12
|
-
1.
|
|
13
|
-
2. **修改框架文件**:需要修改 `.agents/`、`.trellis/spec/`、`.trellis/config/` 时 →
|
|
14
|
-
3.
|
|
12
|
+
1. **查询框架知识**(最常用):需要了解框架架构、功能、文件职责时 → 读取 `references/`
|
|
13
|
+
2. **修改框架文件**:需要修改 `.agents/`、`.trellis/spec/`、`.trellis/config/` 时 → 执行迭代流程
|
|
14
|
+
3. **查看迭代历史**:需要了解框架修改记录时 → 读取 `changelog/`
|
|
15
15
|
|
|
16
16
|
> **实时性内容**(如最新 Issues、Release 历史)应由 AI 实时访问 GitHub 仓库获取,不写死在文件中。
|
|
17
17
|
|
|
18
|
+
## 知识库(references/)
|
|
19
|
+
|
|
20
|
+
框架的结构化知识,修改框架前**必须先查阅**:
|
|
21
|
+
|
|
22
|
+
| 文件 | 内容 |
|
|
23
|
+
| ------------------ | -------------------------------------------------------------- |
|
|
24
|
+
| `architecture.md` | 设计理念、三层架构、约束分层、角色系统、文档沉淀管道、升级机制 |
|
|
25
|
+
| `features.md` | 10 Skills、3+1 Rules、21 Tools、6 Resources、关联关系图 |
|
|
26
|
+
| `directory-map.md` | 完整目录清单,🦴骨架/🏃运行时/🔧开发专属分类 |
|
|
27
|
+
| `installation.md` | 两种安装方式、安装后结构、版本管理、Manifest 智能合并 |
|
|
28
|
+
| `github-info.md` | 仓库地址、npm 包名、迭代历史查看方式 |
|
|
29
|
+
|
|
18
30
|
## 管控范围
|
|
19
31
|
|
|
20
|
-
以下 **框架核心目录** 的修改必须通过本 Skill
|
|
32
|
+
以下 **框架核心目录** 的修改必须通过本 Skill 管控:
|
|
21
33
|
|
|
22
34
|
- `.agents/rules/` — 规则文件
|
|
23
35
|
- `.agents/workflows/` — 角色入口
|
|
@@ -26,10 +38,12 @@ PM 角色在以下场景**必须**激活本 Skill:
|
|
|
26
38
|
- `.trellis/config/` — 框架配置
|
|
27
39
|
|
|
28
40
|
> `.trellis/tasks/` 和 `.trellis/workspace/` 属于运行时数据,不受本 Skill 管控。
|
|
41
|
+
>
|
|
42
|
+
> **开发工作区注意**:在 `easyAI-dev/` 中,实际修改在 `playground/` 进行,记录用 `.trellis/`。详见 `framework-dev-mode.md` rule。
|
|
29
43
|
|
|
30
44
|
---
|
|
31
45
|
|
|
32
|
-
##
|
|
46
|
+
## 迭代流程
|
|
33
47
|
|
|
34
48
|
### Step 0:知识加载(前置)
|
|
35
49
|
|
|
@@ -44,119 +58,65 @@ PM 角色在以下场景**必须**激活本 Skill:
|
|
|
44
58
|
列出所有将要修改的文件及变更类型:
|
|
45
59
|
|
|
46
60
|
```markdown
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
|
50
|
-
|
|
51
|
-
| .agents/rules/xxx.md | 修改 | 增加 xxx 约束 |
|
|
52
|
-
| .agents/skills/yyy/SKILL.md | 新建 | yyy 能力模块 |
|
|
61
|
+
| 文件 | 变更类型 | 变更摘要 |
|
|
62
|
+
| --------------------------- | -------- | ------------- |
|
|
63
|
+
| .agents/rules/xxx.md | 修改 | 增加 xxx 约束 |
|
|
64
|
+
| .agents/skills/yyy/SKILL.md | 新建 | yyy 能力模块 |
|
|
53
65
|
```
|
|
54
66
|
|
|
55
67
|
### Step 2:影响范围分析
|
|
56
68
|
|
|
57
|
-
|
|
58
|
-
## 影响范围报告
|
|
59
|
-
|
|
60
|
-
### 直接影响
|
|
61
|
-
- 变更文件数:{n} 个
|
|
62
|
-
- 变更类型:新建 / 修改 / 删除
|
|
69
|
+
评估直接影响(变更文件数、变更类型)和间接影响(关联角色、关联 Skills、约束层级),给出风险等级:
|
|
63
70
|
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
- 约束层级:{是否影响约束优先级体系}
|
|
68
|
-
|
|
69
|
-
### 风险等级
|
|
70
|
-
- 低:仅新增能力,不影响现有行为
|
|
71
|
-
- 中:修改已有文件,可能影响角色行为
|
|
72
|
-
- 高:修改 Rules 或核心 Workflow,影响所有会话
|
|
73
|
-
```
|
|
71
|
+
- **低**:仅新增能力,不影响现有行为
|
|
72
|
+
- **中**:修改已有文件,可能影响角色行为
|
|
73
|
+
- **高**:修改 Rules 或核心 Workflow,影响所有会话
|
|
74
74
|
|
|
75
75
|
### Step 3:用户确认门
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
**用户确认后**:
|
|
80
|
-
1. 逐步执行变更
|
|
81
|
-
2. 每步完成后验证文件完整性
|
|
77
|
+
将变更清单和影响报告呈现给用户,**等待明确确认后才执行**。用户拒绝则记录原因到 journal,放弃变更。
|
|
82
78
|
|
|
83
|
-
|
|
84
|
-
- 放弃全部变更,保持原文件不动
|
|
85
|
-
- 记录拒绝原因到 journal
|
|
79
|
+
### Step 4:执行变更 + 验证
|
|
86
80
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- 执行文件修改
|
|
90
|
-
- 检查修改后的文件是否格式完整、语法正确
|
|
81
|
+
- 逐步执行文件修改,每步完成后验证完整性
|
|
91
82
|
- 如涉及 MCP Server 代码,确保 `npm run build` 通过
|
|
92
83
|
|
|
93
|
-
### Step 5
|
|
84
|
+
### Step 5:记录迭代
|
|
94
85
|
|
|
95
86
|
1. 按 `resources/changelog-entry-template.md` 模板生成迭代记录
|
|
96
87
|
2. 保存到 `changelog/YYYY-MM-DD_{slug}.md`
|
|
97
88
|
3. 更新 `changelog/index.md` 索引
|
|
98
89
|
4. 通过 `journal_append()` 记录变更日志
|
|
99
90
|
|
|
100
|
-
### Step 6
|
|
91
|
+
### Step 6:知识库自更新
|
|
101
92
|
|
|
102
|
-
迭代完成后,检查 `references/`
|
|
93
|
+
迭代完成后,检查 `references/` 中是否有文件需要更新:
|
|
103
94
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
95
|
+
- 新增/删除了 Skill → 更新 `features.md`
|
|
96
|
+
- 新增/删除了 Rule → 更新 `features.md`
|
|
106
97
|
- 修改了目录结构 → 更新 `directory-map.md`
|
|
107
98
|
- 修改了安装功能 → 更新 `installation.md`
|
|
99
|
+
- 修改了架构设计 → 更新 `architecture.md`
|
|
108
100
|
|
|
109
101
|
> **自更新边界**:只更新事实性描述,不改变知识库的结构和格式。
|
|
110
102
|
|
|
111
103
|
---
|
|
112
104
|
|
|
113
|
-
## 跨项目复用
|
|
114
|
-
|
|
115
|
-
将本项目的框架修改应用到其他使用 easyAI 的项目:
|
|
116
|
-
|
|
117
|
-
| 方式 | 说明 | 适用场景 |
|
|
118
|
-
|------|------|----------|
|
|
119
|
-
| 手动复制 | 根据 `changelog/` 记录,在另一个项目中手动应用 | 少量修改 |
|
|
120
|
-
| Git Patch | changelog 中的 diff 可以作为 `git apply` 的输入 | 精确复制代码变更 |
|
|
121
|
-
| 整体复制 | 复制整个 `.agents/` 和 `.trellis/config/` + `.trellis/spec/` | 全新项目初始化 |
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
105
|
## 迭代分类标签
|
|
126
106
|
|
|
127
|
-
| 标签
|
|
128
|
-
|
|
129
|
-
| `新增`
|
|
130
|
-
| `优化`
|
|
131
|
-
| `修复`
|
|
132
|
-
| `修改`
|
|
133
|
-
| `魔改`
|
|
134
|
-
| `实验性` | 试探性修改,可能会被撤销
|
|
107
|
+
| 标签 | 定义 | 示例 |
|
|
108
|
+
| -------- | -------------------------------------- | ----------------------------------- |
|
|
109
|
+
| `新增` | 添加框架原本没有的全新功能 | 新增一个 Skill、新增一个 MCP Tool |
|
|
110
|
+
| `优化` | 改善现有功能,不改变功能边界 | 优化 Skill 的流程步骤、改善错误提示 |
|
|
111
|
+
| `修复` | 修正现有功能的 Bug 或文档错误 | 修复 tool 参数校验遗漏 |
|
|
112
|
+
| `修改` | 调整现有功能的行为或配置,在设计走廊内 | 修改约束层级顺序、修改默认配置值 |
|
|
113
|
+
| `魔改` | **超出设计意图**的深度改造 | 重写角色系统、替换 MCP 传输协议 |
|
|
114
|
+
| `实验性` | 试探性修改,可能会被撤销 | 试验新的上下文管理策略 |
|
|
135
115
|
|
|
136
116
|
> **修改 vs 魔改判断标准**:问"这个修改是否改变了框架对其他组件的**契约**?" 不改变契约 = 修改,改变契约 = 魔改。
|
|
137
117
|
|
|
138
118
|
---
|
|
139
119
|
|
|
140
|
-
## PATEOAS 导航
|
|
141
|
-
|
|
142
|
-
```markdown
|
|
143
|
-
### 下一步行动
|
|
144
|
-
|
|
145
|
-
1. [ ] 如查询知识 → 读取 `references/` 中对应文档回答用户
|
|
146
|
-
2. [ ] 如框架变更 → 走 Step 0-6 完整流程
|
|
147
|
-
3. [ ] 变更完成后 → 运行 `npm run build` 验证(如涉及代码)
|
|
148
|
-
4. [ ] 使用 `/pm` 或 `/worker {task_id}` 继续后续任务
|
|
149
|
-
|
|
150
|
-
### 状态快照
|
|
151
|
-
|
|
152
|
-
- 当前阶段:FRAMEWORK_EVOLVE
|
|
153
|
-
- 变更状态:{知识查询 / 已应用 / 已拒绝}
|
|
154
|
-
- 变更文件数:{n} 个
|
|
155
|
-
- 风险等级:{低/中/高}
|
|
156
|
-
- 迭代记录:{已生成/不适用}
|
|
157
|
-
- 知识库自更新:{已完成/不适用}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
120
|
## 硬约束
|
|
161
121
|
|
|
162
122
|
- **必须经用户确认门**:禁止绕过确认直接修改框架文件
|
|
@@ -25,27 +25,45 @@
|
|
|
25
25
|
├── design/ ← 设计文档(AI ↔ 用户)
|
|
26
26
|
├── guides/ ← 使用指南(AI → 用户)
|
|
27
27
|
├── notes/ ← 临时文档(用户 ↔ AI)
|
|
28
|
-
└── archive/ ←
|
|
29
|
-
|
|
30
|
-
packages/ ← 可编程层
|
|
31
|
-
└── mcp-server/ ← MCP Server(TypeScript)
|
|
28
|
+
└── archive/ ← 归档
|
|
32
29
|
```
|
|
33
30
|
|
|
31
|
+
> 用户通过 npm 包获得编译后的 MCP Server(TypeScript → JavaScript),源码位于开发工作区的 `packages/mcp-server/`。
|
|
32
|
+
|
|
34
33
|
## 约束分层体系(五级优先级)
|
|
35
34
|
|
|
36
35
|
高层覆盖低层,冲突时上报用户:
|
|
37
36
|
|
|
38
|
-
| 层级 | 类型
|
|
39
|
-
|
|
40
|
-
| 1
|
|
41
|
-
| 2
|
|
42
|
-
| 3
|
|
43
|
-
| 4
|
|
44
|
-
| 5
|
|
37
|
+
| 层级 | 类型 | 约束性 | 说明 |
|
|
38
|
+
| ---- | -------- | ------ | ---------------------------------------- |
|
|
39
|
+
| 1 | Rules | 硬约束 | 反幻觉、编码规范 — 始终生效,不可覆盖 |
|
|
40
|
+
| 2 | Skills | 硬约束 | TDD 流程、验证标记 — 角色激活时生效 |
|
|
41
|
+
| 3 | MCP | 硬约束 | 状态机校验、Evidence Gate — 可编程硬约束 |
|
|
42
|
+
| 4 | PM 判断 | 软约束 | 约束集、任务指令 — 可由用户裁决调整 |
|
|
43
|
+
| 5 | 用户偏好 | 软约束 | 个人习惯 — 可被上层覆盖 |
|
|
45
44
|
|
|
46
45
|
## 角色系统
|
|
47
46
|
|
|
48
|
-
| 角色
|
|
49
|
-
|
|
50
|
-
| PM
|
|
51
|
-
| Worker | `/worker` | 按约束集执行任务、自检产出
|
|
47
|
+
| 角色 | 触发方式 | 职责 |
|
|
48
|
+
| ------ | -------------- | ---------------------------- |
|
|
49
|
+
| PM | `/pm` | 需求沟通、任务管理、验收审批 |
|
|
50
|
+
| Worker | `/worker T001` | 按约束集执行任务、自检产出 |
|
|
51
|
+
|
|
52
|
+
## 文档沉淀管道
|
|
53
|
+
|
|
54
|
+
会话中产生的 Artifacts(热记忆)通过 PM 审核后沉淀到 `.docs/`(持久文档空间):
|
|
55
|
+
|
|
56
|
+
| 来源 | 沉淀目标 | 触发时机 |
|
|
57
|
+
| ------------------------ | --------------------------------- | ----------------------------- |
|
|
58
|
+
| `implementation_plan.md` | `.docs/design/` | `pm-brainstorm` 完成时 |
|
|
59
|
+
| `walkthrough.md` | `.docs/notes/` 或 `.docs/guides/` | `pm-task-review` Stage 3 |
|
|
60
|
+
| 分析报告等 | `.docs/notes/` 或 `.docs/design/` | `common-session-close` Step 4 |
|
|
61
|
+
|
|
62
|
+
## 升级机制
|
|
63
|
+
|
|
64
|
+
框架通过 **Manifest 驱动的智能合并**升级:
|
|
65
|
+
|
|
66
|
+
- `easyai-manifest.json` 记录 skeleton 中所有框架文件的 SHA-256 哈希
|
|
67
|
+
- 升级时只替换未被用户修改的框架文件
|
|
68
|
+
- 用户自定义的 Skills/Rules/Workflows 不会被覆盖
|
|
69
|
+
- 被用户修改过的框架文件生成 `.new` 冲突文件,由用户决策
|
|
@@ -14,73 +14,75 @@
|
|
|
14
14
|
|
|
15
15
|
### `rules/` — 规则注入
|
|
16
16
|
|
|
17
|
-
| 文件
|
|
18
|
-
|
|
19
|
-
| `project-identity.md`
|
|
20
|
-
| `anti-hallucination.md` | 🦴
|
|
21
|
-
| `coding-standards.md`
|
|
22
|
-
| `framework-dev-mode.md` | 🔧
|
|
17
|
+
| 文件 | 分类 | 职责 |
|
|
18
|
+
| ----------------------- | ---- | --------------------------------- |
|
|
19
|
+
| `project-identity.md` | 🦴 | 项目身份声明、框架地图、约束分层 |
|
|
20
|
+
| `anti-hallucination.md` | 🦴 | 反幻觉约束、检索优先级 |
|
|
21
|
+
| `coding-standards.md` | 🦴 | 编码规范 |
|
|
22
|
+
| `framework-dev-mode.md` | 🔧 | 框架开发模式(不同步到 skeleton) |
|
|
23
23
|
|
|
24
24
|
### `workflows/` — 角色入口
|
|
25
25
|
|
|
26
|
-
| 文件
|
|
27
|
-
|
|
28
|
-
| `pm.md`
|
|
29
|
-
| `worker.md`
|
|
30
|
-
| `publish.md` | 🔧
|
|
26
|
+
| 文件 | 分类 | 职责 |
|
|
27
|
+
| ------------ | ---- | --------------------------------- |
|
|
28
|
+
| `pm.md` | 🦴 | PM 角色入口(`/pm` 触发) |
|
|
29
|
+
| `worker.md` | 🦴 | Worker 角色入口(`/worker` 触发) |
|
|
30
|
+
| `publish.md` | 🔧 | 发布工作流(不同步到 skeleton) |
|
|
31
31
|
|
|
32
32
|
### `skills/` — 能力模块
|
|
33
33
|
|
|
34
|
-
所有 Skill 目录均为 🦴
|
|
34
|
+
所有 Skill 目录均为 🦴 骨架文件(10 个):
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
37
|
skills/
|
|
38
|
-
├── common-session-close/ # 会话收尾
|
|
39
|
-
├── common-spec-update/ # 规范更新
|
|
40
|
-
├── pm-brainstorm/ # 需求发散
|
|
41
|
-
├── pm-framework-evolve/ # 框架自迭代(含 references/ resources/ changelog/)
|
|
42
38
|
├── pm-session-start/ # 会话启动
|
|
39
|
+
├── pm-brainstorm/ # 需求发散
|
|
43
40
|
├── pm-task-planning/ # 任务规划
|
|
44
41
|
├── pm-task-review/ # 任务验收
|
|
42
|
+
├── pm-framework-evolve/ # 框架自迭代(含 references/ resources/ changelog/)
|
|
43
|
+
├── worker-implement/ # 执行者实现
|
|
45
44
|
├── worker-check/ # 执行者自检
|
|
46
45
|
├── worker-debug/ # 系统性调试
|
|
47
|
-
|
|
46
|
+
├── common-session-close/ # 会话收尾
|
|
47
|
+
└── common-spec-update/ # 规范更新
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
52
|
## `.trellis/` — 数据持久层
|
|
53
53
|
|
|
54
|
-
| 路径
|
|
55
|
-
|
|
56
|
-
| `config/config.yaml`
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
54
|
+
| 路径 | 分类 | 职责 |
|
|
55
|
+
| -------------------------- | ------- | --------------------------------- |
|
|
56
|
+
| `config/config.yaml` | 🦴 | 框架配置 |
|
|
57
|
+
| `config/context-budget.md` | 🦴 | 上下文预算配置 |
|
|
58
|
+
| `spec/` | 🦴 + 🏃 | 项目规范(骨架预设 + 运行时扩展) |
|
|
59
|
+
| `spec/spec-schema.json` | 🦴 | 规范文件 JSON Schema |
|
|
60
|
+
| `tasks/` | 🏃 | 任务文件(AI 动态创建) |
|
|
61
|
+
| `tasks/archive/` | 🏃 | 已归档任务 |
|
|
62
|
+
| `workspace/journal.md` | 🏃 | 会话日志 |
|
|
61
63
|
|
|
62
64
|
---
|
|
63
65
|
|
|
64
66
|
## `.docs/` — 用户文档空间
|
|
65
67
|
|
|
66
|
-
| 路径
|
|
67
|
-
|
|
68
|
-
| `README.md`
|
|
69
|
-
| `requirements/` | 🦴 + 🏃 |
|
|
70
|
-
| `design/`
|
|
71
|
-
| `guides/`
|
|
72
|
-
| `notes/`
|
|
73
|
-
| `archive/`
|
|
68
|
+
| 路径 | 分类 | 信息方向 | 职责 |
|
|
69
|
+
| --------------- | ------- | --------- | ------------ |
|
|
70
|
+
| `README.md` | 🦴 | — | 文档空间说明 |
|
|
71
|
+
| `requirements/` | 🦴 + 🏃 | 用户 → AI | 需求文档 |
|
|
72
|
+
| `design/` | 🦴 + 🏃 | AI ↔ 用户 | 设计文档 |
|
|
73
|
+
| `guides/` | 🦴 + 🏃 | AI → 用户 | 使用指南 |
|
|
74
|
+
| `notes/` | 🦴 + 🏃 | 用户 ↔ AI | 临时文档 |
|
|
75
|
+
| `archive/` | 🦴 + 🏃 | — | 文档归档 |
|
|
74
76
|
|
|
75
77
|
---
|
|
76
78
|
|
|
77
|
-
##
|
|
79
|
+
## MCP Server — 可编程层
|
|
78
80
|
|
|
79
|
-
|
|
80
|
-
|------|------|------|
|
|
81
|
-
| `src/index.ts` | 🔧 | MCP Server 入口(TypeScript 源码) |
|
|
82
|
-
| `src/tools/` | 🔧 | 14+ 个 MCP Tool 实现 |
|
|
83
|
-
| `src/resources/` | 🔧 | 5 个 MCP Resource 实现 |
|
|
84
|
-
| `src/utils/` | 🔧 | 工具函数 |
|
|
81
|
+
> 源码位于 `packages/mcp-server/`(🔧 开发专属)。用户通过 npm 包 `@geeseeker/easyai-dev` 获得编译后的 JavaScript 版本。
|
|
85
82
|
|
|
86
|
-
|
|
83
|
+
| 路径 | 内容 |
|
|
84
|
+
| ---------------- | --------------------------------------------------- |
|
|
85
|
+
| `src/index.ts` | MCP Server 入口 |
|
|
86
|
+
| `src/tools/` | 16 个文件,注册 21 个 Tools |
|
|
87
|
+
| `src/resources/` | 5 个文件,注册 6 个 Resources |
|
|
88
|
+
| `src/utils/` | 工具函数(task-utils, git-utils, journal-utils 等) |
|
|
@@ -2,75 +2,116 @@
|
|
|
2
2
|
|
|
3
3
|
> 本文档是框架知识库的一部分,供 AI 在框架自迭代时参考。
|
|
4
4
|
|
|
5
|
-
## Skills
|
|
5
|
+
## Skills(10 个能力模块)
|
|
6
6
|
|
|
7
|
-
### PM
|
|
7
|
+
### PM 专属(5 个)
|
|
8
8
|
|
|
9
|
-
| Skill
|
|
10
|
-
|
|
11
|
-
| `pm-
|
|
12
|
-
| `pm-
|
|
13
|
-
| `pm-task-planning`
|
|
14
|
-
| `pm-task-review`
|
|
15
|
-
| `pm-framework-evolve` | 需要修改框架文件或查询框架知识时 | 框架百科 + 安全迭代 +
|
|
9
|
+
| Skill | 触发条件 | 职责 |
|
|
10
|
+
| --------------------- | -------------------------------- | --------------------------------------------------- |
|
|
11
|
+
| `pm-session-start` | `/pm` 触发后 | 自动读取项目状态、恢复任务上下文、加载最新日志 |
|
|
12
|
+
| `pm-brainstorm` | PM 接收到用户新需求时 | 苏格拉底式需求发散,将用户想法转化为完整设计 |
|
|
13
|
+
| `pm-task-planning` | PM 完成需求澄清后 | 将设计文档转化为约束集格式的任务定义 |
|
|
14
|
+
| `pm-task-review` | PM 审查执行者提交的任务时 | 三阶段验收(Spec 合规 → 代码质量 → Artifacts 沉淀) |
|
|
15
|
+
| `pm-framework-evolve` | 需要修改框架文件或查询框架知识时 | 框架百科 + 安全迭代 + 知识库自更新 |
|
|
16
16
|
|
|
17
|
-
### Worker
|
|
17
|
+
### Worker 专属(3 个)
|
|
18
18
|
|
|
19
|
-
| Skill
|
|
20
|
-
|
|
21
|
-
| `worker-implement` | Worker 开始实现任务时
|
|
22
|
-
| `worker-check`
|
|
23
|
-
| `worker-debug`
|
|
19
|
+
| Skill | 触发条件 | 职责 |
|
|
20
|
+
| ------------------ | ------------------------- | ---------------------------------- |
|
|
21
|
+
| `worker-implement` | Worker 开始实现任务时 | TDD 铁律驱动的编码流程 |
|
|
22
|
+
| `worker-check` | `worker-implement` 完成后 | 强制验证流程,生成 verification.md |
|
|
23
|
+
| `worker-debug` | 遇到 Bug、测试失败时 | 4 阶段根因分析 + 3 次失败上报 PM |
|
|
24
24
|
|
|
25
|
-
###
|
|
25
|
+
### 通用(2 个)
|
|
26
26
|
|
|
27
|
-
| Skill
|
|
28
|
-
|
|
29
|
-
| `common-session-close` |
|
|
30
|
-
| `common-spec-update`
|
|
27
|
+
| Skill | 触发条件 | 职责 |
|
|
28
|
+
| ---------------------- | --------------------------------------------- | ------------------------------------------ |
|
|
29
|
+
| `common-session-close` | 用户说「收工」/ 会话结束 / 上下文预算接近阈值 | 汇总工作、写入 journal、Artifacts 沉淀检查 |
|
|
30
|
+
| `common-spec-update` | 需要更新 `.trellis/spec/` 时 | 安全地更新项目规范文件 |
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
|
-
## Rules
|
|
34
|
+
## Rules(3 个骨架 + 1 个开发专属)
|
|
35
35
|
|
|
36
|
-
| Rule
|
|
37
|
-
|
|
38
|
-
| `project-identity.md`
|
|
39
|
-
| `anti-hallucination.md` | 反幻觉约束 — 第三方库必须先查文档、禁止模糊措辞、RPI 阶段隔离 |
|
|
40
|
-
| `coding-standards.md`
|
|
41
|
-
| `framework-dev-mode.md` | 框架开发模式 —
|
|
36
|
+
| Rule | 作用 | 分类 |
|
|
37
|
+
| ----------------------- | ------------------------------------------------------------- | ----------- |
|
|
38
|
+
| `project-identity.md` | 项目身份声明 — 框架地图、角色系统、约束分层、冲突解决 | 🦴 骨架 |
|
|
39
|
+
| `anti-hallucination.md` | 反幻觉约束 — 第三方库必须先查文档、禁止模糊措辞、RPI 阶段隔离 | 🦴 骨架 |
|
|
40
|
+
| `coding-standards.md` | 编码规范 — 命名、格式、注释标准 | 🦴 骨架 |
|
|
41
|
+
| `framework-dev-mode.md` | 框架开发模式 — 三层版本流转、PM 使用本 Skill 的方式 | 🔧 开发专属 |
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
|
-
## MCP Tools
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
|
68
|
-
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
45
|
+
## MCP Tools(21 个)
|
|
46
|
+
|
|
47
|
+
### 任务管理(6 个)
|
|
48
|
+
|
|
49
|
+
| Tool | 功能 |
|
|
50
|
+
| ----------------- | ------------------------------------- |
|
|
51
|
+
| `task_create` | 创建新任务 |
|
|
52
|
+
| `task_get` | 获取任务详情(含冻结上下文快照) |
|
|
53
|
+
| `task_list` | 列出所有任务(支持状态过滤) |
|
|
54
|
+
| `task_transition` | 任务状态流转(含 Evidence Gate 校验) |
|
|
55
|
+
| `task_cancel` | 取消任务 |
|
|
56
|
+
| `task_append_log` | 追加任务执行记录 |
|
|
57
|
+
|
|
58
|
+
### 子任务(2 个)
|
|
59
|
+
|
|
60
|
+
| Tool | 功能 |
|
|
61
|
+
| -------------------------- | ------------------------------------------ |
|
|
62
|
+
| `subtask_create` | 创建子任务(支持 DAG 依赖声明 + 循环检测) |
|
|
63
|
+
| `subtask_dependency_graph` | 获取子任务依赖图 |
|
|
64
|
+
|
|
65
|
+
### 日志(2 个)
|
|
66
|
+
|
|
67
|
+
| Tool | 功能 |
|
|
68
|
+
| ---------------- | ----------------------------------------- |
|
|
69
|
+
| `journal_append` | 写入 journal 日志 |
|
|
70
|
+
| `journal_search` | 搜索 journal 记录(按标签、关键词、日期) |
|
|
71
|
+
|
|
72
|
+
### 上下文管理(2 个)
|
|
73
|
+
|
|
74
|
+
| Tool | 功能 |
|
|
75
|
+
| ------------------ | --------------------------------------------------------- |
|
|
76
|
+
| `context_budget` | 估算当前 Token 消耗(超 60% 建议降级,超 80% 建议新会话) |
|
|
77
|
+
| `context_generate` | 生成 context.jsonl 推荐清单 |
|
|
78
|
+
|
|
79
|
+
### 质量保障(3 个)
|
|
80
|
+
|
|
81
|
+
| Tool | 功能 |
|
|
82
|
+
| ---------------- | ------------------------------------------- |
|
|
83
|
+
| `plan_validate` | 反面模式自检(多方案未选择、推迟决策等) |
|
|
84
|
+
| `spec_validate` | 规范文件格式校验(必须字段、SemVer 版本号) |
|
|
85
|
+
| `conflict_check` | 文件范围冲突检测(Glob 模式匹配) |
|
|
86
|
+
|
|
87
|
+
### 框架管理(3 个)
|
|
88
|
+
|
|
89
|
+
| Tool | 功能 |
|
|
90
|
+
| ------------------ | ------------------------- |
|
|
91
|
+
| `framework_init` | 初始化框架到项目 |
|
|
92
|
+
| `framework_check` | 检查框架完整性 |
|
|
93
|
+
| `framework_update` | Manifest 驱动智能合并升级 |
|
|
94
|
+
|
|
95
|
+
### Git Worktree(3 个)
|
|
96
|
+
|
|
97
|
+
| Tool | 功能 |
|
|
98
|
+
| ------------------ | ------------------------------------------- |
|
|
99
|
+
| `worktree_create` | 为任务创建 Git worktree(并行任务物理隔离) |
|
|
100
|
+
| `worktree_merge` | 将 worktree 分支合并回目标分支 |
|
|
101
|
+
| `worktree_cleanup` | 清理 worktree 及其分支 |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## MCP Resources(6 个)
|
|
106
|
+
|
|
107
|
+
| Resource URI | 功能 |
|
|
108
|
+
| -------------------------------------- | --------------------------------- |
|
|
109
|
+
| `trellis://status` | 项目状态概览(Git + 任务 + 日志) |
|
|
110
|
+
| `trellis://journal/latest` | 最新 journal 日志 |
|
|
111
|
+
| `spec://{category}/{name}` | 项目规范文件 |
|
|
112
|
+
| `trellis://tasks/{task_id}/context` | 任务上下文(含冻结快照) |
|
|
113
|
+
| `trellis://subtasks/{task_id}/context` | 子任务依赖上下文 |
|
|
114
|
+
| `trellis://tasks/{task_id}/frozen` | 冻结的 spec 快照(Phase-Frozen) |
|
|
74
115
|
|
|
75
116
|
---
|
|
76
117
|
|
|
@@ -78,8 +119,8 @@
|
|
|
78
119
|
|
|
79
120
|
```mermaid
|
|
80
121
|
graph TD
|
|
81
|
-
PM[PM 角色] -->
|
|
82
|
-
PM -->
|
|
122
|
+
PM[PM 角色] --> SS[pm-session-start]
|
|
123
|
+
PM --> BS[pm-brainstorm]
|
|
83
124
|
PM --> TP[pm-task-planning]
|
|
84
125
|
PM --> TR[pm-task-review]
|
|
85
126
|
PM --> FE[pm-framework-evolve]
|
|
@@ -92,7 +133,8 @@ graph TD
|
|
|
92
133
|
TP -->|创建任务| WI
|
|
93
134
|
WI -->|验证完成| WC
|
|
94
135
|
WC -->|提交验收| TR
|
|
136
|
+
TR -->|Artifacts 沉淀| SC[common-session-close]
|
|
95
137
|
|
|
96
|
-
SC
|
|
138
|
+
SC --- PM
|
|
97
139
|
SC --- W
|
|
98
140
|
```
|
|
@@ -11,17 +11,16 @@
|
|
|
11
11
|
|
|
12
12
|
## 查看迭代历史
|
|
13
13
|
|
|
14
|
-
1. **
|
|
14
|
+
1. **CHANGELOG.md**:发布目录中的版本更新记录
|
|
15
15
|
2. **GitHub Releases**:仓库 Releases 页面
|
|
16
|
-
3.
|
|
16
|
+
3. **Git log**:`git log --oneline -20`
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## 贡献方式
|
|
19
19
|
|
|
20
20
|
1. **Issue**:在 GitHub 仓库提交 Issue 描述问题或建议
|
|
21
21
|
2. **Pull Request**:Fork 后提交 PR
|
|
22
|
-
3. **框架内部迭代**:通过 `pm-framework-evolve` Skill 进行安全迭代
|
|
23
22
|
|
|
24
23
|
## 开发者信息
|
|
25
24
|
|
|
26
25
|
- **作者**:GeeSeeker
|
|
27
|
-
-
|
|
26
|
+
- **许可证**:MIT
|
|
@@ -4,29 +4,36 @@
|
|
|
4
4
|
|
|
5
5
|
## 安装方式
|
|
6
6
|
|
|
7
|
-
### 方式 1
|
|
7
|
+
### 方式 1:让 AI 帮你安装(推荐)
|
|
8
|
+
|
|
9
|
+
复制以下文字到 Antigravity 对话框:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
请帮我安装 easyAI 框架。
|
|
13
|
+
安装指南:https://raw.githubusercontent.com/GeeSeeker/easyAI-dev/main/README_AI.md
|
|
14
|
+
请读取这份指南,按步骤自动完成配置。
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 方式 2:命令行安装
|
|
8
18
|
|
|
9
19
|
```bash
|
|
10
20
|
# 新项目
|
|
11
|
-
npx @geeseeker/easyai-dev init
|
|
21
|
+
npx @geeseeker/easyai-dev init my-project
|
|
12
22
|
|
|
13
23
|
# 已有项目(不覆盖 README.md,合并 .gitignore)
|
|
14
|
-
|
|
24
|
+
cd your-project
|
|
25
|
+
npx @geeseeker/easyai-dev init .
|
|
15
26
|
```
|
|
16
27
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
配置 AI IDE 的 MCP Server 后,AI 可通过 `framework_init` tool 自动安装:
|
|
28
|
+
然后在 Antigravity IDE 的 MCP 设置中添加:
|
|
20
29
|
|
|
21
30
|
```json
|
|
22
31
|
{
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
"EASYAI_PROJECT_ROOT": "/path/to/project"
|
|
29
|
-
}
|
|
32
|
+
"easyai-mcp-server": {
|
|
33
|
+
"command": "npx",
|
|
34
|
+
"args": ["-y", "@geeseeker/easyai-dev", "serve"],
|
|
35
|
+
"env": {
|
|
36
|
+
"EASYAI_PROJECT_ROOT": "/path/to/your/project"
|
|
30
37
|
}
|
|
31
38
|
}
|
|
32
39
|
}
|
|
@@ -41,12 +48,13 @@ project/
|
|
|
41
48
|
│ ├── workflows/ # PM + Worker 入口
|
|
42
49
|
│ └── skills/ # 10 个能力模块
|
|
43
50
|
├── .trellis/ # 数据持久层
|
|
44
|
-
│ ├── config/ # config.yaml
|
|
51
|
+
│ ├── config/ # config.yaml + context-budget.md
|
|
45
52
|
│ ├── spec/ # 项目规范
|
|
46
53
|
│ ├── tasks/ # 任务目录
|
|
47
54
|
│ └── workspace/ # journal
|
|
48
55
|
├── .docs/ # 用户文档空间(5 个子文件夹)
|
|
49
|
-
|
|
56
|
+
├── .easyai-version # 版本标记文件
|
|
57
|
+
└── .easyai-manifest.json # 框架文件清单(用于智能升级)
|
|
50
58
|
```
|
|
51
59
|
|
|
52
60
|
## 版本管理
|
|
@@ -54,7 +62,8 @@ project/
|
|
|
54
62
|
- **版本标记**:`.easyai-version` 文件记录当前安装版本
|
|
55
63
|
- **检查更新**:`npx @geeseeker/easyai-dev check` 或 MCP `framework_check` tool
|
|
56
64
|
- **执行更新**:`npx @geeseeker/easyai-dev update` 或 MCP `framework_update` tool
|
|
57
|
-
-
|
|
65
|
+
- **智能合并**:Manifest 驱动 — 只更新框架文件,保护用户自定义内容(自定义 Skills/Rules/Workflows 不被覆盖)
|
|
66
|
+
- **冲突处理**:用户修改过的框架文件生成 `.new` 冲突文件,由用户手动合并
|
|
58
67
|
|
|
59
68
|
## npm 包信息
|
|
60
69
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.0.
|
|
3
|
-
"generatedAt": "2026-03-
|
|
2
|
+
"version": "3.0.8",
|
|
3
|
+
"generatedAt": "2026-03-12T14:27:05.309Z",
|
|
4
4
|
"files": {
|
|
5
5
|
".agents/rules/anti-hallucination.md": {
|
|
6
6
|
"hash": "0d18aafe1cdacf5db0e71eb06c559ab01df9deebb99804ad514930cc7d59c749"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"hash": "42f56e40168cd2528b72a7d99e862be806e1af0a89e609b51fdad42cb8c06758"
|
|
13
13
|
},
|
|
14
14
|
".agents/skills/common-session-close/SKILL.md": {
|
|
15
|
-
"hash": "
|
|
15
|
+
"hash": "81703e51dc2fed75145a808018351c7799ad0a8f347524366055f633182c1977"
|
|
16
16
|
},
|
|
17
17
|
".agents/skills/common-spec-update/SKILL.md": {
|
|
18
18
|
"hash": "cca0e3176a235d5a2b33f419e80b4e35409e377b915de14a8cd35283eb980630"
|
|
@@ -21,25 +21,25 @@
|
|
|
21
21
|
"hash": "56091ee907d737a6d9301198909b3ad6d4b6c51b77c1836226e247bef68516f5"
|
|
22
22
|
},
|
|
23
23
|
".agents/skills/pm-framework-evolve/SKILL.md": {
|
|
24
|
-
"hash": "
|
|
24
|
+
"hash": "4c8253069ba2b7303060b8c2adc28487ed7c433b54ed48e55a4c90cfa65c52c6"
|
|
25
25
|
},
|
|
26
26
|
".agents/skills/pm-framework-evolve/changelog/index.md": {
|
|
27
27
|
"hash": "3f307c523ed8d80845cf575e4d1f53958d34d326bf548eef8a720c190f35c85d"
|
|
28
28
|
},
|
|
29
29
|
".agents/skills/pm-framework-evolve/references/architecture.md": {
|
|
30
|
-
"hash": "
|
|
30
|
+
"hash": "d70dbc52236cf36a57b5837663d5b9e3833c6a15405c7b1e378d24a67a28f755"
|
|
31
31
|
},
|
|
32
32
|
".agents/skills/pm-framework-evolve/references/directory-map.md": {
|
|
33
|
-
"hash": "
|
|
33
|
+
"hash": "e774508317279821ef20cf6e4116ba9f3bfc07123db94337e609f07b95732d31"
|
|
34
34
|
},
|
|
35
35
|
".agents/skills/pm-framework-evolve/references/features.md": {
|
|
36
|
-
"hash": "
|
|
36
|
+
"hash": "c965cd4a08c9c05f30f2cb294c879ce75481cb7a8183cd1f13b45938a1d1a798"
|
|
37
37
|
},
|
|
38
38
|
".agents/skills/pm-framework-evolve/references/github-info.md": {
|
|
39
|
-
"hash": "
|
|
39
|
+
"hash": "b2e367ecbaa2c7064ad448bbadb1ed0dc0d70a5be0409205974cba6518e585ba"
|
|
40
40
|
},
|
|
41
41
|
".agents/skills/pm-framework-evolve/references/installation.md": {
|
|
42
|
-
"hash": "
|
|
42
|
+
"hash": "c5d52b2ee2ba7167dd4be5cc7ed8ca61e4a32249e4568fa779f2f139c78ca8f1"
|
|
43
43
|
},
|
|
44
44
|
".agents/skills/pm-framework-evolve/resources/changelog-entry-template.md": {
|
|
45
45
|
"hash": "801ae16c13edcf6f6efefeecb91e74ebf269e73841d2c8db4e4e5de81143fe7c"
|