@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,6 +1,6 @@
1
1
  ---
2
2
  name: check-docs
3
- description: Quick health check for documentation issues. Reads context memory for validation.
3
+ description: Quick health check for documentation issues. Verifies content against actual source files.
4
4
  ---
5
5
 
6
6
  ## Instructions
@@ -29,6 +29,31 @@ Run a quick audit of documentation health.
29
29
  - Check brand name capitalization
30
30
  - Validate API patterns match `api.conventions`
31
31
 
32
+ ### Step 0b: Source Verification (CRITICAL)
33
+
34
+ **For each doc page, search for corresponding source files:**
35
+
36
+ ```bash
37
+ # For auth docs, find auth source
38
+ git ls-files | grep -iE "auth"
39
+ rg -l "export.*login" --type ts
40
+
41
+ # For API docs, find route handlers
42
+ git ls-files | grep -iE "(route|api|controller)"
43
+ ```
44
+
45
+ **Flag docs without verifiable sources:**
46
+ ```
47
+ ⚠️ UNVERIFIED DOCS (no matching source files)
48
+ - docs/legacy/old-api.mdx - No source found
49
+ - docs/guides/advanced.mdx - No source found
50
+
51
+ Options:
52
+ 1. 🔄 Remove these docs
53
+ 2. ❓ Ask for source locations
54
+ 3. 📝 Mark as needs-review
55
+ ```
56
+
32
57
  ### Step 1: Get Documentation Type
33
58
 
34
59
  **Read `docs.json` for `docType` field:**
@@ -56,11 +81,17 @@ This helps tailor the checks:
56
81
  5. **Outdated Examples** - Compare imports against package exports
57
82
  6. **Stale Versions** - Check version numbers against package.json
58
83
 
84
+ #### Source Verification Checks (CRITICAL):
85
+ 7. **Source File Exists** - For each doc, search for matching source file
86
+ 8. **Signature Match** - Compare documented signatures vs source
87
+ 9. **Type Accuracy** - Verify documented types match source types
88
+ 10. **Example Validity** - Check examples work with current source
89
+
59
90
  #### Context-Based Checks (if context.json exists):
60
- 7. **Terminology** - Flag incorrect terms from `avoidTerms`
61
- 8. **Brand Names** - Check capitalization matches `brandNames`
62
- 9. **Product Name** - Ensure consistent use of `product.name`
63
- 10. **API Patterns** - Verify examples follow `api.conventions`
91
+ 11. **Terminology** - Flag incorrect terms from `avoidTerms`
92
+ 12. **Brand Names** - Check capitalization matches `brandNames`
93
+ 13. **Product Name** - Ensure consistent use of `product.name`
94
+ 14. **API Patterns** - Verify examples follow `api.conventions`
64
95
 
65
96
  ### Output Format
66
97
 
@@ -81,19 +112,30 @@ Summary: X issues found
81
112
  ### Missing Pages (count)
82
113
  docs.json references 'page' but file not found
83
114
 
115
+ ### Source Verification Failed (count)
116
+ docs/api/auth.mdx → No source file found
117
+ Searched: src/**/*auth*.ts, lib/**/*auth*.ts
118
+ Options:
119
+ 1. 🔄 Remove doc
120
+ 2. ❓ Ask for path
121
+ 3. 📝 Mark as TODO
122
+
123
+ ### Signature Mismatch (count)
124
+ docs/api/users.mdx → createUser signature wrong
125
+ Documented: createUser(name, email)
126
+ Source: createUser(options: CreateUserInput)
127
+ File: src/lib/users.ts:45
128
+
84
129
  ## Warnings
85
130
 
86
131
  ### Terminology Issues (count)
87
132
  file.mdx:line → Uses "charge" instead of "payment"
88
- file.mdx:line → Uses "transaction" instead of "payment"
89
- (per terminology.avoidTerms in context)
90
133
 
91
134
  ### Brand Name Issues (count)
92
135
  file.mdx:line → "productname" should be "ProductName"
93
136
 
94
137
  ### Outdated Code (count)
95
138
  file.mdx:line → import { oldFunc } from 'pkg'
96
- 'oldFunc' no longer exported, use 'newFunc'
97
139
 
98
140
  ### Orphan Pages (count)
99
141
  path/to/file.mdx (not in navigation)
@@ -104,6 +146,7 @@ Summary: X issues found
104
146
  ✓ All internal links resolve
105
147
  ✓ No syntax errors in code blocks
106
148
  ✓ Product name used consistently
149
+ ✓ All docs have verified source files
107
150
  ```
108
151
 
109
152
  ## Checks By DocType
@@ -129,6 +172,36 @@ Summary: X issues found
129
172
 
130
173
  ## Detailed Checks
131
174
 
175
+ ### Source Verification (CRITICAL)
176
+
177
+ **For each documentation page:**
178
+ ```bash
179
+ # 1. Extract topic from doc path
180
+ # docs/api/auth.mdx → topic: "auth"
181
+
182
+ # 2. Search for source files
183
+ git ls-files | grep -iE "auth"
184
+ rg -l "export.*(login|authenticate)" --type ts
185
+
186
+ # 3. Read source and doc, compare:
187
+ # - Function signatures
188
+ # - Parameter types
189
+ # - Return types
190
+ # - Error codes
191
+ ```
192
+
193
+ **If source not found:**
194
+ ```
195
+ ⚠️ UNVERIFIED: docs/api/auth.mdx
196
+ No source file found for authentication documentation.
197
+
198
+ Options:
199
+ 1. 🔄 Auto-correct IA - Remove this doc
200
+ 2. ✏️ Rename doc - Match what exists
201
+ 3. 📝 Mark as TODO - Keep with warning
202
+ 4. ❓ Ask for path - Where is it implemented?
203
+ ```
204
+
132
205
  ### Link Validation
133
206
  - Internal links (`href="/path"`)
134
207
  - Anchor links (`href="#section"`)
@@ -139,6 +212,7 @@ Summary: X issues found
139
212
  - Valid syntax (basic check)
140
213
  - Import statements resolve
141
214
  - Uses correct primary language from context
215
+ - **Examples match source code**
142
216
 
143
217
  ### Navigation Validation
144
218
  - All pages in docs.json exist
@@ -149,6 +223,7 @@ Summary: X issues found
149
223
  - Frontmatter present (title, description)
150
224
  - No H1 headings (title from frontmatter)
151
225
  - Images have alt text
226
+ - **Sources cited in frontmatter**
152
227
 
153
228
  ### Terminology Validation (from context)
154
229
  - No terms from `avoidTerms` used
@@ -1,27 +1,20 @@
1
1
  ---
2
2
  name: create-doc
3
- description: Create new documentation pages interactively. Analyzes codebase and guides you through the process.
3
+ description: Create new documentation pages interactively. Searches codebase to ensure accuracy.
4
4
  ---
5
5
 
6
6
  ## Instructions
7
7
 
8
8
  When user wants to create 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
  - Use `documentation.codeExamples.primaryLanguage` for code
16
16
  - Read templates from `documentation.templates`
17
17
 
18
- **Then, read `.devdoc/code-graph.json` if it exists:**
19
- - Use `modules` array to understand codebase structure
20
- - Reference exact function signatures from `exports`
21
- - Use `types` array for type definitions
22
- - Find examples in `examples` array
23
- - Reference `errors` for error handling docs
24
-
25
18
  ### Step 1: Understand What to Create
26
19
 
27
20
  Ask the user:
@@ -66,36 +59,142 @@ Based on their choice:
66
59
  - Ask clarifying questions
67
60
  - Understand the scope and purpose
68
61
 
69
- ### Step 3: Analyze Codebase (if applicable)
62
+ ### Step 3: Search Codebase (CRITICAL - No Hallucination)
63
+
64
+ **ALWAYS search and read actual files before generating content:**
65
+
66
+ #### 3a. Search for Relevant Files
67
+
68
+ ```bash
69
+ # Find files related to the topic
70
+ git ls-files | grep -iE "(auth|login|session)" # for auth docs
71
+
72
+ # Search file contents for specific terms
73
+ rg -l "export.*function.*createUser" --type ts
74
+ rg -l "class.*Authentication" --type ts
70
75
 
71
- When documenting code:
76
+ # Find types and interfaces
77
+ rg -l "interface.*User|type.*User" --type ts
72
78
 
73
- **If `.devdoc/code-graph.json` exists:**
79
+ # Find examples
80
+ git ls-files | grep -iE "(example|test|spec)"
74
81
  ```
75
- Read from code-graph.json:
76
- - modules[].exports Function signatures, params, returns
77
- - types[] → Type definitions
78
- - examples[] Code examples
79
- - api.endpoints[] API routes
80
- - errors[] Error types
82
+
83
+ #### 3b. Read the Files Found
84
+
85
+ For each relevant file:
86
+ 1. **Read the file** - Get actual implementation
87
+ 2. **Extract key info:**
88
+ - Function signatures and parameters
89
+ - Type definitions
90
+ - Error codes and messages
91
+ - Code examples from tests
92
+
93
+ #### 3c. Assess Information Sufficiency
94
+
81
95
  ```
96
+ ┌─────────────────────────────────────────────┐
97
+ │ ASSESSMENT │
98
+ ├─────────────────────────────────────────────┤
99
+ │ ✅ Sufficient - Found source files │
100
+ │ → Proceed with real data │
101
+ │ │
102
+ │ ⚠️ Partial - Some gaps │
103
+ │ → Generate with TODOs for gaps │
104
+ │ │
105
+ │ ❌ Insufficient - No relevant files │
106
+ │ → FLAG and offer options │
107
+ └─────────────────────────────────────────────┘
108
+ ```
109
+
110
+ #### 3d. Handle Insufficient Information
111
+
112
+ **If files not found, present options:**
82
113
 
83
- **If code-graph.json doesn't exist:**
84
114
  ```
85
- Scan the codebase for:
86
- - Function signatures and JSDoc/docstrings
87
- - Type definitions and interfaces
88
- - Usage examples in tests
89
- - README sections about this feature
115
+ ⚠️ UNCLEAR TOPIC: [topic]
116
+
117
+ Searched for:
118
+ - src/**/*auth*.ts Not found
119
+ - lib/**/*auth*.ts Not found
120
+
121
+ Options:
122
+ 1. 🔄 **Skip this doc** - Remove from plan
123
+ 2. ✏️ **Different topic** - Document something else
124
+ 3. 📝 **Mark as TODO** - Create placeholder
125
+ 4. ❓ **Ask for path** - "Where is [topic] implemented?"
126
+
127
+ Choose an option (1-4):
90
128
  ```
91
129
 
92
- Show user what you found:
93
- "I found in code-graph.json:
94
- - Module: `auth` with 5 exports (login, logout, verifyToken...)
95
- - Types: User, AuthToken, Session
96
- - Examples: `examples/auth-flow.ts`
130
+ #### 3e. Detect Feature Flags & Duplicates
97
131
 
98
- Should I proceed with generating documentation for these?"
132
+ **Search for feature flags:**
133
+ ```bash
134
+ # Find feature flag patterns
135
+ rg -l "featureFlag|feature_flag|isEnabled|FF_" --type ts
136
+ rg "if.*\(.*feature|process\.env\.FEATURE" --type ts
137
+ rg "LaunchDarkly|Unleash|Split|flagsmith" --type ts
138
+ ```
139
+
140
+ **Search for duplicate/similar features:**
141
+ ```bash
142
+ # Find similar function names
143
+ rg "export.*(login|authenticate|signIn)" --type ts -l
144
+ rg "export.*(createUser|addUser|registerUser)" --type ts -l
145
+ ```
146
+
147
+ **Flag findings for user guidance:**
148
+ ```
149
+ ⚠️ FEATURE FLAGS DETECTED:
150
+
151
+ 📍 src/lib/auth/index.ts:45
152
+ if (featureFlags.newAuthFlow) { ... }
153
+
154
+ This feature has TWO implementations:
155
+ - OLD: lines 50-80 (current default)
156
+ - NEW: lines 82-120 (behind feature flag)
157
+
158
+ Question: Document which version?
159
+ 1. Current (old) implementation
160
+ 2. New implementation (feature flagged)
161
+ 3. Both with toggle notice
162
+
163
+ ⚠️ DUPLICATE FEATURES DETECTED:
164
+
165
+ Found similar functions:
166
+ - src/lib/auth/login.ts → login()
167
+ - src/lib/auth/v2/authenticate.ts → authenticate()
168
+ - src/lib/legacy/signIn.ts → signIn()
169
+
170
+ Question: Which should be documented?
171
+ 1. Document primary (login.ts)
172
+ 2. Document all with comparison
173
+ 3. Mark legacy as deprecated
174
+ ```
175
+
176
+ #### 3f. Show What Was Found
177
+
178
+ ```
179
+ 📂 FILES FOUND for [topic]:
180
+
181
+ ✓ src/lib/auth/index.ts (main auth module)
182
+ - login(email, password): Promise<Token>
183
+ - logout(): void
184
+ - verifyToken(token): boolean
185
+
186
+ ✓ src/lib/auth/types.ts
187
+ - interface User { id, email, role }
188
+ - type AuthToken { token, expiresAt }
189
+
190
+ ✓ tests/auth.test.ts
191
+ - Example usage patterns
192
+
193
+ ⚠️ FEATURE FLAGS: newAuthFlow (src/lib/auth/index.ts:45)
194
+ ⚠️ DUPLICATES: authenticate() in v2/, signIn() in legacy/
195
+
196
+ Proceed with generating documentation from these files?
197
+ ```
99
198
 
100
199
  ### Step 4: Choose Template
101
200
 
@@ -109,51 +208,117 @@ Read the appropriate template from `.devdoc/templates/`:
109
208
  | Quick start | `quickstart.md` |
110
209
  | FAQ/Issues | `troubleshooting.md` |
111
210
 
112
- ### Step 5: Generate Content
211
+ ### Step 5: Draft Content (From Real Files Only)
212
+
213
+ **CRITICAL: Only use data from files you actually read.**
113
214
 
114
- Create the documentation:
215
+ Draft the documentation (DO NOT WRITE YET):
115
216
 
116
217
  1. **Read the template** for structure guidance
117
218
  2. **Apply context** (terminology, voice, language)
118
- 3. **Use code-graph.json** for accuracy:
119
- - Get exact function signatures from `exports`
120
- - Get type definitions from `types`
121
- - Reference examples from `examples` array
122
- - Document errors from `errors` array
219
+ 3. **Use ONLY data from searched files:**
220
+ - Get exact function signatures from source files
221
+ - Get type definitions from actual type files
222
+ - Reference examples from test files or examples folder
223
+ - Document errors from error handling code
123
224
  4. **Include mermaid diagrams** for flows/architecture
124
- 5. **Add real code examples** from codebase/code-graph
225
+ 5. **Add real code examples** copied from codebase
125
226
  6. **Use proper MDX components** (Steps, Cards, Tabs, etc.)
227
+ 7. **Cite sources** - Note which files info came from
228
+ 8. **Mark feature flags** - Note conditional features
229
+ 9. **Note duplicates** - Reference related/similar features
230
+
231
+ **NEVER generate content without reading source files first.**
232
+
233
+ ### Step 6: Review Content with User (MANDATORY)
234
+
235
+ **ALWAYS show the complete draft for user review before writing:**
126
236
 
127
- **Example using code-graph:**
128
237
  ```
129
- // From code-graph.json:
130
- {
131
- "name": "login",
132
- "type": "function",
133
- "signature": "login(email: string, password: string): Promise<AuthToken>",
134
- "params": [...]
135
- }
238
+ ═══════════════════════════════════════════════════════════
239
+ CONTENT REVIEW
240
+ ═══════════════════════════════════════════════════════════
241
+
242
+ 📄 FILE: docs/guides/authentication.mdx
243
+
244
+ ───────────────────────────────────────────────────────────
245
+ DRAFT CONTENT
246
+ ───────────────────────────────────────────────────────────
247
+
248
+ ---
249
+ title: Authentication
250
+ description: Learn how to authenticate users in your app
251
+ sources: ["src/lib/auth/index.ts", "src/lib/auth/types.ts"]
252
+ ---
253
+
254
+ ## Overview
255
+
256
+ Authentication allows users to securely access your application...
136
257
 
137
- // Generate accurate documentation:
138
258
  ## login(email, password)
259
+
139
260
  Authenticate user and return JWT token.
261
+
262
+ | Parameter | Type | Description |
263
+ |-----------|------|-------------|
264
+ | email | string | User email address |
265
+ | password | string | User password |
266
+
267
+ **Returns:** `Promise<AuthToken>`
268
+
269
+ ### Example
270
+
271
+ ```typescript
272
+ import { login } from '@package/auth';
273
+
274
+ const token = await login('user@example.com', 'password');
275
+ ```
276
+
277
+ ## Next Steps
278
+
279
+ ...
280
+
281
+ ───────────────────────────────────────────────────────────
282
+ NOTICES
283
+ ───────────────────────────────────────────────────────────
284
+
285
+ ⚠️ FEATURE FLAG: newAuthFlow
286
+ This feature has a new implementation behind a flag.
287
+ Currently documenting: OLD implementation
288
+
289
+ 🔄 DUPLICATE: authenticate() exists in src/lib/auth/v2/
290
+ Consider: Document both or mark one as preferred?
291
+
292
+ ───────────────────────────────────────────────────────────
293
+ OPTIONS
294
+ ───────────────────────────────────────────────────────────
295
+
296
+ 1. ✅ **Approve** - Create file with this content
297
+ 2. ✏️ **Edit** - Tell me what to change
298
+ 3. 🔄 **Switch version** - Document feature-flagged version instead
299
+ 4. ➕ **Add duplicate** - Include related feature documentation
300
+ 5. ❌ **Cancel** - Don't create this file
301
+
302
+ Choose an option:
140
303
  ```
141
304
 
142
- ### Step 6: Propose File Location
305
+ ### Step 7: Propose File Location
143
306
 
144
- Suggest where to save:
307
+ After content approval, suggest where to save:
145
308
 
146
309
  "I'll create this page at: `docs/guides/{topic}.mdx`
147
310
 
148
311
  Does this location work, or would you prefer somewhere else?"
149
312
 
150
- ### Step 7: Create and Update Navigation
313
+ ### Step 8: Create and Update Navigation
314
+
315
+ **Only after user approves content AND location:**
151
316
 
152
317
  1. Write the MDX file
153
318
  2. Ask: "Should I add this to the navigation in docs.json?"
154
319
  3. If yes, update docs.json with the new page
155
320
 
156
- ### Step 8: Summary
321
+ ### Step 9: Summary
157
322
 
158
323
  "Created:
159
324
  - `docs/guides/{topic}.mdx` - {description}
@@ -225,11 +390,58 @@ Generates similar documentation following the template structure.
225
390
 
226
391
  ---
227
392
 
393
+ ## Key Principles
394
+
395
+ | Principle | Description |
396
+ |-----------|-------------|
397
+ | **Search before generate** | ALWAYS search/read files before writing |
398
+ | **No hallucination** | Only use data from actual source files |
399
+ | **Review before write** | ALWAYS show draft to user for approval |
400
+ | **Flag feature flags** | Detect and highlight conditional features |
401
+ | **Flag duplicates** | Identify similar/related features |
402
+ | **Use mermaid diagrams** | Visualize architecture, flows, sequences |
403
+ | **Cite sources** | Note which files information came from |
404
+
228
405
  ## Quality Guidelines
229
406
 
230
- - Extract real code examples, don't fabricate
231
- - Include error handling in examples
407
+ - **SEARCH FIRST** - Never generate without reading source files
408
+ - **REVIEW WITH USER** - Always show draft before creating file
409
+ - **DETECT FEATURE FLAGS** - Search for conditional features
410
+ - **DETECT DUPLICATES** - Find similar functions/features
411
+ - Extract real code examples from actual files
412
+ - Flag insufficient info and offer auto-correct options
413
+ - Include error handling from source code
232
414
  - Add TODO markers for sections needing human review
233
- - Use mermaid diagrams for complex flows
234
415
  - Link to related documentation
235
416
  - Apply terminology from context.json
417
+ - Cite source files in frontmatter
418
+
419
+ ## Mermaid Diagram Requirements
420
+
421
+ **ALWAYS include mermaid diagrams for:**
422
+
423
+ | Content Type | Diagram | Example |
424
+ |--------------|---------|---------|
425
+ | Architecture | `flowchart TB` | System components |
426
+ | Data flow | `flowchart LR` | Request processing |
427
+ | API calls | `sequenceDiagram` | Auth flow |
428
+ | State machine | `stateDiagram-v2` | Lifecycle |
429
+ | Data models | `erDiagram` | Database schema |
430
+
431
+ **Example for architecture docs:**
432
+ ```mermaid
433
+ flowchart TB
434
+ Client --> API
435
+ API --> Auth
436
+ API --> Service
437
+ Service --> DB[(Database)]
438
+ ```
439
+
440
+ **Example for API docs:**
441
+ ```mermaid
442
+ sequenceDiagram
443
+ Client->>API: POST /login
444
+ API->>Auth: Validate
445
+ Auth-->>API: Token
446
+ API-->>Client: 200 OK
447
+ ```