@geminilight/mindos 0.5.7 → 0.5.8

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 (38) hide show
  1. package/README.md +10 -8
  2. package/README_zh.md +7 -5
  3. package/app/app/api/mcp/install-skill/route.ts +1 -1
  4. package/app/lib/mcp-agents.ts +0 -10
  5. package/bin/lib/build.js +25 -0
  6. package/package.json +11 -1
  7. package/skills/project-wiki/SKILL.md +223 -0
  8. package/skills/project-wiki/assets/api-reference.tmpl.md +49 -0
  9. package/skills/project-wiki/assets/backlog.tmpl.md +15 -0
  10. package/skills/project-wiki/assets/changelog.tmpl.md +16 -0
  11. package/skills/project-wiki/assets/conventions.tmpl.md +29 -0
  12. package/skills/project-wiki/assets/design-exploration.tmpl.md +26 -0
  13. package/skills/project-wiki/assets/design-principle.tmpl.md +48 -0
  14. package/skills/project-wiki/assets/development-guide.tmpl.md +38 -0
  15. package/skills/project-wiki/assets/glossary.tmpl.md +9 -0
  16. package/skills/project-wiki/assets/known-pitfalls.tmpl.md +21 -0
  17. package/skills/project-wiki/assets/postmortem.tmpl.md +38 -0
  18. package/skills/project-wiki/assets/product-proposal.tmpl.md +41 -0
  19. package/skills/project-wiki/assets/project-roadmap.tmpl.md +23 -0
  20. package/skills/project-wiki/assets/stage-x.tmpl.md +78 -0
  21. package/skills/project-wiki/assets/system-architecture.tmpl.md +62 -0
  22. package/skills/project-wiki/references/file-reference.md +254 -0
  23. package/skills/project-wiki/references/writing-guide.md +28 -0
  24. package/app/data/pages/home-dark.png +0 -0
  25. package/app/data/pages/home-mobile-crop.png +0 -0
  26. package/app/data/pages/home-mobile.png +0 -0
  27. package/app/data/pages/home.png +0 -0
  28. package/app/data/pages/view-dir.png +0 -0
  29. package/app/data/pages/view-file-bot.png +0 -0
  30. package/app/data/pages/view-file-dark-crop.png +0 -0
  31. package/app/data/pages/view-file-dark.png +0 -0
  32. package/app/data/pages/view-file-mobile.png +0 -0
  33. package/app/data/pages/view-file-sm.png +0 -0
  34. package/app/data/pages/view-file-top.png +0 -0
  35. package/app/data/pages/view-file.png +0 -0
  36. package/app/eslint.config.mjs +0 -18
  37. package/app/vitest.config.ts +0 -14
  38. package/assets/demo-flow-zh.html +0 -622
package/README.md CHANGED
@@ -48,21 +48,23 @@ MindOS is a **Human-AI Collaborative Mind System**—a local-first knowledge bas
48
48
  > Help me execute the XXX SOP from MindOS.
49
49
  > ```
50
50
 
51
- ## 🧠 Core Value: Human-AI Shared Mind
51
+ ## 🧠 Human-AI Shared Mind
52
52
 
53
- **1. Global Sync Break Memory Silos**
53
+ > No more fragmented memory, no more black-box behavior, no more lost experience.
54
54
 
55
- Traditional notes are scattered across tools and APIs, so agents miss your real context when it matters. MindOS turns your local knowledge into one MCP-ready source, so every agent can sync your Profile, SOPs, and live working memory.
55
+ **1. Global Sync Breaking Memory Silos**
56
56
 
57
- **2. Transparent and ControllableEliminate Memory Black Boxes**
57
+ Each Agent keeps its own memory — switching tools means manually hauling context. **MindOS lets all Agents share one knowledge base via MCP and Skillsrecord once, reuse everywhere.**
58
58
 
59
- Most assistant memory lives in black boxes, leaving humans unable to inspect or correct how decisions are made. MindOS writes retrieval and execution traces into local plain text, so you can audit, intervene, and improve continuously.
59
+ **2. Transparent & Controllable No More Black Boxes**
60
+
61
+ What did your Agent remember? Is it even correct? You have no way to know. **MindOS saves every read/write as local plain text — humans can audit, correct, and delete in the GUI.**
60
62
 
61
63
  **3. Symbiotic Evolution — Experience Flows Back as Instructions**
62
64
 
63
- Static documents are hard to synchronize and weak as execution systems in real human-agent collaboration. MindOS makes notes agent-ready and reference-linked, so daily writing naturally becomes executable workflows that evolve with you.
65
+ All that experience from your conversations gone the moment you close the window. **MindOS auto-distills conversation experience into Skills/SOPs. Notes are instructions. The knowledge base gets better with use.**
64
66
 
65
- > **Foundation:** Local-first by default - all data stays in local plain text for privacy, ownership, and speed.
67
+ > **Foundation:** Local-first by default all data stays in local plain text for privacy, ownership, and speed.
66
68
 
67
69
  ## ✨ Features
68
70
 
@@ -80,7 +82,7 @@ Static documents are hard to synchronize and weak as execution systems in real h
80
82
 
81
83
  **Infrastructure**
82
84
 
83
- - **Reference Sync**: keep cross-file status and context aligned via links/backlinks.
85
+ - **Security**: Bearer Token auth, path sandboxing, INSTRUCTION.md write-protection, atomic writes.
84
86
  - **Knowledge Graph**: visualize relationships and dependencies across notes.
85
87
  - **Git Time Machine**: track every edit, audit history, and roll back safely.
86
88
  - **Cross-Device Sync**: auto-commit, push, and pull via Git — edits on one device appear on all others within minutes.
package/README_zh.md CHANGED
@@ -48,19 +48,21 @@ MindOS 是一个**人机协同心智系统**——基于本地优先的协作知
48
48
  > 帮我执行 MindOS 里的 XXX 工作流。
49
49
  > ```
50
50
 
51
- ## 🧠 核心价值:人机共享心智
51
+ ## 🧠 人机共享心智
52
+
53
+ > 记忆不再割裂,行为不再黑箱,经验不再断流。
52
54
 
53
55
  **1. 全局同步 — 打破记忆割裂**
54
56
 
55
- 传统笔记分散在不同工具和接口中,Agent 在关键时刻拿不到你的真实上下文。MindOS 把本地知识统一为 MCP 可读的单一来源,让所有 Agent 同步你的 Profile、SOP 与实时记忆。
57
+ 多个 Agent 各记各的,切换工具靠人工搬运上下文。**MindOS 通过 MCP Skill 让所有 Agent 共享同一份知识库——一处记录,全局复用。**
56
58
 
57
59
  **2. 透明可控 — 消除记忆黑箱**
58
60
 
59
- 多数助手记忆封闭在黑箱里,人类难以审查和纠正决策过程。MindOS 将检索与执行轨迹沉淀为本地纯文本,让你可以持续审计、干预与优化。
61
+ Agent 记了什么、记对没有,用户无从知晓。**MindOS 将每次读写沉淀为本地纯文本,人类可在 GUI 中审查、修正、删除。**
60
62
 
61
63
  **3. 共生演进 — 经验回流为指令**
62
64
 
63
- 静态文档难同步,也难在真实人机协作中承担执行系统角色。MindOS 让笔记天然成为 Agent 可执行的指令,通过引用链接组织知识,日常记录自然变成可执行工作流并持续进化。
65
+ 对话里攒下的经验,关掉窗口就散了。**MindOS 自动将对话经验沉淀为 Skill/SOP,笔记即指令,知识库越用越好。**
64
66
 
65
67
  > **底层原则:** 默认本地优先,全部数据以本地纯文本保存,兼顾隐私、主权与性能。
66
68
 
@@ -80,7 +82,7 @@ MindOS 是一个**人机协同心智系统**——基于本地优先的协作知
80
82
 
81
83
  **基础设施**
82
84
 
83
- - **引用同步**:通过引用与反向链接保持跨文件状态一致。
85
+ - **安全防线**:Bearer Token 认证、路径沙箱、INSTRUCTION.md 写保护、原子写入。
84
86
  - **知识图谱**:可视化笔记间关系与依赖。
85
87
  - **Git 时光机**:记录修改历史,支持审计与安全回滚。
86
88
  - **跨设备同步**:通过 Git 自动 commit、push、pull —— 一台设备的编辑几分钟内同步到所有设备。
@@ -15,7 +15,7 @@ const UNIVERSAL_AGENTS = new Set([
15
15
  ]);
16
16
 
17
17
  // Agents that do NOT support Skills at all
18
- const SKILL_UNSUPPORTED = new Set(['claude-desktop']);
18
+ const SKILL_UNSUPPORTED = new Set<string>([]);
19
19
 
20
20
  // MCP agent key → npx skills agent name (for non-universal agents)
21
21
  const AGENT_NAME_MAP: Record<string, string> = {
@@ -29,16 +29,6 @@ export const MCP_AGENTS: Record<string, AgentDef> = {
29
29
  presenceCli: 'claude',
30
30
  presenceDirs: ['~/.claude/'],
31
31
  },
32
- 'claude-desktop': {
33
- name: 'Claude Desktop',
34
- project: null,
35
- global: process.platform === 'darwin'
36
- ? '~/Library/Application Support/Claude/claude_desktop_config.json'
37
- : '~/.config/Claude/claude_desktop_config.json',
38
- key: 'mcpServers',
39
- preferredTransport: 'http',
40
- presenceDirs: ['~/Library/Application Support/Claude/', '~/.config/Claude/'],
41
- },
42
32
  'cursor': {
43
33
  name: 'Cursor',
44
34
  project: '.cursor/mcp.json',
package/bin/lib/build.js CHANGED
@@ -65,6 +65,17 @@ function writeDepsStamp() {
65
65
  }
66
66
  }
67
67
 
68
+ /** Critical packages that must exist after npm install for the app to work. */
69
+ const CRITICAL_DEPS = ['next', '@next/env', 'react', 'react-dom'];
70
+
71
+ function verifyDeps() {
72
+ const nm = resolve(ROOT, 'app', 'node_modules');
73
+ for (const dep of CRITICAL_DEPS) {
74
+ if (!existsSync(resolve(nm, dep, 'package.json'))) return false;
75
+ }
76
+ return true;
77
+ }
78
+
68
79
  export function ensureAppDeps() {
69
80
  const appNext = resolve(ROOT, 'app', 'node_modules', 'next', 'package.json');
70
81
  const needsInstall = !existsSync(appNext) || depsChanged();
@@ -90,5 +101,19 @@ export function ensureAppDeps() {
90
101
  : 'Installing app dependencies (first run)...\n';
91
102
  console.log(yellow(label));
92
103
  run('npm install --prefer-offline --no-workspaces', resolve(ROOT, 'app'));
104
+
105
+ // Verify critical deps — npm tar extraction can silently fail (ENOENT race)
106
+ if (!verifyDeps()) {
107
+ console.log(yellow('Some dependencies are incomplete, retrying with clean install...\n'));
108
+ const nm = resolve(ROOT, 'app', 'node_modules');
109
+ rmSync(nm, { recursive: true, force: true });
110
+ run('npm install --no-workspaces', resolve(ROOT, 'app'));
111
+ if (!verifyDeps()) {
112
+ console.error(red('\n✘ Failed to install dependencies after retry.\n'));
113
+ console.error(' Try manually: cd ' + resolve(ROOT, 'app') + ' && rm -rf node_modules && npm install');
114
+ process.exit(1);
115
+ }
116
+ }
117
+
93
118
  writeDepsStamp();
94
119
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geminilight/mindos",
3
- "version": "0.5.7",
3
+ "version": "0.5.8",
4
4
  "description": "MindOS — Human-Agent Collaborative Mind System. Local-first knowledge base that syncs your mind to all AI Agents via MCP.",
5
5
  "keywords": [
6
6
  "mindos",
@@ -42,6 +42,16 @@
42
42
  "!app/.claude",
43
43
  "!app/__tests__",
44
44
  "!app/**/*.bak",
45
+ "!app/vitest.config.ts",
46
+ "!app/eslint.config.mjs",
47
+ "!app/tsconfig.tsbuildinfo",
48
+ "!app/data/pages",
49
+ "!assets/node_modules",
50
+ "!assets/package-lock.json",
51
+ "!assets/package.json",
52
+ "!assets/capture-demo.mjs",
53
+ "!assets/demo-flow.html",
54
+ "!assets/demo-flow-zh.html",
45
55
  "!mcp/node_modules",
46
56
  "!mcp/dist"
47
57
  ],
@@ -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
+ ## 构建 / 部署