@leanspec/ui 0.2.7-dev.20251126100750 → 0.2.7

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 (364) hide show
  1. package/.next/standalone/node_modules/.pnpm/@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  2. package/.next/standalone/node_modules/.pnpm/{@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64 → @img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64}/package.json +7 -13
  3. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/README.md +2 -2
  4. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/lib/glib-2.0/include/glibconfig.h +8 -9
  5. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib} +0 -0
  6. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/package.json +5 -11
  7. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  8. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  9. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  10. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  11. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +2 -2
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  27. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  48. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  49. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +2 -2
  50. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  51. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +1 -1
  52. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  53. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  54. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  55. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  56. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  58. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  59. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  60. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  61. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  62. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
  63. package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +20 -0
  64. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +59 -0
  65. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +1 -0
  66. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +427 -0
  67. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +436 -0
  68. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +20 -0
  69. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +10 -0
  70. package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +18 -0
  71. package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +7 -0
  72. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +83 -0
  73. package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +8 -0
  74. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
  75. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/favicon.ico +0 -0
  76. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/file.svg +1 -0
  77. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark-white.svg +1 -0
  78. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark.svg +1 -0
  79. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/globe.svg +1 -0
  80. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/icon.svg +7 -0
  81. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-dark-bg.svg +17 -0
  82. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-with-bg.svg +17 -0
  83. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo.svg +17 -0
  84. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/next.svg +1 -0
  85. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/vercel.svg +1 -0
  86. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/window.svg +1 -0
  87. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
  88. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +23 -0
  89. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +19 -0
  90. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +63 -0
  91. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +51 -0
  92. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +171 -0
  93. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +36 -0
  94. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +46 -0
  95. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +19 -0
  96. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +162 -0
  97. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +43 -0
  98. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +18 -0
  99. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +364 -0
  100. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +43 -0
  101. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +531 -0
  102. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +277 -0
  103. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +70 -0
  104. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +87 -0
  105. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +27 -0
  106. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +18 -0
  107. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +5 -0
  108. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +43 -0
  109. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +18 -0
  110. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +425 -0
  111. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +18 -0
  112. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +283 -0
  113. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +46 -0
  114. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +52 -0
  115. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +175 -0
  116. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +96 -0
  117. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +95 -0
  118. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +210 -0
  119. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +53 -0
  120. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +180 -0
  121. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +119 -0
  122. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +369 -0
  123. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +372 -0
  124. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +42 -0
  125. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +70 -0
  126. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-metadata.tsx +136 -0
  127. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +127 -0
  128. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +186 -0
  129. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +561 -0
  130. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +53 -0
  131. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +143 -0
  132. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +130 -0
  133. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +11 -0
  134. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +37 -0
  135. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +50 -0
  136. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +36 -0
  137. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +110 -0
  138. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +57 -0
  139. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +76 -0
  140. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +153 -0
  141. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +122 -0
  142. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +24 -0
  143. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +159 -0
  144. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +31 -0
  145. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +15 -0
  146. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +55 -0
  147. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +30 -0
  148. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +32 -0
  149. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +76 -0
  150. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +42 -0
  151. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +18 -0
  152. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +114 -0
  153. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +123 -0
  154. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +156 -0
  155. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +216 -0
  156. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +105 -0
  157. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +120 -0
  158. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +94 -0
  159. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +249 -0
  160. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +55 -0
  161. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +152 -0
  162. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +171 -0
  163. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +17 -0
  164. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +18 -0
  165. package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +58 -0
  166. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +34 -0
  167. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +1 -0
  168. package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +14 -0
  169. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
  170. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
  171. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
  172. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
  173. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
  174. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
  175. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
  176. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
  177. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
  178. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
  179. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
  180. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
  181. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
  182. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
  183. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
  184. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
  185. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +306 -0
  186. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
  187. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
  188. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
  189. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
  190. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
  191. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
  192. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
  193. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
  194. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
  195. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
  196. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
  197. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
  198. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
  199. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
  200. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
  201. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
  202. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
  203. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
  204. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
  205. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
  206. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
  207. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
  208. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
  209. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
  210. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
  211. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
  212. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
  213. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
  214. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
  215. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
  216. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
  217. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
  218. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
  219. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
  220. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
  221. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
  222. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
  223. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
  224. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
  225. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
  226. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
  227. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
  228. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
  229. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
  230. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
  231. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
  232. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
  233. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
  234. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
  235. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
  236. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
  237. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
  238. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
  239. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
  240. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
  241. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
  242. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
  243. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
  244. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
  245. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
  246. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
  247. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
  248. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
  249. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
  250. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
  251. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
  252. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
  253. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
  254. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
  255. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
  256. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
  257. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
  258. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
  259. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
  260. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
  261. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
  262. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
  263. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
  264. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
  265. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
  266. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +287 -0
  267. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
  268. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
  269. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
  270. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
  271. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
  272. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
  273. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
  274. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
  275. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +825 -0
  276. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
  277. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
  278. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
  279. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
  280. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +501 -0
  281. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
  282. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
  283. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
  284. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
  285. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +421 -0
  286. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +106 -0
  287. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +126 -0
  288. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +131 -0
  289. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +254 -0
  290. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +152 -0
  291. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +65 -0
  292. package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +332 -0
  293. package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +339 -0
  294. package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +399 -0
  295. package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +525 -0
  296. package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +387 -0
  297. package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +613 -0
  298. package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +266 -0
  299. package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +100 -0
  300. package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +172 -0
  301. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
  302. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
  303. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
  304. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
  305. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
  306. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
  307. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
  308. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
  309. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
  310. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
  311. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
  312. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
  313. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
  314. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
  315. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
  316. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
  317. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
  318. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
  319. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
  320. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
  321. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
  322. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
  323. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
  324. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
  325. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
  326. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
  327. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
  328. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
  329. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
  330. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
  331. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
  332. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
  333. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
  334. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
  335. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
  336. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
  337. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
  338. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
  339. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
  340. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
  341. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
  342. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
  343. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
  344. package/.next/standalone/packages/ui/package.json +1 -1
  345. package/.next/standalone/packages/ui/server.js +1 -1
  346. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  347. package/package.json +2 -2
  348. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  349. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  350. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  351. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  352. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  353. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  354. package/.next/standalone/node_modules/.pnpm/@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  355. package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  356. package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  357. /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/lib/index.js +0 -0
  358. /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/versions.json +0 -0
  359. /package/.next/standalone/packages/ui/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
  360. /package/.next/standalone/packages/ui/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
  361. /package/.next/standalone/packages/ui/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
  362. /package/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
  363. /package/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
  364. /package/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
@@ -0,0 +1,276 @@
1
+ ---
2
+ status: complete
3
+ created: '2025-11-03'
4
+ tags: [structure, migration, breaking-change, enhancement]
5
+ priority: high
6
+ ---
7
+
8
+ # Flat Structure Migration
9
+
10
+ > **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-03
11
+
12
+ **Project**: lean-spec
13
+ **Team**: Core Development
14
+
15
+ ## Overview
16
+
17
+ Migrate the default folder structure from date-based grouping (`{date}/{seq}-{name}/`) to a **flat structure with global numbering** (`{seq}-{name}/`). This simplifies the spec organization for most projects while maintaining date-based grouping as an optional pattern for those who need it.
18
+
19
+ **Why now?**
20
+ - Current date-based folders add unnecessary complexity for small/medium projects
21
+ - Most users don't need date-based organization
22
+ - **Flat structure with global numbering is simpler** to navigate and reference
23
+ - Easier to reference specs by number alone (e.g., "spec 024" instead of "specs/20251103/024")
24
+ - Other patterns (custom grouping) already available via config
25
+
26
+ **Current structure**: `specs/20251103/024-flat-structure-migration/`
27
+ **Target structure**: `specs/024-flat-structure-migration/`
28
+
29
+ **Key change**: Global unique sequence numbers (001, 002, 003...) across the entire project, not per-date folder.
30
+
31
+ ## Design
32
+
33
+ ### Configuration Changes
34
+
35
+ **Default config becomes:**
36
+ ```json
37
+ {
38
+ "structure": {
39
+ "pattern": "flat",
40
+ "prefix": "", // No prefix by default - just global sequence numbers
41
+ "sequenceDigits": 3,
42
+ "defaultFile": "README.md"
43
+ }
44
+ }
45
+ ```
46
+
47
+ **Example folder structure:**
48
+ ```
49
+ specs/
50
+ ├── 001-typescript-cli-migration/
51
+ ├── 002-template-system-redesign/
52
+ ├── 024-flat-structure-migration/
53
+ ├── 025-next-feature/
54
+ └── archived/
55
+ ```
56
+
57
+ **Migration paths:**
58
+ 1. **New projects** - Use flat structure by default
59
+ 2. **Existing projects** - Keep current structure, provide migration guide
60
+ 3. **Date grouping users** - Can opt-in via config:
61
+ ```json
62
+ {
63
+ "structure": {
64
+ "pattern": "custom",
65
+ "groupExtractor": "{YYYYMMDD}"
66
+ }
67
+ }
68
+ ```
69
+
70
+ ### Code Changes
71
+
72
+ 1. **Update `DEFAULT_CONFIG` in `src/config.ts`**:
73
+ - Change `pattern: 'flat'` (already correct)
74
+ - Remove `prefix: '{YYYYMMDD}-'` (set to empty string by default)
75
+
76
+ 2. **Update `lean-spec init`**:
77
+ - New projects get flat structure
78
+ - Remove date folder creation from init command
79
+
80
+ 3. **Update docs and templates**:
81
+ - README examples show flat structure
82
+ - AGENTS.md updated with new default
83
+ - Migration guide for existing projects
84
+
85
+ 4. **Spec loader compatibility**:
86
+ - Already supports both patterns (tested)
87
+ - No breaking changes to loader logic
88
+
89
+ ### Migration Guide for Existing Projects
90
+
91
+ For users currently on date-based structure who want to migrate:
92
+
93
+ **Option 1: Keep current structure** (recommended for active projects)
94
+ ```json
95
+ // .lean-spec/config.json
96
+ {
97
+ "structure": {
98
+ "pattern": "custom",
99
+ "groupExtractor": "{YYYYMMDD}"
100
+ }
101
+ }
102
+ ```
103
+
104
+ **Option 2: Migrate to flat**
105
+ ```bash
106
+ # Flatten existing specs
107
+ for dir in specs/*/; do
108
+ mv "$dir"*/ specs/
109
+ done
110
+ rmdir specs/202*
111
+
112
+ # Update config to flat
113
+ lean-spec init --pattern flat --force
114
+ ```
115
+
116
+ ## Plan
117
+
118
+ - [x] Update `DEFAULT_CONFIG` in `src/config.ts` - remove date prefix
119
+ - [x] Update `lean-spec init` to use flat structure by default
120
+ - [x] Create migration guide document
121
+ - [x] Update README.md with flat structure examples
122
+ - [x] Update AGENTS.md with new default structure
123
+ - [x] Update documentation website
124
+ - [x] Update examples/configs to use flat structure
125
+ - [x] Add migration notice to CHANGELOG.md
126
+ - [x] Test new project creation
127
+ - [x] Test existing project compatibility
128
+ - [x] Verify spec loading works for both patterns
129
+ - [x] ~~Migrate lean-spec's own specs to flat structure?~~ (Keep existing for backwards compat testing)
130
+
131
+ ## Test
132
+
133
+ ### New Projects
134
+ - [x] `lean-spec init` creates `specs/` (no date folder)
135
+ - [x] `lean-spec create test` creates `specs/001-test/`
136
+ - [x] Next spec is `specs/002-another/`
137
+ - [x] Sequence numbers are globally unique across entire project
138
+
139
+ ### Existing Projects
140
+ - [x] Projects with date folders continue working
141
+ - [x] Config with `custom` pattern and `{YYYYMMDD}` extractor works
142
+ - [x] `lean-spec list`, `lean-spec stats`, etc. work with both structures
143
+
144
+ ### Migration
145
+ - [x] Manual migration steps documented and tested
146
+ - [x] Config update preserves custom fields
147
+ - [x] No data loss during migration
148
+
149
+ ## Implementation Summary
150
+
151
+ **Changes made:**
152
+ 1. ✅ Updated all template configs (minimal, standard, enterprise) to use `pattern: "flat"` with `prefix: ""`
153
+ 2. ✅ Created comprehensive migration guide at `docs/MIGRATION.md`
154
+ 3. ✅ Updated README.md with flat structure as default and migration note
155
+ 4. ✅ Updated AGENTS.md with folder structure section
156
+ 5. ✅ Updated CHANGELOG.md with v0.2.0 breaking change notice
157
+ 6. ✅ All tests pass (152 tests) including both flat and legacy structures
158
+
159
+ **Key decisions:**
160
+ - DEFAULT_CONFIG in `src/config.ts` was already correctly set to flat structure
161
+ - Kept LeanSpec's own specs in date-based format for backwards compatibility testing
162
+ - Legacy pattern `{date}/{seq}-{name}/` is auto-converted to custom pattern with date grouping
163
+ - No code changes needed in init command - templates drive the structure
164
+
165
+ **Test results:**
166
+ ```
167
+ Test Files 7 passed (7)
168
+ Tests 152 passed (152)
169
+ ```
170
+
171
+ Both flat structure (new default) and date-based structure (legacy) work correctly.
172
+
173
+ ## Notes
174
+
175
+ **Breaking change**: New projects will have different folder structure than examples in current docs. This is acceptable because:
176
+ - Simpler default is better for onboarding
177
+ - Date-based grouping still available via config
178
+ - Migration path exists for those who want to switch
179
+
180
+ **Backwards compatibility**: Existing projects continue working without changes. Spec loader already handles both patterns.
181
+
182
+ **Timeline**: Can be implemented quickly since most infrastructure already exists (flat pattern support is already built-in).
183
+
184
+ ## Migration of LeanSpec Itself
185
+
186
+ ### Executed Migration Steps
187
+
188
+ 1. ✅ **Moved all specs from date folders to flat structure**
189
+ ```bash
190
+ # Moved 39 specs from specs/202*/*/ to specs/
191
+ # Removed empty date folders
192
+ ```
193
+
194
+ 2. ✅ **Renumbered all specs with globally unique sequences**
195
+ - Maintained chronological order based on `created` date
196
+ - Sequence 001-039 now globally unique across entire project
197
+ - Used Python script to safely renumber based on creation dates
198
+
199
+ 3. ✅ **Updated config to flat structure**
200
+ ```json
201
+ {
202
+ "structure": {
203
+ "pattern": "flat",
204
+ "prefix": "",
205
+ "sequenceDigits": 3
206
+ }
207
+ }
208
+ ```
209
+
210
+ 4. ✅ **Verified migration**
211
+ - `lean-spec check` - No conflicts detected
212
+ - `lean-spec list` - All 39 specs listed correctly
213
+ - `lean-spec stats` - Statistics working properly
214
+ - `pnpm test` - All 152 tests passing
215
+
216
+ ### Before Migration
217
+ ```
218
+ specs/
219
+ ├── 20251031/
220
+ │ ├── 001-typescript-cli-migration/
221
+ │ ├── 002-template-system-redesign/
222
+ │ └── 003-init-system-redesign/
223
+ ├── 20251101/
224
+ │ ├── 001-existing-project-integration/
225
+ │ └── ...
226
+ └── 20251103/
227
+ ├── 024-flat-structure-migration/
228
+ └── ...
229
+ ```
230
+
231
+ ### After Migration
232
+ ```
233
+ specs/
234
+ ├── 001-typescript-cli-migration/
235
+ ├── 002-template-system-redesign/
236
+ ├── 003-init-system-redesign/
237
+ ├── 004-existing-project-integration/
238
+ ├── ...
239
+ ├── 038-flat-structure-migration/
240
+ └── 039-template-variable-sync/
241
+ ```
242
+
243
+ **Benefits realized:**
244
+ - ✅ Simpler navigation - no date folders
245
+ - ✅ Easier references - just "spec 038" instead of "specs/20251103/024"
246
+ - ✅ Globally unique numbering - no conflicts
247
+ - ✅ All tools work perfectly with flat structure
248
+
249
+ ## Post-Migration Fix
250
+
251
+ ### Issue: `lean-spec list` Rendering Problem
252
+
253
+ After migrating to flat structure, `lean-spec list` had a rendering issue where all specs were grouped under `📂 unknown/` instead of being displayed properly.
254
+
255
+ **Root cause**: The `SpecListView` component was hardcoded to group specs by date pattern (`/^(\d{8})\//`), which doesn't work with flat structure paths like `001-feature-a/`.
256
+
257
+ **Fix**: Updated `src/components/SpecListView.tsx` to be pattern-aware:
258
+ - Detects if config uses date-based grouping (`pattern: 'custom'` with `{YYYY}` in `groupExtractor`)
259
+ - **Flat structure**: Displays all specs in a simple list (no date grouping)
260
+ - **Date-based structure**: Uses original date-grouped rendering
261
+
262
+ **Changes**:
263
+ 1. Pass `config` to `SpecListView` component
264
+ 2. Split rendering into two views:
265
+ - `FlatView` - Simple list for flat structure
266
+ - `DateGroupedView` - Original date-grouped view for custom patterns
267
+ 3. Pattern detection logic chooses the appropriate view
268
+
269
+ **Test results**:
270
+ - ✅ Flat structure renders correctly (no `unknown/` grouping)
271
+ - ✅ Date-based structure still works (backwards compatible)
272
+ - ✅ All 152 tests passing
273
+
274
+ **Files changed**:
275
+ - `src/commands/list.ts` - Pass config to component
276
+ - `src/components/SpecListView.tsx` - Pattern-aware rendering logic
@@ -0,0 +1,122 @@
1
+ ---
2
+ status: archived
3
+ created: '2025-11-04'
4
+ tags:
5
+ - bug
6
+ - mcp
7
+ - frontmatter
8
+ priority: high
9
+ completed: '2025-11-04'
10
+ created_at: '2025-11-11T04:26:08.805Z'
11
+ updated_at: '2025-11-11T04:26:08.805Z'
12
+ transitions:
13
+ - status: archived
14
+ at: '2025-11-11T04:26:08.805Z'
15
+ ---
16
+
17
+ # Fix MCP Server Frontmatter Parsing
18
+
19
+ > **Status**: 📦 Archived · **Priority**: High · **Created**: 2025-11-04 · **Tags**: bug, mcp, frontmatter
20
+
21
+ **Project**: lean-spec
22
+ **Team**: Core Development
23
+
24
+ ## Overview
25
+
26
+ The MCP server's `specToData` function incorrectly accesses frontmatter properties directly on the `SpecInfo` object (e.g., `spec.status`) instead of through the `frontmatter` property (e.g., `spec.frontmatter.status`).
27
+
28
+ **Impact:**
29
+ - `lean-spec_board` command crashes with "Cannot read properties of undefined"
30
+ - `lean-spec_stats` shows all specs with `undefined` status
31
+ - All frontmatter fields (status, priority, tags, etc.) are not populated in MCP responses
32
+
33
+ **Root cause:** `SpecInfo` type has structure:
34
+ ```typescript
35
+ {
36
+ path: string;
37
+ name: string;
38
+ frontmatter: {
39
+ status: SpecStatus;
40
+ priority?: SpecPriority;
41
+ tags?: string[];
42
+ // ...
43
+ }
44
+ }
45
+ ```
46
+
47
+ But `specToData()` tries to access `spec.status` instead of `spec.frontmatter.status`.
48
+
49
+ ## Design
50
+
51
+ **Fix approach:**
52
+ Update `specToData()` function in `src/mcp-server.ts` to correctly access frontmatter properties:
53
+
54
+ ```typescript
55
+ function specToData(spec: any): SpecData {
56
+ return {
57
+ name: spec.name,
58
+ path: spec.path,
59
+ status: spec.frontmatter.status, // Fix: access via frontmatter
60
+ created: spec.frontmatter.created, // Fix: access via frontmatter
61
+ title: spec.frontmatter.title, // Fix: access via frontmatter
62
+ tags: spec.frontmatter.tags, // Fix: access via frontmatter
63
+ priority: spec.frontmatter.priority, // Fix: access via frontmatter
64
+ assignee: spec.frontmatter.assignee, // Fix: access via frontmatter
65
+ description: spec.frontmatter.description, // Fix: access via frontmatter
66
+ customFields: spec.frontmatter.custom, // Fix: access via frontmatter
67
+ };
68
+ }
69
+ ```
70
+
71
+ **Additional fixes needed:**
72
+ - `getBoardData()` - accesses `spec.status` directly (line ~215)
73
+ - `getStatsData()` - accesses `spec.status`, `spec.priority`, `spec.tags` directly (lines ~188-201)
74
+
75
+ These need to use `spec.frontmatter.*` as well.
76
+
77
+ ## Plan
78
+
79
+ - [x] Identify the bug through testing MCP commands
80
+ - [x] Locate the root cause in `specToData()` function
81
+ - [ ] Update `specToData()` to access `spec.frontmatter.*` properties
82
+ - [ ] Fix `getBoardData()` to use `spec.frontmatter.status`
83
+ - [ ] Fix `getStatsData()` to use `spec.frontmatter.*` fields
84
+ - [ ] Add proper TypeScript typing to avoid this issue (use SpecInfo type)
85
+ - [ ] Test all MCP commands (list, board, stats, search, read)
86
+ - [ ] Add unit tests for `specToData()` transformation
87
+
88
+ ## Test
89
+
90
+ Verify all MCP commands work correctly:
91
+
92
+ - [ ] `lean-spec_list` returns specs with correct status/priority/tags
93
+ - [ ] `lean-spec_board` successfully groups specs by status columns
94
+ - [ ] `lean-spec_stats` shows correct counts by status/priority/tags
95
+ - [ ] `lean-spec_search` includes proper metadata in results
96
+ - [ ] `lean-spec_read` shows correct frontmatter in spec data
97
+ - [ ] No "undefined" values in any MCP responses
98
+ - [ ] Board command doesn't crash with undefined errors
99
+
100
+ **Manual test:**
101
+ ```bash
102
+ # Via MCP in VS Code
103
+ - Call board tool → should show specs grouped by status
104
+ - Call stats tool → should show counts > 0 for statuses
105
+ - Call list tool → should show status field populated
106
+ ```
107
+
108
+ ## Notes
109
+
110
+ **Discovery process:**
111
+ 1. Tested `lean-spec_board` → got "Cannot read properties of undefined (reading 'push')" error
112
+ 2. Tested `lean-spec_stats` → all 11 specs showed as `status: undefined`
113
+ 3. Tested `lean-spec_read` on spec 037 → spec file has `status: planned` in frontmatter
114
+ 4. Reviewed `mcp-server.ts` → found `specToData()` accessing wrong properties
115
+ 5. Checked `spec-loader.ts` → confirmed SpecInfo structure uses `frontmatter` sub-object
116
+
117
+ **Files affected:**
118
+ - `src/mcp-server.ts` - Main fix location (lines ~51, ~188-201, ~215)
119
+
120
+ **Related:**
121
+ - Spec 034: Copilot slash commands (uses MCP server)
122
+ - MCP integration testing script: `test-mcp-integration.sh`
@@ -0,0 +1,198 @@
1
+ ---
2
+ status: archived
3
+ created: '2025-11-04'
4
+ tags:
5
+ - cli
6
+ - ux
7
+ - breaking-change
8
+ - simplification
9
+ priority: high
10
+ completed: '2025-11-04'
11
+ created_at: '2025-11-11T04:26:08.824Z'
12
+ updated_at: '2025-11-11T04:26:08.824Z'
13
+ transitions:
14
+ - status: archived
15
+ at: '2025-11-11T04:26:08.824Z'
16
+ ---
17
+
18
+ # Simplify Viewer Command Interface
19
+
20
+ > **Status**: 📦 Archived · **Priority**: High · **Created**: 2025-11-04 · **Tags**: cli, ux, breaking-change, simplification
21
+
22
+ **Project**: lean-spec
23
+ **Team**: Core Development
24
+
25
+ ## Overview
26
+
27
+ We currently have 4 commands for viewing specs: `show`, `view`, `read`, and `open`. This causes confusion:
28
+ - **`show` vs `view`**: Identical - `view` just calls `show`. Pure redundancy.
29
+ - **`show` vs `read`**: Confusing names - people expect to "read" a spec, not "show" it
30
+ - **`read`**: Named for scripting use case, but the name suggests human consumption
31
+
32
+ **User confusion:**
33
+ - "I want to read a spec - do I use `show`, `view`, or `read`?"
34
+ - "Why are there three commands that all display spec content?"
35
+ - "`read` sounds like what I want, but it gives me raw markdown?"
36
+
37
+ This violates LeanSpec's principle of clarity over convention.
38
+
39
+ ## Design
40
+
41
+ ### Proposed Interface
42
+
43
+ **Option A: Single command with flags (Recommended)**
44
+ ```bash
45
+ lean-spec <spec> # Default: formatted view (current "show")
46
+ lean-spec <spec> --raw # Raw markdown (current "read")
47
+ lean-spec <spec> --json # JSON output (current "read --format=json")
48
+ lean-spec <spec> --edit # Open in editor (current "open")
49
+ ```
50
+
51
+ **Benefits:**
52
+ - One obvious way to view a spec
53
+ - Flags make the variants clear
54
+ - Matches user mental model: "view this spec, optionally with modifications"
55
+
56
+ **Option B: Keep minimal commands**
57
+ ```bash
58
+ lean-spec view <spec> # Formatted (remove "show", keep only "view")
59
+ lean-spec view <spec> --raw # Raw markdown
60
+ lean-spec view <spec> --json # JSON output
61
+ lean-spec open <spec> # Edit (separate action, keep separate)
62
+ ```
63
+
64
+ **Benefits:**
65
+ - More explicit than positional arg
66
+ - `view` vs `open` clearly distinguishes reading vs editing
67
+ - Familiar CLI pattern (verb + noun)
68
+
69
+ ### Migration Strategy
70
+
71
+ **Phase 1: Add new interface (non-breaking)**
72
+ - Implement chosen option
73
+ - Keep old commands as deprecated aliases
74
+ - Show deprecation warnings
75
+
76
+ **Phase 2: Documentation update**
77
+ - Update all docs to show new commands
78
+ - Add migration guide
79
+ - Announce in changelog
80
+
81
+ **Phase 3: Remove old commands (breaking)**
82
+ - Remove in next major version
83
+ - Clear error messages pointing to new commands
84
+
85
+ ### Implementation
86
+
87
+ **Option A Implementation:**
88
+ ```typescript
89
+ // Make spec-path optional, make it the default command
90
+ program
91
+ .argument('[spec-path]', 'Spec to view')
92
+ .option('--raw', 'Output raw markdown (for piping/scripting)')
93
+ .option('--json', 'Output as JSON')
94
+ .option('--edit', 'Open in editor')
95
+ .option('--no-color', 'Disable colors')
96
+ .action(async (specPath?: string, options) => {
97
+ if (!specPath) {
98
+ // No spec provided - show help or list
99
+ program.help();
100
+ return;
101
+ }
102
+
103
+ if (options.edit) {
104
+ await openCommand(specPath, options);
105
+ } else if (options.raw) {
106
+ await readCommand(specPath, { format: 'markdown' });
107
+ } else if (options.json) {
108
+ await readCommand(specPath, { format: 'json' });
109
+ } else {
110
+ await showCommand(specPath, options);
111
+ }
112
+ });
113
+
114
+ // Deprecated commands with warnings
115
+ program
116
+ .command('show <spec-path>')
117
+ .description('[DEPRECATED] Use: lean-spec <spec-path>')
118
+ .action(async (specPath: string) => {
119
+ console.warn(chalk.yellow('⚠️ "lean-spec show" is deprecated. Use: lean-spec <spec-path>'));
120
+ await showCommand(specPath);
121
+ });
122
+ ```
123
+
124
+ **Option B Implementation:**
125
+ ```typescript
126
+ program
127
+ .command('view <spec-path>')
128
+ .description('View spec content')
129
+ .option('--raw', 'Output raw markdown')
130
+ .option('--json', 'Output as JSON')
131
+ .option('--no-color', 'Disable colors')
132
+ .action(async (specPath: string, options) => {
133
+ if (options.json) {
134
+ await readCommand(specPath, { format: 'json' });
135
+ } else if (options.raw) {
136
+ await readCommand(specPath, { format: 'markdown' });
137
+ } else {
138
+ await showCommand(specPath, options);
139
+ }
140
+ });
141
+
142
+ program
143
+ .command('open <spec-path>')
144
+ .description('Open spec in editor')
145
+ .option('--editor <editor>', 'Editor to use')
146
+ .action(async (specPath: string, options) => {
147
+ await openCommand(specPath, options);
148
+ });
149
+ ```
150
+
151
+ ## Plan
152
+
153
+ - [x] Decide between Option A or B (chose B for clarity)
154
+ - [x] Implement new interface
155
+ - [x] Remove deprecated commands completely
156
+ - [x] Update README examples
157
+ - [x] Update AGENTS.md with new commands
158
+ - [x] Update MCP server to align with CLI (lean-spec_read → lean-spec_view with flags)
159
+ - [x] Update all tests
160
+ - [x] Update docs site CLI reference
161
+ - [ ] Add migration guide to CHANGELOG
162
+
163
+ ## Test
164
+
165
+ - [x] `lean-spec view <spec>` displays formatted spec
166
+ - [x] `lean-spec view <spec> --raw` outputs raw markdown (pipeable)
167
+ - [x] `lean-spec view <spec> --json` outputs valid JSON
168
+ - [x] `lean-spec open <spec>` opens in editor
169
+ - [x] Old commands completely removed (breaking change)
170
+ - [x] Help text is clear and unambiguous
171
+ - [x] Error messages guide users to correct command
172
+ - [x] All viewer tests pass (16/16)
173
+ - [x] All command integration tests pass (30/30)
174
+ - [x] TypeScript compilation succeeds with no errors
175
+
176
+ ## Notes
177
+
178
+ **Why this matters:**
179
+ - Every confusing command erodes trust in LeanSpec's "clarity over documentation" promise
180
+ - New users shouldn't have to guess which of 3 similar commands to use
181
+ - AI agents get confused by redundant commands too
182
+
183
+ **Alternatives considered:**
184
+ - Keep all commands: No, the confusion is the problem
185
+ - Remove `view` and keep `show`: Better, but `show` still isn't intuitive
186
+ - Just merge `show`/`view` and keep `read`: Doesn't solve the core naming confusion
187
+
188
+ **Decision rationale for Option A:**
189
+ - Matches `git show`, `docker ps`, etc - where default is formatted, flags modify
190
+ - Clearest mental model: "I want to see spec X, optionally in a different format"
191
+ - Fewest total commands = least cognitive load
192
+ - Natural evolution: `lean-spec list` → `lean-spec <spec>` (browse → view)
193
+
194
+ **Backward compatibility:**
195
+ - ~~Deprecated commands in 0.2.x (with warnings)~~
196
+ - **Breaking change**: Removed deprecated commands completely in 0.2.0
197
+ - Clear migration path in docs
198
+ - Users should update to: `lean-spec view <spec>` (with optional `--raw` or `--json` flags)