@brainfish-ai/devdoc 0.1.41 → 0.1.43

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 (400) hide show
  1. package/ai-agents/.claude/skills/bootstrap-docs/SKILL.md +710 -79
  2. package/ai-agents/.claude/skills/check-docs/SKILL.md +83 -8
  3. package/ai-agents/.claude/skills/create-doc/SKILL.md +267 -55
  4. package/ai-agents/.claude/skills/update-doc/SKILL.md +162 -63
  5. package/ai-agents/.cursor/rules/devdoc-bootstrap.mdc +145 -15
  6. package/ai-agents/.cursor/rules/devdoc-create.mdc +108 -57
  7. package/ai-agents/.cursor/rules/devdoc-update.mdc +93 -70
  8. package/ai-agents/.cursor/rules/devdoc.mdc +21 -0
  9. package/ai-agents/schemas/docs.schema.json +332 -0
  10. package/ai-agents/schemas/theme.schema.json +243 -0
  11. package/dist/cli/commands/create.js +4 -9
  12. package/dist/cli/commands/deploy.js +50 -25
  13. package/dist/cli/commands/dev.js +19 -10
  14. package/package.json +3 -2
  15. package/renderer/app/api/assets/[...path]/route.js +108 -0
  16. package/renderer/app/api/assets/route.js +114 -0
  17. package/renderer/app/api/assets/upload/route.js +163 -0
  18. package/renderer/app/api/auth-schemes/route.js +58 -0
  19. package/renderer/app/api/chat/route.js +759 -0
  20. package/renderer/app/api/codegen/route.js +52 -0
  21. package/renderer/app/api/collections/route.js +675 -0
  22. package/renderer/app/api/debug/route.js +47 -0
  23. package/renderer/app/api/deploy/route.js +199 -0
  24. package/renderer/app/api/device/route.js +36 -0
  25. package/renderer/app/api/docs/route.js +205 -0
  26. package/renderer/app/api/domains/add/route.js +121 -0
  27. package/renderer/app/api/domains/lookup/route.js +43 -0
  28. package/renderer/app/api/domains/remove/route.js +89 -0
  29. package/renderer/app/api/domains/status/route.js +140 -0
  30. package/renderer/app/api/domains/verify/route.js +168 -0
  31. package/renderer/app/api/keys/regenerate/route.js +71 -0
  32. package/renderer/app/api/local-assets/[...path]/route.js +108 -0
  33. package/renderer/app/api/openapi-spec/route.js +73 -0
  34. package/renderer/app/api/projects/[slug]/route.js +129 -0
  35. package/renderer/app/api/projects/[slug]/stats/route.js +80 -0
  36. package/renderer/app/api/projects/register/route.js +176 -0
  37. package/renderer/app/api/proxy/route.js +139 -0
  38. package/renderer/app/api/proxy-stream/route.js +156 -0
  39. package/renderer/app/api/redirects/route.js +35 -0
  40. package/renderer/app/api/schema/route.js +85 -0
  41. package/renderer/app/api/subdomains/check/route.js +158 -0
  42. package/renderer/app/api/suggestions/route.js +175 -0
  43. package/renderer/app/layout.js +47 -0
  44. package/renderer/app/llms-full.txt/route.js +257 -0
  45. package/renderer/app/llms.txt/route.js +219 -0
  46. package/renderer/app/page.js +12 -0
  47. package/renderer/app/robots.txt/route.js +66 -0
  48. package/renderer/app/sitemap.xml/route.js +145 -0
  49. package/renderer/components/docs/index.js +8 -0
  50. package/renderer/components/docs/mdx/accordion.js +113 -0
  51. package/renderer/components/docs/mdx/badge.js +72 -0
  52. package/renderer/components/docs/mdx/callouts.js +137 -0
  53. package/renderer/components/docs/mdx/cards.js +175 -0
  54. package/renderer/components/docs/mdx/changelog.js +100 -0
  55. package/renderer/components/docs/mdx/code-block.js +147 -0
  56. package/renderer/components/docs/mdx/code-group.js +287 -0
  57. package/renderer/components/docs/mdx/file-embeds.js +82 -0
  58. package/renderer/components/docs/mdx/frame.js +59 -0
  59. package/renderer/components/docs/mdx/highlight.js +90 -0
  60. package/renderer/components/docs/mdx/iframe.js +69 -0
  61. package/renderer/components/docs/mdx/image.js +135 -0
  62. package/renderer/components/docs/mdx/index.js +134 -0
  63. package/renderer/components/docs/mdx/landing.js +315 -0
  64. package/renderer/components/docs/mdx/mermaid.js +212 -0
  65. package/renderer/components/docs/mdx/param-field.js +112 -0
  66. package/renderer/components/docs/mdx/steps.js +74 -0
  67. package/renderer/components/docs/mdx/tabs.js +50 -0
  68. package/renderer/components/docs/mdx-renderer.js +77 -0
  69. package/renderer/components/docs/navigation/breadcrumbs.js +64 -0
  70. package/renderer/components/docs/navigation/index.js +6 -0
  71. package/renderer/components/docs/navigation/page-nav.js +57 -0
  72. package/renderer/components/docs/navigation/sidebar.js +375 -0
  73. package/renderer/components/docs/navigation/toc.js +89 -0
  74. package/renderer/components/docs/notice.js +77 -0
  75. package/renderer/components/docs-header.js +202 -0
  76. package/renderer/components/docs-viewer/agent/agent-chat.js +1930 -0
  77. package/renderer/components/docs-viewer/agent/cards/debug-context-card.js +107 -0
  78. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.js +57 -0
  79. package/renderer/components/docs-viewer/agent/cards/index.js +45 -0
  80. package/renderer/components/docs-viewer/agent/cards/response-options-card.js +154 -0
  81. package/renderer/components/docs-viewer/agent/cards/types.js +22 -0
  82. package/renderer/components/docs-viewer/agent/chat-message.js +2 -0
  83. package/renderer/components/docs-viewer/agent/index.js +4 -0
  84. package/renderer/components/docs-viewer/agent/messages/assistant-message.js +108 -0
  85. package/renderer/components/docs-viewer/agent/messages/chat-message.js +34 -0
  86. package/renderer/components/docs-viewer/agent/messages/index.js +6 -0
  87. package/renderer/components/docs-viewer/agent/messages/tool-call-display.js +1065 -0
  88. package/renderer/components/docs-viewer/agent/messages/types.js +2 -0
  89. package/renderer/components/docs-viewer/agent/messages/typing-indicator.js +26 -0
  90. package/renderer/components/docs-viewer/agent/messages/user-message.js +37 -0
  91. package/renderer/components/docs-viewer/code-editor/{index.tsx → index.js} +1 -1
  92. package/renderer/components/docs-viewer/code-editor/notes-mode.js +1338 -0
  93. package/renderer/components/docs-viewer/content/changelog-page.js +297 -0
  94. package/renderer/components/docs-viewer/content/doc-page.js +264 -0
  95. package/renderer/components/docs-viewer/content/documentation-viewer.js +14 -0
  96. package/renderer/components/docs-viewer/content/index.js +29 -0
  97. package/renderer/components/docs-viewer/content/not-found-page.js +300 -0
  98. package/renderer/components/docs-viewer/content/request-details.js +528 -0
  99. package/renderer/components/docs-viewer/content/sections/auth.js +108 -0
  100. package/renderer/components/docs-viewer/content/sections/body.js +80 -0
  101. package/renderer/components/docs-viewer/content/sections/headers.js +64 -0
  102. package/renderer/components/docs-viewer/content/sections/overview.js +56 -0
  103. package/renderer/components/docs-viewer/content/sections/parameters.js +64 -0
  104. package/renderer/components/docs-viewer/content/sections/responses.js +91 -0
  105. package/renderer/components/docs-viewer/global-auth-modal.js +427 -0
  106. package/renderer/components/docs-viewer/index.js +1552 -0
  107. package/renderer/components/docs-viewer/playground/auth-editor.js +418 -0
  108. package/renderer/components/docs-viewer/playground/body-editor.js +240 -0
  109. package/renderer/components/docs-viewer/playground/code-editor.js +135 -0
  110. package/renderer/components/docs-viewer/playground/code-snippet.js +393 -0
  111. package/renderer/components/docs-viewer/playground/graphql-playground.js +734 -0
  112. package/renderer/components/docs-viewer/playground/index.js +682 -0
  113. package/renderer/components/docs-viewer/playground/key-value-editor.js +317 -0
  114. package/renderer/components/docs-viewer/playground/method-selector.js +65 -0
  115. package/renderer/components/docs-viewer/playground/request-builder.js +181 -0
  116. package/renderer/components/docs-viewer/playground/request-tabs.js +240 -0
  117. package/renderer/components/docs-viewer/playground/response-cards/idle-card.js +42 -0
  118. package/renderer/components/docs-viewer/playground/response-cards/index.js +72 -0
  119. package/renderer/components/docs-viewer/playground/response-cards/loading-card.js +24 -0
  120. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.js +28 -0
  121. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.js +308 -0
  122. package/renderer/components/docs-viewer/playground/response-cards/types.js +9 -0
  123. package/renderer/components/docs-viewer/playground/response-viewer.js +18 -0
  124. package/renderer/components/docs-viewer/search/index.js +2 -0
  125. package/renderer/components/docs-viewer/search/search-dialog.js +367 -0
  126. package/renderer/components/docs-viewer/search/use-search.js +89 -0
  127. package/renderer/components/docs-viewer/shared/markdown-renderer.js +423 -0
  128. package/renderer/components/docs-viewer/shared/method-badge.js +23 -0
  129. package/renderer/components/docs-viewer/shared/schema-viewer.js +321 -0
  130. package/renderer/components/docs-viewer/sidebar/collection-tree.js +222 -0
  131. package/renderer/components/docs-viewer/sidebar/endpoint-options.js +512 -0
  132. package/renderer/components/docs-viewer/sidebar/index.js +196 -0
  133. package/renderer/components/docs-viewer/sidebar/right-sidebar.js +163 -0
  134. package/renderer/components/docs-viewer/sidebar/sidebar-group.js +87 -0
  135. package/renderer/components/docs-viewer/sidebar/sidebar-item.js +172 -0
  136. package/renderer/components/docs-viewer/sidebar/sidebar-section.js +31 -0
  137. package/renderer/components/theme-provider.js +10 -0
  138. package/renderer/components/theme-toggle.js +106 -0
  139. package/renderer/components/ui/badge.js +29 -0
  140. package/renderer/components/ui/button.js +40 -0
  141. package/renderer/components/ui/dialog.js +50 -0
  142. package/renderer/components/ui/dropdown-menu.js +143 -0
  143. package/renderer/components/ui/input.js +12 -0
  144. package/renderer/components/ui/label.js +13 -0
  145. package/renderer/components/ui/navigation-menu.js +83 -0
  146. package/renderer/components/ui/select.js +116 -0
  147. package/renderer/components/ui/spinner.js +92 -0
  148. package/renderer/components/ui/tabs.js +34 -0
  149. package/renderer/components/ui/tooltip.js +43 -0
  150. package/renderer/hooks/use-code-copy.js +76 -0
  151. package/renderer/hooks/use-openapi-title.js +33 -0
  152. package/renderer/lib/api-docs/agent/index.js +4 -0
  153. package/renderer/lib/api-docs/agent/indexer.js +254 -0
  154. package/renderer/lib/api-docs/agent/spec-summary.js +227 -0
  155. package/renderer/lib/api-docs/agent/types.js +5 -0
  156. package/renderer/lib/api-docs/auth/auth-context.js +157 -0
  157. package/renderer/lib/api-docs/auth/auth-storage.js +66 -0
  158. package/renderer/lib/api-docs/auth/crypto.js +64 -0
  159. package/renderer/lib/api-docs/auth/index.js +3 -0
  160. package/renderer/lib/api-docs/code-editor/db.js +145 -0
  161. package/renderer/lib/api-docs/code-editor/hooks.js +254 -0
  162. package/renderer/lib/api-docs/code-editor/{index.ts → index.js} +3 -4
  163. package/renderer/lib/api-docs/code-editor/mode-context.js +154 -0
  164. package/renderer/lib/api-docs/code-editor/types.js +53 -0
  165. package/renderer/lib/api-docs/codegen/definitions.js +258 -0
  166. package/renderer/lib/api-docs/codegen/har.js +171 -0
  167. package/renderer/lib/api-docs/codegen/index.js +118 -0
  168. package/renderer/lib/api-docs/factories.js +136 -0
  169. package/renderer/lib/api-docs/{index.ts → index.js} +5 -10
  170. package/renderer/lib/api-docs/mobile-context.js +79 -0
  171. package/renderer/lib/api-docs/navigation-context.js +62 -0
  172. package/renderer/lib/api-docs/parsers/graphql/index.js +50 -0
  173. package/renderer/lib/api-docs/parsers/graphql/parser.js +350 -0
  174. package/renderer/lib/api-docs/parsers/graphql/transformer.js +215 -0
  175. package/renderer/lib/api-docs/parsers/graphql/types.js +46 -0
  176. package/renderer/lib/api-docs/parsers/openapi/dereferencer.js +43 -0
  177. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.js +486 -0
  178. package/renderer/lib/api-docs/parsers/openapi/extractors/body.js +295 -0
  179. package/renderer/lib/api-docs/parsers/openapi/extractors/index.js +132 -0
  180. package/renderer/lib/api-docs/parsers/openapi/index.js +127 -0
  181. package/renderer/lib/api-docs/parsers/openapi/transformer.js +192 -0
  182. package/renderer/lib/api-docs/parsers/openapi/validator.js +24 -0
  183. package/renderer/lib/api-docs/playground/context.js +65 -0
  184. package/renderer/lib/api-docs/playground/navigation-context.js +74 -0
  185. package/renderer/lib/api-docs/playground/request-builder.js +163 -0
  186. package/renderer/lib/api-docs/playground/request-runner.js +224 -0
  187. package/renderer/lib/api-docs/playground/types.js +5 -0
  188. package/renderer/lib/api-docs/types.js +23 -0
  189. package/renderer/lib/api-docs/utils.js +212 -0
  190. package/renderer/lib/cache.js +157 -0
  191. package/renderer/lib/docs/config/domain-schema.js +161 -0
  192. package/renderer/lib/docs/config/index.js +5 -0
  193. package/renderer/lib/docs/config/loader.js +113 -0
  194. package/renderer/lib/docs/config/schema.js +269 -0
  195. package/renderer/lib/docs/index.js +8 -0
  196. package/renderer/lib/docs/mdx/compiler.js +128 -0
  197. package/renderer/lib/docs/mdx/frontmatter.js +73 -0
  198. package/renderer/lib/docs/mdx/index.js +8 -0
  199. package/renderer/lib/docs/navigation/generator.js +269 -0
  200. package/renderer/lib/docs/navigation/index.js +4 -0
  201. package/renderer/lib/docs/navigation/types.js +9 -0
  202. package/renderer/lib/docs-navigation-context.js +40 -0
  203. package/renderer/lib/multi-tenant/context.js +80 -0
  204. package/renderer/lib/storage/blob.js +767 -0
  205. package/renderer/lib/utils/icons.js +30 -0
  206. package/renderer/lib/utils.js +5 -0
  207. package/renderer/next.config.js +62 -0
  208. package/renderer/tsconfig.json +23 -5
  209. package/renderer/app/api/assets/[...path]/route.ts +0 -123
  210. package/renderer/app/api/assets/route.ts +0 -124
  211. package/renderer/app/api/assets/upload/route.ts +0 -177
  212. package/renderer/app/api/auth-schemes/route.ts +0 -77
  213. package/renderer/app/api/chat/route.ts +0 -858
  214. package/renderer/app/api/codegen/route.ts +0 -72
  215. package/renderer/app/api/collections/route.ts +0 -1002
  216. package/renderer/app/api/debug/route.ts +0 -53
  217. package/renderer/app/api/deploy/route.ts +0 -234
  218. package/renderer/app/api/device/route.ts +0 -42
  219. package/renderer/app/api/docs/route.ts +0 -201
  220. package/renderer/app/api/domains/add/route.ts +0 -132
  221. package/renderer/app/api/domains/lookup/route.ts +0 -43
  222. package/renderer/app/api/domains/remove/route.ts +0 -100
  223. package/renderer/app/api/domains/status/route.ts +0 -158
  224. package/renderer/app/api/domains/verify/route.ts +0 -181
  225. package/renderer/app/api/keys/regenerate/route.ts +0 -80
  226. package/renderer/app/api/local-assets/[...path]/route.ts +0 -122
  227. package/renderer/app/api/openapi-spec/route.ts +0 -151
  228. package/renderer/app/api/projects/[slug]/route.ts +0 -153
  229. package/renderer/app/api/projects/[slug]/stats/route.ts +0 -96
  230. package/renderer/app/api/projects/register/route.ts +0 -152
  231. package/renderer/app/api/proxy/route.ts +0 -149
  232. package/renderer/app/api/proxy-stream/route.ts +0 -168
  233. package/renderer/app/api/redirects/route.ts +0 -47
  234. package/renderer/app/api/schema/route.ts +0 -73
  235. package/renderer/app/api/subdomains/check/route.ts +0 -172
  236. package/renderer/app/api/suggestions/route.ts +0 -144
  237. package/renderer/app/layout.tsx +0 -54
  238. package/renderer/app/llms-full.txt/route.ts +0 -346
  239. package/renderer/app/llms.txt/route.ts +0 -279
  240. package/renderer/app/page.tsx +0 -14
  241. package/renderer/app/robots.txt/route.ts +0 -84
  242. package/renderer/app/sitemap.xml/route.ts +0 -199
  243. package/renderer/components/docs/index.ts +0 -12
  244. package/renderer/components/docs/mdx/accordion.tsx +0 -169
  245. package/renderer/components/docs/mdx/badge.tsx +0 -132
  246. package/renderer/components/docs/mdx/callouts.tsx +0 -154
  247. package/renderer/components/docs/mdx/cards.tsx +0 -241
  248. package/renderer/components/docs/mdx/changelog.tsx +0 -120
  249. package/renderer/components/docs/mdx/code-block.tsx +0 -186
  250. package/renderer/components/docs/mdx/code-group.tsx +0 -421
  251. package/renderer/components/docs/mdx/file-embeds.tsx +0 -105
  252. package/renderer/components/docs/mdx/frame.tsx +0 -112
  253. package/renderer/components/docs/mdx/highlight.tsx +0 -151
  254. package/renderer/components/docs/mdx/iframe.tsx +0 -134
  255. package/renderer/components/docs/mdx/image.tsx +0 -235
  256. package/renderer/components/docs/mdx/index.ts +0 -237
  257. package/renderer/components/docs/mdx/landing.tsx +0 -684
  258. package/renderer/components/docs/mdx/mermaid.tsx +0 -240
  259. package/renderer/components/docs/mdx/param-field.tsx +0 -200
  260. package/renderer/components/docs/mdx/steps.tsx +0 -113
  261. package/renderer/components/docs/mdx/tabs.tsx +0 -86
  262. package/renderer/components/docs/mdx-renderer.tsx +0 -100
  263. package/renderer/components/docs/navigation/breadcrumbs.tsx +0 -76
  264. package/renderer/components/docs/navigation/index.ts +0 -8
  265. package/renderer/components/docs/navigation/page-nav.tsx +0 -64
  266. package/renderer/components/docs/navigation/sidebar.tsx +0 -515
  267. package/renderer/components/docs/navigation/toc.tsx +0 -113
  268. package/renderer/components/docs/notice.tsx +0 -105
  269. package/renderer/components/docs-header.tsx +0 -278
  270. package/renderer/components/docs-viewer/agent/agent-chat.tsx +0 -2076
  271. package/renderer/components/docs-viewer/agent/cards/debug-context-card.tsx +0 -90
  272. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.tsx +0 -49
  273. package/renderer/components/docs-viewer/agent/cards/index.tsx +0 -50
  274. package/renderer/components/docs-viewer/agent/cards/response-options-card.tsx +0 -212
  275. package/renderer/components/docs-viewer/agent/cards/types.ts +0 -84
  276. package/renderer/components/docs-viewer/agent/chat-message.tsx +0 -17
  277. package/renderer/components/docs-viewer/agent/index.tsx +0 -6
  278. package/renderer/components/docs-viewer/agent/messages/assistant-message.tsx +0 -119
  279. package/renderer/components/docs-viewer/agent/messages/chat-message.tsx +0 -46
  280. package/renderer/components/docs-viewer/agent/messages/index.ts +0 -17
  281. package/renderer/components/docs-viewer/agent/messages/tool-call-display.tsx +0 -721
  282. package/renderer/components/docs-viewer/agent/messages/types.ts +0 -61
  283. package/renderer/components/docs-viewer/agent/messages/typing-indicator.tsx +0 -24
  284. package/renderer/components/docs-viewer/agent/messages/user-message.tsx +0 -51
  285. package/renderer/components/docs-viewer/code-editor/notes-mode.tsx +0 -1283
  286. package/renderer/components/docs-viewer/content/changelog-page.tsx +0 -331
  287. package/renderer/components/docs-viewer/content/doc-page.tsx +0 -367
  288. package/renderer/components/docs-viewer/content/documentation-viewer.tsx +0 -17
  289. package/renderer/components/docs-viewer/content/index.tsx +0 -29
  290. package/renderer/components/docs-viewer/content/not-found-page.tsx +0 -330
  291. package/renderer/components/docs-viewer/content/request-details.tsx +0 -330
  292. package/renderer/components/docs-viewer/content/sections/auth.tsx +0 -69
  293. package/renderer/components/docs-viewer/content/sections/body.tsx +0 -66
  294. package/renderer/components/docs-viewer/content/sections/headers.tsx +0 -43
  295. package/renderer/components/docs-viewer/content/sections/overview.tsx +0 -40
  296. package/renderer/components/docs-viewer/content/sections/parameters.tsx +0 -43
  297. package/renderer/components/docs-viewer/content/sections/responses.tsx +0 -87
  298. package/renderer/components/docs-viewer/global-auth-modal.tsx +0 -352
  299. package/renderer/components/docs-viewer/index.tsx +0 -1662
  300. package/renderer/components/docs-viewer/playground/auth-editor.tsx +0 -280
  301. package/renderer/components/docs-viewer/playground/body-editor.tsx +0 -221
  302. package/renderer/components/docs-viewer/playground/code-editor.tsx +0 -224
  303. package/renderer/components/docs-viewer/playground/code-snippet.tsx +0 -387
  304. package/renderer/components/docs-viewer/playground/graphql-playground.tsx +0 -745
  305. package/renderer/components/docs-viewer/playground/index.tsx +0 -671
  306. package/renderer/components/docs-viewer/playground/key-value-editor.tsx +0 -261
  307. package/renderer/components/docs-viewer/playground/method-selector.tsx +0 -60
  308. package/renderer/components/docs-viewer/playground/request-builder.tsx +0 -179
  309. package/renderer/components/docs-viewer/playground/request-tabs.tsx +0 -237
  310. package/renderer/components/docs-viewer/playground/response-cards/idle-card.tsx +0 -21
  311. package/renderer/components/docs-viewer/playground/response-cards/index.tsx +0 -93
  312. package/renderer/components/docs-viewer/playground/response-cards/loading-card.tsx +0 -16
  313. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.tsx +0 -23
  314. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.tsx +0 -268
  315. package/renderer/components/docs-viewer/playground/response-cards/types.ts +0 -82
  316. package/renderer/components/docs-viewer/playground/response-viewer.tsx +0 -43
  317. package/renderer/components/docs-viewer/search/index.ts +0 -2
  318. package/renderer/components/docs-viewer/search/search-dialog.tsx +0 -331
  319. package/renderer/components/docs-viewer/search/use-search.ts +0 -117
  320. package/renderer/components/docs-viewer/shared/markdown-renderer.tsx +0 -431
  321. package/renderer/components/docs-viewer/shared/method-badge.tsx +0 -41
  322. package/renderer/components/docs-viewer/shared/schema-viewer.tsx +0 -349
  323. package/renderer/components/docs-viewer/sidebar/collection-tree.tsx +0 -259
  324. package/renderer/components/docs-viewer/sidebar/endpoint-options.tsx +0 -316
  325. package/renderer/components/docs-viewer/sidebar/index.tsx +0 -282
  326. package/renderer/components/docs-viewer/sidebar/right-sidebar.tsx +0 -202
  327. package/renderer/components/docs-viewer/sidebar/sidebar-group.tsx +0 -118
  328. package/renderer/components/docs-viewer/sidebar/sidebar-item.tsx +0 -212
  329. package/renderer/components/docs-viewer/sidebar/sidebar-section.tsx +0 -38
  330. package/renderer/components/theme-provider.tsx +0 -11
  331. package/renderer/components/theme-toggle.tsx +0 -76
  332. package/renderer/components/ui/badge.tsx +0 -46
  333. package/renderer/components/ui/button.tsx +0 -59
  334. package/renderer/components/ui/dialog.tsx +0 -118
  335. package/renderer/components/ui/dropdown-menu.tsx +0 -257
  336. package/renderer/components/ui/input.tsx +0 -21
  337. package/renderer/components/ui/label.tsx +0 -24
  338. package/renderer/components/ui/navigation-menu.tsx +0 -168
  339. package/renderer/components/ui/select.tsx +0 -190
  340. package/renderer/components/ui/spinner.tsx +0 -114
  341. package/renderer/components/ui/tabs.tsx +0 -66
  342. package/renderer/components/ui/tooltip.tsx +0 -61
  343. package/renderer/hooks/use-code-copy.ts +0 -88
  344. package/renderer/hooks/use-openapi-title.ts +0 -44
  345. package/renderer/lib/api-docs/agent/index.ts +0 -6
  346. package/renderer/lib/api-docs/agent/indexer.ts +0 -323
  347. package/renderer/lib/api-docs/agent/spec-summary.ts +0 -335
  348. package/renderer/lib/api-docs/agent/types.ts +0 -116
  349. package/renderer/lib/api-docs/auth/auth-context.tsx +0 -225
  350. package/renderer/lib/api-docs/auth/auth-storage.ts +0 -87
  351. package/renderer/lib/api-docs/auth/crypto.ts +0 -89
  352. package/renderer/lib/api-docs/auth/index.ts +0 -4
  353. package/renderer/lib/api-docs/code-editor/db.ts +0 -164
  354. package/renderer/lib/api-docs/code-editor/hooks.ts +0 -266
  355. package/renderer/lib/api-docs/code-editor/mode-context.tsx +0 -207
  356. package/renderer/lib/api-docs/code-editor/types.ts +0 -105
  357. package/renderer/lib/api-docs/codegen/definitions.ts +0 -297
  358. package/renderer/lib/api-docs/codegen/har.ts +0 -251
  359. package/renderer/lib/api-docs/codegen/index.ts +0 -159
  360. package/renderer/lib/api-docs/factories.ts +0 -170
  361. package/renderer/lib/api-docs/mobile-context.tsx +0 -112
  362. package/renderer/lib/api-docs/navigation-context.tsx +0 -88
  363. package/renderer/lib/api-docs/parsers/graphql/README.md +0 -129
  364. package/renderer/lib/api-docs/parsers/graphql/index.ts +0 -91
  365. package/renderer/lib/api-docs/parsers/graphql/parser.ts +0 -491
  366. package/renderer/lib/api-docs/parsers/graphql/transformer.ts +0 -246
  367. package/renderer/lib/api-docs/parsers/graphql/types.ts +0 -283
  368. package/renderer/lib/api-docs/parsers/openapi/README.md +0 -32
  369. package/renderer/lib/api-docs/parsers/openapi/dereferencer.ts +0 -60
  370. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.ts +0 -574
  371. package/renderer/lib/api-docs/parsers/openapi/extractors/body.ts +0 -403
  372. package/renderer/lib/api-docs/parsers/openapi/extractors/index.ts +0 -232
  373. package/renderer/lib/api-docs/parsers/openapi/index.ts +0 -171
  374. package/renderer/lib/api-docs/parsers/openapi/transformer.ts +0 -278
  375. package/renderer/lib/api-docs/parsers/openapi/validator.ts +0 -31
  376. package/renderer/lib/api-docs/playground/context.tsx +0 -107
  377. package/renderer/lib/api-docs/playground/navigation-context.tsx +0 -124
  378. package/renderer/lib/api-docs/playground/request-builder.ts +0 -223
  379. package/renderer/lib/api-docs/playground/request-runner.ts +0 -282
  380. package/renderer/lib/api-docs/playground/types.ts +0 -35
  381. package/renderer/lib/api-docs/types.ts +0 -269
  382. package/renderer/lib/api-docs/utils.ts +0 -311
  383. package/renderer/lib/cache.ts +0 -193
  384. package/renderer/lib/docs/config/domain-schema.ts +0 -260
  385. package/renderer/lib/docs/config/index.ts +0 -43
  386. package/renderer/lib/docs/config/loader.ts +0 -142
  387. package/renderer/lib/docs/config/schema.ts +0 -308
  388. package/renderer/lib/docs/index.ts +0 -12
  389. package/renderer/lib/docs/mdx/compiler.ts +0 -176
  390. package/renderer/lib/docs/mdx/frontmatter.ts +0 -91
  391. package/renderer/lib/docs/mdx/index.ts +0 -26
  392. package/renderer/lib/docs/navigation/generator.ts +0 -348
  393. package/renderer/lib/docs/navigation/index.ts +0 -12
  394. package/renderer/lib/docs/navigation/types.ts +0 -123
  395. package/renderer/lib/docs-navigation-context.tsx +0 -80
  396. package/renderer/lib/multi-tenant/context.ts +0 -105
  397. package/renderer/lib/storage/blob.ts +0 -1083
  398. package/renderer/lib/utils/icons.ts +0 -48
  399. package/renderer/lib/utils.ts +0 -6
  400. package/renderer/next.config.ts +0 -76
@@ -1,26 +1,20 @@
1
1
  ---
2
2
  name: update-doc
3
- description: Update existing documentation by analyzing codebase changes or user references.
3
+ description: Update existing documentation by searching codebase for current implementation.
4
4
  ---
5
5
 
6
6
  ## Instructions
7
7
 
8
8
  When user wants to update documentation:
9
9
 
10
- ### Step 0: Read Context & Code Graph
10
+ ### Step 0: Read Context
11
11
 
12
- **First, read `.devdoc/context.json` if it exists:**
12
+ **Read `.devdoc/context.json` if it exists:**
13
13
  - Use `product.name` for product references
14
14
  - Apply `terminology.glossary` for correct terms
15
15
  - Avoid `terminology.avoidTerms`
16
16
  - Match `documentation.voice` for writing style
17
17
 
18
- **Then, read `.devdoc/code-graph.json` if it exists:**
19
- - Compare documented signatures vs code-graph exports
20
- - Check if new exports need documentation
21
- - Verify types match code-graph definitions
22
- - Find new examples to include
23
-
24
18
  ### Step 1: Understand What to Update
25
19
 
26
20
  Ask the user:
@@ -47,21 +41,34 @@ Based on their choice:
47
41
  - Rewrite for clarity
48
42
  - Other (describe)"
49
43
 
50
- #### For Codebase Sync:
51
- **If code-graph.json exists:**
52
- - Re-scan codebase to update code-graph.json
53
- - Compare OLD code-graph vs NEW code-graph:
54
- - Changed function signatures
55
- - New exports added
56
- - Removed exports
57
- - Changed types
58
- - Generate sync report (see below)
59
-
60
- **If code-graph.json doesn't exist:**
61
- - Run bootstrap first: "Run `/bootstrap-docs` first to create code-graph.json"
62
- - Or manually scan source code
63
-
64
- Compare documentation against code-graph:
44
+ #### For Codebase Sync (Search Real Files):
45
+
46
+ **Step 2a: Search for source files related to documented topics:**
47
+ ```bash
48
+ # Find all exported functions/classes
49
+ rg "export (function|class|const|interface|type)" --type ts -l
50
+
51
+ # Find specific topic files
52
+ git ls-files | grep -iE "(auth|user|api)"
53
+ ```
54
+
55
+ **Step 2b: Read both doc files AND source files:**
56
+ 1. Read the doc file to see what's documented
57
+ 2. Search and read the corresponding source file
58
+ 3. Compare documented vs actual implementation
59
+
60
+ **Step 2c: Generate comparison:**
61
+ ```
62
+ DOCUMENTED (from docs/api/users.mdx):
63
+ - createUser(name: string, email: string)
64
+
65
+ ACTUAL (from src/lib/users.ts):
66
+ - createUser(options: CreateUserInput)
67
+
68
+ → SIGNATURE MISMATCH - needs update
69
+ ```
70
+
71
+ Compare documentation against actual source:
65
72
  - Function signatures changed?
66
73
  - New exports not documented?
67
74
  - Removed features still documented?
@@ -84,67 +91,137 @@ Compare documentation against code-graph:
84
91
  - "What's the problem you're seeing?"
85
92
  - Analyze and propose fixes
86
93
 
87
- ### Step 3: Generate Sync Report (if syncing)
94
+ ### Step 3: Detect Feature Flags & Duplicates
95
+
96
+ **Search for feature flags in source:**
97
+ ```bash
98
+ rg -l "featureFlag|feature_flag|isEnabled|FF_" --type ts
99
+ rg "if.*\(.*feature|process\.env\.FEATURE" --type ts
100
+ ```
101
+
102
+ **Search for duplicate/similar features:**
103
+ ```bash
104
+ rg "export.*(login|authenticate|signIn)" --type ts -l
105
+ ```
106
+
107
+ **Include in sync report:**
88
108
 
89
- **Compare docs against code-graph.json:**
109
+ ### Step 4: Generate Sync Report (From File Search)
110
+
111
+ **Compare docs against actual source files:**
90
112
 
91
113
  ```
92
114
  ## Documentation Sync Report
93
115
 
94
- ### Signature Changes (from code-graph.json)
95
- - `docs/api/users.mdx`: Function signature changed
116
+ ### Signature Changes (from source files)
117
+ - `docs/api/users.mdx` vs `src/lib/users.ts`:
96
118
  - Documented: `createUser(name, email)`
97
- - Code-graph: `createUser(options: CreateUserInput)`
119
+ - Source file: `createUser(options: CreateUserInput)`
120
+ - Action: Update signature and params
98
121
 
99
- ### New Exports (in code-graph, not in docs)
100
- - Module `auth`: `refreshToken()` - Not documented
101
- - Module `users`: `deleteUser()` - Not documented
102
- - Type: `SessionConfig` - Not documented
103
-
104
- ### Removed (in docs, not in code-graph)
105
- - `legacyAuth()` - Removed from codebase
106
- - Type: `OldUserFormat` - No longer exists
122
+ ### New Exports (in source, not in docs)
123
+ - `src/lib/auth.ts`: `refreshToken()` - Not documented
124
+ - `src/lib/users.ts`: `deleteUser()` - Not documented
107
125
 
108
- ### Type Changes
109
- - `User` interface: Added `role` property
110
- - `AuthToken`: Changed `expiresAt` type
111
-
112
- ### New Endpoints (from code-graph.api.endpoints)
113
- - `POST /api/v2/webhooks` - Not documented
126
+ ### Removed (in docs, not in source)
127
+ - `legacyAuth()` - Not found in any source file
114
128
 
115
129
  ### Up to Date ✓
116
- - `docs/guides/authentication.mdx`
117
- - `docs/api/errors.mdx`
130
+ - `docs/guides/authentication.mdx` matches `src/lib/auth/`
131
+
132
+ ### Unable to Verify (source not found)
133
+ ⚠️ `docs/legacy/old-api.mdx` - No matching source file
134
+
135
+ ═══════════════════════════════════════════════════════════
136
+ FEATURE FLAGS DETECTED
137
+ ═══════════════════════════════════════════════════════════
138
+
139
+ ⚠️ src/lib/auth/index.ts:45 - newAuthFlow
140
+ Current docs: OLD implementation
141
+ Feature flag: NEW implementation available
142
+
143
+ Question: Update docs to which version?
144
+ 1. Keep current (old)
145
+ 2. Update to new (feature-flagged)
146
+ 3. Document both with toggle notice
147
+
148
+ ═══════════════════════════════════════════════════════════
149
+ DUPLICATE FEATURES
150
+ ═══════════════════════════════════════════════════════════
151
+
152
+ 🔄 Similar functions found:
153
+ - src/lib/auth/login.ts → login()
154
+ - src/lib/auth/v2/authenticate.ts → authenticate()
155
+
156
+ Question: How to handle?
157
+ 1. Document primary only
158
+ 2. Document all with comparison
159
+ 3. Mark duplicates as deprecated
118
160
  ```
119
161
 
120
162
  Ask: "How would you like to proceed?
121
- 1. **Fix all** - Update everything automatically
122
- 2. **Interactive** - Review each change
163
+ 1. **Fix all** - Update everything (choose defaults for flags/duplicates)
164
+ 2. **Interactive** - Review each change with me
123
165
  3. **Specific items** - Tell me which to fix
124
- 4. **Refresh code-graph first** - Re-scan codebase before updating"
166
+ 4. **Re-search** - Search for different file patterns"
167
+
168
+ ### Step 5: Review Each Change with User (MANDATORY)
169
+
170
+ **For EACH file being updated, show before/after:**
171
+
172
+ ```
173
+ ═══════════════════════════════════════════════════════════
174
+ CHANGE REVIEW: docs/api/users.mdx
175
+ ═══════════════════════════════════════════════════════════
176
+
177
+ 📄 BEFORE (current):
178
+ ───────────────────────────────────────────────────────────
179
+ ## createUser(name, email)
125
180
 
126
- ### Step 4: Propose Changes
181
+ Creates a new user account.
127
182
 
128
- Before making changes, show what will be modified:
183
+ | Parameter | Type |
184
+ |-----------|------|
185
+ | name | string |
186
+ | email | string |
187
+ ───────────────────────────────────────────────────────────
129
188
 
130
- "I'll make these changes:
189
+ 📄 AFTER (proposed):
190
+ ───────────────────────────────────────────────────────────
191
+ ## createUser(options)
131
192
 
132
- **`docs/api/users.mdx`**
133
- - Update `createUser` signature and examples
134
- - Add new `options` parameter documentation
193
+ Creates a new user account.
135
194
 
136
- **`docs/quickstart.mdx`**
137
- - Update version from 1.2.0 to 2.0.0
138
- - Update installation command
195
+ | Parameter | Type | Description |
196
+ |-----------|------|-------------|
197
+ | options | CreateUserInput | User creation options |
139
198
 
140
- **`docs.json`**
141
- - Add new page: `guides/webhooks.mdx`
199
+ ### CreateUserInput
142
200
 
143
- Proceed with these changes?"
201
+ | Property | Type | Required |
202
+ |----------|------|----------|
203
+ | name | string | Yes |
204
+ | email | string | Yes |
205
+ | role | 'admin' \| 'user' | No |
206
+ ───────────────────────────────────────────────────────────
144
207
 
145
- ### Step 5: Apply Updates
208
+ ⚠️ NOTICES:
209
+ - Source: src/lib/users.ts:23
210
+ - Feature flag: None
211
+ - Duplicates: None
146
212
 
147
- When updating:
213
+ OPTIONS:
214
+ 1. ✅ **Approve** - Apply this change
215
+ 2. ✏️ **Edit** - Modify the proposed content
216
+ 3. ⏭️ **Skip** - Don't update this file
217
+ 4. ❌ **Cancel all** - Stop updating
218
+
219
+ Choose an option:
220
+ ```
221
+
222
+ ### Step 6: Apply Updates (After Approval)
223
+
224
+ **Only after user approves each change:**
148
225
 
149
226
  1. **Preserve prose** - Keep explanations, update technical details
150
227
  2. **Update code examples** - Match current signatures
@@ -156,7 +233,13 @@ When updating:
156
233
  See [migration guide](/guides/v2-migration).
157
234
  </Warning>
158
235
  ```
159
- 5. **Create stubs** for new features:
236
+ 5. **Add feature flag notices** where applicable:
237
+ ```mdx
238
+ <Note>
239
+ **Feature Flag**: This feature requires `newAuthFlow` to be enabled.
240
+ </Note>
241
+ ```
242
+ 6. **Create stubs** for new features:
160
243
  ```mdx
161
244
  {/* TODO: Document this new feature */}
162
245
  ## New Feature
@@ -234,11 +317,27 @@ Documentation coming soon.
234
317
 
235
318
  ---
236
319
 
320
+ ## Key Principles
321
+
322
+ | Principle | Description |
323
+ |-----------|-------------|
324
+ | **Search before update** | ALWAYS read source files before changing docs |
325
+ | **No hallucination** | Only update based on actual file contents |
326
+ | **Review before write** | ALWAYS show before/after for user approval |
327
+ | **Flag feature flags** | Detect and highlight conditional features |
328
+ | **Flag duplicates** | Identify similar/related features |
329
+ | **Verify changes** | Read source to confirm what changed |
330
+
237
331
  ## Quality Guidelines
238
332
 
333
+ - **SEARCH FIRST** - Read source files before making any update
334
+ - **REVIEW WITH USER** - Show before/after for each change
335
+ - **DETECT FEATURE FLAGS** - Search for conditional features
336
+ - **DETECT DUPLICATES** - Find similar functions/features
239
337
  - Always show changes before applying
240
338
  - Preserve existing prose and explanations
241
339
  - Update only technical details (code, versions, signatures)
340
+ - Flag when source file not found - offer auto-correct options
242
341
  - Add TODO markers for human review
243
342
  - Apply terminology from context.json
244
343
  - Create stubs rather than skip new features
@@ -63,16 +63,41 @@ What is the primary goal?
63
63
  5. **Inform stakeholders** - Architecture/decisions
64
64
  ```
65
65
 
66
- #### Question 2: Primary Audience
66
+ #### Question 2: Audience & Roles
67
67
  ```
68
- Who is your PRIMARY audience?
68
+ Does your product have multiple user roles?
69
69
 
70
- 1. **Internal Developer** Code flow, architecture, debugging
71
- 2. **External Developer** Quick start, auth, code examples
70
+ A) **Single audience** - All users have same access
71
+ B) **Multiple roles** - Different users see different features
72
+ (e.g., Admin/Editor/Viewer, different permission levels)
73
+ ```
74
+
75
+ **If Single (A):**
76
+ ```
77
+ 1. **Internal Developer** → Code flow, architecture
78
+ 2. **External Developer** → Quick start, auth, examples
72
79
  3. **Product User** → Tutorials, feature guides
73
80
  4. **Content Author** → MDX syntax, structure
74
81
  ```
75
82
 
83
+ **If Multi-role (B):**
84
+ ```
85
+ Define your roles:
86
+ ┌─────────────────┬────────────────────────────┐
87
+ │ Role │ Features/Permissions │
88
+ ├─────────────────┼────────────────────────────┤
89
+ │ Admin │ All features, user mgmt │
90
+ │ Editor │ Create/edit content │
91
+ │ Viewer │ Read-only access │
92
+ │ Developer │ API access, webhooks │
93
+ └─────────────────┴────────────────────────────┘
94
+
95
+ How to organize role-specific content?
96
+ 1. **Separate sections** - admin/, users/, developers/
97
+ 2. **Inline badges** - <RoleBadge roles={["admin"]}>
98
+ 3. **Hybrid** - Both approaches
99
+ ```
100
+
76
101
  #### Question 3: Documentation Domain
77
102
  ```
78
103
  1. **API Docs** - Voice: Professional, code-focused
@@ -241,31 +266,129 @@ Create `.devdoc/context.json`:
241
266
  }
242
267
  ```
243
268
 
244
- ### Step 7: Generate Using Writing Guidelines
269
+ ### Step 7: Generate WITH File Search (CRITICAL)
245
270
 
246
271
  **Only after user approval in Step 5.**
247
272
 
273
+ **For EACH page in the content plan:**
274
+
275
+ ```
276
+ 1. SEARCH for relevant files
277
+ git ls-files | grep -iE "(auth|login|token)"
278
+ rg -l "authentication" --type ts
279
+
280
+ 2. READ the files found
281
+ - Extract real signatures, types, examples
282
+ - Note the source files
283
+
284
+ 3. DETECT feature flags & duplicates
285
+ rg -l "featureFlag|isEnabled|FF_" --type ts
286
+ rg "export.*(login|authenticate)" --type ts -l
287
+
288
+ ⚠️ FEATURE FLAG: newAuthFlow
289
+ OLD vs NEW implementation
290
+ → Ask user which to document
291
+
292
+ 🔄 DUPLICATE: authenticate() in v2/
293
+ → Ask user how to handle
294
+
295
+ 4. ASSESS if enough info exists
296
+ ✅ Sufficient → Draft content
297
+ ⚠️ Partial → Draft with TODOs
298
+ ❌ Insufficient → Flag and offer options
299
+
300
+ 5. REVIEW DRAFT with user (MANDATORY)
301
+ ═══════════════════════════════════
302
+ CONTENT REVIEW: authentication.mdx
303
+ ═══════════════════════════════════
304
+
305
+ [Show full draft content]
306
+
307
+ NOTICES:
308
+ ⚠️ Feature flag: newAuthFlow
309
+ 🔄 Duplicate: authenticate() in v2/
310
+
311
+ OPTIONS:
312
+ 1. ✅ Approve - Create file
313
+ 2. ✏️ Edit - Make changes
314
+ 3. 🔄 Switch version - Use flagged version
315
+ 4. ➕ Add duplicate - Include related
316
+ 5. ⏭️ Skip - Don't create
317
+
318
+ 6. WRITE only after user approves
319
+ ```
320
+
248
321
  **Expert Writing Standards:**
249
- 1. **Second Person** - "You can configure..."
250
- 2. **Active Voice** - "Run the command"
251
- 3. **Task-Oriented Headings** - "How to add..."
252
- 4. **Include Examples** - Every concept
253
- 5. **Progressive Disclosure** - Basic Advanced
322
+ 1. **Search before write** - ALWAYS find source files first
323
+ 2. **No hallucination** - Only real data from files
324
+ 3. **Review with user** - Show draft before creating
325
+ 4. **Flag feature flags** - Ask which version
326
+ 5. **Flag duplicates** - Let user choose
327
+ 6. **Second Person** - "You can configure..."
328
+ 7. **Include REAL Examples** - From tests/examples
329
+ 8. **Use Mermaid Diagrams** - For architecture, flows, sequences
330
+
331
+ **Mermaid Diagram Requirements:**
332
+ | Content | Diagram Type |
333
+ |---------|--------------|
334
+ | Architecture | `flowchart TB` |
335
+ | Data flow | `flowchart LR` |
336
+ | API calls | `sequenceDiagram` |
337
+ | State machine | `stateDiagram-v2` |
338
+ | Data models | `erDiagram` |
339
+
340
+ Example:
341
+ ```mermaid
342
+ sequenceDiagram
343
+ User->>API: Request
344
+ API->>Service: Process
345
+ Service-->>API: Response
346
+ API-->>User: Result
347
+ ```
254
348
 
255
- ### Step 8: Update docs.json
349
+ ### Step 8: Create docs.json and theme.json
350
+
351
+ **CRITICAL: Read schema files before creating config files.**
352
+
353
+ ```
354
+ 📋 SCHEMA REFERENCES (Read before writing)
355
+
356
+ 1. schemas/docs.schema.json → docs.json structure
357
+ 2. schemas/theme.schema.json → theme.json structure
358
+ ```
359
+
360
+ **Review config with user before writing:**
361
+
362
+ ```
363
+ ═══════════════════════════════════════════════════
364
+ CONFIG REVIEW: docs.json
365
+ ═══════════════════════════════════════════════════
256
366
 
257
- ```json
258
367
  {
259
- "docType": "api",
368
+ "$schema": "https://devdoc.sh/docs.json",
369
+ "name": "[Product Name]",
370
+ "docType": "[api|product|internal]",
260
371
  "navigation": {
261
372
  "tabs": [
262
- { "tab": "Guides", "groups": [...] },
263
- { "tab": "API Reference", "type": "openapi", "spec": "api-reference/openapi.json" }
373
+ { "tab": "Guides", "type": "docs", "groups": [...] },
374
+ { "tab": "API Reference", "type": "openapi" }
264
375
  ]
265
376
  }
266
377
  }
378
+
379
+ Validated against: schemas/docs.schema.json ✓
380
+
381
+ OPTIONS:
382
+ 1. ✅ Approve
383
+ 2. ✏️ Edit
384
+ 3. ❌ Cancel
267
385
  ```
268
386
 
387
+ **Quick Reference:**
388
+ - Tab types: `docs`, `openapi`, `graphql`, `changelog`
389
+ - Icons: `rocket-launch`, `book-open`, `code`, `gear`, `terminal`, `star`
390
+ - Colors: indigo (#6366f1), blue (#3b82f6), green (#10b981)
391
+
269
392
  ### Step 9: Summary
270
393
 
271
394
  ```
@@ -299,8 +422,15 @@ Next: `devdoc dev` to preview
299
422
  | **Project overview first** | Quick git scan to understand structure |
300
423
  | **Strategy first** | Goals and audience before structure |
301
424
  | **Audience-driven** | Match content to user needs |
425
+ | **Support multi-role** | Handle products with multiple user roles |
302
426
  | **Diátaxis types** | Classify every page |
303
427
  | **IA approval required** | User confirms before generating |
428
+ | **Search before generate** | ALWAYS search/read files before each page |
429
+ | **No hallucination** | Only use real data from source files |
430
+ | **Review before write** | ALWAYS show draft for user approval |
431
+ | **Flag feature flags** | Detect conditional features, ask which version |
432
+ | **Flag duplicates** | Find similar features, let user choose |
433
+ | **Flag unclear sections** | Offer auto-correct IA if info not found |
304
434
  | **Expert writing** | 2nd person, active voice |
305
435
  | **Mark unknowns** | Add TODO for review |
306
436