@leanspec/ui 0.2.9-dev.20251205030455 โ†’ 0.2.10

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 (516) 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 +5 -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 +40 -0
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +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 +18 -20
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -20
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +23 -26
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  25. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  27. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -1
  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]/context/route.js +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/app-paths-manifest.json +3 -0
  41. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/build-manifest.json +11 -0
  42. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/server-reference-manifest.json +4 -0
  43. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js +8 -0
  44. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.map +5 -0
  45. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.nft.json +1 -0
  46. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route_client-reference-manifest.js +2 -0
  47. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/build-manifest.json +11 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/server-reference-manifest.json +4 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js +8 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.map +5 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.nft.json +1 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route_client-reference-manifest.js +2 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +1 -1
  55. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  56. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  60. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/app-paths-manifest.json +3 -0
  63. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/build-manifest.json +11 -0
  64. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/server-reference-manifest.json +4 -0
  65. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js +8 -0
  66. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.map +5 -0
  67. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.nft.json +1 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route_client-reference-manifest.js +2 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -1
  70. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  71. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  72. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  73. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/app-paths-manifest.json +3 -0
  75. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/build-manifest.json +11 -0
  76. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/server-reference-manifest.json +4 -0
  77. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js +8 -0
  78. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.map +5 -0
  79. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.nft.json +1 -0
  80. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route_client-reference-manifest.js +2 -0
  81. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  82. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  83. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  84. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  85. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  86. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  87. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  88. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
  89. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/build-manifest.json +11 -0
  90. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
  91. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js +8 -0
  92. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.map +5 -0
  93. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.nft.json +1 -0
  94. package/.next/standalone/packages/ui/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
  95. package/.next/standalone/packages/ui/.next/server/app/context/page.js +4 -3
  96. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -1
  97. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +1 -1
  98. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +4 -3
  99. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -1
  100. package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +1 -1
  101. package/.next/standalone/packages/ui/.next/server/app/page.js +2 -2
  102. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  103. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  104. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +2 -2
  105. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -1
  106. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +1 -1
  107. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +2 -2
  108. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -1
  109. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +1 -1
  110. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +2 -2
  111. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  112. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  113. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +2 -2
  114. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  115. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  116. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +2 -2
  117. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  118. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  119. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +2 -2
  120. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -1
  121. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +1 -1
  122. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +2 -2
  123. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  124. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  125. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  126. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -25
  127. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -25
  128. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +20 -24
  129. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  130. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  131. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  132. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
  133. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  134. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  135. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +4 -3
  136. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  137. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  138. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +4 -3
  139. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  140. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  141. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +5 -0
  142. package/.next/standalone/packages/ui/.next/server/chunks/284a8_app_api_projects_[id]_specs_[spec]_dependency-graph_route_actions_f18476ed.js +3 -0
  143. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_tags_route_actions_40899744.js +3 -0
  144. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_metadata_route_actions_139bb09f.js +3 -0
  145. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0afcada7._.js +3 -0
  146. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0e63a440._.js +3 -0
  147. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0ec6f9b0._.js +3 -0
  148. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0edb782a._.js +3 -0
  149. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
  150. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +1 -1
  151. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +1 -1
  152. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__38780e00._.js +3 -0
  153. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a535244._.js +3 -0
  154. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__41f43652._.js +3 -0
  155. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5081ac6f._.js +3 -0
  156. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__526764b2._.js +3 -0
  157. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
  158. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +1 -1
  159. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__74af400b._.js +3 -0
  160. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
  161. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
  162. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9cf3bf21._.js +3 -0
  163. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
  164. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +1 -1
  165. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c7a4906b._.js +3 -0
  166. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__de15d2aa._.js +3 -0
  167. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e16f7651._.js +3 -0
  168. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2fcb5c6._.js +3 -0
  169. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e8d9903e._.js +3 -0
  170. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f6936b89._.js +3 -0
  171. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_metadata_route_actions_35af9a8c.js +3 -0
  172. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_tags_route_actions_64625b2c.js +3 -0
  173. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +3 -0
  174. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__13f96ef4._.js โ†’ [root-of-the-server]__174e1ca1._.js} +2 -2
  175. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__38c56adc._.js โ†’ [root-of-the-server]__2d9202e8._.js} +2 -2
  176. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__338c65fe._.js +1 -1
  177. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +1 -1
  178. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +1 -1
  179. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +3 -0
  180. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +1 -1
  181. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  182. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c158c9a9._.js +3 -0
  183. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c7735439._.js +3 -0
  184. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e2c760eb._.js +3 -0
  185. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__84124d4b._.js โ†’ [root-of-the-server]__ead1539c._.js} +2 -2
  186. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
  187. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  188. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_adb9d7cb._.js โ†’ _22274047._.js} +2 -2
  189. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_59616aa6._.js +3 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_5e1484f9._.js +7 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +1 -1
  192. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_be836d6a._.js +5 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +1 -1
  194. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  195. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  196. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +1 -1
  197. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  198. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  199. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  200. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  201. package/.next/standalone/packages/ui/.next/static/chunks/0c7bbb59865774a1.js +1 -0
  202. package/.next/standalone/packages/ui/.next/static/chunks/0fe978002ba489fb.js +3 -0
  203. package/.next/standalone/packages/ui/.next/static/chunks/1169d4ac8f9df687.js +1 -0
  204. package/.next/standalone/packages/ui/.next/static/chunks/241b6b1c83610ebf.js +1 -0
  205. package/.next/standalone/packages/ui/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
  206. package/.next/standalone/packages/ui/.next/static/chunks/6d7922838a3513a4.js +1 -0
  207. package/.next/{static/chunks/7a00633903e066b4.js โ†’ standalone/packages/ui/.next/static/chunks/781328ee279ffc41.js} +1 -1
  208. package/.next/standalone/packages/ui/.next/static/chunks/937cb3894a606899.js +5 -0
  209. package/.next/standalone/packages/ui/.next/static/chunks/9cf644b700f37825.css +1 -0
  210. package/.next/standalone/packages/ui/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
  211. package/.next/standalone/packages/ui/.next/static/chunks/dbce73f7087f2470.js +10 -0
  212. package/.next/standalone/packages/ui/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
  213. package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
  214. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
  215. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  216. package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
  217. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
  218. package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
  219. package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
  220. package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
  221. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
  222. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
  223. package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
  224. package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
  225. package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
  226. package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
  227. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
  228. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
  229. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
  230. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
  231. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
  232. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
  233. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
  234. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
  235. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
  236. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
  237. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
  238. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
  239. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
  240. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
  241. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
  242. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
  243. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
  244. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
  245. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
  246. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
  247. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
  248. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
  249. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
  250. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
  251. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
  252. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
  253. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
  254. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
  255. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
  256. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
  257. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
  258. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
  259. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
  260. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
  261. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
  262. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
  263. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
  264. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
  265. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
  266. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
  267. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
  268. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
  269. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
  270. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
  271. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
  272. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
  273. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
  274. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
  275. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
  276. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
  277. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
  278. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
  279. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
  280. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
  281. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
  282. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
  283. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
  284. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
  285. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
  286. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
  287. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
  288. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
  289. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
  290. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
  291. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
  292. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
  293. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
  294. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
  295. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
  296. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
  297. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
  298. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
  299. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
  300. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
  301. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
  302. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
  303. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
  304. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
  305. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
  306. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
  307. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
  308. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
  309. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
  310. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
  311. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
  312. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
  313. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
  314. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
  315. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
  316. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
  317. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
  318. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
  319. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
  320. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
  321. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
  322. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
  323. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
  324. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
  325. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
  326. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
  327. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
  328. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
  329. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
  330. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
  331. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
  332. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
  333. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
  334. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
  335. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
  336. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
  337. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
  338. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
  339. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
  340. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
  341. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
  342. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
  343. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
  344. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
  345. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
  346. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
  347. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
  348. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
  349. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
  350. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
  351. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
  352. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
  353. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
  354. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
  355. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
  356. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
  357. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
  358. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
  359. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
  360. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
  361. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
  362. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
  363. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
  364. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
  365. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
  366. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
  367. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
  368. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
  369. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
  370. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
  371. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
  372. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
  373. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
  374. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
  375. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
  376. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
  377. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
  378. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
  379. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
  380. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
  381. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
  382. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
  383. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
  384. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
  385. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
  386. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
  387. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
  388. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
  389. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
  390. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
  391. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
  392. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
  393. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
  394. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
  395. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
  396. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
  397. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
  398. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
  399. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
  400. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
  401. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
  402. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
  403. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
  404. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
  405. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
  406. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
  407. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
  408. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
  409. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
  410. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
  411. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
  412. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
  413. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
  414. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
  415. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
  416. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
  417. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
  418. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
  419. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
  420. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
  421. package/.next/standalone/packages/ui/package.json +1 -1
  422. package/.next/standalone/packages/ui/server.js +1 -1
  423. package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +4 -67
  424. package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +3 -52
  425. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/dependency-graph/route.ts +129 -0
  426. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/metadata/route.ts +170 -0
  427. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +9 -2
  428. package/.next/standalone/packages/ui/src/app/api/projects/[id]/tags/route.ts +25 -0
  429. package/.next/standalone/packages/ui/src/app/api/specs/[id]/metadata/route.ts +184 -0
  430. package/.next/standalone/packages/ui/src/app/api/tags/route.ts +16 -0
  431. package/.next/standalone/packages/ui/src/app/context/page.tsx +22 -0
  432. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +14 -4
  433. package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +2 -2
  434. package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +25 -13
  435. package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +1 -14
  436. package/.next/standalone/packages/ui/src/app/projects/page.tsx +234 -113
  437. package/.next/standalone/packages/ui/src/app/specs/[id]/page.tsx +24 -1
  438. package/.next/standalone/packages/ui/src/app/specs/page.tsx +22 -0
  439. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +1 -1
  440. package/.next/standalone/packages/ui/src/app/stats/page.tsx +22 -0
  441. package/.next/standalone/packages/ui/src/components/editable-spec-metadata.tsx +152 -0
  442. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +6 -0
  443. package/.next/standalone/packages/ui/src/components/priority-editor.tsx +153 -0
  444. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +53 -8
  445. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +23 -20
  446. package/.next/standalone/packages/ui/src/components/status-editor.tsx +153 -0
  447. package/.next/standalone/packages/ui/src/components/tags-editor.tsx +238 -0
  448. package/.next/standalone/packages/ui/src/components/ui/command.tsx +1 -1
  449. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +151 -15
  450. package/.next/standalone/packages/ui/src/lib/projects/registry.ts +1 -1
  451. package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +21 -5
  452. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  453. package/.next/static/chunks/0c7bbb59865774a1.js +1 -0
  454. package/.next/static/chunks/0fe978002ba489fb.js +3 -0
  455. package/.next/static/chunks/1169d4ac8f9df687.js +1 -0
  456. package/.next/static/chunks/241b6b1c83610ebf.js +1 -0
  457. package/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
  458. package/.next/static/chunks/6d7922838a3513a4.js +1 -0
  459. package/.next/{standalone/packages/ui/.next/static/chunks/7a00633903e066b4.js โ†’ static/chunks/781328ee279ffc41.js} +1 -1
  460. package/.next/static/chunks/937cb3894a606899.js +5 -0
  461. package/.next/static/chunks/9cf644b700f37825.css +1 -0
  462. package/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
  463. package/.next/static/chunks/dbce73f7087f2470.js +10 -0
  464. package/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
  465. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_buildManifest.js +11 -0
  466. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_clientMiddlewareManifest.json +1 -0
  467. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_ssgManifest.js +1 -0
  468. package/package.json +2 -2
  469. package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +0 -95
  470. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__18aca702._.js +0 -3
  471. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__27348781._.js +0 -3
  472. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a7f0840._.js +0 -3
  473. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3e17db24._.js +0 -3
  474. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6e06fd2a._.js +0 -3
  475. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__97b99cc0._.js +0 -3
  476. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9d9758e1._.js +0 -3
  477. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b212b9bd._.js +0 -3
  478. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b9c03a57._.js +0 -3
  479. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e99e7672._.js +0 -3
  480. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f38a5f20._.js +0 -3
  481. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fa8cf2bc._.js +0 -3
  482. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__53f4506c._.js +0 -3
  483. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__921689ca._.js +0 -3
  484. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a9d7fd42._.js +0 -3
  485. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b27b2469._.js +0 -3
  486. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b3633d6e._.js +0 -3
  487. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +0 -7
  488. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +0 -5
  489. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_90eed09a._.js +0 -3
  490. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f9129aae._.js +0 -3
  491. package/.next/standalone/packages/ui/.next/static/chunks/04de9ed512b8098b.js +0 -10
  492. package/.next/standalone/packages/ui/.next/static/chunks/3d12a8c3152b526d.js +0 -3
  493. package/.next/standalone/packages/ui/.next/static/chunks/7931c6cb379305b1.js +0 -1
  494. package/.next/standalone/packages/ui/.next/static/chunks/7f9a218732be8099.js +0 -5
  495. package/.next/standalone/packages/ui/.next/static/chunks/8a6e8f3394240dbb.js +0 -1
  496. package/.next/standalone/packages/ui/.next/static/chunks/8d8c106c6848d15b.js +0 -1
  497. package/.next/standalone/packages/ui/.next/static/chunks/a640b005f2e15d98.js +0 -1
  498. package/.next/standalone/packages/ui/.next/static/chunks/a7075a240adea8e8.js +0 -1
  499. package/.next/standalone/packages/ui/.next/static/chunks/ddb2935cfe5310c7.css +0 -1
  500. package/.next/standalone/packages/ui/.next/static/chunks/f924ae32752e1583.js +0 -1
  501. package/.next/static/chunks/04de9ed512b8098b.js +0 -10
  502. package/.next/static/chunks/3d12a8c3152b526d.js +0 -3
  503. package/.next/static/chunks/7931c6cb379305b1.js +0 -1
  504. package/.next/static/chunks/7f9a218732be8099.js +0 -5
  505. package/.next/static/chunks/8a6e8f3394240dbb.js +0 -1
  506. package/.next/static/chunks/8d8c106c6848d15b.js +0 -1
  507. package/.next/static/chunks/a640b005f2e15d98.js +0 -1
  508. package/.next/static/chunks/a7075a240adea8e8.js +0 -1
  509. package/.next/static/chunks/ddb2935cfe5310c7.css +0 -1
  510. package/.next/static/chunks/f924ae32752e1583.js +0 -1
  511. /package/.next/standalone/packages/ui/.next/static/{T8X9UGfigRL0qWZiBHNjy โ†’ s9uUE9DnvJD2xIz-iBGMe}/_buildManifest.js +0 -0
  512. /package/.next/standalone/packages/ui/.next/static/{T8X9UGfigRL0qWZiBHNjy โ†’ s9uUE9DnvJD2xIz-iBGMe}/_clientMiddlewareManifest.json +0 -0
  513. /package/.next/standalone/packages/ui/.next/static/{T8X9UGfigRL0qWZiBHNjy โ†’ s9uUE9DnvJD2xIz-iBGMe}/_ssgManifest.js +0 -0
  514. /package/.next/{static/T8X9UGfigRL0qWZiBHNjy โ†’ standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
  515. /package/.next/{static/T8X9UGfigRL0qWZiBHNjy โ†’ standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
  516. /package/.next/{static/T8X9UGfigRL0qWZiBHNjy โ†’ standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
@@ -0,0 +1,607 @@
1
+ ---
2
+ status: in-progress
3
+ created: '2025-11-17'
4
+ tags:
5
+ - cli
6
+ - web
7
+ - dx
8
+ - integration
9
+ priority: medium
10
+ created_at: '2025-11-17T01:31:21.397Z'
11
+ related:
12
+ - 035-live-specs-showcase
13
+ - 081-web-app-ux-redesign
14
+ - 082-web-realtime-sync-architecture
15
+ updated_at: '2025-11-17T04:41:33.637Z'
16
+ transitions:
17
+ - status: in-progress
18
+ at: '2025-11-17T01:59:34.354Z'
19
+ completed_at: '2025-11-17T02:00:24.131Z'
20
+ completed: '2025-11-17'
21
+ ---
22
+
23
+ # CLI UI Command: `lean-spec ui`
24
+
25
+ > **Status**: โณ In progress ยท **Priority**: Medium ยท **Created**: 2025-11-17 ยท **Tags**: cli, web, dx, integration
26
+
27
+ **Project**: lean-spec
28
+ **Team**: Core Development
29
+ **Related**: Spec 035 (live-specs-showcase), Spec 081 (web-app-ux-redesign), Spec 082 (web-realtime-sync-architecture)
30
+
31
+ ## Current Status
32
+
33
+ **Phase 1: CLI Command (Monorepo Mode)** - โœ… **COMPLETE**
34
+ - Basic `lean-spec ui` command implemented with all options
35
+ - Monorepo detection working (checks for `packages/web`)
36
+ - Package manager auto-detection (pnpm/yarn/npm)
37
+ - Port validation (1-65535 range)
38
+ - Robust error handling and graceful shutdown
39
+ - Unit tests passing
40
+ - Code review feedback addressed
41
+
42
+ **Phase 2: Standalone UI Package (Production Mode)** - ๐Ÿšง **IN PROGRESS**
43
+ - Need to create `@leanspec/ui` package for external projects
44
+ - Need to implement `runPublishedUI()` logic in CLI
45
+ - Need to set up npm publish CI workflow
46
+
47
+ **What works now:**
48
+ - โœ… `lean-spec ui` in LeanSpec monorepo (dev mode)
49
+ - โœ… All command options: `--port`, `--specs`, `--no-open`, `--dry-run`
50
+ - โœ… Auto-opens browser, launches web server with filesystem mode
51
+
52
+ **What's next:**
53
+ - Create standalone `@leanspec/ui` package
54
+ - Implement production mode for external projects
55
+ - Set up CI/CD for npm publishing
56
+
57
+ ## Overview
58
+
59
+ Add a `lean-spec ui` command to the CLI that launches the local web interface for visual spec management. This provides a better UX for users who prefer graphical interfaces over CLI commands, especially for browsing, searching, and understanding spec relationships.
60
+
61
+ **Why now?**
62
+ - Web app is production-ready (specs 035, 081, 082 completed)
63
+ - Filesystem-based architecture (spec 082) enables realtime local spec viewing
64
+ - Natural complement to CLI workflow - some tasks are better visual (board view, search, relationships)
65
+ - Low effort, high value feature for improving DX
66
+
67
+ **What's the problem?**
68
+ - Users must manually navigate to `packages/web` and run `npm run dev` to access the UI
69
+ - No integrated workflow between CLI and web interface
70
+ - External projects using `lean-spec` have no easy way to access the web UI
71
+ - Missing discoverability - users may not know the web interface exists
72
+
73
+ **What's the solution?**
74
+ Add `lean-spec ui` command that:
75
+ 1. **For external projects**: Runs a published standalone web UI package (`@leanspec/ui`)
76
+ 2. **For LeanSpec monorepo** (dev): Optionally detects and runs local `packages/web` dev server
77
+ 3. Opens browser automatically to the UI
78
+ 4. Watches specs directory for changes (realtime updates via spec 082 architecture)
79
+
80
+ ## Design
81
+
82
+ ### Package Strategy
83
+
84
+ **Published Package Approach** (Preferred for external projects):
85
+
86
+ Create a separate `@leanspec/ui` package that:
87
+ - Bundles the web app as a standalone executable
88
+ - Can be run via `npx @leanspec/ui` or installed globally
89
+ - Detects specs directory automatically (looks for `specs/` or `leanspec.yaml`)
90
+ - Lightweight CLI wrapper around Next.js production build
91
+
92
+ **Architecture:**
93
+ ```
94
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
95
+ โ”‚ User Project โ”‚
96
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
97
+ โ”‚ โ”‚
98
+ โ”‚ specs/ โ”‚
99
+ โ”‚ โ””โ”€โ”€ 001-my-spec/ โ”‚
100
+ โ”‚ โ””โ”€โ”€ README.md โ”‚
101
+ โ”‚ โ”‚
102
+ โ”‚ $ npx lean-spec ui โ”‚
103
+ โ”‚ โ†“ โ”‚
104
+ โ”‚ Runs: npx @leanspec/ui --specs ./specs โ”‚
105
+ โ”‚ โ†“ โ”‚
106
+ โ”‚ Opens: http://localhost:3000 โ”‚
107
+ โ”‚ โ†“ โ”‚
108
+ โ”‚ Web UI (filesystem mode) โ† reads specs/ directly โ”‚
109
+ โ”‚ โ”‚
110
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
111
+ ```
112
+
113
+ ### Command Interface
114
+
115
+ ```bash
116
+ # Start web UI (auto-detect specs directory)
117
+ lean-spec ui
118
+
119
+ # Specify custom specs directory
120
+ lean-spec ui --specs ./my-specs
121
+
122
+ # Specify custom port
123
+ lean-spec ui --port 3001
124
+
125
+ # Don't open browser automatically
126
+ lean-spec ui --no-open
127
+
128
+ # Show what would run without executing
129
+ lean-spec ui --dry-run
130
+ ```
131
+
132
+ ### Implementation Approach
133
+
134
+ **Phase 1: CLI Command (packages/cli/src/commands/ui.ts)**
135
+
136
+ ```typescript
137
+ import { Command } from 'commander';
138
+ import { spawn } from 'child_process';
139
+ import { existsSync } from 'fs';
140
+ import { resolve, join } from 'path';
141
+ import chalk from 'chalk';
142
+ import ora from 'ora';
143
+
144
+ export function registerUiCommand(program: Command) {
145
+ program
146
+ .command('ui')
147
+ .description('Start local web UI for spec management')
148
+ .option('-s, --specs <dir>', 'Specs directory', './specs')
149
+ .option('-p, --port <port>', 'Port to run on', '3000')
150
+ .option('--no-open', "Don't open browser automatically")
151
+ .option('--dry-run', 'Show what would run without executing')
152
+ .action(async (options) => {
153
+ const specsDir = resolve(process.cwd(), options.specs);
154
+
155
+ // Verify specs directory exists
156
+ if (!existsSync(specsDir)) {
157
+ console.error(chalk.red(`โœ— Specs directory not found: ${specsDir}`));
158
+ console.log(chalk.dim('\nRun `lean-spec init` to initialize LeanSpec in this directory.'));
159
+ process.exit(1);
160
+ }
161
+
162
+ // Check if running in LeanSpec monorepo (dev mode)
163
+ const localWebDir = join(process.cwd(), 'packages/web');
164
+ const isMonorepo = existsSync(localWebDir);
165
+
166
+ if (isMonorepo) {
167
+ // Dev mode: Run local web package
168
+ return runLocalWeb(localWebDir, options);
169
+ } else {
170
+ // Production mode: Run published @leanspec/ui package
171
+ return runPublishedUI(specsDir, options);
172
+ }
173
+ });
174
+ }
175
+
176
+ async function runLocalWeb(webDir: string, options: any) {
177
+ console.log(chalk.dim('โ†’ Detected LeanSpec monorepo, using local web package\n'));
178
+
179
+ if (options.dryRun) {
180
+ console.log(chalk.cyan('Would run:'));
181
+ console.log(chalk.dim(` cd ${webDir} && npm run dev`));
182
+ return;
183
+ }
184
+
185
+ const spinner = ora('Starting web UI...').start();
186
+
187
+ const child = spawn('npm', ['run', 'dev'], {
188
+ cwd: webDir,
189
+ stdio: 'inherit',
190
+ env: { ...process.env, PORT: options.port }
191
+ });
192
+
193
+ // Wait for server to be ready
194
+ setTimeout(async () => {
195
+ spinner.succeed('Web UI running');
196
+ console.log(chalk.green(`\nโœจ LeanSpec UI: http://localhost:${options.port}\n`));
197
+ console.log(chalk.dim('Press Ctrl+C to stop\n'));
198
+
199
+ if (options.open) {
200
+ const open = (await import('open')).default;
201
+ await open(`http://localhost:${options.port}`);
202
+ }
203
+ }, 3000);
204
+
205
+ // Handle shutdown
206
+ process.on('SIGINT', () => {
207
+ child.kill();
208
+ console.log(chalk.dim('\nโœ“ Web UI stopped'));
209
+ process.exit(0);
210
+ });
211
+ }
212
+
213
+ async function runPublishedUI(specsDir: string, options: any) {
214
+ if (options.dryRun) {
215
+ console.log(chalk.cyan('Would run:'));
216
+ console.log(chalk.dim(` npx @leanspec/ui --specs ${specsDir} --port ${options.port}`));
217
+ return;
218
+ }
219
+
220
+ console.log(chalk.dim('โ†’ Using published @leanspec/ui package\n'));
221
+
222
+ const spinner = ora('Starting web UI...').start();
223
+
224
+ const child = spawn('npx', [
225
+ '@leanspec/ui',
226
+ '--specs', specsDir,
227
+ '--port', options.port,
228
+ options.open ? '' : '--no-open'
229
+ ].filter(Boolean), {
230
+ stdio: 'inherit',
231
+ env: process.env
232
+ });
233
+
234
+ // Handle shutdown
235
+ process.on('SIGINT', () => {
236
+ child.kill();
237
+ console.log(chalk.dim('\nโœ“ Web UI stopped'));
238
+ process.exit(0);
239
+ });
240
+ }
241
+ ```
242
+
243
+ **Phase 2: Standalone UI Package (packages/ui/)**
244
+
245
+ Create new package `@leanspec/ui`:
246
+
247
+ ```json
248
+ {
249
+ "name": "@leanspec/ui",
250
+ "version": "0.3.0",
251
+ "description": "Web UI for LeanSpec - visual spec management",
252
+ "bin": {
253
+ "leanspec-ui": "./bin/ui.js"
254
+ },
255
+ "dependencies": {
256
+ "@leanspec/core": "workspace:*",
257
+ "next": "16.0.1",
258
+ "react": "19.2.0",
259
+ "react-dom": "19.2.0"
260
+ // ... other web dependencies
261
+ },
262
+ "scripts": {
263
+ "build": "next build",
264
+ "start": "node bin/ui.js"
265
+ }
266
+ }
267
+ ```
268
+
269
+ **Standalone UI Wrapper (packages/ui/bin/ui.js):**
270
+
271
+ ```javascript
272
+ #!/usr/bin/env node
273
+ import { spawn } from 'child_process';
274
+ import { resolve } from 'path';
275
+ import { fileURLToPath } from 'url';
276
+ import { dirname, join } from 'path';
277
+
278
+ const __dirname = dirname(fileURLToPath(import.meta.url));
279
+ const nextDir = join(__dirname, '..');
280
+
281
+ // Parse CLI args
282
+ const args = process.argv.slice(2);
283
+ const specsDir = args[args.indexOf('--specs') + 1] || './specs';
284
+ const port = args[args.indexOf('--port') + 1] || '3000';
285
+ const noOpen = args.includes('--no-open');
286
+
287
+ // Set environment variables
288
+ process.env.SPECS_DIR = resolve(process.cwd(), specsDir);
289
+ process.env.PORT = port;
290
+ process.env.SPECS_MODE = 'filesystem'; // Force filesystem mode
291
+
292
+ // Start Next.js server
293
+ const child = spawn('next', ['start'], {
294
+ cwd: nextDir,
295
+ stdio: 'inherit',
296
+ env: process.env
297
+ });
298
+
299
+ // Open browser
300
+ if (!noOpen) {
301
+ setTimeout(async () => {
302
+ const open = (await import('open')).default;
303
+ await open(`http://localhost:${port}`);
304
+ }, 2000);
305
+ }
306
+
307
+ process.on('SIGINT', () => {
308
+ child.kill();
309
+ process.exit(0);
310
+ });
311
+ ```
312
+
313
+ ### Package Publishing Strategy
314
+
315
+ **Option 1: Separate @leanspec/ui package** (Recommended)
316
+ - **Pros**: Clean separation, can be used standalone, smaller CLI package
317
+ - **Cons**: One more package to maintain
318
+ - **Use case**: External projects using `npx lean-spec ui`
319
+
320
+ **Option 2: Bundle in @leanspec/web**
321
+ - **Pros**: Reuse existing package
322
+ - **Cons**: Web package is currently private, larger dependency
323
+ - **Use case**: Make `@leanspec/web` public with CLI wrapper
324
+
325
+ **Option 3: Bundle in lean-spec CLI**
326
+ - **Pros**: Single package install
327
+ - **Cons**: CLI becomes massive (Next.js + React = ~50MB)
328
+ - **Use case**: All-in-one installation
329
+
330
+ **Recommendation: Option 1** - Create `@leanspec/ui` as a thin wrapper around `@leanspec/web` that:
331
+ - Shares code with `@leanspec/web` (monorepo symlinks)
332
+ - Has its own bin/ui.js entry point
333
+ - Can be published separately
334
+ - CLI delegates to it via `npx @leanspec/ui`
335
+
336
+ ### Auto-Detection Logic
337
+
338
+ ```typescript
339
+ function detectSpecsDirectory(): string | null {
340
+ const candidates = [
341
+ './specs',
342
+ './spec',
343
+ './docs/specs',
344
+ './docs/spec',
345
+ './.lean-spec/specs'
346
+ ];
347
+
348
+ for (const candidate of candidates) {
349
+ if (existsSync(resolve(process.cwd(), candidate))) {
350
+ return candidate;
351
+ }
352
+ }
353
+
354
+ // Check for leanspec.yaml config
355
+ const configPath = resolve(process.cwd(), 'leanspec.yaml');
356
+ if (existsSync(configPath)) {
357
+ const config = yaml.load(readFileSync(configPath, 'utf-8'));
358
+ return config.specsDirectory || null;
359
+ }
360
+
361
+ return null;
362
+ }
363
+ ```
364
+
365
+ ### Integration with Spec 082 Architecture
366
+
367
+ The web UI will use the **filesystem mode** (spec 082) for local projects:
368
+
369
+ - Direct reads from `specs/` directory (no database required)
370
+ - In-memory caching with 60s TTL
371
+ - Realtime updates (changes appear within 60s)
372
+ - No manual seeding or sync required
373
+
374
+ **Environment Configuration:**
375
+ ```bash
376
+ # Automatically set by lean-spec ui command
377
+ SPECS_MODE=filesystem
378
+ SPECS_DIR=/absolute/path/to/project/specs
379
+ PORT=3000
380
+ ```
381
+
382
+ ## Plan
383
+
384
+ ### Phase 1: CLI Command (Week 1)
385
+
386
+ **Day 1-2: Basic Command Implementation** - โœ… **COMPLETE**
387
+ - [x] Create `packages/cli/src/commands/ui.ts`
388
+ - [x] Implement command registration in registry
389
+ - [x] Add monorepo detection logic (check for `packages/web`)
390
+ - [x] Implement `runLocalWeb()` for dev mode
391
+ - [x] Add port, specs-dir, and no-open options
392
+ - [x] Add `--dry-run` flag for testing
393
+ - [x] Test in LeanSpec monorepo
394
+ - [x] Add port validation (1-65535)
395
+ - [x] Auto-detect package manager (pnpm/yarn/npm)
396
+ - [x] Fix race conditions and event listener leaks
397
+ - [x] Comprehensive error handling
398
+
399
+ **Day 3: External Package Delegation** - ๐Ÿšง **TODO**
400
+ - [ ] Implement `runPublishedUI()` that spawns `npx @leanspec/ui`
401
+ - [ ] Add specs directory auto-detection
402
+ - [ ] Add error handling (specs dir not found)
403
+ - [ ] Add graceful shutdown (SIGINT handling)
404
+ - [ ] Test with non-existent @leanspec/ui (show helpful error)
405
+
406
+ ### Phase 2: Standalone UI Package (Week 2) - ๐Ÿšง **TODO**
407
+
408
+ **Day 4-5: Package Structure**
409
+ - [ ] Create `packages/ui/` directory
410
+ - [ ] Copy/symlink relevant files from `packages/web`
411
+ - [ ] Create `bin/ui.js` wrapper script
412
+ - [ ] Update package.json with bin entry point
413
+ - [ ] Configure build scripts
414
+ - [ ] Add README with usage instructions
415
+
416
+ **Day 6-7: Standalone Build**
417
+ - [ ] Configure Next.js for standalone builds
418
+ - [ ] Test production build works
419
+ - [ ] Verify all dependencies bundled correctly
420
+ - [ ] Test bin script launches correctly
421
+ - [ ] Add CLI arg parsing (--specs, --port, --no-open)
422
+ - [ ] Test opening browser automatically
423
+
424
+ **Day 8: Integration Testing**
425
+ - [ ] Test `lean-spec ui` in monorepo (dev mode)
426
+ - [ ] Test `npx @leanspec/ui` in external project
427
+ - [ ] Test `lean-spec ui` in external project (delegates to npx)
428
+ - [ ] Verify realtime updates work (spec 082 filesystem mode)
429
+ - [ ] Test error cases (no specs dir, port already in use)
430
+
431
+ ### Phase 3: Documentation & Polish (Week 3)
432
+
433
+ **Day 9-10: Documentation**
434
+ - [ ] Update CLI help text with `ui` command
435
+ - [ ] Add examples to main README
436
+ - [ ] Create @leanspec/ui README
437
+ - [ ] Document environment variables
438
+ - [ ] Add troubleshooting guide
439
+
440
+ **Day 11-12: Publishing Preparation**
441
+ - [ ] Version bump coordination (CLI + UI packages)
442
+ - [ ] Update CHANGELOG.md for both packages
443
+ - [ ] Test npm publish dry-run
444
+ - [ ] Verify package.json metadata
445
+ - [ ] Test installation from npm registry
446
+
447
+ **Day 13: Release**
448
+ - [ ] Publish `@leanspec/ui` to npm
449
+ - [ ] Publish updated `lean-spec` CLI to npm
450
+ - [ ] Create GitHub release with notes
451
+ - [ ] Announce feature in docs and social media
452
+
453
+ ## Test
454
+
455
+ ### Functional Testing
456
+
457
+ **CLI Command:**
458
+ - [x] `lean-spec ui` works in LeanSpec monorepo (launches local web)
459
+ - [ ] `lean-spec ui` works in external project (delegates to @leanspec/ui)
460
+ - [x] `--specs` option overrides auto-detection
461
+ - [x] `--port` option changes port correctly
462
+ - [x] `--no-open` prevents browser from opening
463
+ - [x] `--dry-run` shows what would run without executing
464
+ - [x] Error message when specs directory not found
465
+ - [x] Graceful shutdown on Ctrl+C
466
+ - [x] Port validation (1-65535 range)
467
+ - [x] Package manager detection (pnpm/yarn/npm)
468
+
469
+ **Standalone UI Package:**
470
+ - [ ] `npx @leanspec/ui` launches web UI
471
+ - [ ] Auto-detects specs directory correctly
472
+ - [ ] Works with custom `--specs` directory
473
+ - [ ] Opens browser to correct URL
474
+ - [ ] Environment variables set correctly (SPECS_MODE, SPECS_DIR)
475
+ - [ ] Filesystem mode reads specs correctly
476
+ - [ ] Cache updates work (realtime within 60s)
477
+
478
+ **Integration:**
479
+ - [ ] CLI delegates to standalone package correctly
480
+ - [ ] Monorepo dev mode takes precedence over published package
481
+ - [ ] Both modes can run simultaneously (different ports)
482
+ - [ ] Process cleanup works (no orphaned processes)
483
+
484
+ ### Performance Testing
485
+
486
+ - [ ] Startup time <5s (cold start)
487
+ - [ ] Startup time <2s (warm cache)
488
+ - [ ] Memory usage reasonable (<200MB)
489
+ - [ ] No memory leaks during extended runs
490
+
491
+ ### Compatibility Testing
492
+
493
+ - [ ] Works on macOS
494
+ - [ ] Works on Linux
495
+ - [ ] Works on Windows (WSL)
496
+ - [ ] Works with Node 20+
497
+ - [ ] Works with npm, pnpm, yarn
498
+ - [ ] Works when installed globally vs locally
499
+
500
+ ### User Experience Testing
501
+
502
+ - [ ] Clear startup messages
503
+ - [ ] Helpful error messages
504
+ - [ ] Browser opens to correct page
505
+ - [ ] UI loads specs correctly
506
+ - [ ] Changes to specs appear within 60s
507
+ - [ ] Shutdown is clean (no errors)
508
+
509
+ ## Notes
510
+
511
+ ### Design Decisions
512
+
513
+ **Why separate @leanspec/ui package?**
514
+ - **Clean separation**: CLI stays lightweight, UI is separate concern
515
+ - **Standalone use**: Users can run `npx @leanspec/ui` directly
516
+ - **Smaller CLI**: Don't bloat CLI with Next.js/React dependencies
517
+ - **Easier maintenance**: UI can version independently
518
+
519
+ **Why not bundle UI in CLI?**
520
+ - **Size**: Next.js + React = ~50MB, too large for CLI
521
+ - **Dependencies**: React, Next.js not needed for CLI users who never use UI
522
+ - **Complexity**: Build process more complicated
523
+ - **Performance**: Slower CLI startup if bundled
524
+
525
+ **Why detect monorepo mode?**
526
+ - **Dev experience**: LeanSpec contributors shouldn't need published package
527
+ - **Faster iteration**: Local changes immediately available
528
+ - **Flexibility**: Can test unreleased UI changes
529
+
530
+ **Why filesystem mode (spec 082)?**
531
+ - **No setup**: Works immediately, no database required
532
+ - **Realtime**: Changes appear within 60s (cache TTL)
533
+ - **Simple**: Single source of truth (specs/ directory)
534
+ - **Fast**: <100ms reads from filesystem
535
+
536
+ ### Package Size Comparison
537
+
538
+ | Package | Compressed | Unpacked | Dependencies |
539
+ |---------|-----------|----------|--------------|
540
+ | `lean-spec` CLI | ~500KB | ~2MB | 20 packages |
541
+ | `@leanspec/ui` | ~5MB | ~25MB | Next.js, React, UI libs |
542
+ | **Combined** | ~5.5MB | ~27MB | Separate installs |
543
+
544
+ **If bundled in CLI**: ~50MB unpacked (not acceptable)
545
+
546
+ ### Alternative Approaches Considered
547
+
548
+ **1. Embedded Server in CLI**
549
+ - Pros: Single package
550
+ - Cons: Massive size, complex build, slow startup
551
+ - **Rejected**: Too complex, violates Unix philosophy
552
+
553
+ **2. Static HTML Export**
554
+ - Pros: No server needed, tiny package
555
+ - Cons: No realtime updates, limited interactivity
556
+ - **Rejected**: Defeats purpose of web UI
557
+
558
+ **3. Electron App**
559
+ - Pros: Native feel, auto-updates
560
+ - Cons: Even larger (100MB+), more maintenance
561
+ - **Rejected**: Overkill for this use case
562
+
563
+ **4. Browser Extension**
564
+ - Pros: Integrated in browser
565
+ - Cons: Limited filesystem access, requires extension install
566
+ - **Rejected**: Adds friction to workflow
567
+
568
+ ### Open Questions
569
+
570
+ - [ ] Should `@leanspec/ui` be in this monorepo or separate repo?
571
+ - **Recommendation**: Same monorepo (`packages/ui/`)
572
+ - [ ] Should we support watching for file changes (instant reload)?
573
+ - **Recommendation**: Spec 082 cache (60s) is sufficient for v1
574
+ - [ ] Should UI command be `lean-spec ui` or `lean-spec web`?
575
+ - **Recommendation**: `ui` is shorter, more intuitive
576
+ - [ ] Should we add `lean-spec ui build` for static export?
577
+ - **Recommendation**: Not needed yet, defer to future
578
+ - [ ] Should we bundle a version checker (warn if outdated)?
579
+ - **Recommendation**: Yes, add to Phase 3
580
+
581
+ ### Related Work
582
+
583
+ - **Spec 035**: Live Specs Showcase - Web app foundation
584
+ - **Spec 081**: Web App UX Redesign - UI improvements
585
+ - **Spec 082**: Web Realtime Sync Architecture - Filesystem mode enables this
586
+
587
+ ### Future Enhancements
588
+
589
+ **v0.4+:**
590
+ - [ ] `lean-spec ui export` - Static HTML export
591
+ - [ ] `lean-spec ui share` - Temporary public URL (via ngrok/tunneling)
592
+ - [ ] `lean-spec ui --watch` - Instant reload on file changes
593
+ - [ ] Desktop app wrapper (Tauri/Electron)
594
+ - [ ] VSCode webview integration (spec 017)
595
+ - [ ] Multi-project mode (switch between projects in UI)
596
+
597
+ ### Dependencies
598
+
599
+ **This spec depends on:**
600
+ - Spec 082 (filesystem mode) - Must be complete for realtime updates
601
+ - Spec 081 (UX redesign) - UI should be polished before exposing via CLI
602
+
603
+ **This spec enables:**
604
+ - Better DX for visual learners
605
+ - Easier onboarding (show, don't tell)
606
+ - Spec 017 (VSCode extension) - Can embed UI in webview
607
+ - External adoption - Easy way to explore LeanSpec
@@ -0,0 +1,104 @@
1
+ ---
2
+ status: planned
3
+ created: '2025-11-17'
4
+ tags: []
5
+ priority: high
6
+ created_at: '2025-11-17T02:09:38.041Z'
7
+ updated_at: '2025-11-17T02:58:35.396Z'
8
+ transitions:
9
+ - status: in-progress
10
+ at: '2025-11-17T02:10:38.350Z'
11
+ - status: complete
12
+ at: '2025-11-17T02:10:43.845Z'
13
+ - status: planned
14
+ at: '2025-11-17T02:58:35.396Z'
15
+ completed_at: '2025-11-17T02:10:43.845Z'
16
+ completed: '2025-11-17'
17
+ ---
18
+
19
+ # Core Concepts: Real SDD Terminology Only
20
+
21
+ > **Status**: ๐Ÿ—“๏ธ Planned ยท **Priority**: High ยท **Created**: 2025-11-17
22
+
23
+ **Project**: lean-spec
24
+ **Team**: Core Development
25
+
26
+ ## Overview
27
+
28
+ Users report that the current "Core Concepts" section in docs-site contains philosophy and principles rather than actual terminology definitions. This creates confusion for newcomers trying to understand SDD basics.
29
+
30
+ **Problem**: Current Core Concepts mixes:
31
+ - Philosophical principles (first principles, progressive disclosure)
32
+ - Process guidance (workflow, decision-making)
33
+ - Actual SDD terminology (specs, tokens, context)
34
+
35
+ **Goal**: Restructure Core Concepts to be a **glossary of essential SDD terms** only:
36
+ - **Spec**: What is a specification in SDD context
37
+ - **Context**: What context means (human + AI working memory)
38
+ - **Tokens**: Why tokens matter for AI + human cognition
39
+ - **Agent**: AI agents in SDD workflow
40
+ - **Status**: Spec lifecycle states
41
+ - **Dependencies**: Relationship between specs
42
+ - Other concrete terms users encounter when using LeanSpec
43
+
44
+ **Non-Goals**:
45
+ - Philosophy content โ†’ move to "Philosophy & Principles" section
46
+ - Workflow guidance โ†’ move to tutorials/guides
47
+ - Decision frameworks โ†’ keep in methodology docs
48
+
49
+ ## Design
50
+
51
+ **Restructure Core Concepts as a terminology glossary with definitions only.**
52
+
53
+ Each concept entry should:
54
+ 1. **Definition**: What it is (1-2 sentences)
55
+ 2. **Why it matters**: Practical importance for SDD
56
+ 3. **Example**: Concrete example from LeanSpec usage
57
+ 4. **Related**: Links to deeper explanations
58
+
59
+ **Priority order for inclusion**:
60
+ 1. Terms users encounter in first 5 minutes (spec, status, tokens)
61
+ 2. Terms in CLI/UI (tags, priority, dependencies)
62
+ 3. SDD methodology terms (context, agent, signal-to-noise)
63
+ 4. Advanced concepts (progressive disclosure, templates)
64
+
65
+ **Content reorganization**:
66
+ - Philosophy โ†’ New "Philosophy & Principles" section
67
+ - Workflow โ†’ Move to step-by-step tutorials (spec 089)
68
+ - Decision frameworks โ†’ Keep in "Methodology" docs
69
+
70
+ **Term structure template**:
71
+ ```markdown
72
+ ### [Term Name]
73
+
74
+ **Definition**: [One sentence explanation]
75
+
76
+ **Why it matters**: [Practical importance in SDD workflow]
77
+
78
+ **Example**:
79
+ [Concrete example from LeanSpec usage]
80
+
81
+ **See also**: [Links to related concepts or deeper docs]
82
+ ```
83
+
84
+ ## Plan
85
+
86
+ - [ ] Audit current Core Concepts docs - identify what's philosophy vs terminology
87
+ - [ ] Create list of essential SDD terms users encounter
88
+ - [ ] Write clean definitions for each term (using template)
89
+ - [ ] Create new "Philosophy & Principles" section in docs
90
+ - [ ] Move philosophical content to new section
91
+ - [ ] Update navigation/sidebar in docs-site
92
+ - [ ] Verify all cross-references still work
93
+
94
+ ## Test
95
+
96
+ - [ ] New user can find definition of any term they encounter in first use
97
+ - [ ] Each term has clear, concise definition (no philosophy/principles mixed in)
98
+ - [ ] Examples are concrete and actionable
99
+ - [ ] Philosophy content successfully moved to separate section
100
+ - [ ] All internal doc links still work after reorganization
101
+
102
+ ## Notes
103
+
104
+ <!-- Optional: Research findings, alternatives considered, open questions -->