@leanspec/ui 0.2.7-dev.20251128020042 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +2 -0
  4. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  7. package/.next/standalone/packages/ui/.next/routes-manifest.json +12 -0
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -18
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
  24. package/.next/standalone/packages/ui/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
  25. package/.next/standalone/packages/ui/.next/server/app/api/context/route/build-manifest.json +11 -0
  26. package/.next/standalone/packages/ui/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
  27. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +8 -0
  28. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.map +5 -0
  29. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -0
  30. package/.next/standalone/packages/ui/.next/server/app/api/context/route_client-reference-manifest.js +2 -0
  31. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/context/page/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +18 -0
  49. package/.next/standalone/packages/ui/.next/server/app/context/page/next-font-manifest.json +6 -0
  50. package/.next/standalone/packages/ui/.next/server/app/context/page/react-loadable-manifest.json +1 -0
  51. package/.next/standalone/packages/ui/.next/server/app/context/page/server-reference-manifest.json +4 -0
  52. package/.next/standalone/packages/ui/.next/server/app/context/page.js +19 -0
  53. package/.next/standalone/packages/ui/.next/server/app/context/page.js.map +5 -0
  54. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -0
  55. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +2 -0
  56. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  65. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  67. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +12 -12
  68. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +12 -12
  69. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  70. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +3 -3
  71. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  72. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  73. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  76. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  78. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +2 -0
  80. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +2 -2
  81. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
  82. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
  83. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
  84. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +3 -0
  85. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
  86. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
  87. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_context_route_actions_dead6daa.js +3 -0
  88. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__12b4eb41._.js +3 -0
  89. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +3 -0
  90. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__6e739186._.js +7 -0
  91. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a4c56419._.js +7 -0
  92. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b6632d78._.js +3 -0
  93. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +1 -1
  94. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
  95. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  96. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
  98. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_315f3b3a._.js +3 -0
  99. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_959ad3d8._.js +4 -0
  100. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_9dcf102b._.js +3 -0
  101. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_497c8b73._.js → _b397e94a._.js} +2 -2
  102. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_8272a49c._.js +3 -0
  103. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_context_page_actions_1a062d48.js +3 -0
  104. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +12 -0
  105. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  106. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  107. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  108. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  109. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  110. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  111. package/.next/standalone/packages/ui/.next/static/chunks/1eb8283995f370c6.js +1 -0
  112. package/.next/standalone/packages/ui/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  113. package/.next/standalone/packages/ui/.next/static/chunks/37a1236ed50645a6.js +1 -0
  114. package/.next/standalone/packages/ui/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  115. package/.next/standalone/packages/ui/.next/static/chunks/c4b1faff3361a749.js +1 -0
  116. package/.next/{static/chunks/294dea6dbec43ca6.js → standalone/packages/ui/.next/static/chunks/d7420d2a867e57b5.js} +1 -1
  117. package/.next/{static/chunks/cca4441cde342ae3.js → standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js} +1 -1
  118. package/.next/standalone/packages/ui/.next/static/chunks/efded9da04c960d8.js +1 -0
  119. package/.next/standalone/packages/ui/.next/static/chunks/f382932f1a5d6359.js +10 -0
  120. package/.next/standalone/packages/ui/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  121. package/.next/standalone/packages/ui/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  122. package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
  123. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
  124. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  125. package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
  126. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
  127. package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
  128. package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
  129. package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
  130. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
  131. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
  132. package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
  133. package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
  134. package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
  135. package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
  136. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
  137. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
  138. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
  139. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
  140. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
  141. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
  142. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
  143. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
  144. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
  145. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
  146. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
  147. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
  148. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
  149. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
  150. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
  151. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
  152. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
  153. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
  154. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
  155. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
  156. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
  157. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
  158. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
  159. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
  160. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
  161. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
  162. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
  163. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
  164. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
  165. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
  166. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
  167. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
  168. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
  169. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
  170. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
  171. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
  172. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
  173. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
  174. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
  175. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
  176. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
  177. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
  178. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
  179. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
  180. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
  181. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
  182. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
  183. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
  184. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
  185. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
  186. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
  187. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
  188. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
  189. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
  190. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
  191. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
  192. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
  193. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
  194. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
  195. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
  196. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
  197. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
  198. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
  199. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
  200. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
  201. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
  202. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
  203. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
  204. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
  205. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
  206. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
  207. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
  208. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
  209. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
  210. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
  211. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
  212. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
  213. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
  214. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
  215. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
  216. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
  217. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
  218. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
  219. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
  220. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
  221. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
  222. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
  223. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
  224. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
  225. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
  226. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
  227. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
  228. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
  229. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
  230. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
  231. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
  232. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
  233. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
  234. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
  235. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
  236. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
  237. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
  238. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
  239. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
  240. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
  241. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
  242. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
  243. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
  244. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
  245. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
  246. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
  247. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
  248. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
  249. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
  250. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
  251. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
  252. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
  253. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
  254. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
  255. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
  256. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
  257. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
  258. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
  259. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
  260. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
  261. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
  262. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
  263. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
  264. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
  265. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
  266. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
  267. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
  268. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
  269. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
  270. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
  271. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
  272. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
  273. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
  274. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
  275. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
  276. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
  277. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
  278. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
  279. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
  280. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
  281. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
  282. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
  283. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
  284. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
  285. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
  286. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
  287. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
  288. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
  289. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
  290. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
  291. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
  292. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
  293. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
  294. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
  295. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
  296. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
  297. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
  298. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
  299. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
  300. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
  301. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
  302. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
  303. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
  304. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
  305. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
  306. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
  307. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
  308. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
  309. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
  310. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
  311. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
  312. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
  313. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
  314. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
  315. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
  316. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
  317. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
  318. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
  319. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
  320. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
  321. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
  322. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
  323. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
  324. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
  325. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
  326. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
  327. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
  328. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
  329. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
  330. package/.next/standalone/packages/ui/package.json +2 -1
  331. package/.next/standalone/packages/ui/server.js +1 -1
  332. package/.next/standalone/packages/ui/src/app/api/context/route.ts +22 -0
  333. package/.next/standalone/packages/ui/src/app/context/context-client.tsx +371 -0
  334. package/.next/standalone/packages/ui/src/app/context/page.tsx +17 -0
  335. package/.next/standalone/packages/ui/src/app/globals.css +16 -16
  336. package/.next/standalone/packages/ui/src/app/layout.tsx +1 -7
  337. package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +291 -0
  338. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +10 -1
  339. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +181 -134
  340. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +20 -0
  341. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -2
  342. package/.next/standalone/packages/ui/src/components/ui/accordion.tsx +58 -0
  343. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +172 -3
  344. package/.next/standalone/packages/ui/src/lib/specs/types.ts +44 -0
  345. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  346. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_buildManifest.js +11 -0
  347. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_clientMiddlewareManifest.json +1 -0
  348. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_ssgManifest.js +1 -0
  349. package/.next/static/chunks/1eb8283995f370c6.js +1 -0
  350. package/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  351. package/.next/static/chunks/37a1236ed50645a6.js +1 -0
  352. package/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  353. package/.next/static/chunks/c4b1faff3361a749.js +1 -0
  354. package/.next/{standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js → static/chunks/d7420d2a867e57b5.js} +1 -1
  355. package/.next/{standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js → static/chunks/dae403679aae65f4.js} +1 -1
  356. package/.next/static/chunks/efded9da04c960d8.js +1 -0
  357. package/.next/static/chunks/f382932f1a5d6359.js +10 -0
  358. package/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  359. package/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  360. package/package.json +3 -2
  361. package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +0 -95
  362. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +0 -3
  363. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +0 -7
  364. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +0 -7
  365. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +0 -3
  366. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +0 -3
  367. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  368. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  369. package/.next/standalone/packages/ui/.next/static/chunks/a803d646487dfc2d.js +0 -3
  370. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  371. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +0 -5
  372. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  373. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +0 -1
  374. package/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  375. package/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  376. package/.next/static/chunks/a803d646487dfc2d.js +0 -3
  377. package/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  378. package/.next/static/chunks/b845813463167db0.js +0 -5
  379. package/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  380. package/.next/static/chunks/d784d84d5b880e48.js +0 -1
  381. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_buildManifest.js +0 -0
  382. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_clientMiddlewareManifest.json +0 -0
  383. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_ssgManifest.js +0 -0
  384. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
  385. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
  386. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
@@ -0,0 +1,834 @@
1
+ # Design Document: Folder Structure Improvements
2
+
3
+ > Detailed implementation notes for spec 002
4
+
5
+ ## Implementation Details
6
+
7
+ ### Auto-Check Integration
8
+
9
+ Auto-check runs automatically in these commands:
10
+
11
+ **Commands that interact with specs (11 total):**
12
+ 1. `lean-spec create` - After creating spec
13
+ 2. `lean-spec list` - Before showing list
14
+ 3. `lean-spec board` - Before showing board
15
+ 4. `lean-spec update` - Before updating spec
16
+ 5. `lean-spec search` - Before searching
17
+ 6. `lean-spec stats` - Before showing stats
18
+ 7. `lean-spec timeline` - Before showing timeline
19
+ 8. `lean-spec gantt` - Before showing gantt
20
+ 9. `lean-spec deps` - Before showing dependencies
21
+ 10. `lean-spec files` - Before listing files
22
+ 11. `lean-spec archive` - Before archiving
23
+
24
+ **Commands that skip auto-check:**
25
+ - `lean-spec init` - No specs exist yet
26
+ - `lean-spec templates` - Template management only
27
+ - `lean-spec check` - Already checking conflicts
28
+
29
+ **Integration pattern:**
30
+ ```typescript
31
+ // Standard pattern for all commands
32
+ import { autoCheckIfEnabled } from './check.js';
33
+
34
+ export async function someCommand(options: any): Promise<void> {
35
+ // Auto-check at start (or end for create)
36
+ await autoCheckIfEnabled();
37
+
38
+ // ... rest of command logic
39
+ }
40
+ ```
41
+
42
+ **Specific implementations:**
43
+
44
+ ```typescript
45
+ // src/commands/create.ts
46
+ export async function createSpec(...) {
47
+ // ... create spec logic ...
48
+
49
+ console.log(chalk.green(`✓ Created: ${specDir}/`));
50
+
51
+ // Auto-check AFTER creation
52
+ await autoCheckIfEnabled();
53
+ }
54
+
55
+ // src/commands/list.ts
56
+ export async function listSpecs(...) {
57
+ await autoCheckIfEnabled(); // Check at start
58
+ // ... list logic ...
59
+ }
60
+
61
+ // src/commands/board.ts
62
+ export async function boardCommand(...) {
63
+ await autoCheckIfEnabled(); // Check at start
64
+ // ... board logic ...
65
+ }
66
+
67
+ // src/commands/update.ts
68
+ export async function updateSpec(...) {
69
+ await autoCheckIfEnabled(); // Check at start
70
+ // ... update logic ...
71
+ }
72
+
73
+ // src/commands/search.ts
74
+ export async function searchCommand(...) {
75
+ await autoCheckIfEnabled(); // Check at start
76
+ // ... search logic ...
77
+ }
78
+
79
+ // src/commands/stats.ts
80
+ export async function statsCommand(...) {
81
+ await autoCheckIfEnabled(); // Check at start
82
+ // ... stats logic ...
83
+ }
84
+
85
+ // src/commands/timeline.ts
86
+ export async function timelineCommand(...) {
87
+ await autoCheckIfEnabled(); // Check at start
88
+ // ... timeline logic ...
89
+ }
90
+
91
+ // src/commands/gantt.ts
92
+ export async function ganttCommand(...) {
93
+ await autoCheckIfEnabled(); // Check at start
94
+ // ... gantt logic ...
95
+ }
96
+
97
+ // src/commands/deps.ts
98
+ export async function depsCommand(...) {
99
+ await autoCheckIfEnabled(); // Check at start
100
+ // ... deps logic ...
101
+ }
102
+
103
+ // src/commands/files.ts
104
+ export async function filesCommand(...) {
105
+ await autoCheckIfEnabled(); // Check at start
106
+ // ... files logic ...
107
+ }
108
+
109
+ // src/commands/archive.ts
110
+ export async function archiveSpec(...) {
111
+ await autoCheckIfEnabled(); // Check at start
112
+ // ... archive logic ...
113
+ }
114
+ ```
115
+
116
+ ### Config Schema Update
117
+
118
+ ```typescript
119
+ // src/config.ts
120
+ export interface LeanSpecConfig {
121
+ template: string;
122
+ templates?: Record<string, string>;
123
+ specsDir: string;
124
+ autoCheck?: boolean; // NEW: Enable/disable auto-check (default: true)
125
+ structure: {
126
+ pattern: 'flat' | 'custom' | string;
127
+ dateFormat: string;
128
+ sequenceDigits: number;
129
+ defaultFile: string;
130
+ prefix?: string;
131
+ groupExtractor?: string;
132
+ groupFallback?: string;
133
+ };
134
+ features?: {
135
+ aiAgents?: boolean;
136
+ examples?: boolean;
137
+ collaboration?: boolean;
138
+ compliance?: boolean;
139
+ approvals?: boolean;
140
+ apiDocs?: boolean;
141
+ };
142
+ frontmatter?: {
143
+ required?: string[];
144
+ optional?: string[];
145
+ custom?: Record<string, 'string' | 'number' | 'boolean' | 'array'>;
146
+ };
147
+ variables?: Record<string, string>;
148
+ }
149
+ ```
150
+
151
+ ### 1. Default Config Change
152
+
153
+ ```typescript
154
+ // src/config.ts
155
+ const DEFAULT_CONFIG: LeanSpecConfig = {
156
+ template: 'spec-template.md',
157
+ templates: {
158
+ default: 'spec-template.md',
159
+ },
160
+ specsDir: 'specs',
161
+ structure: {
162
+ pattern: 'flat',
163
+ prefix: '{YYYYMMDD}-', // NEW: Add date prefix by default
164
+ dateFormat: 'YYYYMMDD',
165
+ sequenceDigits: 3,
166
+ defaultFile: 'README.md',
167
+ },
168
+ features: {
169
+ aiAgents: true,
170
+ examples: true,
171
+ },
172
+ };
173
+ ```
174
+
175
+ ### 2. Create Command: Add --no-prefix Flag
176
+
177
+ ```typescript
178
+ // src/commands/create.ts
179
+ import { autoCheckIfEnabled } from './check.js'; // NEW
180
+
181
+ export async function createSpec(name: string, options: {
182
+ title?: string;
183
+ description?: string;
184
+ tags?: string[];
185
+ priority?: SpecPriority;
186
+ assignee?: string;
187
+ template?: string;
188
+ customFields?: Record<string, unknown>;
189
+ noPrefix?: boolean; // NEW
190
+ } = {}): Promise<void> {
191
+ const config = await loadConfig();
192
+ const cwd = process.cwd();
193
+ const specsDir = path.join(cwd, config.specsDir);
194
+
195
+ await fs.mkdir(specsDir, { recursive: true });
196
+
197
+ const seq = await getGlobalNextSeq(specsDir, config.structure.sequenceDigits);
198
+
199
+ let specRelativePath: string;
200
+
201
+ if (config.structure.pattern === 'flat') {
202
+ // NEW: Check noPrefix flag
203
+ const prefix = options.noPrefix
204
+ ? ''
205
+ : config.structure.prefix
206
+ ? resolvePrefix(config.structure.prefix, config.structure.dateFormat)
207
+ : '';
208
+ specRelativePath = `${prefix}${seq}-${name}`;
209
+ } else if (config.structure.pattern === 'custom') {
210
+ // ... existing custom pattern logic
211
+ }
212
+
213
+ // ... create spec logic ...
214
+
215
+ console.log(chalk.green(`✓ Created: ${specDir}/`));
216
+ console.log(chalk.gray(` Edit: ${specFile}`));
217
+
218
+ // NEW: Auto-check after creation
219
+ await autoCheckIfEnabled();
220
+ }
221
+ ```
222
+
223
+ ### 3. Check Command Implementation
224
+
225
+ ```typescript
226
+ // src/commands/check.ts
227
+ import * as path from 'node:path';
228
+ import chalk from 'chalk';
229
+ import { loadConfig } from '../config.js';
230
+ import { loadAllSpecs } from '../spec-loader.js';
231
+
232
+ export async function checkSpecs(options: {
233
+ quiet?: boolean;
234
+ silent?: boolean; // NEW: Completely suppress output
235
+ } = {}): Promise<boolean> {
236
+ const config = await loadConfig();
237
+ const cwd = process.cwd();
238
+ const specsDir = path.join(cwd, config.specsDir);
239
+
240
+ // Find all specs with sequence numbers
241
+ const specs = await loadAllSpecs();
242
+ const sequenceMap = new Map<number, string[]>();
243
+
244
+ for (const spec of specs) {
245
+ // Extract sequence number from spec name
246
+ const specName = path.basename(spec.path);
247
+ const match = specName.match(/^(\d+)-/);
248
+
249
+ if (match) {
250
+ const seq = parseInt(match[1], 10);
251
+ if (!sequenceMap.has(seq)) {
252
+ sequenceMap.set(seq, []);
253
+ }
254
+ sequenceMap.get(seq)!.push(spec.path);
255
+ }
256
+ }
257
+
258
+ // Find conflicts (sequences with multiple specs)
259
+ const conflicts = Array.from(sequenceMap.entries())
260
+ .filter(([_, paths]) => paths.length > 1)
261
+ .sort(([a], [b]) => a - b);
262
+
263
+ if (conflicts.length === 0) {
264
+ if (!options.quiet && !options.silent) {
265
+ console.log(chalk.green('✓ No sequence conflicts detected'));
266
+ }
267
+ return true;
268
+ }
269
+
270
+ // Report conflicts
271
+ if (!options.silent) {
272
+ if (!options.quiet) {
273
+ // Full output
274
+ console.log('');
275
+ console.log(chalk.yellow('⚠️ Sequence conflicts detected:\n'));
276
+
277
+ for (const [seq, paths] of conflicts) {
278
+ console.log(chalk.red(` Sequence ${String(seq).padStart(config.structure.sequenceDigits, '0')}:`));
279
+ for (const p of paths) {
280
+ console.log(chalk.gray(` - ${p}`));
281
+ }
282
+ console.log('');
283
+ }
284
+
285
+ console.log(chalk.cyan('Tip: Use date prefix to prevent conflicts:'));
286
+ console.log(chalk.gray(' Edit .lean-spec/config.json → structure.prefix: "{YYYYMMDD}-"'));
287
+ console.log('');
288
+ console.log(chalk.cyan('Or rename folders manually to resolve.'));
289
+ console.log('');
290
+ } else {
291
+ // Brief warning (for auto-check)
292
+ console.log('');
293
+ console.log(chalk.yellow(`⚠️ Conflict warning: ${conflicts.length} sequence conflict(s) detected`));
294
+ console.log(chalk.gray('Run: lean-spec check'));
295
+ console.log('');
296
+ }
297
+ }
298
+
299
+ return false;
300
+ }
301
+
302
+ // NEW: Helper for auto-check in other commands
303
+ export async function autoCheckIfEnabled(): Promise<void> {
304
+ const config = await loadConfig();
305
+
306
+ // Check if auto-check is disabled
307
+ if (config.autoCheck === false) {
308
+ return;
309
+ }
310
+
311
+ // Run check in quiet mode (brief warning only)
312
+ try {
313
+ await checkSpecs({ quiet: true });
314
+ } catch {
315
+ // Ignore errors in auto-check
316
+ }
317
+ }
318
+ ```
319
+
320
+ ### 4. Pattern-Aware List Grouping
321
+
322
+ ```typescript
323
+ // src/commands/list.ts
324
+ import { autoCheckIfEnabled } from './check.js'; // NEW
325
+
326
+ function groupSpecs(specs: Spec[], config: LeanSpecConfig): Map<string, Spec[]> {
327
+ if (config.structure.pattern === 'flat') {
328
+ // Group by month from frontmatter.created
329
+ const byMonth = new Map<string, Spec[]>();
330
+
331
+ for (const spec of specs) {
332
+ const created = spec.frontmatter.created;
333
+ const date = new Date(created);
334
+ const monthKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}`;
335
+
336
+ if (!byMonth.has(monthKey)) {
337
+ byMonth.set(monthKey, []);
338
+ }
339
+ byMonth.get(monthKey)!.push(spec);
340
+ }
341
+
342
+ return byMonth;
343
+ } else {
344
+ // Group by folder structure (first path component)
345
+ const byFolder = new Map<string, Spec[]>();
346
+
347
+ for (const spec of specs) {
348
+ const folder = spec.path.split('/')[0];
349
+
350
+ if (!byFolder.has(folder)) {
351
+ byFolder.set(folder, []);
352
+ }
353
+ byFolder.get(folder)!.push(spec);
354
+ }
355
+
356
+ return byFolder;
357
+ }
358
+ }
359
+
360
+ export async function listSpecs(options: {
361
+ showArchived?: boolean;
362
+ status?: SpecStatus | SpecStatus[];
363
+ tags?: string[];
364
+ priority?: SpecPriority | SpecPriority[];
365
+ assignee?: string;
366
+ customFields?: Record<string, unknown>;
367
+ flat?: boolean; // NEW: Disable grouping
368
+ } = {}): Promise<void> {
369
+ // NEW: Auto-check before listing
370
+ await autoCheckIfEnabled();
371
+
372
+ const config = await loadConfig();
373
+ const cwd = process.cwd();
374
+ const specsDir = path.join(cwd, config.specsDir);
375
+
376
+ try {
377
+ await fs.access(specsDir);
378
+ } catch {
379
+ console.log('');
380
+ console.log('No specs directory found. Initialize with: lean-spec init');
381
+ console.log('');
382
+ return;
383
+ }
384
+
385
+ // Build filter options and load specs...
386
+ // ... rest of list implementation ...
387
+ }
388
+ ```
389
+
390
+ ### 5. CLI Command Registration
391
+
392
+ ```typescript
393
+ // src/cli.ts
394
+
395
+ // Import new command
396
+ import { checkSpecs } from './commands/check.js';
397
+
398
+ // Add command
399
+ program
400
+ .command('check')
401
+ .description('Check for sequence conflicts')
402
+ .option('-q, --quiet', 'Suppress output')
403
+ .action(async (options) => {
404
+ const hasConflicts = await checkSpecs(options);
405
+ process.exit(hasConflicts ? 0 : 1);
406
+ });
407
+
408
+ // Update create command
409
+ program
410
+ .command('create <name>')
411
+ .description('Create a new spec')
412
+ .option('-t, --title <title>', 'Spec title')
413
+ .option('-d, --description <description>', 'Spec description')
414
+ .option('--tags <tags>', 'Comma-separated tags')
415
+ .option('-p, --priority <priority>', 'Priority (low, medium, high, critical)')
416
+ .option('--assignee <assignee>', 'Assignee name')
417
+ .option('--template <template>', 'Template to use')
418
+ .option('--field <key=value>', 'Custom field (repeatable)', collectFields, {})
419
+ .option('--no-prefix', 'Skip date prefix even if configured') // NEW
420
+ .action(async (name, options) => {
421
+ // ... parse options
422
+ await createSpec(name, {
423
+ // ... other options
424
+ noPrefix: !options.prefix, // NEW
425
+ });
426
+ });
427
+
428
+ // Update list command
429
+ program
430
+ .command('list')
431
+ .description('List all specs')
432
+ .option('-a, --archived', 'Include archived specs')
433
+ .option('-s, --status <status>', 'Filter by status')
434
+ .option('-t, --tags <tags>', 'Filter by tags (comma-separated)')
435
+ .option('-p, --priority <priority>', 'Filter by priority')
436
+ .option('--assignee <assignee>', 'Filter by assignee')
437
+ .option('--field <key=value>', 'Filter by custom field', collectFields, {})
438
+ .option('--flat', 'Disable grouping') // NEW
439
+ .action(async (options) => {
440
+ // ... parse options
441
+ await listSpecs({
442
+ // ... other options
443
+ flat: options.flat, // NEW
444
+ });
445
+ });
446
+ ```
447
+
448
+ ### 6. Template Config Updates
449
+
450
+ ```json
451
+ // templates/minimal/config.json
452
+ {
453
+ "name": "Minimal",
454
+ "description": "Just the essentials - folder structure only",
455
+ "config": {
456
+ "template": "minimal",
457
+ "specsDir": "specs",
458
+ "structure": {
459
+ "pattern": "flat",
460
+ "prefix": "{YYYYMMDD}-",
461
+ "dateFormat": "YYYYMMDD",
462
+ "sequenceDigits": 3,
463
+ "defaultFile": "README.md"
464
+ }
465
+ }
466
+ }
467
+ ```
468
+
469
+ ```json
470
+ // templates/standard/config.json
471
+ {
472
+ "name": "Standard",
473
+ "description": "Recommended for most projects - solo devs and small teams",
474
+ "config": {
475
+ "template": "standard",
476
+ "specsDir": "specs",
477
+ "structure": {
478
+ "pattern": "flat",
479
+ "prefix": "{YYYYMMDD}-",
480
+ "dateFormat": "YYYYMMDD",
481
+ "sequenceDigits": 3,
482
+ "defaultFile": "README.md"
483
+ },
484
+ "features": {
485
+ "aiAgents": true
486
+ }
487
+ }
488
+ }
489
+ ```
490
+
491
+ ```json
492
+ // templates/enterprise/config.json
493
+ {
494
+ "name": "Enterprise",
495
+ "description": "Governance-ready with approvals, compliance, and security",
496
+ "config": {
497
+ "template": "enterprise",
498
+ "specsDir": "specs",
499
+ "structure": {
500
+ "pattern": "custom",
501
+ "groupExtractor": "{YYYYMMDD}",
502
+ "dateFormat": "YYYYMMDD",
503
+ "sequenceDigits": 3,
504
+ "defaultFile": "README.md"
505
+ },
506
+ "features": {
507
+ "aiAgents": true,
508
+ "compliance": true,
509
+ "approvals": true
510
+ }
511
+ }
512
+ }
513
+ ```
514
+
515
+ ### 7. Init Wizard Pattern Selection
516
+
517
+ ```typescript
518
+ // src/commands/init.ts
519
+
520
+ // Add pattern selection
521
+ async function promptStructurePattern(): Promise<Partial<LeanSpecConfig['structure']>> {
522
+ const choice = await select({
523
+ message: 'How do you want to organize specs?',
524
+ options: [
525
+ {
526
+ name: 'Flat with dates (Recommended)',
527
+ value: 'flat-dated',
528
+ description: '20251103-001-feature/ - Prevents conflicts in teams',
529
+ },
530
+ {
531
+ name: 'Flat, clean numbers',
532
+ value: 'flat-clean',
533
+ description: '001-feature/ - Simple for solo developers',
534
+ },
535
+ {
536
+ name: 'Date folders',
537
+ value: 'custom-date',
538
+ description: '20251103/001-feature/ - Traditional nested structure',
539
+ },
540
+ ],
541
+ });
542
+
543
+ switch (choice) {
544
+ case 'flat-dated':
545
+ return {
546
+ pattern: 'flat',
547
+ prefix: '{YYYYMMDD}-',
548
+ sequenceDigits: 3,
549
+ dateFormat: 'YYYYMMDD',
550
+ defaultFile: 'README.md',
551
+ };
552
+ case 'flat-clean':
553
+ return {
554
+ pattern: 'flat',
555
+ sequenceDigits: 3,
556
+ dateFormat: 'YYYYMMDD',
557
+ defaultFile: 'README.md',
558
+ };
559
+ case 'custom-date':
560
+ return {
561
+ pattern: 'custom',
562
+ groupExtractor: '{YYYYMMDD}',
563
+ sequenceDigits: 3,
564
+ dateFormat: 'YYYYMMDD',
565
+ defaultFile: 'README.md',
566
+ };
567
+ default:
568
+ return {
569
+ pattern: 'flat',
570
+ prefix: '{YYYYMMDD}-',
571
+ sequenceDigits: 3,
572
+ dateFormat: 'YYYYMMDD',
573
+ defaultFile: 'README.md',
574
+ };
575
+ }
576
+ }
577
+
578
+ // Update init function
579
+ export async function initProject(options: { template?: string } = {}): Promise<void> {
580
+ // ... existing template selection
581
+
582
+ // NEW: Add structure pattern selection
583
+ const structureConfig = await promptStructurePattern();
584
+
585
+ // Merge structure config into final config
586
+ config.structure = {
587
+ ...config.structure,
588
+ ...structureConfig,
589
+ };
590
+
591
+ // ... rest of init
592
+ }
593
+ ```
594
+
595
+ ## Testing Strategy
596
+
597
+ ### Unit Tests
598
+
599
+ ```typescript
600
+ // src/commands/check.test.ts
601
+ describe('checkSpecs', () => {
602
+ it('should detect duplicate sequences', async () => {
603
+ // Create two specs with same sequence
604
+ await createTestSpec('001-feature-a');
605
+ await createTestSpec('001-feature-b');
606
+
607
+ const hasConflicts = await checkSpecs({ quiet: true });
608
+ expect(hasConflicts).toBe(false); // Returns false when conflicts exist
609
+ });
610
+
611
+ it('should pass when no conflicts', async () => {
612
+ await createTestSpec('001-feature-a');
613
+ await createTestSpec('002-feature-b');
614
+
615
+ const hasConflicts = await checkSpecs({ quiet: true });
616
+ expect(hasConflicts).toBe(true); // Returns true when no conflicts
617
+ });
618
+
619
+ it('should respect silent mode', async () => {
620
+ await createTestSpec('001-feature-a');
621
+ await createTestSpec('001-feature-b');
622
+
623
+ // Should not output anything
624
+ const output = captureConsoleOutput(() => {
625
+ checkSpecs({ silent: true });
626
+ });
627
+
628
+ expect(output).toBe('');
629
+ });
630
+ });
631
+
632
+ describe('autoCheckIfEnabled', () => {
633
+ it('should run check when autoCheck is true', async () => {
634
+ await setConfig({ autoCheck: true });
635
+ await createTestSpec('001-feature-a');
636
+ await createTestSpec('001-feature-b');
637
+
638
+ const output = captureConsoleOutput(() => {
639
+ autoCheckIfEnabled();
640
+ });
641
+
642
+ expect(output).toContain('conflict');
643
+ });
644
+
645
+ it('should skip check when autoCheck is false', async () => {
646
+ await setConfig({ autoCheck: false });
647
+ await createTestSpec('001-feature-a');
648
+ await createTestSpec('001-feature-b');
649
+
650
+ const output = captureConsoleOutput(() => {
651
+ autoCheckIfEnabled();
652
+ });
653
+
654
+ expect(output).toBe('');
655
+ });
656
+ });
657
+
658
+ // Test auto-check integration in each command
659
+ describe('auto-check integration', () => {
660
+ beforeEach(async () => {
661
+ await setConfig({ autoCheck: true });
662
+ // Create conflicting specs
663
+ await createTestSpec('001-feature-a');
664
+ await createTestSpec('001-feature-b');
665
+ });
666
+
667
+ it('should auto-check in create command', async () => {
668
+ const output = captureConsoleOutput(() => {
669
+ createSpec('feature-c');
670
+ });
671
+ expect(output).toContain('conflict');
672
+ });
673
+
674
+ it('should auto-check in list command', async () => {
675
+ const output = captureConsoleOutput(() => {
676
+ listSpecs();
677
+ });
678
+ expect(output).toContain('conflict');
679
+ });
680
+
681
+ it('should auto-check in board command', async () => {
682
+ const output = captureConsoleOutput(() => {
683
+ boardCommand({});
684
+ });
685
+ expect(output).toContain('conflict');
686
+ });
687
+
688
+ it('should auto-check in update command', async () => {
689
+ const output = captureConsoleOutput(() => {
690
+ updateSpec('001-feature-a', { status: 'complete' });
691
+ });
692
+ expect(output).toContain('conflict');
693
+ });
694
+
695
+ it('should auto-check in search command', async () => {
696
+ const output = captureConsoleOutput(() => {
697
+ searchCommand('feature');
698
+ });
699
+ expect(output).toContain('conflict');
700
+ });
701
+
702
+ it('should auto-check in stats command', async () => {
703
+ const output = captureConsoleOutput(() => {
704
+ statsCommand({});
705
+ });
706
+ expect(output).toContain('conflict');
707
+ });
708
+
709
+ it('should auto-check in timeline command', async () => {
710
+ const output = captureConsoleOutput(() => {
711
+ timelineCommand({});
712
+ });
713
+ expect(output).toContain('conflict');
714
+ });
715
+
716
+ it('should auto-check in gantt command', async () => {
717
+ const output = captureConsoleOutput(() => {
718
+ ganttCommand({});
719
+ });
720
+ expect(output).toContain('conflict');
721
+ });
722
+
723
+ it('should auto-check in deps command', async () => {
724
+ const output = captureConsoleOutput(() => {
725
+ depsCommand('001-feature-a');
726
+ });
727
+ expect(output).toContain('conflict');
728
+ });
729
+
730
+ it('should auto-check in files command', async () => {
731
+ const output = captureConsoleOutput(() => {
732
+ filesCommand('001-feature-a');
733
+ });
734
+ expect(output).toContain('conflict');
735
+ });
736
+
737
+ it('should auto-check in archive command', async () => {
738
+ const output = captureConsoleOutput(() => {
739
+ archiveSpec('001-feature-a');
740
+ });
741
+ expect(output).toContain('conflict');
742
+ });
743
+
744
+ it('should NOT auto-check in init command', async () => {
745
+ const output = captureConsoleOutput(() => {
746
+ initProject();
747
+ });
748
+ expect(output).not.toContain('conflict');
749
+ });
750
+
751
+ it('should NOT auto-check in templates command', async () => {
752
+ const output = captureConsoleOutput(() => {
753
+ listTemplates();
754
+ });
755
+ expect(output).not.toContain('conflict');
756
+ });
757
+
758
+ it('should NOT auto-check in check command', async () => {
759
+ const output = captureConsoleOutput(() => {
760
+ checkSpecs();
761
+ });
762
+ // Should show full report, not auto-check warning
763
+ expect(output).toContain('Sequence conflicts detected');
764
+ });
765
+ });
766
+
767
+ // src/commands/create.test.ts
768
+ describe('createSpec with --no-prefix', () => {
769
+ it('should skip prefix when flag provided', async () => {
770
+ await createSpec('test-feature', { noPrefix: true });
771
+
772
+ const specDir = path.join(tmpDir, 'specs', '001-test-feature');
773
+ expect(await dirExists(specDir)).toBe(true);
774
+ });
775
+
776
+ it('should apply date prefix by default', async () => {
777
+ await createSpec('test-feature');
778
+
779
+ const today = getToday('YYYYMMDD');
780
+ const specDir = path.join(tmpDir, 'specs', `${today}-001-test-feature`);
781
+ expect(await dirExists(specDir)).toBe(true);
782
+ });
783
+ });
784
+
785
+ // src/commands/list.test.ts
786
+ describe('listSpecs with --flat', () => {
787
+ it('should display flat list without grouping', async () => {
788
+ // Test flat display
789
+ });
790
+
791
+ it('should group by month for flat pattern', async () => {
792
+ // Test month grouping
793
+ });
794
+
795
+ it('should group by folder for custom pattern', async () => {
796
+ // Test folder grouping
797
+ });
798
+ });
799
+ ```
800
+
801
+ ### Integration Tests
802
+
803
+ ```typescript
804
+ // Multi-user conflict scenario
805
+ describe('Multi-user workflow', () => {
806
+ it('should prevent conflicts with date prefix', async () => {
807
+ // User A creates spec on Nov 3
808
+ const specA = await createSpec('feature-a');
809
+ expect(specA).toContain('20251103-001');
810
+
811
+ // User B creates spec on Nov 3 (different sequence)
812
+ const specB = await createSpec('feature-b');
813
+ expect(specB).toContain('20251103-002');
814
+
815
+ // No conflicts
816
+ const hasConflicts = await checkSpecs({ quiet: true });
817
+ expect(hasConflicts).toBe(true);
818
+ });
819
+ });
820
+ ```
821
+
822
+ ## Performance Impact
823
+
824
+ - **Date prefix**: No performance impact (string concatenation)
825
+ - **Check command**: O(n) where n = number of specs, fast even with 1000+ specs
826
+ - **List grouping**: Minimal overhead, same O(n) complexity
827
+ - **Template changes**: No runtime impact
828
+
829
+ ## Migration Path
830
+
831
+ 1. Existing projects without prefix: Continue working, no changes required
832
+ 2. Existing projects with date folders: Already using custom pattern, no changes
833
+ 3. New projects: Get date prefix by default
834
+ 4. Users can opt out: Use `--no-prefix` flag or edit config