@leanspec/ui 0.2.8 โ 0.2.9-dev.20251205030455
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.
- package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +95 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +8 -0
- package/.next/standalone/packages/ui/.next/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
- package/.next/standalone/packages/ui/.next/routes-manifest.json +60 -0
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -18
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +1 -3
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +1 -2
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -2
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js +6 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -3
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/context/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +19 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/page.js +4 -3
- package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +7 -7
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +8 -7
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +7 -6
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js +7 -6
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -23
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -23
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +8 -0
- package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_dependencies_route_actions_7ac49581.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_context_route_actions_96adca70.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_validate_route_actions_b60372c9.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[externals]_better-sqlite3_a1cc22cb._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__18aca702._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__27348781._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a7f0840._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3e17db24._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5f1e0195._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6e06fd2a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__97b99cc0._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9d9758e1._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b212b9bd._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b9c03a57._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e99e7672._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f38a5f20._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__126dea7b._.js โ [root-of-the-server]__fa8cf2bc._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_dependencies_route_actions_cf6b14c3.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_b8c1af87._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +72 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_context_page_actions_e4940a48.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_stats_page_actions_82a85203.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__13f96ef4._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__212c8580._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2b66bcca._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__312221a2._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__fd80e4dd._.js โ [root-of-the-server]__38c56adc._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__46b71f61._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__53f4506c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__665ae766._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__84124d4b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__921689ca._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a34731d8._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a9d7fd42._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b0d6e2ad._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b27b2469._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b3633d6e._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dcee62dd._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_39562b2a._.js โ _170362f4._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_1a642e67._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_85effc18._.js โ _2bc76f88._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_fdd7780b._.js โ _3f059230._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_58b98a8f._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_90eed09a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_22274047._.js โ _adb9d7cb._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b303aeea._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_bae6d2b8._.js โ _b421ba4a._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_da18b655._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f05260d6._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f38e75b7._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f9129aae._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_dependencies_page_actions_ba2321b8.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_0056f1f2._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_015f83ca._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_30b0b05a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_478d57e5._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_4e3e790c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_80605a06._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_f5b29533._.js โ node_modules__pnpm_8680dc29._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_e175b92a._.js โ node_modules__pnpm_94a0b1f5._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b4ff5c78._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_bb80de48._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_7791e3b8._.js โ node_modules__pnpm_d3262b3d._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e8075f9b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f919ef4a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_dependencies_page_actions_57387d47.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_dependencies_dependencies-client_tsx_0e82443a._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_layout_tsx_86c2ce0f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +2 -2
- package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
- package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/04de9ed512b8098b.js +10 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
- package/.next/standalone/packages/ui/.next/static/chunks/3d12a8c3152b526d.js +3 -0
- package/.next/standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
- package/.next/standalone/packages/ui/.next/static/chunks/46275d9d67603bf5.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/7931c6cb379305b1.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/7a00633903e066b4.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/{942cf63b4032c808.js โ 7df6308e6cfcf902.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/7f9a218732be8099.js +5 -0
- package/.next/standalone/packages/ui/.next/static/chunks/840c6743a491a398.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/8d8c106c6848d15b.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/a640b005f2e15d98.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/a7075a240adea8e8.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/b53250480fde6816.js +1 -0
- package/.next/{static/chunks/794f3931f1ca12d2.js โ standalone/packages/ui/.next/static/chunks/bbd498aa5689c057.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/c658e22a605e0ed1.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/c92660d8d0c4763d.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/{e3bc96a996e2a314.js โ d26f4109b44eb240.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/{3276ca6fd9005903.js โ d52a048b511c32bd.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f924ae32752e1583.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
- package/.next/{static/chunks/turbopack-5fa55215af0efb15.js โ standalone/packages/ui/.next/static/chunks/turbopack-261c5dcdd873f310.js} +1 -1
- package/.next/standalone/packages/ui/package.json +3 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +81 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/context/route.ts +39 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +69 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +25 -9
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +14 -14
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +9 -8
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/validate/route.ts +49 -0
- package/.next/standalone/packages/ui/src/app/api/projects/route.ts +18 -5
- package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -2
- package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts +0 -15
- package/.next/standalone/packages/ui/src/app/context/context-client.tsx +23 -1
- package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +29 -58
- package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +25 -0
- package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +700 -0
- package/.next/standalone/packages/ui/src/app/dependencies/index.ts +19 -0
- package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +38 -0
- package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +80 -0
- package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +171 -0
- package/.next/standalone/packages/ui/src/app/dependencies/types.ts +37 -0
- package/.next/standalone/packages/ui/src/app/dependencies/utils.ts +194 -0
- package/.next/standalone/packages/ui/src/app/page.tsx +24 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/context/page.tsx +41 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +43 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +18 -2
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/stats/page.tsx +24 -0
- package/.next/standalone/packages/ui/src/app/projects/layout.tsx +7 -0
- package/.next/standalone/packages/ui/src/app/projects/page.tsx +167 -20
- package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +27 -17
- package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
- package/.next/standalone/packages/ui/src/components/context-file-detail.tsx +308 -0
- package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +96 -2
- package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +3 -5
- package/.next/standalone/packages/ui/src/components/directory-picker.tsx +1 -0
- package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +31 -6
- package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
- package/.next/standalone/packages/ui/src/components/project-switcher.tsx +24 -5
- package/.next/standalone/packages/ui/src/components/quick-search.tsx +3 -1
- package/.next/standalone/packages/ui/src/components/spec-dependency-graph.tsx +13 -52
- package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +36 -11
- package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +3 -4
- package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +8 -6
- package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
- package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +85 -31
- package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
- package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/chunks/04de9ed512b8098b.js +10 -0
- package/.next/static/chunks/1e0689744f87e958.js +2 -0
- package/.next/static/chunks/3d12a8c3152b526d.js +3 -0
- package/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
- package/.next/static/chunks/46275d9d67603bf5.js +1 -0
- package/.next/static/chunks/7931c6cb379305b1.js +1 -0
- package/.next/static/chunks/7a00633903e066b4.js +1 -0
- package/.next/static/chunks/{942cf63b4032c808.js โ 7df6308e6cfcf902.js} +1 -1
- package/.next/static/chunks/7f9a218732be8099.js +5 -0
- package/.next/static/chunks/840c6743a491a398.js +1 -0
- package/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
- package/.next/static/chunks/8d8c106c6848d15b.js +1 -0
- package/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
- package/.next/static/chunks/a640b005f2e15d98.js +1 -0
- package/.next/static/chunks/a7075a240adea8e8.js +1 -0
- package/.next/static/chunks/b53250480fde6816.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/794f3931f1ca12d2.js โ static/chunks/bbd498aa5689c057.js} +1 -1
- package/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
- package/.next/static/chunks/c658e22a605e0ed1.js +1 -0
- package/.next/static/chunks/c92660d8d0c4763d.js +1 -0
- package/.next/static/chunks/{e3bc96a996e2a314.js โ d26f4109b44eb240.js} +1 -1
- package/.next/static/chunks/{3276ca6fd9005903.js โ d52a048b511c32bd.js} +1 -1
- package/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
- package/.next/static/chunks/e399b4afc7936907.js +1 -0
- package/.next/static/chunks/f924ae32752e1583.js +1 -0
- package/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/turbopack-5fa55215af0efb15.js โ static/chunks/turbopack-261c5dcdd873f310.js} +1 -1
- package/package.json +4 -2
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +0 -74
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__12b4eb41._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__6e739186._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a4c56419._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b6632d78._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_315f3b3a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_9dcf102b._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ac867463._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b397e94a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_8272a49c._.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/1eb8283995f370c6.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/336e8e8fc6b0fba8.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/37a1236ed50645a6.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/9d84ba08a41145ec.js +0 -5
- package/.next/standalone/packages/ui/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/c4b1faff3361a749.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/d7420d2a867e57b5.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/efded9da04c960d8.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/f382932f1a5d6359.js +0 -10
- package/.next/standalone/packages/ui/.next/static/chunks/f43b6e43b4da1a32.css +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/f6dd06e6d22d2d12.js +0 -3
- package/.next/standalone/packages/ui/dist/BUILD_ID +0 -1
- package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
- package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
- package/.next/standalone/packages/ui/dist/public/file.svg +0 -1
- package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +0 -1
- package/.next/standalone/packages/ui/dist/public/github-mark.svg +0 -1
- package/.next/standalone/packages/ui/dist/public/globe.svg +0 -1
- package/.next/standalone/packages/ui/dist/public/icon.svg +0 -7
- package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +0 -17
- package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +0 -17
- package/.next/standalone/packages/ui/dist/public/logo.svg +0 -17
- package/.next/standalone/packages/ui/dist/public/next.svg +0 -1
- package/.next/standalone/packages/ui/dist/public/vercel.svg +0 -1
- package/.next/standalone/packages/ui/dist/public/window.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -75
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
- package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
- package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
- package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
- package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
- package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
- package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -302
- package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
- package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
- package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
- package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
- package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
- package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
- package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
- package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
- package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
- package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
- package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
- package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
- package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
- package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -285
- package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
- package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
- package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
- package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
- package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
- package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
- package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
- package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -824
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -496
- package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
- package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
- package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
- package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -607
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -104
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -124
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -129
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -244
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -148
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -54
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
- package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +0 -3
- package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +0 -5
- package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +0 -1
- package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +0 -4
- package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +0 -2
- package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +0 -19
- package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +0 -3
- package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_buildManifest.js +0 -11
- package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_clientMiddlewareManifest.json +0 -1
- package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_ssgManifest.js +0 -1
- package/.next/static/chunks/1eb8283995f370c6.js +0 -1
- package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
- package/.next/static/chunks/2c85b8059e42248a.js +0 -1
- package/.next/static/chunks/336e8e8fc6b0fba8.js +0 -1
- package/.next/static/chunks/37a1236ed50645a6.js +0 -1
- package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
- package/.next/static/chunks/9d84ba08a41145ec.js +0 -5
- package/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
- package/.next/static/chunks/c4b1faff3361a749.js +0 -1
- package/.next/static/chunks/d7420d2a867e57b5.js +0 -1
- package/.next/static/chunks/dae403679aae65f4.js +0 -1
- package/.next/static/chunks/efded9da04c960d8.js +0 -1
- package/.next/static/chunks/f382932f1a5d6359.js +0 -10
- package/.next/static/chunks/f43b6e43b4da1a32.css +0 -1
- package/.next/static/chunks/f6dd06e6d22d2d12.js +0 -3
- /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB โ T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB โ T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB โ T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
- /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT โ static/T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
- /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT โ static/T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT โ static/T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
|
@@ -1,607 +0,0 @@
|
|
|
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
|
|
@@ -1,104 +0,0 @@
|
|
|
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 -->
|