@geminilight/mindos 0.1.0

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 (282) hide show
  1. package/.env.local.example +38 -0
  2. package/LICENSE +21 -0
  3. package/README.md +423 -0
  4. package/README_zh.md +423 -0
  5. package/app/README.md +152 -0
  6. package/app/app/api/ask/route.ts +170 -0
  7. package/app/app/api/ask-sessions/route.ts +90 -0
  8. package/app/app/api/auth/route.ts +37 -0
  9. package/app/app/api/backlinks/route.ts +22 -0
  10. package/app/app/api/bootstrap/route.ts +37 -0
  11. package/app/app/api/extract-pdf/route.ts +82 -0
  12. package/app/app/api/file/route.ts +138 -0
  13. package/app/app/api/files/route.ts +12 -0
  14. package/app/app/api/git/route.ts +42 -0
  15. package/app/app/api/graph/route.ts +113 -0
  16. package/app/app/api/recent-files/route.ts +10 -0
  17. package/app/app/api/search/route.ts +17 -0
  18. package/app/app/api/settings/reset-token/route.ts +21 -0
  19. package/app/app/api/settings/route.ts +123 -0
  20. package/app/app/error.tsx +33 -0
  21. package/app/app/globals.css +368 -0
  22. package/app/app/icon.svg +35 -0
  23. package/app/app/layout.tsx +103 -0
  24. package/app/app/login/page.tsx +120 -0
  25. package/app/app/page.tsx +12 -0
  26. package/app/app/view/[...path]/ViewPageClient.tsx +343 -0
  27. package/app/app/view/[...path]/error.tsx +33 -0
  28. package/app/app/view/[...path]/loading.tsx +15 -0
  29. package/app/app/view/[...path]/page.tsx +93 -0
  30. package/app/components/AskFab.tsx +59 -0
  31. package/app/components/AskModal.tsx +398 -0
  32. package/app/components/Backlinks.tsx +75 -0
  33. package/app/components/Breadcrumb.tsx +31 -0
  34. package/app/components/CsvView.tsx +325 -0
  35. package/app/components/DirView.tsx +138 -0
  36. package/app/components/Editor.tsx +124 -0
  37. package/app/components/EditorWrapper.tsx +17 -0
  38. package/app/components/ErrorBoundary.tsx +53 -0
  39. package/app/components/FileTree.tsx +369 -0
  40. package/app/components/HomeContent.tsx +262 -0
  41. package/app/components/JsonView.tsx +27 -0
  42. package/app/components/MarkdownEditor.tsx +95 -0
  43. package/app/components/MarkdownView.tsx +118 -0
  44. package/app/components/SearchModal.tsx +193 -0
  45. package/app/components/SettingsModal.tsx +237 -0
  46. package/app/components/Sidebar.tsx +136 -0
  47. package/app/components/SidebarLayout.tsx +36 -0
  48. package/app/components/TableOfContents.tsx +150 -0
  49. package/app/components/ThemeToggle.tsx +34 -0
  50. package/app/components/WysiwygEditor.tsx +75 -0
  51. package/app/components/ask/FileChip.tsx +30 -0
  52. package/app/components/ask/MentionPopover.tsx +52 -0
  53. package/app/components/ask/MessageList.tsx +126 -0
  54. package/app/components/ask/SessionHistory.tsx +49 -0
  55. package/app/components/renderers/AgentInspectorRenderer.tsx +277 -0
  56. package/app/components/renderers/BacklinksRenderer.tsx +147 -0
  57. package/app/components/renderers/ConfigRenderer.tsx +236 -0
  58. package/app/components/renderers/CsvRenderer.tsx +77 -0
  59. package/app/components/renderers/DiffRenderer.tsx +310 -0
  60. package/app/components/renderers/GraphRenderer.tsx +428 -0
  61. package/app/components/renderers/SummaryRenderer.tsx +251 -0
  62. package/app/components/renderers/TimelineRenderer.tsx +213 -0
  63. package/app/components/renderers/TodoRenderer.tsx +474 -0
  64. package/app/components/renderers/WorkflowRenderer.tsx +404 -0
  65. package/app/components/renderers/csv/BoardView.tsx +146 -0
  66. package/app/components/renderers/csv/ConfigPanel.tsx +117 -0
  67. package/app/components/renderers/csv/EditableCell.tsx +43 -0
  68. package/app/components/renderers/csv/GalleryView.tsx +40 -0
  69. package/app/components/renderers/csv/TableView.tsx +164 -0
  70. package/app/components/renderers/csv/types.ts +87 -0
  71. package/app/components/settings/AiTab.tsx +111 -0
  72. package/app/components/settings/AppearanceTab.tsx +101 -0
  73. package/app/components/settings/KnowledgeTab.tsx +157 -0
  74. package/app/components/settings/PluginsTab.tsx +82 -0
  75. package/app/components/settings/Primitives.tsx +60 -0
  76. package/app/components/settings/ShortcutsTab.tsx +22 -0
  77. package/app/components/settings/types.ts +41 -0
  78. package/app/components/ui/button.tsx +60 -0
  79. package/app/components/ui/dialog.tsx +157 -0
  80. package/app/components/ui/input.tsx +20 -0
  81. package/app/components/ui/scroll-area.tsx +55 -0
  82. package/app/components/ui/toggle.tsx +44 -0
  83. package/app/components/ui/tooltip.tsx +66 -0
  84. package/app/components.json +25 -0
  85. package/app/data/pages/home-dark.png +0 -0
  86. package/app/data/pages/home-mobile-crop.png +0 -0
  87. package/app/data/pages/home-mobile.png +0 -0
  88. package/app/data/pages/home.png +0 -0
  89. package/app/data/pages/view-dir.png +0 -0
  90. package/app/data/pages/view-file-bot.png +0 -0
  91. package/app/data/pages/view-file-dark-crop.png +0 -0
  92. package/app/data/pages/view-file-dark.png +0 -0
  93. package/app/data/pages/view-file-mobile.png +0 -0
  94. package/app/data/pages/view-file-sm.png +0 -0
  95. package/app/data/pages/view-file-top.png +0 -0
  96. package/app/data/pages/view-file.png +0 -0
  97. package/app/eslint.config.mjs +18 -0
  98. package/app/hooks/useAskSession.ts +181 -0
  99. package/app/hooks/useFileUpload.ts +126 -0
  100. package/app/hooks/useMention.ts +65 -0
  101. package/app/lib/LocaleContext.tsx +40 -0
  102. package/app/lib/actions.ts +40 -0
  103. package/app/lib/agent/index.ts +3 -0
  104. package/app/lib/agent/model.ts +18 -0
  105. package/app/lib/agent/prompt.ts +32 -0
  106. package/app/lib/agent/tools.ts +151 -0
  107. package/app/lib/api.ts +55 -0
  108. package/app/lib/core/backlinks.ts +40 -0
  109. package/app/lib/core/csv.ts +28 -0
  110. package/app/lib/core/fs-ops.ts +118 -0
  111. package/app/lib/core/git.ts +50 -0
  112. package/app/lib/core/index.ts +58 -0
  113. package/app/lib/core/lines.ts +89 -0
  114. package/app/lib/core/search.ts +79 -0
  115. package/app/lib/core/security.ts +43 -0
  116. package/app/lib/core/tree.ts +113 -0
  117. package/app/lib/core/types.ts +40 -0
  118. package/app/lib/fs.ts +467 -0
  119. package/app/lib/i18n.ts +300 -0
  120. package/app/lib/jwt.ts +58 -0
  121. package/app/lib/renderers/index.ts +79 -0
  122. package/app/lib/renderers/registry.ts +70 -0
  123. package/app/lib/settings.ts +150 -0
  124. package/app/lib/types.ts +32 -0
  125. package/app/lib/utils.ts +34 -0
  126. package/app/next-env.d.ts +6 -0
  127. package/app/next.config.ts +10 -0
  128. package/app/package-lock.json +15306 -0
  129. package/app/package.json +71 -0
  130. package/app/postcss.config.mjs +7 -0
  131. package/app/proxy.ts +64 -0
  132. package/app/public/file.svg +1 -0
  133. package/app/public/globe.svg +1 -0
  134. package/app/public/landing/index.html +353 -0
  135. package/app/public/landing/style.css +216 -0
  136. package/app/public/logo-square.svg +37 -0
  137. package/app/public/logo.svg +37 -0
  138. package/app/public/next.svg +1 -0
  139. package/app/public/vercel.svg +1 -0
  140. package/app/public/window.svg +1 -0
  141. package/app/scripts/extract-pdf.cjs +56 -0
  142. package/app/tsconfig.json +34 -0
  143. package/app/vitest.config.ts +14 -0
  144. package/assets/demo-flow-zh.html +622 -0
  145. package/assets/images/demo-flow-dark.png +0 -0
  146. package/assets/images/demo-flow-light.png +0 -0
  147. package/assets/images/demo-flow-zh-dark.png +0 -0
  148. package/assets/images/demo-flow-zh-light.png +0 -0
  149. package/assets/images/gui-sync-cv.png +0 -0
  150. package/assets/logo-square.svg +37 -0
  151. package/bin/cli.js +894 -0
  152. package/mcp/README.md +113 -0
  153. package/mcp/package-lock.json +1717 -0
  154. package/mcp/package.json +18 -0
  155. package/mcp/src/index.ts +494 -0
  156. package/mcp/tsconfig.json +13 -0
  157. package/package.json +49 -0
  158. package/scripts/setup.js +675 -0
  159. package/scripts/upgrade-prompt.md +147 -0
  160. package/skills/mindos/SKILL.md +319 -0
  161. package/skills/mindos-zh/SKILL.md +318 -0
  162. package/templates/README.md +31 -0
  163. package/templates/empty/CHANGELOG.md +9 -0
  164. package/templates/empty/CONFIG.json +197 -0
  165. package/templates/empty/CONFIG.md +73 -0
  166. package/templates/empty/INSTRUCTION.md +177 -0
  167. package/templates/empty/README.md +27 -0
  168. package/templates/en/CHANGELOG.md +9 -0
  169. package/templates/en/CONFIG.json +197 -0
  170. package/templates/en/CONFIG.md +73 -0
  171. package/templates/en/INSTRUCTION.md +177 -0
  172. package/templates/en/README.md +27 -0
  173. package/templates/en/TODO.md +13 -0
  174. package/templates/en//360/237/221/244 Profile/INSTRUCTION.md" +21 -0
  175. package/templates/en//360/237/221/244 Profile/README.md" +15 -0
  176. package/templates/en//360/237/221/244 Profile//342/232/231/357/270/217 Preferences.md" +21 -0
  177. package/templates/en//360/237/221/244 Profile//360/237/216/257 Focus.md" +31 -0
  178. package/templates/en//360/237/221/244 Profile//360/237/221/244 Identity.md" +22 -0
  179. package/templates/en//360/237/223/232 Resources/INSTRUCTION.md" +29 -0
  180. package/templates/en//360/237/223/232 Resources/README.md" +21 -0
  181. package/templates/en//360/237/223/232 Resources//360/237/247/276 AI Influencers.csv" +1 -0
  182. package/templates/en//360/237/223/232 Resources//360/237/247/276 AI Products.csv" +1 -0
  183. package/templates/en//360/237/223/232 Resources//360/237/247/276 AI Scholars.csv" +1 -0
  184. package/templates/en//360/237/223/232 Resources//360/237/247/276 AI Tools.csv" +1 -0
  185. package/templates/en//360/237/223/235 Notes/INSTRUCTION.md" +31 -0
  186. package/templates/en//360/237/223/235 Notes/Ideas/README.md" +8 -0
  187. package/templates/en//360/237/223/235 Notes/Ideas//360/237/247/252_example_product_idea.md" +16 -0
  188. package/templates/en//360/237/223/235 Notes/Inbox/README.md" +8 -0
  189. package/templates/en//360/237/223/235 Notes/Inbox//360/237/247/252_example_quick_capture.md" +14 -0
  190. package/templates/en//360/237/223/235 Notes/Meetings/README.md" +8 -0
  191. package/templates/en//360/237/223/235 Notes/Meetings//360/237/247/252_example_meeting_note.md" +17 -0
  192. package/templates/en//360/237/223/235 Notes/README.md" +24 -0
  193. package/templates/en//360/237/223/235 Notes/Waiting/README.md" +8 -0
  194. package/templates/en//360/237/223/235 Notes/Waiting//360/237/247/252_example_blocked_item.md" +16 -0
  195. package/templates/en//360/237/224/204 Workflows/Configurations/README.md" +3 -0
  196. package/templates/en//360/237/224/204 Workflows/Configurations//360/237/247/252_example_config_update_sop.md" +14 -0
  197. package/templates/en//360/237/224/204 Workflows/INSTRUCTION.md" +21 -0
  198. package/templates/en//360/237/224/204 Workflows/Information/README.md" +16 -0
  199. package/templates/en//360/237/224/204 Workflows/Information//360/237/247/252_example_info_capture_sop.md" +13 -0
  200. package/templates/en//360/237/224/204 Workflows/Media/README.md" +16 -0
  201. package/templates/en//360/237/224/204 Workflows/Media//360/237/247/252_example_content_publish_sop.md" +13 -0
  202. package/templates/en//360/237/224/204 Workflows/README.md" +22 -0
  203. package/templates/en//360/237/224/204 Workflows/Research/README.md" +16 -0
  204. package/templates/en//360/237/224/204 Workflows/Research//360/237/247/252_example_lit_review_sop.md" +16 -0
  205. package/templates/en//360/237/224/204 Workflows/Startup/README.md" +3 -0
  206. package/templates/en//360/237/224/204 Workflows/Startup//360/237/247/252_example_weekly_founder_ops.md" +22 -0
  207. package/templates/en//360/237/224/227 Connections/Classmates/README.md" +11 -0
  208. package/templates/en//360/237/224/227 Connections/Classmates//360/237/247/252_example_leo_chen.md" +16 -0
  209. package/templates/en//360/237/224/227 Connections/Colleagues/README.md" +11 -0
  210. package/templates/en//360/237/224/227 Connections/Colleagues//360/237/247/252_example_ethan_zhao.md" +16 -0
  211. package/templates/en//360/237/224/227 Connections/Connections Overview.csv" +5 -0
  212. package/templates/en//360/237/224/227 Connections/Family/README.md" +11 -0
  213. package/templates/en//360/237/224/227 Connections/Family//360/237/247/252_example_james_wang.md" +16 -0
  214. package/templates/en//360/237/224/227 Connections/Friends/README.md" +11 -0
  215. package/templates/en//360/237/224/227 Connections/Friends//360/237/247/252_example_lily_lin.md" +16 -0
  216. package/templates/en//360/237/224/227 Connections/INSTRUCTION.md" +56 -0
  217. package/templates/en//360/237/224/227 Connections/README.md" +20 -0
  218. package/templates/en//360/237/232/200 Projects/Archived/README.md" +9 -0
  219. package/templates/en//360/237/232/200 Projects/Archived//360/237/247/252_example_archived_project_note.md" +14 -0
  220. package/templates/en//360/237/232/200 Projects/INSTRUCTION.md" +29 -0
  221. package/templates/en//360/237/232/200 Projects/Products/README.md" +16 -0
  222. package/templates/en//360/237/232/200 Projects/Products//360/237/247/252_example_product_project_brief.md" +20 -0
  223. package/templates/en//360/237/232/200 Projects/README.md" +21 -0
  224. package/templates/en//360/237/232/200 Projects/Research/README.md" +16 -0
  225. package/templates/en//360/237/232/200 Projects/Research//360/237/247/252_example_research_project_brief.md" +16 -0
  226. package/templates/template-generation-skill.md +79 -0
  227. package/templates/zh/CHANGELOG.md +9 -0
  228. package/templates/zh/CONFIG.json +197 -0
  229. package/templates/zh/CONFIG.md +66 -0
  230. package/templates/zh/INSTRUCTION.md +177 -0
  231. package/templates/zh/README.md +27 -0
  232. package/templates/zh/TODO.md +13 -0
  233. package/templates/zh//360/237/221/244 /347/224/273/345/203/217/INSTRUCTION.md" +28 -0
  234. package/templates/zh//360/237/221/244 /347/224/273/345/203/217/README.md" +20 -0
  235. package/templates/zh//360/237/221/244 /347/224/273/345/203/217//342/232/231/357/270/217 Preferences.md" +21 -0
  236. package/templates/zh//360/237/221/244 /347/224/273/345/203/217//360/237/216/257 Focus.md" +31 -0
  237. package/templates/zh//360/237/221/244 /347/224/273/345/203/217//360/237/221/244 Identity.md" +22 -0
  238. package/templates/zh//360/237/223/232 /350/265/204/346/272/220/INSTRUCTION.md" +29 -0
  239. package/templates/zh//360/237/223/232 /350/265/204/346/272/220/README.md" +21 -0
  240. package/templates/zh//360/237/223/232 /350/265/204/346/272/220//360/237/247/276 AI Inferencers.csv" +1 -0
  241. package/templates/zh//360/237/223/232 /350/265/204/346/272/220//360/237/247/276 AI /344/272/247/345/223/201.csv" +1 -0
  242. package/templates/zh//360/237/223/232 /350/265/204/346/272/220//360/237/247/276 AI /345/255/246/350/200/205/346/270/205/345/215/225.csv" +1 -0
  243. package/templates/zh//360/237/223/232 /350/265/204/346/272/220//360/237/247/276 AI /345/267/245/345/205/267/346/270/205/345/215/225.csv" +1 -0
  244. package/templates/zh//360/237/223/235 /347/254/224/350/256/260/INSTRUCTION.md" +31 -0
  245. package/templates/zh//360/237/223/235 /347/254/224/350/256/260/README.md" +24 -0
  246. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//344/274/232/350/256/256/README.md" +8 -0
  247. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//344/274/232/350/256/256//360/237/247/252_example_/344/274/232/350/256/256/347/272/252/350/246/201.md" +17 -0
  248. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//345/276/205/345/217/215/351/246/210/README.md" +8 -0
  249. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//345/276/205/345/217/215/351/246/210//360/237/247/252_example_/345/276/205/345/217/215/351/246/210/344/272/213/351/241/271.md" +16 -0
  250. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//346/203/263/346/263/225/README.md" +8 -0
  251. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//346/203/263/346/263/225//360/237/247/252_example_/344/272/247/345/223/201/346/203/263/346/263/225.md" +16 -0
  252. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//346/224/266/344/273/266/347/256/261/README.md" +8 -0
  253. package/templates/zh//360/237/223/235 /347/254/224/350/256/260//346/224/266/344/273/266/347/256/261//360/237/247/252_example_/344/270/264/346/227/266/351/200/237/350/256/260.md" +13 -0
  254. package/templates/zh//360/237/224/204 /346/265/201/347/250/213/INSTRUCTION.md" +29 -0
  255. package/templates/zh//360/237/224/204 /346/265/201/347/250/213/README.md" +21 -0
  256. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//344/277/241/346/201/257/README.md" +16 -0
  257. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//344/277/241/346/201/257//360/237/247/252_example_/344/277/241/346/201/257/351/207/207/351/233/206/346/265/201/347/250/213.md" +13 -0
  258. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//345/252/222/344/275/223/README.md" +16 -0
  259. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//345/252/222/344/275/223//360/237/247/252_example_/345/206/205/345/256/271/345/217/221/345/270/203/346/265/201/347/250/213.md" +13 -0
  260. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//347/247/221/347/240/224/README.md" +16 -0
  261. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//347/247/221/347/240/224//360/237/247/252_example_/346/226/207/347/214/256/347/273/274/350/277/260/346/265/201/347/250/213.md" +16 -0
  262. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//351/205/215/347/275/256/README.md" +3 -0
  263. package/templates/zh//360/237/224/204 /346/265/201/347/250/213//351/205/215/347/275/256//360/237/247/252_example_/351/205/215/347/275/256/346/233/264/346/226/260/346/265/201/347/250/213.md" +26 -0
  264. package/templates/zh//360/237/224/227 /345/205/263/347/263/273/INSTRUCTION.md" +62 -0
  265. package/templates/zh//360/237/224/227 /345/205/263/347/263/273/README.md" +20 -0
  266. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//345/205/263/347/263/273/346/200/273/350/247/210.csv" +5 -0
  267. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//345/220/214/344/272/213/README.md" +11 -0
  268. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//345/220/214/344/272/213//360/237/247/252_example_/345/220/214/344/272/213/350/265/265/344/270/200/350/276/260.md" +16 -0
  269. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//345/220/214/345/255/246/README.md" +11 -0
  270. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//345/220/214/345/255/246//360/237/247/252_example_/345/220/214/345/255/246/351/231/210/347/253/213/346/254/247.md" +16 -0
  271. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//345/256/266/344/272/272/README.md" +11 -0
  272. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//345/256/266/344/272/272//360/237/247/252_example_/345/256/266/344/272/272/347/216/213/345/273/272/345/233/275.md" +16 -0
  273. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//346/234/213/345/217/213/README.md" +11 -0
  274. package/templates/zh//360/237/224/227 /345/205/263/347/263/273//346/234/213/345/217/213//360/237/247/252_example_/346/234/213/345/217/213/346/236/227/345/260/217/344/270/275.md" +16 -0
  275. package/templates/zh//360/237/232/200 /351/241/271/347/233/256/INSTRUCTION.md" +31 -0
  276. package/templates/zh//360/237/232/200 /351/241/271/347/233/256/README.md" +21 -0
  277. package/templates/zh//360/237/232/200 /351/241/271/347/233/256//344/272/247/345/223/201/README.md" +16 -0
  278. package/templates/zh//360/237/232/200 /351/241/271/347/233/256//344/272/247/345/223/201//360/237/247/252_example_/344/272/247/345/223/201/351/241/271/347/233/256/347/256/200/346/212/245.md" +20 -0
  279. package/templates/zh//360/237/232/200 /351/241/271/347/233/256//345/267/262/345/275/222/346/241/243/README.md" +9 -0
  280. package/templates/zh//360/237/232/200 /351/241/271/347/233/256//345/267/262/345/275/222/346/241/243//360/237/247/252_example_/345/275/222/346/241/243/351/241/271/347/233/256/350/256/260/345/275/225.md" +15 -0
  281. package/templates/zh//360/237/232/200 /351/241/271/347/233/256//347/247/221/347/240/224/README.md" +16 -0
  282. package/templates/zh//360/237/232/200 /351/241/271/347/233/256//347/247/221/347/240/224//360/237/247/252_example_/347/247/221/347/240/224/351/241/271/347/233/256/347/256/200/346/212/245.md" +16 -0
@@ -0,0 +1,318 @@
1
+ ---
2
+ name: mindos-zh
3
+ description: >
4
+ MindOS 知识库中文操作指南,用于本地 markdown/csv 知识库上的 Agent 任务。
5
+ 只要任务涉及笔记文件、SOP/工作流文档、Profile/上下文文档、CSV 表、知识库整理、
6
+ 跨 Agent 交接或决策同步,并通过 MindOS MCP 工具执行,就应主动触发。
7
+ 典型请求包括”更新笔记””搜索知识库””整理文件””执行 SOP””按团队标准 review”
8
+ “把任务交接给另一个 Agent””同步决策””追加 CSV””复盘这段对话””提炼关键经验”
9
+ “把复盘结果自适应更新到对应文档””把这些信息路由到对应文件””同步更新所有相关文档”等;
10
+ 即使用户未明确提到 MindOS 也应触发。
11
+ ---
12
+
13
+ # MindOS 知识库操作指南
14
+
15
+ 用于在 MindOS 风格的本地知识库中进行安全、一致、可审计的操作。
16
+
17
+ ## 核心原则
18
+
19
+ - 以仓库当前状态为唯一依据。
20
+ - **bootstrap 加载的目录树是一等语义资产。** 目录名、文件名及其层级结构编码了用户存了什么、如何组织思维。在调用搜索之前,先从这个结构推断内容位置——它往往不需要任何工具调用就能告诉你答案。
21
+ - 写入前先读取。
22
+ - 优先最小化、精确化修改。
23
+ - 变更结果应易于审阅与追踪。
24
+
25
+ ## 启动协议
26
+
27
+ 在进行实质编辑前执行以下流程:
28
+
29
+ 1. 加载根级规则。
30
+ - 优先调用 `mindos_bootstrap`。
31
+ - 若不可用,直接读取根 `INSTRUCTION.md` 与根 `README.md`。
32
+
33
+ 2. 动态发现当前结构。
34
+ - 使用 `mindos_list_files` 与按需 `mindos_search_notes`。
35
+ - 不假设固定一级目录名。
36
+
37
+ 3. 加载目标路径附近的局部规则。
38
+ - 若存在,读取就近 `README.md` / `INSTRUCTION.md`。
39
+ - 优先遵循局部约定,而非全局假设。
40
+
41
+ 4. 再执行编辑。
42
+
43
+ 若关键上下文缺失,按最佳努力继续,并明确写出假设。
44
+
45
+ ## 动态结构规则
46
+
47
+ - 不硬编码”标准目录树”。
48
+ - 创建或重写内容前,先从相邻文件推断约定。
49
+ - 命名、标题结构、CSV 字段顺序、引用格式均优先复用现有模式。
50
+ - 新建文件优先跟随同级风格,不引入新标准。
51
+ - **除非用户明确要求,不在根目录下创建文件或子目录。** 根目录仅保留顶层治理文件(README、INSTRUCTION、CONFIG)。新内容应放在语义最匹配的现有子目录下,从上下文中的目录树推断合适位置。
52
+ - 创建新文件或目录时,先根据现有结构确定最佳父目录。若没有明显匹配的目录,提出 1-2 个候选位置并询问用户后再创建。
53
+ - **文件增删/移动/重命名后,必须同步更新受影响的 README 文件。** README 是目录的索引与导航入口,任何改变目录内容的操作(创建、删除、移动、重命名文件或子目录)都应自动检查并更新对应目录及其父目录的 README,使其准确反映当前结构。这不需要用户提醒——属于结构一致性的基本纪律。
54
+
55
+ ## 写前检查清单
56
+
57
+ 在任何非 trivial 写入前,确认以下检查项:
58
+
59
+ 1. 目标文件或路径已确认,且存在或应当创建。
60
+ 2. **目标位置在合适的子目录下,而非根目录。** 若不确定哪个目录最合适,先提出候选并询问用户。
61
+ 3. 现有内容已读取,或已明确确认不存在。
62
+ 4. 已考虑目标路径附近的治理文档。
63
+ 5. 修改范围最小化,且与用户意图一致。
64
+ 6. 路径变更带来的引用/反链影响已评估。
65
+
66
+ ## 工具选型指南
67
+
68
+ ### 发现
69
+
70
+ - `mindos_bootstrap`:加载启动上下文。
71
+ - `mindos_list_files`:查看文件树。
72
+ - `mindos_search_notes`:按关键词/范围/类型/日期定位文件。**搜索时,第一次就应并行发起多个关键词搜索**——同义词、缩写、中英文变体、更宽/更窄的表述。单一关键词很脆弱,一开始就撒网能避免多轮空搜。
73
+ - `mindos_get_recent`:查看近期活动。
74
+ - `mindos_get_backlinks`:重命名/移动/删除前评估影响。
75
+
76
+ ### 读写
77
+
78
+ - `mindos_read_file`:读取文件内容。
79
+ - `mindos_write_file`:仅在确需整文件替换时使用。
80
+ - `mindos_create_file`:创建 `.md`/`.csv` 文件。
81
+ - `mindos_delete_file`:仅在用户明确意图下删除。
82
+ - `mindos_rename_file`、`mindos_move_file`:结构变更后补做引用检查。
83
+
84
+ ### 精确编辑
85
+
86
+ - `mindos_read_lines`:定位精确行。
87
+ - `mindos_insert_lines`:按索引插入。
88
+ - `mindos_update_lines`:替换指定行区间。
89
+ - `mindos_append_to_file`:文件末尾追加。
90
+ - `mindos_insert_after_heading`:标题后插入。
91
+ - `mindos_update_section`:替换单个 Markdown 章节。
92
+
93
+ ### 历史与表格
94
+
95
+ - `mindos_get_history`、`mindos_get_file_at_version`:追踪/回溯历史。
96
+ - `mindos_append_csv`:读表头校验后追加单行。
97
+
98
+ ## 回退规则
99
+
100
+ - 若部分 `mindos_*` 工具不可用,使用可用等效工具,但保持同样安全纪律。
101
+ - 若 `mindos_bootstrap` 不可用,改为手动读取启动文件。
102
+ - 若缺少行级/章节级工具,用”读取 + 受限重写”方式模拟最小化修改。
103
+ - 若 `mindos_search_notes` 无结果,不要放弃。bootstrap 时加载的目录树已经在你的上下文中——目录名、文件名及其层级结构本身就有丰富的语义,往往足以推断内容可能在哪里。逐步升级:
104
+ 1. 先回顾上下文中已有的目录结构,根据命名、层级与主题相关性推断哪些目录和文件最可能相关。
105
+ 2. 直接读取最可能的候选文件确认内容。
106
+ 3. 若候选不明确,对特定子目录调用 `mindos_list_files` 获取 bootstrap 未覆盖的更细粒度结构。
107
+ 4. 同时尝试替代关键词(同义词、更宽/更窄范围、中英文变体)作为并行策略。
108
+
109
+ ## 执行模式
110
+
111
+ ### 记录或更新笔记
112
+
113
+ 1. 搜索现有文档。
114
+ 2. 读取目标文档与局部规则。
115
+ 3. 执行最小化修改。
116
+ 4. 路径变化时保持引用一致。
117
+
118
+ ### 沉淀跨 Agent 讨论
119
+
120
+ 1. 先请用户确认关键决策与结论。
121
+ 2. 定位目标文档。
122
+ 3. 按“问题、决策、理由、注意事项、后续动作”结构化。
123
+ 4. 用最小侵入方式写回。
124
+
125
+ 不要暗示你可访问其他 Agent 会话的私有历史。
126
+
127
+ ### 对话复盘与自适应更新
128
+
129
+ 1. 先让用户确认本次复盘目标与范围。
130
+ 2. 抽取可复用资产:关键决策、理由、踩坑、未决问题、下一步动作。
131
+ 3. 通过搜索并读取候选文档,将每类资产路由到最合适的现有文件。
132
+ 4. 若命中文档则按章节/行级最小化更新;若无合适文档,再在相邻主题下创建边界清晰的新文件。
133
+ 5. 维护引用与反链一致性,并补一条简短变更说明(改了什么、为什么改)。
134
+ 6. 若路由置信度低,先给出 1-2 个候选目标并请用户确认后再写入。
135
+
136
+ ### 执行或更新 SOP/工作流
137
+
138
+ 1. 完整读取流程文档。
139
+ 2. 分步执行并记录结果。
140
+ 3. 若流程过时,仅修改受影响章节并说明原因。
141
+
142
+ ### CSV 操作
143
+
144
+ 1. 读取表头。
145
+ 2. 校验字段顺序、数量、类型。
146
+ 3. 追加单行。
147
+
148
+ ### 信息收集与外联执行
149
+
150
+ 1. 定位权威联系人/名单来源。
151
+ 2. 读取外联或执行流程文档。
152
+ 3. 基于对象画像标签、领域和语气生成个性化输出。
153
+ 4. 将结果与下一步动作回写,确保可追踪。
154
+
155
+ ### 按个人与团队标准启动项目
156
+
157
+ 1. 读取偏好与上下文文档,例如技术栈、代码风格、约束。
158
+ 2. 读取启动或工程流程文档。
159
+ 3. 产出与标准一致的初始化脚手架和配置。
160
+ 4. 记录关键决策与初始化状态,便于后续接力。
161
+
162
+ ### 按标准执行代码审查
163
+
164
+ 1. 读取适用的审查与工程规范。
165
+ 2. 按命名、错误处理、性能、安全、可维护性进行审查。
166
+ 3. 输出可执行问题清单,并给出具体到文件的建议。
167
+ 4. 保持与团队既有审查风格一致的语气和结构。
168
+
169
+ ### 跨 Agent 接力连续性
170
+
171
+ 1. 将共享知识库视为交接契约。
172
+ 2. 接手前先读取任务状态、决策与待办。
173
+ 3. 无需重复探索,直接延续执行并保持约定与理由。
174
+ 4. 持续回写进度,确保后续会话可立即接手。
175
+
176
+ ### 关系维护与跟进推进
177
+
178
+ 1. 从用户提供的沟通纪要中抽取事实更新、意图与情绪信号。
179
+ 2. 结构化更新对应的人脉或关系记录。
180
+ 3. 生成下一步策略、待办与建议跟进时间。
181
+ 4. 以可复用格式沉淀,保证后续会话可继续执行。
182
+
183
+ ### 结构感知的多文件联动更新
184
+
185
+ 一段非结构化输入(聊天记录、会议纪要、语音转文字、随手 braindump)往往包含分属多个文件的信息。MindOS 在启动时即获取完整目录树与文档间引用关系,因此能将输入拆解后一次性路由到各个目标文件——用户无需手动指定去向。
186
+
187
+ 1. 通过 `mindos_bootstrap` 和 `mindos_list_files` 加载完整知识库结构与拓扑。
188
+ 2. 将输入解析为独立语义单元(事实、决策、想法、行动项、关系更新、新概念等)。
189
+ 3. 为每个单元搜索并读取候选目标文件,按主题、范围和已有结构匹配最佳归属。
190
+ 4. **写入前,先向用户展示路由计划并请求确认。** 用清晰的列表展示:每条信息将写入哪个文件、写在什么位置、为什么放在那里。确认后再执行。
191
+ 5. 在每个目标文件的正确位置(章节、标题或行级)执行最小化编辑;仅当没有合理匹配时才新建文件。
192
+ 6. 若某单元路由置信度低,先给出候选目标并请用户选择。
193
+ 7. 所有写入完成后,汇总"改了什么、在哪里",便于用户一眼审计。
194
+
195
+ 这正是 MindOS 区别于"一次只能改一个文件"的工具的核心:结构先验意味着一次输入即触发跨知识库的协调更新,不遗漏、不错位。
196
+
197
+ ### 知识冲突联动更新
198
+
199
+ 当某个决策、偏好或事实发生变化(如"我们从 Redis 换成了 Memcached"),所有引用旧信息的文档都需一致更新。
200
+
201
+ 1. 搜索整个知识库中引用旧信息的位置(使用多种搜索词,包括缩写和变体)。
202
+ 2. 列出所有受影响文件及具体行/章节。
203
+ 3. 向用户展示完整变更计划:哪些文件、改什么、为什么。
204
+ 4. 用户确认后,逐一最小化更新。
205
+ 5. 更新完成后验证不再有不一致的旧引用。
206
+
207
+ ### 从经验提炼 SOP
208
+
209
+ 当用户刚完成一项复杂任务,想把过程沉淀为可复用的工作流时,创建结构化、通用的 SOP 文档——不只是一次性记录。
210
+
211
+ 1. 从用户描述中提取操作步骤、决策点、前置条件和常见坑。
212
+ 2. 泛化处理:去掉一次性细节,保留可复用模式。
213
+ 3. 在 Workflows/ 或类似目录下找合适位置,检查现有 SOP 模板或同级格式。
214
+ 4. 创建 SOP,包含:前置条件、分步操作、排障/踩坑、相关文档引用。
215
+ 5. 若适用,从相关索引文件链接到新 SOP。
216
+
217
+ ### 周期性回顾与总结
218
+
219
+ 当用户要求 weekly review、月度复盘或进度总结时:
220
+
221
+ 1. 用 `mindos_get_recent` 和/或 `mindos_get_history` 找出相关时间窗口内变动的文件。
222
+ 2. 读取变动文件理解发生了什么。
223
+ 3. 按领域分类(项目、Profile、工作流等)。
224
+ 4. 产出结构化总结:做了什么关键决策、活跃项目进展、待办事项、需关注的问题。
225
+ 5. 询问用户是否要将总结回写为一条 review 记录。
226
+
227
+ ### 基于上下文的问答
228
+
229
+ 当用户问自己的偏好、项目状态、存储的知识等问题时:
230
+
231
+ 1. 从目录树推断哪些文件可能包含答案。
232
+ 2. 读取相关文件——不凭通用知识猜测。
233
+ 3. 回答必须基于实际存储内容,并注明来源文件。
234
+ 4. 若信息不完整或缺失,明确告知,不编造。
235
+
236
+ ### TODO 与任务列表管理
237
+
238
+ 当用户要添加、完成或修改任务时:
239
+
240
+ 1. 定位 TODO 文件或任务列表(搜索或从目录结构导航)。
241
+ 2. 读取当前内容,理解现有格式(复选框、优先级、分类方式)。
242
+ 3. 做最小化定向修改:标记完成、添加新项、更新状态。
243
+ 4. 保留所有其他内容和格式不变。
244
+ 5. 严格遵循现有格式约定——不引入新的任务格式。
245
+
246
+ ### 交接文档合成
247
+
248
+ 当用户需要为他人(新同事、协作者、上级)生成交接或简报文档时:
249
+
250
+ 1. 跨知识库识别该主题的所有相关文件(项目文档、决策记录、状态、技术栈、待办)。
251
+ 2. 逐一读取提取相关信息。
252
+ 3. 合成为一份连贯的交接文档,包含:背景、关键决策与理由、当前状态、待办事项、延伸阅读(附源文件链接)。
253
+ 4. 将交接文档放在对应项目目录下,不放根目录。
254
+
255
+ ### 结构性重命名与移动
256
+
257
+ 重命名或移动文件/目录时:
258
+
259
+ 1. 用 `mindos_get_backlinks` 查找所有引用目标路径的文件。
260
+ 2. 向用户报告影响范围:多少文件受影响、是哪些、引用了什么。
261
+ 3. 确认后再执行。
262
+ 4. 执行重命名/移动。
263
+ 5. 更新所有受影响文件中的断裂引用。
264
+ 6. 验证无遗留的失效链接。
265
+
266
+ ### 目录变更后同步 README
267
+
268
+ 任何影响目录结构的操作(创建、删除、移动、重命名文件或子目录)完成后:
269
+
270
+ 1. 确定受影响的目录:文件原位置所在目录、新位置所在目录、以及它们的父目录。
271
+ 2. 读取每个受影响目录的 README(若存在)。
272
+ 3. 更新 README 中的文件列表/索引/导航,使其准确反映当前目录内容。
273
+ 4. 若 README 中有文件描述或链接,同步更新路径和名称。
274
+ 5. 若目录下没有 README 且同级目录普遍有 README,考虑为新目录创建一个。
275
+
276
+ 此步骤是所有结构变更操作的自动收尾动作,不需要用户单独请求。
277
+
278
+ ## 交互规则
279
+
280
+ - **当请求模糊或范围过大时(如"帮我整理一下"),先问清楚再动手。** 基于知识库现状(近期变动、目录结构)提出具体选项,但不要在理解用户意图和范围之前就开始重组或重写。
281
+ - 展示搜索结果或选项时,优先简洁和相关性,最可能的匹配排前面。
282
+ - 从存储内容回答问题时,始终注明来源文件路径,便于用户验证。
283
+
284
+ ## 安全规则
285
+
286
+ - 默认将根级 `INSTRUCTION.md`、根级 `README.md` 和其他目录下的 `INSTRUCTION.md` 治理文档视为高敏感,先确认再改。
287
+ - 修改高敏感治理文件前先确认。
288
+ - 执行高影响动作前先确认。
289
+ - 高影响动作包括批量删除、大规模重命名/移动、目录大重构、跨文件批量重写。
290
+ - **当操作涉及多个文件时,必须先向用户展示完整的变更计划。** 列出每个目标文件、将做什么修改、为什么。等用户确认后再执行。多文件更新在执行前必须可见、可控。
291
+ - 不写入密钥、Token、密码。
292
+ - 不执行超出用户意图的删除或覆写。
293
+
294
+ ## 持续评估迭代
295
+
296
+ 对重要工作流执行快速迭代闭环:
297
+
298
+ 1. 为当前任务类型定义 2-3 个代表性提示词。
299
+ 2. 依据本 Skill 运行流程。
300
+ 3. 按用户目标、局部约定与安全规则评估结果质量。
301
+ 4. 找到能避免失败模式的最小指令改动。
302
+ 5. 复跑并仅保留“提升稳定性且不过拟合”的改动。
303
+
304
+ ## 质量闸门
305
+
306
+ 在结束前确认:
307
+
308
+ 1. 结果直接回应用户意图。
309
+ 2. 新增或修改内容符合局部风格与结构。
310
+ 3. 结构调整后引用/链接仍有效。
311
+ 4. 未引入敏感信息。
312
+ 5. 给用户的总结足够具体,便于快速审计。
313
+
314
+ ## 风格规则
315
+
316
+ - 遵循仓库局部风格。
317
+ - 文本保持简洁、可执行。
318
+ - 保留标题、清单、表格、引用等有效结构。
@@ -0,0 +1,31 @@
1
+ # templates/
2
+
3
+ MindOS preset templates for initializing your personal knowledge base.
4
+
5
+ ## Presets
6
+
7
+ - `templates/en/`: English preset
8
+ - `templates/zh/`: Chinese preset
9
+
10
+ ## Quick Start
11
+
12
+ Templates are initialized automatically by `mindos onboard` — no manual copy needed.
13
+
14
+ If you need to manually initialize:
15
+
16
+ ```bash
17
+ # 1) Run the setup wizard (recommended)
18
+ mindos onboard
19
+
20
+ # 2) Or copy a preset manually to your knowledge base directory
21
+ cp -r templates/en ~/.mindos/my-mind
22
+ # then set mindRoot in ~/.mindos/config.json
23
+
24
+ # 3) Start filling content from 👤 Profile (en) or 👤 画像 (zh)
25
+ ```
26
+
27
+ ## Notes
28
+
29
+ - `my-mind/` is your private workspace and is git-ignored.
30
+ - Keep preset structure stable so agents can locate files predictably.
31
+ - If you add or rename folders in presets, update docs accordingly.
@@ -0,0 +1,9 @@
1
+ # 📋 CHANGELOG
2
+
3
+ > Log completed items in reverse chronological order.
4
+
5
+ ## YYYY-MM-DD
6
+
7
+ ### Category
8
+
9
+ - Description of completed item
@@ -0,0 +1,197 @@
1
+ {
2
+ "schemaVersion": "1.1",
3
+ "locale": "en",
4
+ "languagePreference": {
5
+ "preferredLanguage": "en",
6
+ "supportedLanguages": [
7
+ {
8
+ "value": "zh",
9
+ "label": "Chinese"
10
+ },
11
+ {
12
+ "value": "en",
13
+ "label": "English"
14
+ }
15
+ ],
16
+ "folderNamingLanguage": "en",
17
+ "contentWritingLanguage": "en",
18
+ "enforceLocalizedNaming": true
19
+ },
20
+ "filename": {
21
+ "emojiPrefixDefault": true,
22
+ "allowEmojiPrefix": true,
23
+ "exampleSuffixSingle": "_example",
24
+ "exampleSuffixCollection": "_examples"
25
+ },
26
+ "structure": {
27
+ "requireFirstLevelReadme": true,
28
+ "recommendFirstLevelInstruction": true
29
+ },
30
+ "document": {
31
+ "title": {
32
+ "emojiEnabled": true,
33
+ "defaultHeadingLevel": 2
34
+ }
35
+ },
36
+ "protocol": {
37
+ "readMode": "config_and_doc",
38
+ "priorityBetweenConfigAndDoc": "none",
39
+ "notes": [
40
+ "CONFIG.json and CONFIG.md must be read together",
41
+ "They are complementary and have no priority relationship"
42
+ ]
43
+ },
44
+ "uiSchema": {
45
+ "version": "1.0",
46
+ "sections": [
47
+ {
48
+ "id": "filename",
49
+ "title": "Filename",
50
+ "description": "Controls naming behavior for generated files",
51
+ "fields": [
52
+ "filename.emojiPrefixDefault",
53
+ "filename.allowEmojiPrefix",
54
+ "filename.exampleSuffixSingle",
55
+ "filename.exampleSuffixCollection"
56
+ ]
57
+ },
58
+ {
59
+ "id": "structure",
60
+ "title": "Structure",
61
+ "description": "Controls directory constraints and locale sync",
62
+ "fields": [
63
+ "structure.requireFirstLevelReadme",
64
+ "structure.recommendFirstLevelInstruction"
65
+ ]
66
+ },
67
+ {
68
+ "id": "document_title",
69
+ "title": "Title Generation",
70
+ "description": "Controls default generation behavior for document titles",
71
+ "fields": [
72
+ "document.title.emojiEnabled",
73
+ "document.title.defaultHeadingLevel"
74
+ ]
75
+ },
76
+ {
77
+ "id": "language_preference",
78
+ "title": "Language Preference",
79
+ "description": "Controls language used for folder naming and generated content writing",
80
+ "fields": [
81
+ "languagePreference.preferredLanguage",
82
+ "languagePreference.folderNamingLanguage",
83
+ "languagePreference.contentWritingLanguage",
84
+ "languagePreference.enforceLocalizedNaming"
85
+ ]
86
+ }
87
+ ]
88
+ },
89
+ "keySpecs": {
90
+ "filename.emojiPrefixDefault": {
91
+ "type": "boolean",
92
+ "control": "switch",
93
+ "label": "Default Emoji Prefix",
94
+ "description": "Whether newly generated filenames should default to emoji prefix"
95
+ },
96
+ "filename.allowEmojiPrefix": {
97
+ "type": "boolean",
98
+ "control": "switch",
99
+ "label": "Allow Emoji Prefix",
100
+ "description": "Whether filenames are allowed to include emoji prefix"
101
+ },
102
+ "filename.exampleSuffixSingle": {
103
+ "type": "string",
104
+ "control": "text",
105
+ "label": "Single Example Suffix",
106
+ "description": "Filename suffix for single example files, default _example"
107
+ },
108
+ "filename.exampleSuffixCollection": {
109
+ "type": "string",
110
+ "control": "text",
111
+ "label": "Example Collection Suffix",
112
+ "description": "Directory suffix for example collections, default _examples"
113
+ },
114
+ "structure.requireFirstLevelReadme": {
115
+ "type": "boolean",
116
+ "control": "switch",
117
+ "label": "Require First-Level README",
118
+ "description": "Each first-level directory under root must include README.md"
119
+ },
120
+ "structure.recommendFirstLevelInstruction": {
121
+ "type": "boolean",
122
+ "control": "switch",
123
+ "label": "Recommend First-Level INSTRUCTION",
124
+ "description": "Whether first-level directories are recommended to include local INSTRUCTION.md"
125
+ },
126
+ "document.title.emojiEnabled": {
127
+ "type": "boolean",
128
+ "control": "switch",
129
+ "label": "Emoji in Title",
130
+ "description": "Whether generated titles allow emoji by default"
131
+ },
132
+ "document.title.defaultHeadingLevel": {
133
+ "type": "integer",
134
+ "control": "number",
135
+ "label": "Default Heading Level",
136
+ "description": "Default Markdown heading level for generated titles",
137
+ "constraints": {
138
+ "min": 1,
139
+ "max": 6
140
+ }
141
+ },
142
+ "languagePreference.preferredLanguage": {
143
+ "type": "enum",
144
+ "control": "select",
145
+ "options": [
146
+ {
147
+ "value": "zh",
148
+ "label": "Chinese"
149
+ },
150
+ {
151
+ "value": "en",
152
+ "label": "English"
153
+ }
154
+ ],
155
+ "label": "Preferred Language",
156
+ "description": "Global language preference for default generation strategy"
157
+ },
158
+ "languagePreference.folderNamingLanguage": {
159
+ "type": "enum",
160
+ "control": "select",
161
+ "options": [
162
+ {
163
+ "value": "zh",
164
+ "label": "Chinese"
165
+ },
166
+ {
167
+ "value": "en",
168
+ "label": "English"
169
+ }
170
+ ],
171
+ "label": "Folder/Filename Language",
172
+ "description": "Controls language for generated folder and filename naming"
173
+ },
174
+ "languagePreference.contentWritingLanguage": {
175
+ "type": "enum",
176
+ "control": "select",
177
+ "options": [
178
+ {
179
+ "value": "zh",
180
+ "label": "Chinese"
181
+ },
182
+ {
183
+ "value": "en",
184
+ "label": "English"
185
+ }
186
+ ],
187
+ "label": "Content Writing Language",
188
+ "description": "Controls language used for generated document content"
189
+ },
190
+ "languagePreference.enforceLocalizedNaming": {
191
+ "type": "boolean",
192
+ "control": "switch",
193
+ "label": "Enforce Localized Naming",
194
+ "description": "When enabled, zh template requires Chinese names and en template requires English names"
195
+ }
196
+ }
197
+ }
@@ -0,0 +1,73 @@
1
+ # CONFIG Guide
2
+
3
+ This file explains template config in human-readable form.
4
+
5
+ ## Scope
6
+
7
+ - Locale scope: `templates/en/`.
8
+ - Related machine-readable file: `templates/en/CONFIG.json`.
9
+
10
+ ## Read Rule
11
+
12
+ - `CONFIG.json` and `CONFIG.md` must be read together.
13
+ - They are complementary and have no priority relationship.
14
+ - JSON provides structured values; MD provides explanatory intent.
15
+
16
+ ## Key Settings
17
+
18
+ ### `languagePreference`
19
+
20
+ - `preferredLanguage`: global language preference
21
+ - `supportedLanguages`: selectable language options
22
+ - `folderNamingLanguage`: language used for folder/filename generation
23
+ - `contentWritingLanguage`: language used for generated writing content
24
+ - `enforceLocalizedNaming`: whether localized naming is enforced (en template defaults to English naming)
25
+
26
+ ### `filename`
27
+
28
+ - `emojiPrefixDefault`: whether new filenames default to emoji prefix
29
+ - `allowEmojiPrefix`: whether emoji prefix is allowed in filenames
30
+ - `exampleSuffixSingle`: suffix for single example files (default `_example`)
31
+ - `exampleSuffixCollection`: suffix for example collection folders (default `_examples`)
32
+
33
+ ### `structure`
34
+
35
+ - `requireFirstLevelReadme`: whether first-level directories must include `README.md`
36
+ - `recommendFirstLevelInstruction`: whether first-level directories are recommended to include `INSTRUCTION.md`
37
+
38
+ ### `document.title`
39
+
40
+ - `emojiEnabled`: whether generated titles allow emoji by default
41
+ - `defaultHeadingLevel`: default heading level for generated titles (currently `2`)
42
+
43
+ ### `protocol`
44
+
45
+ - `readMode`: config read mode
46
+ - `priorityBetweenConfigAndDoc`: relationship between config values and docs (`none` means no priority)
47
+ - `notes`: protocol notes
48
+
49
+ ## Directory Naming and Level Rules (Semantic Layer in CONFIG.md)
50
+
51
+ These rules are directory naming semantics, documented in `CONFIG.md`:
52
+
53
+ - First-level directories (direct children of project root) default to `emoji + name`.
54
+ - Second-level and deeper directories default to no emoji.
55
+ - Directory naming language is controlled by `languagePreference.folderNamingLanguage`.
56
+ - Whether content filenames use emoji prefix is controlled by `filename.*`.
57
+
58
+ Current template convention (en):
59
+
60
+ - First-level examples: `👤 Profile/`, `📝 Notes/`, `🔗 Connections/`, `🔄 Workflows/`, `📚 Resources/`, `🚀 Projects/`
61
+ - Second-level examples: `Family/`, `Friends/`, `Classmates/`, `Colleagues/` (no emoji)
62
+
63
+ When naming policy changes:
64
+
65
+ 1. Update semantic rules in `CONFIG.md` first.
66
+ 2. Then sync `README.md`, `INSTRUCTION.md`, and actual directory structure.
67
+
68
+ ## Change Rules
69
+
70
+ 1. Update `templates/en/CONFIG.json` and `templates/zh/CONFIG.json` together when keys change.
71
+ 2. Keep semantic parity across both locales.
72
+ 3. Update both locale `CONFIG.md` files when keys are added/removed/renamed.
73
+ 4. Do not document defaults here that conflict with JSON values.