@geminilight/mindos 0.5.7 → 0.5.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.
Files changed (67) hide show
  1. package/README.md +18 -17
  2. package/README_zh.md +15 -14
  3. package/app/app/api/mcp/agents/route.ts +7 -0
  4. package/app/app/api/mcp/install-skill/route.ts +7 -1
  5. package/app/app/api/setup/check-port/route.ts +27 -3
  6. package/app/app/api/setup/route.ts +2 -9
  7. package/app/app/globals.css +18 -2
  8. package/app/app/login/page.tsx +1 -1
  9. package/app/app/view/[...path]/ViewPageClient.tsx +9 -9
  10. package/app/components/AskModal.tsx +1 -1
  11. package/app/components/FileTree.tsx +5 -5
  12. package/app/components/HomeContent.tsx +1 -1
  13. package/app/components/SetupWizard.tsx +283 -141
  14. package/app/components/SyncStatusBar.tsx +3 -3
  15. package/app/components/ask/MessageList.tsx +2 -2
  16. package/app/components/ask/SessionHistory.tsx +1 -1
  17. package/app/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +5 -5
  18. package/app/components/renderers/config/ConfigRenderer.tsx +3 -3
  19. package/app/components/renderers/csv/types.ts +1 -1
  20. package/app/components/renderers/diff/DiffRenderer.tsx +9 -9
  21. package/app/components/renderers/timeline/TimelineRenderer.tsx +1 -1
  22. package/app/components/renderers/workflow/WorkflowRenderer.tsx +2 -2
  23. package/app/components/settings/McpTab.tsx +66 -24
  24. package/app/components/settings/Primitives.tsx +3 -3
  25. package/app/components/settings/SyncTab.tsx +5 -5
  26. package/app/lib/i18n.ts +48 -4
  27. package/app/lib/mcp-agents.ts +81 -10
  28. package/bin/lib/build.js +25 -0
  29. package/bin/lib/gateway.js +44 -4
  30. package/bin/lib/mcp-agents.js +81 -0
  31. package/bin/lib/mcp-install.js +34 -4
  32. package/package.json +13 -1
  33. package/scripts/setup.js +43 -6
  34. package/skills/project-wiki/SKILL.md +223 -0
  35. package/skills/project-wiki/assets/api-reference.tmpl.md +49 -0
  36. package/skills/project-wiki/assets/backlog.tmpl.md +15 -0
  37. package/skills/project-wiki/assets/changelog.tmpl.md +16 -0
  38. package/skills/project-wiki/assets/conventions.tmpl.md +29 -0
  39. package/skills/project-wiki/assets/design-exploration.tmpl.md +26 -0
  40. package/skills/project-wiki/assets/design-principle.tmpl.md +48 -0
  41. package/skills/project-wiki/assets/development-guide.tmpl.md +38 -0
  42. package/skills/project-wiki/assets/glossary.tmpl.md +9 -0
  43. package/skills/project-wiki/assets/known-pitfalls.tmpl.md +21 -0
  44. package/skills/project-wiki/assets/postmortem.tmpl.md +38 -0
  45. package/skills/project-wiki/assets/product-proposal.tmpl.md +41 -0
  46. package/skills/project-wiki/assets/project-roadmap.tmpl.md +23 -0
  47. package/skills/project-wiki/assets/stage-x.tmpl.md +78 -0
  48. package/skills/project-wiki/assets/system-architecture.tmpl.md +62 -0
  49. package/skills/project-wiki/references/file-reference.md +254 -0
  50. package/skills/project-wiki/references/writing-guide.md +28 -0
  51. package/app/data/pages/home-dark.png +0 -0
  52. package/app/data/pages/home-mobile-crop.png +0 -0
  53. package/app/data/pages/home-mobile.png +0 -0
  54. package/app/data/pages/home.png +0 -0
  55. package/app/data/pages/view-dir.png +0 -0
  56. package/app/data/pages/view-file-bot.png +0 -0
  57. package/app/data/pages/view-file-dark-crop.png +0 -0
  58. package/app/data/pages/view-file-dark.png +0 -0
  59. package/app/data/pages/view-file-mobile.png +0 -0
  60. package/app/data/pages/view-file-sm.png +0 -0
  61. package/app/data/pages/view-file-top.png +0 -0
  62. package/app/data/pages/view-file.png +0 -0
  63. package/app/eslint.config.mjs +0 -18
  64. package/app/public/landing/index.html +0 -353
  65. package/app/public/landing/style.css +0 -216
  66. package/app/vitest.config.ts +0 -14
  67. package/assets/demo-flow-zh.html +0 -622
@@ -0,0 +1,223 @@
1
+ ---
2
+ name: project-wiki
3
+ description: "组织和维护 Vibe Coding 项目的 wiki 文档体系。当用户要求初始化/重构 wiki 结构、进入新项目且 wiki/ 不存在、或需要诊断和修复文档腐化时触发。"
4
+ ---
5
+
6
+ # Project Wiki Skill
7
+
8
+ 为 Vibe Coding 项目(人类描述意图,Agent 写代码)生成和维护结构化 wiki。wiki 是 Agent 的输入物料,直接决定输出质量。
9
+
10
+ ---
11
+
12
+ ## 执行流程
13
+
14
+ ### 初始化(wiki/ 不存在或为空)
15
+
16
+ 1. **扫描** `wiki/` 目录,列出已有文件
17
+ 2. **对照必要文件清单**(见下方"文件体系"),识别缺失项
18
+ 3. **与用户确认**将要创建的文件列表
19
+ 4. **生成骨架**:从本 Skill 的 `assets/` 目录读取对应模板,填入用户上下文(不确定的部分留 `<!-- TODO: ... -->` 占位)
20
+ 5. **更新导航**:如已有 `01-project-roadmap.md`,追加新阶段索引行
21
+ 6. **标记新鲜度**:每个生成的文件头部加 `<!-- Last verified: YYYY-MM-DD | Current stage: X -->`
22
+ 7. **注入维护规则**:检查项目 `CLAUDE.md` 中是否已有 wiki 维护规则。已有则跳过或合并差异;没有则**追加**(不替换整个文件)
23
+
24
+ ### 重构 / 更新(wiki/ 已有文件)
25
+
26
+ 1. **扫描** `wiki/` 下所有文件,检查编号前缀、新鲜度标记
27
+ 2. **诊断**:缺编号前缀?信息重叠?文件过大需拆分?已完结 stage 未归档?内容与代码不一致?
28
+ 3. **生成改动清单**(重命名 / 合并 / 拆分 / 归档 / 更新内容),与用户确认
29
+ 4. **执行改动**
30
+ 5. **验证一致性**:文件间引用链接有效、roadmap 索引与实际文件对应
31
+ 6. **检查维护规则**:确认项目 `CLAUDE.md` 中已有 wiki 维护规则,缺失则追加(不替换整个文件)
32
+
33
+ ---
34
+
35
+ ## 文件体系
36
+
37
+ ### 核心模型:Why / What / How / Look × 全局 / 阶段
38
+
39
+ | | 全局(稳定,新阶段才改) | 阶段(增量更新) |
40
+ |---|---|---|
41
+ | **Why** | `00-product-proposal.md` | — |
42
+ | **What** | `01-project-roadmap.md` — 功能索引 | `1X-stage-X.md` — 设计决策 |
43
+ | **How** | `02-system-architecture.md` — 架构 + 类型 | `1X-stage-X.md` — API、数据模型、受影响文件 |
44
+ | **API** | `04-api-reference.md` — 完整 API 参考 | `1X-stage-X.md` — 新增 API 的设计决策 |
45
+ | **Look** | `03-design-principle.md` — 视觉语言 | — |
46
+
47
+ **关键规则:** stage 文件同时包含 What 和 How。一个功能的设计决策、API 契约、数据模型放在一个文件里。全局文件只做索引和导航,不重复 stage 的细节。
48
+
49
+ ### 规划层级
50
+
51
+ | | Roadmap (`01`) | Backlog (`85`) |
52
+ |---|---|---|
53
+ | 时间跨度 | 月 / 季度级 | 周 / 迭代级 |
54
+ | 粒度 | 方向、里程碑、大功能 | 具体任务、bug、小需求 |
55
+ | 回答 | 我们要去哪里? | 下一步做什么? |
56
+
57
+ **使用时机:** 开始任务前先对照 roadmap 确认阶段匹配,再从 backlog 取具体任务执行。任务完成后在 backlog 打勾,发版时从已完成条目整理写入 changelog。
58
+
59
+ ### 必要文件(第一梯队)
60
+
61
+ | 编号 | 文件 | 写给谁 | 核心内容 |
62
+ |------|------|--------|---------|
63
+ | 00 | `product-proposal.md` | Agent + 你 | 产品愿景、产品定位、**不做什么**、目标用户、功能矩阵、路线图叙事 |
64
+ | 01 | `project-roadmap.md` | Agent + 你 | 阶段总览表、全量功能索引(功能×状态×stage链接)、里程碑 |
65
+ | 02 | `system-architecture.md` | Agent | 技术栈、目录结构、数据流、核心类型、环境变量(300-500 行) |
66
+
67
+ ### 按需文件(第二梯队)
68
+
69
+ | 编号 | 文件 | 何时需要 |
70
+ |------|------|---------|
71
+ | 03 | `design-principle.md` | 有自定义视觉语言时(非默认 UI 库样式) |
72
+ | 04 | `api-reference.md` | API 超过 5 条路由,或 stage 归档后仍需查 API 细节 |
73
+ | 05 | `glossary.md` | 项目有领域术语,Agent 容易用错词或混用近义词 |
74
+ | 06 | `conventions.md` | 有明确的编码偏好/约束(库选择、命名、错误处理模式等) |
75
+ | 1X | `stage-X.md` | 功能复杂度超过一句话能说清(150-300 行) |
76
+ | — | `task-spec-xxx.md` | 小功能 / 改进点的 spec,包含需求描述和验收标准;实现完成后归档或合并进对应 stage 文件 |
77
+ | 80 | `known-pitfalls.md` | 踩坑即记,不等阶段结束 |
78
+ | 81 | `development-guide.md` | 有非显而易见的配置要求时 |
79
+ | 82 | `postmortem-*.md` | 多个 bug 互相关联、暴露系统性问题时(单点问题用 pitfalls,系统性问题用 postmortem) |
80
+ | 84 | `design-exploration.md` | 有 UI 设计探索、原型记录等创意过程产物时 |
81
+ | 85 | `backlog.md` | 有临时 bug、技术债、改进想法需要追踪时 |
82
+ | 8X | `external-*.md` | 依赖外部系统私有数据格式时 |
83
+ | 90 | `changelog.md` | 发版时从 `85-backlog.md` 已完成条目整理写入,面向用户描述变更,不记内部实现细节 |
84
+
85
+ > 每个文件的详细说明和"为什么需要"的论证见 `references/file-reference.md`。
86
+
87
+ ### 目录结构与编号规范
88
+
89
+ ```
90
+ wiki/
91
+ ├── 00-product-proposal.md # Why
92
+ ├── 01-project-roadmap.md # What(全局索引)
93
+ ├── 02-system-architecture.md # How(全局)
94
+ ├── 03-design-principle.md # Look(全局)
95
+ ├── 04-api-reference.md # API(全局)
96
+ ├── 05-glossary.md # 术语表(有领域术语时)
97
+ ├── 06-conventions.md # 编码约定(有明确偏好时)
98
+ ├── 10-stage-a.md # 阶段文件
99
+ ├── 11-stage-b.md
100
+ ├── ...
101
+ ├── 80-known-pitfalls.md # 辅助参考
102
+ ├── 81-development-guide.md
103
+ ├── 82-postmortem-*.md # 系统性问题复盘(多 bug 关联时)
104
+ ├── 84-design-exploration.md # 设计探索/原型记录(有 UI 探索时)
105
+ ├── 85-backlog.md # Bug、技术债、改进想法
106
+ ├── 90-changelog.md # 日志
107
+ └── archive/ # 已完结阶段归档
108
+ ```
109
+
110
+ | 区段 | 用途 |
111
+ |------|------|
112
+ | `00-09` | 全局文件,按阅读优先级排列 |
113
+ | `10-79` | 阶段文件,按时间递增 |
114
+ | `80-89` | 辅助参考文件 |
115
+ | `90-99` | 日志类文件 |
116
+
117
+ ### Stage 文件生命周期
118
+
119
+ 阶段完全交付且后续阶段不再引用其 API/数据模型时 → 移入 `wiki/archive/`,`01-project-roadmap.md` 中保留索引行并标注 `[archived]`。
120
+
121
+ **归档判断标准:** 同时满足以下两条才归档:① 该 stage 已完结超过一个阶段;② 当前及未来 stage 文件中无对它的跨引用。不确定时保留,宁可冗余不要断链。
122
+
123
+ ---
124
+
125
+ ## Agent 阅读顺序
126
+
127
+ | 场景 | 路径 |
128
+ |------|------|
129
+ | 新对话 / 新功能 | `00-product-proposal` → `02-system-architecture` → 当前 `stage-X` |
130
+ | 修 Bug | `02-system-architecture` → `80-known-pitfalls` → 相关 `stage-X` |
131
+ | 修 Bug(反复出现) | `82-postmortem-*` → `02-system-architecture` → `80-known-pitfalls` → 相关 `stage-X` |
132
+ | UI 调整 | `03-design-principle` → `02-system-architecture`(目录结构)→ 相关组件 |
133
+ | 了解全貌 | `00-product-proposal` → `01-project-roadmap` → `02-system-architecture` |
134
+
135
+ ---
136
+
137
+ ## 文档编写规范
138
+
139
+ 1. **写给 Agent 的文档用结构化格式。** 表格 > 段落,代码块 > 文字描述,类型定义 > 自然语言。
140
+ 2. **写给自己的文档记决策不记细节。** "为什么选 X 不选 Y" > "X 的安装命令"。
141
+ 3. **一个信息只在一个地方维护。** 两处记录同一信息必然不一致。
142
+ 4. **Stage 文件是功能的唯一权威来源。** 全局文件只做索引。
143
+ 5. **标记新鲜度:** `<!-- Last verified: YYYY-MM-DD | Current stage: X | May be outdated after Stage Y -->`
144
+ 6. **宁可不写,不要写了不维护。** 过时文档比没文档更危险。
145
+ 7. **文件间引用用相对路径。** wiki 文件之间互引用 `./XX-filename.md#锚点` 格式,引用源码用 `../server/src/xxx.ts` 格式。
146
+ 8. **追求信息密度,不追求篇幅。** 具体标准:
147
+
148
+ **内容取舍——写什么、不写什么:**
149
+ - 写决策和约束("用 dayjs,因为 moment 已废弃"),不写 Agent 能从源码读到的事实("LoginForm 接受 onSubmit prop")
150
+ - 写跨模块关系("A 通过 WebSocket 推送给 B"),不写模块内部显而易见的逻辑
151
+ - 写"为什么不"("不用 SSR,因为纯内网工具"),当"为什么是"显而易见时不写
152
+
153
+ **表达密度——同一信息用最少字数传达:**
154
+ - 一行表格能说清的,不展开成一段话
155
+ - 不写铺垫句("在这一节中我们将讨论...")、不写总结句("综上所述...")、不复述上下文
156
+ - 每句话删到"再删就丢信息"为止
157
+
158
+ **膨胀信号——出现以下情况说明写多了:**
159
+ - 一个 section 超过 20 行却没有代码块或表格
160
+ - 同一个概念在两个文件中都有段落级展开
161
+ - 读完一段话后能概括成一行表格而不丢失关键信息
162
+
163
+ > 文档维护的投入信号和时机指南见 `references/writing-guide.md`。
164
+
165
+ ---
166
+
167
+ ## 日常维护规则
168
+
169
+ Skill 触发时生成 wiki 结构,但 wiki 的日常同步发生在每次开发对话中。以下规则应在初始化完成后写入项目 `CLAUDE.md`,使 Agent 在正常开发流程中自动维护 wiki,无需反复触发本 skill。
170
+
171
+ 写入 CLAUDE.md 的内容(根据项目实际存在的 wiki 文件裁剪,只保留已创建的文件对应的行):
172
+
173
+ ```markdown
174
+ ## Wiki 维护
175
+
176
+ 开发过程中,以下操作需要同步更新对应 wiki 文件:
177
+
178
+ | 当你做了这件事 | 更新哪个文件 |
179
+ |--------------|------------|
180
+ | 新增/修改 API 路由 | `wiki/04-api-reference.md` 追加或修改对应条目 |
181
+ | 完成一个 stage 的功能 | `wiki/01-project-roadmap.md` 对应行状态改为 ✅ |
182
+ | 遇到非显而易见的坑 | `wiki/80-known-pitfalls.md` 追加一条(现象、原因、解法) |
183
+ | 多个 bug 互相关联、暴露系统性问题 | 新建 `wiki/82-postmortem-*.md`(单点问题用 pitfalls,系统性问题用 postmortem) |
184
+ | 架构变更(新模块、新数据流) | `wiki/02-system-architecture.md` 更新对应章节 |
185
+ | 阶段全部交付 | `wiki/90-changelog.md` 补一笔(从 backlog 已完成条目整理) |
186
+ | 发现 bug / 技术债 / 改进想法 | `wiki/85-backlog.md` 追加一条 |
187
+ | 新增设计 token / 动效 | `wiki/03-design-principle.md` 追加对应条目 |
188
+ | 出现新领域术语 | `wiki/05-glossary.md` 追加定义,防止 Agent 后续用词混乱 |
189
+ | 重命名 / 移动 wiki 文件 | 同步更新所有引用该文件的链接 |
190
+
191
+ **新建文件时机:**
192
+ - 新功能复杂度超过一句话说清 → 新建 `wiki/1X-stage-X.md`
193
+ - 小功能 / 改进点需要 spec → 新建 `wiki/task-spec-xxx.md`(实现完成后归档或合并进 stage 文件)
194
+
195
+ **定期检查(每个阶段开始时):**
196
+ - 扫描 wiki/ 下所有文件,更新 `Last verified` 日期
197
+ - 标出内容可能已过时的章节(加 `<!-- May be outdated -->` 注释)
198
+
199
+ 不需要在每次 commit 时都更新——在功能完成、API 变更、架构调整这些"节点"时同步即可。
200
+ ```
201
+
202
+ ---
203
+
204
+ ## 模板
205
+
206
+ 所有模板位于本 Skill 的 `assets/` 目录。生成文件时读取对应模板,填入项目上下文。
207
+
208
+ | 模板文件 | 对应 wiki 文件 |
209
+ |---------|---------------|
210
+ | `product-proposal.tmpl.md` | `00-product-proposal.md` |
211
+ | `project-roadmap.tmpl.md` | `01-project-roadmap.md` |
212
+ | `system-architecture.tmpl.md` | `02-system-architecture.md` |
213
+ | `design-principle.tmpl.md` | `03-design-principle.md` |
214
+ | `api-reference.tmpl.md` | `04-api-reference.md` |
215
+ | `glossary.tmpl.md` | `05-glossary.md` |
216
+ | `conventions.tmpl.md` | `06-conventions.md` |
217
+ | `stage-x.tmpl.md` | `1X-stage-X.md` |
218
+ | `known-pitfalls.tmpl.md` | `80-known-pitfalls.md` |
219
+ | `development-guide.tmpl.md` | `81-development-guide.md` |
220
+ | `postmortem.tmpl.md` | `82-postmortem-*.md` |
221
+ | `design-exploration.tmpl.md` | `84-design-exploration.md` |
222
+ | `backlog.tmpl.md` | `85-backlog.md` |
223
+ | `changelog.tmpl.md` | `90-changelog.md` |
@@ -0,0 +1,49 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # API 参考
4
+
5
+ > 设计决策见各 stage 文件,本文件只记录活跃 API 的完整契约。
6
+
7
+ ## 概览
8
+
9
+ | 方法 | 路径 | 用途 | 引入阶段 |
10
+ |------|------|------|---------|
11
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
12
+
13
+ ---
14
+
15
+ ## <!-- TODO: API 分组名称 -->
16
+
17
+ ### `METHOD /api/path`
18
+
19
+ <!-- TODO: 一句话说明用途 -->
20
+
21
+ **请求:**
22
+
23
+ | 参数 | 类型 | 必填 | 说明 |
24
+ |------|------|------|------|
25
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
26
+
27
+ ```json
28
+ {
29
+ // <!-- TODO: 请求体示例 -->
30
+ }
31
+ ```
32
+
33
+ **响应:**
34
+
35
+ | 字段 | 类型 | 说明 |
36
+ |------|------|------|
37
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
38
+
39
+ ```json
40
+ {
41
+ // <!-- TODO: 响应体示例 -->
42
+ }
43
+ ```
44
+
45
+ **错误码:**
46
+
47
+ | 状态码 | 含义 |
48
+ |--------|------|
49
+ | <!-- TODO --> | <!-- TODO --> |
@@ -0,0 +1,15 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # Backlog
4
+
5
+ > 临时 bug、技术债、改进想法。解决后移除或转入对应 stage 文件。
6
+
7
+ ## Bug
8
+
9
+ - [ ] <!-- TODO -->
10
+
11
+ ## 技术债
12
+
13
+ ## 改进想法
14
+
15
+ ## 待验证
@@ -0,0 +1,16 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 变更日志
4
+
5
+ ## Stage A — <!-- TODO: 主题 -->
6
+
7
+ **日期:** <!-- TODO: YYYY-MM-DD -->
8
+
9
+ ### 新增
10
+ - <!-- TODO -->
11
+
12
+ ### 变更
13
+ - <!-- TODO -->
14
+
15
+ ### 关键决策
16
+ - <!-- TODO: 为什么这样做 -->
@@ -0,0 +1,29 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 编码约定
4
+
5
+ > 项目级编码偏好和约束。Agent 写代码前参考此文件。
6
+
7
+ ## 库选择
8
+
9
+ | 用途 | 使用 | 不使用 | 原因 |
10
+ |------|------|--------|------|
11
+ | <!-- TODO: e.g., 日期处理 --> | <!-- TODO: e.g., dayjs --> | <!-- TODO: e.g., moment --> | <!-- TODO --> |
12
+
13
+ ## 命名规范
14
+
15
+ | 对象 | 规范 | 示例 |
16
+ |------|------|------|
17
+ | <!-- TODO: e.g., React 组件 --> | <!-- TODO: e.g., PascalCase --> | <!-- TODO: e.g., UserProfile --> |
18
+
19
+ ## 代码模式
20
+
21
+ ### 错误处理
22
+ <!-- TODO: e.g., 统一用 Result 模式 / try-catch + 自定义 Error 类 -->
23
+
24
+ ### 类型约束
25
+ <!-- TODO: e.g., 禁止 any,使用 unknown + 类型守卫 -->
26
+
27
+ ## 禁止项
28
+
29
+ - <!-- TODO: e.g., 不使用 console.log 做日志,统一用 logger -->
@@ -0,0 +1,26 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 设计探索
4
+
5
+ > 记录 UI 设计探索、原型迭代、视觉方案对比等创意过程产物。不追求完整,有就记。
6
+
7
+ ## <!-- TODO: 探索主题 -->
8
+
9
+ ### 背景 / 目标
10
+
11
+ <!-- TODO: 为什么要探索这个方向 -->
12
+
13
+ ### 方案对比
14
+
15
+ | 方案 | 描述 | 优点 | 缺点 |
16
+ |------|------|------|------|
17
+ | A | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
18
+ | B | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
19
+
20
+ ### 最终选择
21
+
22
+ <!-- TODO: 选了哪个、为什么 -->
23
+
24
+ ### 参考 / 截图
25
+
26
+ <!-- TODO: 参考链接、截图路径、灵感来源 -->
@@ -0,0 +1,48 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 设计原则
4
+
5
+ ## 设计哲学
6
+
7
+ <!-- TODO: 一句话定义视觉方向,如"CRT 终端美学"或"极简留白" -->
8
+
9
+ ## 调色板
10
+
11
+ | Token | 值 | 语义用途 |
12
+ |-------|-----|---------|
13
+ | `--primary` | <!-- TODO --> | <!-- TODO --> |
14
+ | `--bg` | <!-- TODO --> | <!-- TODO --> |
15
+ | `--text` | <!-- TODO --> | <!-- TODO --> |
16
+ | `--success` | <!-- TODO --> | 成功状态 |
17
+ | `--warning` | <!-- TODO --> | 警告状态 |
18
+ | `--error` | <!-- TODO --> | 错误状态 |
19
+
20
+ ## 字体系统
21
+
22
+ | 属性 | 值 |
23
+ |------|-----|
24
+ | 字体族 | <!-- TODO --> |
25
+ | 基础字号 | <!-- TODO --> |
26
+ | 字号阶梯 | <!-- TODO: e.g., 12 / 14 / 16 / 20 / 24 / 32 --> |
27
+ | 行高 | <!-- TODO --> |
28
+
29
+ ## 间距与布局
30
+
31
+ | 属性 | 值 |
32
+ |------|-----|
33
+ | 基准单位 | <!-- TODO: e.g., 4px --> |
34
+ | 间距阶梯 | <!-- TODO: e.g., 4 / 8 / 12 / 16 / 24 / 32 / 48 --> |
35
+ | 栅格 | <!-- TODO --> |
36
+ | 响应式断点 | <!-- TODO --> |
37
+
38
+ ## 动效规范
39
+
40
+ | 属性 | 值 |
41
+ |------|-----|
42
+ | 过渡时长 | <!-- TODO: e.g., 150ms / 300ms --> |
43
+ | 缓动函数 | <!-- TODO --> |
44
+ | 关键帧动画 | <!-- TODO --> |
45
+
46
+ ## 组件模式
47
+
48
+ <!-- TODO: 卡片、面板、按钮等的通用视觉约束 -->
@@ -0,0 +1,38 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 开发指南
4
+
5
+ ## 环境要求
6
+
7
+ | 依赖 | 版本 |
8
+ |------|------|
9
+ | <!-- TODO --> | <!-- TODO --> |
10
+
11
+ ## 快速启动
12
+
13
+ ```bash
14
+ # 安装依赖
15
+ <!-- TODO -->
16
+
17
+ # 启动开发环境
18
+ <!-- TODO -->
19
+ ```
20
+
21
+ ## 特殊配置
22
+
23
+ <!-- TODO: 代理地址、特殊环境变量、构建顺序依赖等非显而易见的配置 -->
24
+
25
+ ## 构建与部署
26
+
27
+ ```bash
28
+ # 生产构建
29
+ <!-- TODO -->
30
+
31
+ # 部署
32
+ <!-- TODO -->
33
+ ```
34
+
35
+ ## 常见问题
36
+
37
+ ### <!-- TODO: 问题标题 -->
38
+ <!-- TODO: 解决方法 -->
@@ -0,0 +1,9 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 术语表
4
+
5
+ > 统一项目中的领域术语,防止 Agent 用错词或混用近义词。
6
+
7
+ | 术语 | 定义 | 不要混淆 |
8
+ |------|------|---------|
9
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO: 容易混淆的近义词 --> |
@@ -0,0 +1,21 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 踩坑记录
4
+
5
+ ## API 集成
6
+
7
+ ### <!-- TODO: 现象标题 -->
8
+ - **现象:** <!-- TODO -->
9
+ - **原因:** <!-- TODO -->
10
+ - **解决方案:** <!-- TODO -->
11
+ - **教训:** <!-- TODO: 可迁移到其他模块的规则 -->
12
+
13
+ ## 前端
14
+
15
+ ## 文件系统
16
+
17
+ ## 进程生命周期
18
+
19
+ ## 并发 / 性能
20
+
21
+ ## 构建 / 部署
@@ -0,0 +1,38 @@
1
+ <!-- Last verified: YYYY-MM-DD -->
2
+
3
+ # Postmortem — <!-- TODO: 主题 -->
4
+
5
+ > 多个 bug 互相关联时的深度复盘。单点问题用 `80-known-pitfalls.md`,系统性问题用本文件。
6
+
7
+ ## Bug 时间线
8
+
9
+ | # | 现象 | 根因 | 修复轮次 |
10
+ |---|------|------|---------|
11
+ | 1 | <!-- TODO --> | <!-- TODO --> | 轮次 1 |
12
+
13
+ ## 为什么不断出现
14
+
15
+ <!-- 系统性根因分析,不是重复每个 bug 的技术原因。典型角度:
16
+ - 缺少端到端心智模型(只看局部代码,不画数据流)
17
+ - 组件各自正确但组合出错(接口契约缺失)
18
+ - 测试只覆盖 happy path(遗漏了关键场景组合)
19
+ - 数据来源混乱(运行态 vs 配置态不分)
20
+ -->
21
+
22
+ ### <!-- TODO: 根因 1 标题 -->
23
+
24
+ <!-- TODO -->
25
+
26
+ ## 提炼的设计规则
27
+
28
+ <!-- 从本次事故中提炼的可复用规则,适用于同类模块 -->
29
+
30
+ ### 规则 1: <!-- TODO -->
31
+
32
+ <!-- TODO -->
33
+
34
+ ## Checklist
35
+
36
+ <!-- 以后改这类代码时对照使用 -->
37
+
38
+ - [ ] <!-- TODO -->
@@ -0,0 +1,41 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 产品提案:<!-- TODO: 产品名称 -->
4
+
5
+ <!-- 目标长度:150-200 行。这是 Agent 的行为边界文件,不是完整 PRD。
6
+ 写"不做什么"比"做什么"更重要——它防止 Agent 越界发挥。
7
+ 用户场景、竞品分析、成功指标等 PRD 内容不放在这里。 -->
8
+
9
+ ## 产品愿景
10
+
11
+ <!-- TODO: 2-3 句话。为什么做这个?解决什么根本问题?长期往哪走? -->
12
+
13
+ ## 产品定位
14
+
15
+ <!-- TODO: 一句话说清楚现在做什么 -->
16
+
17
+ ## 不做什么
18
+
19
+ <!-- 这比"做什么"更重要——防止 Agent 越界发挥 -->
20
+
21
+ - <!-- TODO: 明确的边界约束 -->
22
+
23
+ ## 目标用户
24
+
25
+ | 用户角色 | 核心场景 | 当前替代方案 | 痛点 |
26
+ |---------|---------|------------|------|
27
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
28
+
29
+ ## 功能矩阵
30
+
31
+ | 功能 | 解决的问题 | 阶段 | 状态 |
32
+ |------|-----------|------|------|
33
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
34
+
35
+ ## 路线图叙事
36
+
37
+ <!-- 每个阶段 3 行以内:主题、一句话目标、成功标志。详细设计见 stage 文件。 -->
38
+
39
+ ### Stage A — <!-- TODO: 主题 -->
40
+ **目标:** <!-- TODO: 一句话 -->
41
+ **成功标志:** <!-- TODO -->
@@ -0,0 +1,23 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: — -->
2
+
3
+ # 项目路线图
4
+
5
+ ## 阶段总览
6
+
7
+ | 阶段 | 主题 | 状态 | 文件 |
8
+ |------|------|------|------|
9
+ | A | <!-- TODO --> | <!-- ✅ Done / 🚧 In Progress / 📋 Planned --> | [stage-a](./10-stage-a.md) |
10
+
11
+ ## 功能索引
12
+
13
+ ### Stage A — <!-- TODO: 主题 -->
14
+
15
+ | # | 功能 | 状态 | 备注 |
16
+ |---|------|------|------|
17
+ | A1 | <!-- TODO --> | <!-- ✅ / 🚧 / 📋 --> | |
18
+
19
+ ## 里程碑
20
+
21
+ | 日期 | 里程碑 | 状态 |
22
+ |------|--------|------|
23
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
@@ -0,0 +1,78 @@
1
+ <!-- Last verified: YYYY-MM-DD | Current stage: X -->
2
+
3
+ # Stage X — <!-- TODO: 主题 -->
4
+
5
+ ## 功能汇总
6
+
7
+ | # | 功能 | 状态 | 备注 |
8
+ |---|------|------|------|
9
+ | X1 | <!-- TODO --> | <!-- ✅ / 🚧 / 📋 --> | |
10
+
11
+ ---
12
+
13
+ ## X1: <!-- TODO: 功能名称 -->
14
+
15
+ ### 用户场景
16
+
17
+ <!-- TODO: 谁在什么情况下做什么 -->
18
+
19
+ ### 设计决策
20
+
21
+ | 决策点 | 选择 | 原因 | 放弃的方案 |
22
+ |--------|------|------|-----------|
23
+ | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> | <!-- TODO --> |
24
+
25
+ ### 数据流(涉及多组件/多进程交互时必填)
26
+
27
+ <!-- 数据在组件间怎么流:谁写、谁读、什么时机、用什么介质(env / file / API / PID / DB)。
28
+ 关注点:
29
+ - 同一份数据有几个来源?优先级是什么?
30
+ - 写入和读取是否在同一个进程/时间线?
31
+ - 配置变更后,哪些组件需要重新加载?
32
+ -->
33
+
34
+ ```
35
+ <!-- TODO: 用文字或 ASCII 图描述数据流 -->
36
+ ```
37
+
38
+ ### API 契约
39
+
40
+ ```
41
+ METHOD /api/path
42
+ ```
43
+
44
+ **请求:**
45
+ ```json
46
+ {
47
+ // <!-- TODO -->
48
+ }
49
+ ```
50
+
51
+ **响应:**
52
+ ```json
53
+ {
54
+ // <!-- TODO -->
55
+ }
56
+ ```
57
+
58
+ ### 数据模型
59
+
60
+ ```typescript
61
+ // <!-- TODO -->
62
+ ```
63
+
64
+ ### 受影响文件
65
+
66
+ | 文件 | 改动类型 | 说明 |
67
+ |------|---------|------|
68
+ | <!-- TODO --> | 新增 / 修改 | <!-- TODO --> |
69
+
70
+ ### 实现摘要
71
+
72
+ <!-- 功能完成后填写:关键实现细节、与设计的偏差 -->
73
+
74
+ ---
75
+
76
+ ## 遗留项 / Backlog
77
+
78
+ - <!-- TODO -->