@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,382 @@
1
+ # Design: Unified Analytics & Dashboard
2
+
3
+ ## Architecture
4
+
5
+ ### File Structure
6
+ ```
7
+ src/commands/
8
+ ├── dashboard.ts # NEW: Comprehensive overview
9
+ ├── stats.ts # ENHANCED: Merge timeline logic
10
+ ├── list.ts # KEEP: Detailed browsing
11
+ ├── board.ts # KEEP: Kanban view
12
+ ├── gantt.ts # KEEP: Timeline planning
13
+ ├── deps.ts # KEEP: Dependencies
14
+ └── timeline.ts # DEPRECATE → merge into stats.ts
15
+ ```
16
+
17
+ ### Code Reuse
18
+ - Extract shared visualization helpers to `utils/vis.ts`:
19
+ - `createBar(count, max, width, char)` - reusable bar charts
20
+ - `formatMetric(label, value, color)` - consistent metric display
21
+ - `renderSection(title, content)` - section formatting
22
+ - Dashboard composes high-level summaries from other commands
23
+ - Stats command owns all analytics logic (including timeline)
24
+
25
+ ### Performance
26
+ - Dashboard: Single `loadAllSpecs()` for all sections
27
+ - Smart caching between dashboard and other commands
28
+ - Lazy rendering (skip empty sections)
29
+ - Target: < 300ms for 100 specs
30
+
31
+ ## Part 0: Timestamp Tracking (Foundation)
32
+
33
+ ### Problem
34
+ Current tracking only stores dates (YYYY-MM-DD), not timestamps:
35
+ - Can't calculate precise cycle times
36
+ - Can't distinguish specs completed same day
37
+ - Loses granularity for velocity analysis
38
+
39
+ ### Solution
40
+ Add ISO 8601 timestamp fields alongside date fields
41
+
42
+ ### Frontmatter Schema Update
43
+ ```yaml
44
+ ---
45
+ status: in-progress
46
+ created: '2025-11-04' # Keep for human readability
47
+ created_at: '2025-11-04T14:30:00Z' # NEW: Precise timestamp
48
+ updated: '2025-11-04' # Keep for human readability
49
+ updated_at: '2025-11-04T16:45:00Z' # NEW: Precise timestamp
50
+ completed_at: '2025-11-05T10:15:00Z' # NEW: When status changed to complete
51
+
52
+ # Status transition history (optional, for advanced velocity)
53
+ transitions:
54
+ - status: planned
55
+ at: '2025-11-04T14:30:00Z'
56
+ - status: in-progress
57
+ at: '2025-11-04T15:00:00Z'
58
+ - status: complete
59
+ at: '2025-11-05T10:15:00Z'
60
+ ---
61
+ ```
62
+
63
+ ### Migration Strategy
64
+ - Add new `*_at` fields alongside existing date fields
65
+ - Auto-generate timestamps on spec creation/updates
66
+ - Existing specs: infer timestamps from dates (use midnight UTC)
67
+ - Keep date fields for backward compatibility
68
+ - Make timestamps optional (graceful degradation)
69
+
70
+ ### Implementation
71
+ ```typescript
72
+ // In frontmatter.ts
73
+ export interface SpecFrontmatter {
74
+ // Existing date fields (keep for compatibility)
75
+ created: string; // YYYY-MM-DD
76
+ updated?: string; // YYYY-MM-DD
77
+ completed?: string; // YYYY-MM-DD
78
+
79
+ // NEW: Precise timestamps
80
+ created_at?: string; // ISO 8601
81
+ updated_at?: string; // ISO 8601
82
+ completed_at?: string; // ISO 8601
83
+
84
+ // NEW: Status transition history (optional)
85
+ transitions?: Array<{
86
+ status: SpecStatus;
87
+ at: string; // ISO 8601
88
+ }>;
89
+ }
90
+
91
+ // Auto-generate timestamps on updates
92
+ export function enrichWithTimestamps(
93
+ data: SpecFrontmatter,
94
+ previousData?: SpecFrontmatter
95
+ ): void {
96
+ const now = new Date().toISOString();
97
+
98
+ // Set created_at if missing
99
+ if (!data.created_at) {
100
+ data.created_at = data.created
101
+ ? `${data.created}T00:00:00Z` // Infer from date
102
+ : now;
103
+ }
104
+
105
+ // Update updated_at on any change
106
+ if (previousData) {
107
+ data.updated_at = now;
108
+ }
109
+
110
+ // Set completed_at when status changes to complete
111
+ if (data.status === 'complete' &&
112
+ previousData?.status !== 'complete' &&
113
+ !data.completed_at) {
114
+ data.completed_at = now;
115
+ data.completed = new Date().toISOString().split('T')[0];
116
+ }
117
+
118
+ // Track transition (optional)
119
+ if (previousData && data.status !== previousData.status) {
120
+ if (!data.transitions) data.transitions = [];
121
+ data.transitions.push({
122
+ status: data.status,
123
+ at: now
124
+ });
125
+ }
126
+ }
127
+ ```
128
+
129
+ ## Part 1: Unified Analytics Command
130
+
131
+ ### Command Structure
132
+ Keep `lean-spec stats` (backward compatible), enhanced with velocity modes:
133
+
134
+ ```bash
135
+ lean-spec stats # Default: current stats (unchanged)
136
+ lean-spec stats --timeline # Add timeline section
137
+ lean-spec stats --history # Full historical view (current timeline command)
138
+ lean-spec stats --velocity # NEW: Cycle time & throughput analysis
139
+ lean-spec stats --all # Everything (stats + timeline + velocity)
140
+ ```
141
+
142
+ ### Velocity Section Output
143
+ ```
144
+ 📊 Velocity Metrics (Last 30 Days)
145
+
146
+ Cycle Time (Created → Completed)
147
+ Average: 5.2 days ████████░░░░░░░░░░ (target: 7 days)
148
+ Median: 4.0 days
149
+ P50-P95: 2-12 days
150
+
151
+ Stage Duration
152
+ Planned: 2.1 days ████░░░░░░░░░░░░░░░░
153
+ In-Progress: 3.5 days ██████░░░░░░░░░░░░░░
154
+
155
+ Throughput
156
+ Last 7 days: 3 specs ████████████░░░░░░░░ (up from 2)
157
+ Last 30 days: 12 specs ████████████████████ (target: 10)
158
+
159
+ Work in Progress
160
+ Current WIP: 5 specs (recommended: < 5)
161
+ Average WIP: 4.2 specs
162
+
163
+ Velocity Trend
164
+ Week 1: ████░░ 2 specs
165
+ Week 2: ████░░ 2 specs
166
+ Week 3: ██████ 3 specs ↑ improving
167
+ Week 4: ██████ 3 specs
168
+ ```
169
+
170
+ ### Implementation Details
171
+ - Calculate cycle time: `completed_at - created_at`
172
+ - Track stage durations from transitions array
173
+ - Show percentiles (P50, P90, P95) for cycle time distribution
174
+ - Compare to targets (configurable in .lean-spec/config.json)
175
+ - Show trends (last 4 weeks)
176
+
177
+ ## Part 2: Dashboard Command (NOT IMPLEMENTED)
178
+
179
+ > **Decision**: Dashboard command was not implemented. Enhanced `stats` and `board` commands provide the needed functionality without adding CLI complexity.
180
+
181
+ ### Original Design (for reference):
182
+
183
+ ### Command
184
+ `lean-spec` (no args) or `lean-spec dashboard`
185
+
186
+ ### Purpose
187
+ Quick project health overview combining:
188
+ - Summary metrics (from stats)
189
+ - Key activity indicators (from timeline)
190
+ - Active work snapshot (from board)
191
+ - Smart insights (what needs attention)
192
+
193
+ ### Dashboard Sections
194
+
195
+ ```
196
+ ╔══════════════════════════════════════════════════════════╗
197
+ ║ LeanSpec Dashboard · lean-spec ║
198
+ ╚══════════════════════════════════════════════════════════╝
199
+
200
+ 📊 Project Health
201
+ Total: 42 specs · 15 in-progress · 20 complete · 5 planned · 2 archived
202
+ Priority: 🔴 2 critical · 🟠 5 high · 🟡 10 medium · 🟢 3 low
203
+
204
+ ⚠️ Needs Attention
205
+ • 2 specs overdue (spec-001, spec-003)
206
+ • 3 critical priority specs still planned
207
+
208
+ 📈 Recent Activity (Last 14 Days)
209
+ Created: ████████░░░░░░ 8 specs
210
+ Completed: ████░░░░░░░░░░ 4 specs
211
+ Velocity: 2.8 specs/week ↑ trending up
212
+
213
+ ⏳ In Progress (5)
214
+ 🔴 spec-042-mcp-error-handling @alice #bug #critical (3d)
215
+ 🟠 spec-045-unified-dashboard @bob #ux #launch (2d)
216
+ 🟡 spec-026-init-pattern @alice #feature (8d ⚠️ long)
217
+
218
+ 🏷️ Top Tags
219
+ launch (12) · feature (8) · bug (5) · docs (4)
220
+
221
+ 🚀 Velocity Summary
222
+ Avg Cycle Time: 5.2 days (target: 7d)
223
+ Throughput: 2.8 specs/week ↑
224
+ WIP: 5 specs (healthy)
225
+
226
+ ─────────────────────────────────────────────────────────────
227
+ 💡 Commands: lean-spec list | lean-spec board | lean-spec stats --velocity
228
+ ```
229
+
230
+ ### Smart Insights
231
+ - Show overdue specs first
232
+ - Highlight critical priority items
233
+ - Show specs assigned to user (if `--assignee` or git config)
234
+ - Suggest next actions
235
+
236
+ ### Display Options
237
+ ```bash
238
+ lean-spec # Full dashboard
239
+ lean-spec dashboard # Explicit
240
+ lean-spec --compact # Minimal (just health + attention)
241
+ lean-spec --expand-active # Show all in-progress (not just top 5)
242
+ lean-spec --json # JSON for tooling
243
+ ```
244
+
245
+ ### vs. Individual Commands
246
+
247
+ | Command | Purpose | When to Use |
248
+ |---------|---------|-------------|
249
+ | `lean-spec` | Quick overview | Daily standup, "what's happening?" |
250
+ | `lean-spec list` | Browse/search specs | Find specific spec, apply filters |
251
+ | `lean-spec board` | Kanban workflow | Sprint planning, status changes |
252
+ | `lean-spec gantt` | Timeline planning | Schedule work, see deadlines |
253
+ | `lean-spec stats` | Deep analytics | Metrics review, team performance |
254
+
255
+ ## Command Organization Philosophy
256
+
257
+ ### PM Commands (keep separate - distinct workflows)
258
+ - `list` - Browse/search/filter specs
259
+ - `board` - Kanban workflow (status changes)
260
+ - `deps` - Dependency visualization
261
+ - `gantt` - Timeline planning (schedule work)
262
+
263
+ ### Analytics Commands (consolidate - overlapping purpose)
264
+ - `stats` - Current metrics + historical trends
265
+ - `timeline` - Redundant with stats (merge in)
266
+
267
+ ### Dashboard (new - quick overview)
268
+ - `lean-spec` - Glanceable project health
269
+ - Entry point for daily use
270
+ - Directs to PM commands for detail
271
+
272
+ This organization makes sense because:
273
+ - PM commands have distinct UX patterns (kanban, graph, gantt chart)
274
+ - Analytics commands both show "numbers over time"
275
+ - Dashboard is a meta-view (doesn't replace PM commands)
276
+
277
+ ## Why Merge Stats + Timeline?
278
+
279
+ ### Current Redundancy
280
+ - Both load all specs
281
+ - Both show date-based trends
282
+ - Both have bar charts
283
+ - Both support same filters
284
+ - Both output similar visualizations
285
+
286
+ ### Differences
287
+ - `stats` - emphasizes current state (status, priority, tags)
288
+ - `timeline` - emphasizes historical change (created/completed over time)
289
+
290
+ ### Solution
291
+ Make `stats` the comprehensive analytics command:
292
+ - Default: current stats (backward compatible)
293
+ - `--timeline`: add timeline section
294
+ - `--history`: timeline-focused view
295
+
296
+ ## Smart Insights Algorithm
297
+
298
+ "Needs Attention" section prioritizes:
299
+
300
+ 1. **Overdue & Critical** - highest urgency
301
+ ```typescript
302
+ spec.frontmatter.due < today &&
303
+ spec.frontmatter.status != 'complete' &&
304
+ spec.frontmatter.priority == 'critical'
305
+ ```
306
+
307
+ 2. **Overdue & In-Progress** - likely blockers
308
+ ```typescript
309
+ spec.frontmatter.due < today &&
310
+ spec.frontmatter.status == 'in-progress'
311
+ ```
312
+
313
+ 3. **Critical & Planned** - not started yet
314
+ ```typescript
315
+ spec.frontmatter.priority == 'critical' &&
316
+ spec.frontmatter.status == 'planned'
317
+ ```
318
+
319
+ 4. **Long-running In-Progress** - potential stalls
320
+ ```typescript
321
+ spec.frontmatter.status == 'in-progress' &&
322
+ daysSince(spec.frontmatter.updated) > 14
323
+ ```
324
+
325
+ Show top 3-5 items max, then "and N more need attention"
326
+
327
+ ## Why `lean-spec` Should Default to Dashboard
328
+
329
+ ### Current behavior
330
+ `lean-spec` shows help
331
+
332
+ ### Proposed
333
+ `lean-spec` shows dashboard
334
+
335
+ ### Reasoning
336
+ - Help still accessible via `lean-spec --help`
337
+ - Dashboard is most frequently needed view
338
+ - Matches modern CLI patterns (gh, git status at root)
339
+ - Better new user experience (show, don't tell)
340
+ - OpenSpec uses `openspec view` as primary command
341
+
342
+ ### User flow
343
+ ```bash
344
+ cd my-project
345
+ lean-spec # Quick overview (dashboard)
346
+ # See something interesting...
347
+ lean-spec list --tag bug # Drill down
348
+ lean-spec board # Change status
349
+ lean-spec # Check dashboard again
350
+ ```
351
+
352
+ ## Velocity Configuration
353
+
354
+ Add to `.lean-spec/config.json`:
355
+
356
+ ```json
357
+ {
358
+ "velocity": {
359
+ "enabled": true,
360
+ "targets": {
361
+ "cycle_time_days": 7,
362
+ "throughput_per_month": 10,
363
+ "max_wip": 5
364
+ },
365
+ "alerts": {
366
+ "long_running_days": 14,
367
+ "overdue_critical": true
368
+ },
369
+ "tracking": {
370
+ "use_timestamps": true,
371
+ "track_transitions": true
372
+ }
373
+ }
374
+ }
375
+ ```
376
+
377
+ ### Defaults (if not configured)
378
+ - Cycle time target: 7 days
379
+ - Max WIP: 5 concurrent specs
380
+ - Long-running threshold: 14 days
381
+ - Timestamps: auto-enabled
382
+ - Transitions: optional (off by default)
@@ -0,0 +1,144 @@
1
+ # Implementation Plan: Unified Dashboard
2
+
3
+ ## Part 0: Timestamp Tracking (Week 1)
4
+
5
+ Foundation for velocity metrics:
6
+
7
+ - [ ] Update `SpecFrontmatter` interface with timestamp fields
8
+ - [ ] Add `created_at?: string` (ISO 8601)
9
+ - [ ] Add `updated_at?: string` (ISO 8601)
10
+ - [ ] Add `completed_at?: string` (ISO 8601)
11
+ - [ ] Add `transitions?: Array<{status, at}>` (optional)
12
+ - [ ] Create `enrichWithTimestamps()` helper
13
+ - [ ] Auto-generate `created_at` on spec creation
14
+ - [ ] Update `updated_at` on any frontmatter change
15
+ - [ ] Set `completed_at` when status → complete
16
+ - [ ] Track status transitions (optional)
17
+ - [ ] Update `create.ts` to set initial timestamps
18
+ - [ ] Update `update.ts` to maintain timestamps
19
+ - [ ] Migration: Infer timestamps from dates for existing specs
20
+ - [ ] Add tests for timestamp generation logic
21
+
22
+ ## Part 1: Unified Analytics (Week 1-2)
23
+
24
+ ### Part A: Merge timeline into stats
25
+ - [ ] Create `utils/vis.ts` with shared visualization helpers
26
+ - [ ] `createBar(count, max, width, char)` - reusable bar charts
27
+ - [ ] `formatMetric(label, value, color)` - metric formatting
28
+ - [ ] Date range helpers
29
+ - [ ] Enhance `stats.ts` with timeline functionality
30
+ - [ ] Add `--timeline` flag (show timeline section after stats)
31
+ - [ ] Add `--history` flag (full timeline focus, like current timeline)
32
+ - [ ] Add `--velocity` flag (NEW: cycle time analysis)
33
+ - [ ] Add `--all` flag (everything combined)
34
+ - [ ] Keep default behavior (current stats only)
35
+ - [ ] Extract bar chart logic from both commands to `utils/vis.ts`
36
+ - [ ] Update tests for enhanced stats command
37
+ - [ ] Mark `timeline.ts` as deprecated (but keep working)
38
+
39
+ ### Part B: Velocity Calculations
40
+ - [ ] Create `utils/velocity.ts` with velocity analysis
41
+ - [ ] `calculateCycleTime(spec)` - created_at → completed_at
42
+ - [ ] `calculateStageDuration(spec, status)` - time in each status
43
+ - [ ] `calculateThroughput(specs, period)` - specs per week/month
44
+ - [ ] `calculateWIP(specs, date)` - active specs at point in time
45
+ - [ ] `calculatePercentiles(times, [50, 90, 95])` - distribution
46
+ - [ ] Implement velocity section rendering
47
+ - [ ] Cycle time: avg, median, P50-P95
48
+ - [ ] Stage durations with bars
49
+ - [ ] Throughput with trend indicators
50
+ - [ ] WIP metrics
51
+ - [ ] Weekly velocity trend (last 4 weeks)
52
+ - [ ] Add configurable targets in config.json
53
+ - [ ] `velocity.target_cycle_time: 7` (days)
54
+ - [ ] `velocity.target_throughput: 10` (specs/month)
55
+ - [ ] `velocity.max_wip: 5` (concurrent specs)
56
+
57
+ ### Part C: Testing
58
+ - [ ] Test `lean-spec stats` (default behavior unchanged)
59
+ - [ ] Test `lean-spec stats --timeline` (integrated view)
60
+ - [ ] Test `lean-spec stats --history` (full timeline)
61
+ - [ ] Test `lean-spec stats --velocity` (cycle time analysis)
62
+ - [ ] Test `lean-spec stats --all` (comprehensive)
63
+ - [ ] Test velocity calculations with mock data
64
+ - [ ] Test graceful degradation (specs without timestamps)
65
+ - [ ] Verify backward compatibility
66
+
67
+ ## Part 2: Dashboard Command (Week 2)
68
+
69
+ ### Part A: Core dashboard implementation
70
+ - [ ] Create `src/commands/dashboard.ts`
71
+ - [ ] Implement Summary section (project health)
72
+ - [ ] Implement Needs Attention section (smart insights)
73
+ - [ ] Implement Recent Activity section (14-day sparkline + velocity)
74
+ - [ ] Implement In Progress section (top active specs with age)
75
+ - [ ] Implement Quick Stats section (tags, assignees)
76
+ - [ ] Implement Velocity Summary section (cycle time, throughput, WIP)
77
+ - [ ] Add helpful footer with command hints
78
+
79
+ ### Part B: CLI integration
80
+ - [ ] Make `lean-spec` (no args) default to dashboard
81
+ - [ ] Add explicit `lean-spec dashboard` command
82
+ - [ ] Support all filter options (--tag, --status, etc.)
83
+ - [ ] Add display options (--compact, --expand-active)
84
+ - [ ] Add JSON output mode (--json)
85
+
86
+ ### Part C: Smart insights
87
+ - [ ] Detect overdue specs (due < today, status != complete)
88
+ - [ ] Highlight critical priority specs
89
+ - [ ] Show user's assigned work (from git config or --assignee)
90
+ - [ ] Flag long-running in-progress specs (> 14 days)
91
+ - [ ] Identify velocity bottlenecks (slow stages)
92
+ - [ ] Suggest next actions based on state
93
+
94
+ ## Phase 3: Testing & Polish (Week 2-3)
95
+
96
+ ### Unit tests
97
+ - [ ] Dashboard section rendering
98
+ - [ ] Smart insights logic
99
+ - [ ] Filter application
100
+ - [ ] JSON output structure
101
+
102
+ ### Integration tests
103
+ - [ ] Empty project (show helpful init message)
104
+ - [ ] Small project (< 10 specs)
105
+ - [ ] Medium project (10-50 specs)
106
+ - [ ] Large project (100+ specs)
107
+ - [ ] With all filter combinations
108
+ - [ ] With display options
109
+
110
+ ### Visual regression
111
+ - [ ] Compare dashboard output across sizes
112
+ - [ ] Verify Unicode characters render correctly
113
+ - [ ] Test color output (with/without color support)
114
+ - [ ] Test terminal width handling
115
+
116
+ ## Phase 4: Documentation (Week 3)
117
+
118
+ ### README updates
119
+ - [ ] Feature dashboard as primary command
120
+ - [ ] Add dashboard screenshot/GIF
121
+ - [ ] Update command reference table
122
+ - [ ] Show dashboard → drill-down workflow
123
+
124
+ ### AGENTS.md updates
125
+ - [ ] Update AI instructions to use dashboard first
126
+ - [ ] Document `lean-spec stats --timeline` pattern
127
+ - [ ] Update command examples
128
+
129
+ ### Help text
130
+ - [ ] Update `lean-spec --help` to show dashboard first
131
+ - [ ] Add examples to `lean-spec dashboard --help`
132
+ - [ ] Update `lean-spec stats --help` with new flags
133
+
134
+ ## Phase 5: Migration & Deprecation (v0.3.0)
135
+
136
+ ### Add deprecation warnings
137
+ - [ ] `lean-spec timeline` → "Use 'lean-spec stats --history' instead"
138
+ - [ ] Show migration hints in output
139
+ - [ ] Update CHANGELOG with deprecation notice
140
+
141
+ ### Remove in v0.4.0
142
+ - [ ] Delete `src/commands/timeline.ts`
143
+ - [ ] Remove from CLI registration
144
+ - [ ] Archive any timeline-specific tests
@@ -0,0 +1,146 @@
1
+ # Rationale: Why Velocity Tracking Matters for SDD
2
+
3
+ ## The SDD Adoption Challenge
4
+
5
+ Teams wonder: "Does writing specs slow us down?"
6
+ - Need data to prove SDD value, not just gut feel
7
+ - Velocity metrics provide objective measurement
8
+ - Makes SDD adoption measurable and defensible
9
+
10
+ ## What Velocity Reveals
11
+
12
+ ### 1. Cycle Time (Created → Completed)
13
+ - **Shorter** = specs help clarify work faster
14
+ - **Longer** = specs might be too detailed or not actionable
15
+ - **Target**: < 7 days (configurable per team)
16
+
17
+ ### 2. Stage Duration (Time in each status)
18
+ - **Long "Planned"** = analysis paralysis or unclear specs
19
+ - **Long "In-Progress"** = implementation blockers or scope creep
20
+ - **Helps identify process bottlenecks**
21
+
22
+ ### 3. Throughput (Specs completed per period)
23
+ - **Increasing** = team getting better with SDD
24
+ - **Stable** = sustainable pace
25
+ - **Decreasing** = investigate blockers
26
+
27
+ ### 4. WIP Limits (Concurrent active specs)
28
+ - **Too high (>5)** = context switching overhead
29
+ - **Too low (<2)** = might not be using SDD effectively
30
+ - **Kanban principle**: limit WIP to improve flow
31
+
32
+ ## Using Velocity to Improve
33
+
34
+ - **Weekly review**: "Why did spec-X take 12 days?"
35
+ - **Identify patterns**: Do certain types take longer?
36
+ - **Adjust**: Simplify spec templates, add more detail, etc.
37
+ - **Prove ROI**: "Our cycle time dropped 40% after adopting SDD"
38
+
39
+ ## Why Velocity is Critical for SDD
40
+
41
+ Velocity is not just a metric—it's the feedback loop that makes SDD a learning system:
42
+
43
+ 1. **Proves whether specs accelerate or slow down development**
44
+ 2. **Identifies workflow bottlenecks** (long planned→in-progress, or in-progress→complete)
45
+ 3. **Tracks team learning curve with SDD over time**
46
+ 4. **Provides data for continuous improvement**
47
+ 5. **Makes SDD adoption measurable and defensible to stakeholders**
48
+
49
+ ## Timestamp vs Date Trade-offs
50
+
51
+ | Approach | Pros | Cons |
52
+ |----------|------|------|
53
+ | **Date only** (current) | Simple, human-readable | Imprecise, can't distinguish same-day events |
54
+ | **Timestamp** (proposed) | Precise, enables velocity metrics | More complex, harder to edit manually |
55
+ | **Hybrid** (this spec) | Best of both: human dates + precise timestamps | Requires both fields, migration needed |
56
+
57
+ ### Decision: Hybrid Approach
58
+ - Keep `created: YYYY-MM-DD` (human-readable, required)
59
+ - Add `created_at: ISO8601` (precise, auto-generated)
60
+ - Graceful degradation: velocity works with dates if timestamps missing
61
+ - Migration: infer timestamps from dates for existing specs
62
+
63
+ ## Dashboard Design Inspiration
64
+
65
+ ### OpenSpec's Approach
66
+ ```typescript
67
+ // OpenSpec view.ts structure
68
+ - Summary (specs count, changes count, task progress)
69
+ - Active Changes (with progress bars)
70
+ - Completed Changes
71
+ - Specifications (sorted by requirement count)
72
+ - Footer (helpful hints)
73
+ ```
74
+
75
+ ### Our Adaptation
76
+ ```typescript
77
+ // LeanSpec dashboard.ts structure
78
+ - Project Health (total, status, priority)
79
+ - Needs Attention (smart insights: overdue, critical)
80
+ - Recent Activity (14-day sparkline)
81
+ - In Progress (top 5 active specs)
82
+ - Quick Stats (top tags, assignees)
83
+ - Footer (command hints)
84
+ ```
85
+
86
+ ### Key Differences
87
+ - We focus on "needs attention" (actionable)
88
+ - We don't have "changes" concept (simpler)
89
+ - We emphasize priority more (critical path)
90
+ - We show assignee workload
91
+
92
+ ## Migration for Existing Users
93
+
94
+ ### v0.2.0 Release Notes
95
+ ```markdown
96
+ ## New: Dashboard Command
97
+
98
+ Run `lean-spec` (no arguments) to see a comprehensive project overview!
99
+
100
+ The dashboard combines summary stats, recent activity, and active work
101
+ into a single glanceable view. Perfect for daily standup or checking
102
+ project health.
103
+
104
+ Individual commands (list, board, gantt, stats) remain unchanged.
105
+
106
+ ## Enhanced: Stats Command
107
+
108
+ `lean-spec stats` now supports timeline views:
109
+ - `lean-spec stats --timeline` - add 14-day activity
110
+ - `lean-spec stats --history` - full historical view
111
+ - `lean-spec stats` - current stats only (unchanged)
112
+
113
+ The standalone `lean-spec timeline` command is deprecated and will be
114
+ removed in v0.4.0. Use `lean-spec stats --history` instead.
115
+ ```
116
+
117
+ ## Alternatives Considered
118
+
119
+ ### Option A: Separate analytics command
120
+ ```bash
121
+ lean-spec analytics # New command
122
+ lean-spec analytics --stats # Current stats
123
+ lean-spec analytics --timeline # Timeline view
124
+ ```
125
+ - ✅ Clear namespace
126
+ - ❌ More typing
127
+ - ❌ Breaks backward compatibility
128
+
129
+ ### Option B: Enhance stats (This Spec)
130
+ ```bash
131
+ lean-spec stats # Current behavior (default)
132
+ lean-spec stats --timeline # Add timeline
133
+ lean-spec stats --history # Full timeline focus
134
+ ```
135
+ - ✅ Backward compatible
136
+ - ✅ Less typing
137
+ - ✅ Intuitive progressive disclosure
138
+ - ❌ Stats name doesn't perfectly fit timeline
139
+
140
+ ### Option C: Keep separate
141
+ - ✅ No breaking changes
142
+ - ❌ Redundant code
143
+ - ❌ User confusion (which to use?)
144
+
145
+ ### Decision: Option B
146
+ Best balance of compatibility and consolidation