@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,241 +0,0 @@
|
|
|
1
|
-
# Implementation Plan
|
|
2
|
-
|
|
3
|
-
> Part of [046-stats-dashboard-refactor](./README.md)
|
|
4
|
-
|
|
5
|
-
## Phase 1: Enhance Stats Command (Week 1)
|
|
6
|
-
|
|
7
|
-
### Step 1.1: Enhance stats command
|
|
8
|
-
- [ ] Merge all `analytics.ts` logic into `stats.ts`
|
|
9
|
-
- [ ] Add default simplified output
|
|
10
|
-
- [ ] Add `--full` flag (shows everything from old analytics)
|
|
11
|
-
- [ ] Add `--velocity`, `--timeline` flags (focus modes)
|
|
12
|
-
- [ ] Keep all existing analytics functionality
|
|
13
|
-
|
|
14
|
-
### Step 1.2: Add smart insights
|
|
15
|
-
- [ ] Create `utils/insights.ts` with insight generation
|
|
16
|
-
- [ ] Integrate insights into default stats output
|
|
17
|
-
- [ ] Add "Needs Attention" section
|
|
18
|
-
- [ ] Test with various project states
|
|
19
|
-
|
|
20
|
-
### Step 1.3: Remove analytics command
|
|
21
|
-
- [ ] Delete `src/commands/analytics.ts` file
|
|
22
|
-
- [ ] Remove from `src/commands/index.ts` exports
|
|
23
|
-
- [ ] Remove from CLI registration in `cli.ts`
|
|
24
|
-
- [ ] Update CHANGELOG with breaking change note
|
|
25
|
-
|
|
26
|
-
### Step 1.4: Update documentation
|
|
27
|
-
- [ ] Update README (remove analytics, show stats)
|
|
28
|
-
- [ ] Update AGENTS.md (use stats, not analytics)
|
|
29
|
-
- [ ] Update help text
|
|
30
|
-
- [ ] Add migration note to CHANGELOG
|
|
31
|
-
- [ ] Update help text
|
|
32
|
-
- [ ] Mark `analytics` as deprecated in help
|
|
33
|
-
|
|
34
|
-
## Phase 2: Enhance Board (Week 1-2)
|
|
35
|
-
|
|
36
|
-
### Step 2.1: Add health calculations
|
|
37
|
-
- [ ] Create `utils/health.ts` with health score logic
|
|
38
|
-
- [ ] Implement simple completion calculation
|
|
39
|
-
- [ ] Add critical issue detection
|
|
40
|
-
- [ ] Add warning detection (long-running WIP)
|
|
41
|
-
|
|
42
|
-
### Step 2.2: Update board command
|
|
43
|
-
- [ ] Add health summary box at top
|
|
44
|
-
- [ ] Include velocity snapshot
|
|
45
|
-
- [ ] Add `--simple` flag (original view)
|
|
46
|
-
- [ ] Add `--health-only` flag (just summary)
|
|
47
|
-
- [ ] Ensure health box doesn't break existing layout
|
|
48
|
-
|
|
49
|
-
### Step 2.3: Test board enhancements
|
|
50
|
-
- [ ] Test with various project sizes
|
|
51
|
-
- [ ] Verify health box renders correctly
|
|
52
|
-
- [ ] Test with empty projects
|
|
53
|
-
- [ ] Test with all-complete projects
|
|
54
|
-
|
|
55
|
-
## Phase 3: Remove Dashboard (Week 2)
|
|
56
|
-
|
|
57
|
-
### Step 3.1: Delete dashboard command
|
|
58
|
-
- [ ] Delete `src/commands/dashboard.ts` file
|
|
59
|
-
- [ ] Remove from `src/commands/index.ts` exports
|
|
60
|
-
- [ ] Remove from CLI registration in `cli.ts`
|
|
61
|
-
- [ ] Update CHANGELOG with breaking change note
|
|
62
|
-
|
|
63
|
-
### Step 3.2: Update documentation
|
|
64
|
-
- [ ] Remove dashboard from README
|
|
65
|
-
- [ ] Update AGENTS.md (AI should use board, not dashboard)
|
|
66
|
-
- [ ] Update help text
|
|
67
|
-
- [ ] Add migration guide to CHANGELOG
|
|
68
|
-
|
|
69
|
-
### Step 3.3: Verify removal
|
|
70
|
-
- [ ] Ensure no references to dashboard remain
|
|
71
|
-
- [ ] Update any tests that used dashboard
|
|
72
|
-
- [ ] Clean up any dashboard-related utilities
|
|
73
|
-
|
|
74
|
-
### Step 3.4: Plan removal
|
|
75
|
-
- [ ] Schedule for v0.3.0
|
|
76
|
-
- [ ] Add to CHANGELOG
|
|
77
|
-
- [ ] Communicate in release notes
|
|
78
|
-
|
|
79
|
-
## Phase 4: Testing (Week 2)
|
|
80
|
-
|
|
81
|
-
### Unit tests
|
|
82
|
-
- [ ] Test health score calculation (various priority mixes)
|
|
83
|
-
- [ ] Test insight generation (all severity levels)
|
|
84
|
-
- [ ] Test stats output modes (default, --full, --velocity)
|
|
85
|
-
- [ ] Test board with/without health summary
|
|
86
|
-
|
|
87
|
-
### Integration tests
|
|
88
|
-
- [ ] Test command deprecation warnings
|
|
89
|
-
- [ ] Test backward compatibility (analytics still works)
|
|
90
|
-
- [ ] Test filter options work with new commands
|
|
91
|
-
- [ ] Test JSON output formats
|
|
92
|
-
|
|
93
|
-
### Visual regression
|
|
94
|
-
- [ ] Compare new stats output (readable, not overwhelming)
|
|
95
|
-
- [ ] Verify board health box layout
|
|
96
|
-
- [ ] Test with various terminal widths
|
|
97
|
-
- [ ] Test Unicode rendering
|
|
98
|
-
|
|
99
|
-
### Documentation
|
|
100
|
-
- [ ] Update README with new command examples
|
|
101
|
-
- [ ] Add stats/board screenshots
|
|
102
|
-
- [ ] Document all flags (--full, --simple, etc.)
|
|
103
|
-
- [ ] Update AGENTS.md for AI usage
|
|
104
|
-
|
|
105
|
-
### Migration guide
|
|
106
|
-
- [ ] Add BREAKING CHANGES section to CHANGELOG
|
|
107
|
-
- [ ] Document analytics โ stats migration
|
|
108
|
-
- [ ] Document dashboard โ board migration
|
|
109
|
-
- [ ] Provide command mapping table
|
|
110
|
-
|
|
111
|
-
### Release
|
|
112
|
-
- [ ] Update CHANGELOG with breaking changes
|
|
113
|
-
- [ ] Tag as v0.2.0
|
|
114
|
-
- [ ] Announce breaking changes clearly
|
|
115
|
-
- [ ] Note: Pre-1.0, breaking changes acceptable
|
|
116
|
-
|
|
117
|
-
## Implementation Details
|
|
118
|
-
|
|
119
|
-
### Health Score Calculation
|
|
120
|
-
|
|
121
|
-
Location: `src/utils/health.ts`
|
|
122
|
-
|
|
123
|
-
```typescript
|
|
124
|
-
export interface HealthMetrics {
|
|
125
|
-
score: number; // 0-100
|
|
126
|
-
totalSpecs: number;
|
|
127
|
-
activeSpecs: number;
|
|
128
|
-
completeSpecs: number;
|
|
129
|
-
criticalIssues: string[];
|
|
130
|
-
warnings: string[];
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
export function calculateHealth(specs: SpecInfo[]): HealthMetrics {
|
|
134
|
-
// Simple: completion_rate = complete / total * 100
|
|
135
|
-
|
|
136
|
-
let completeCount = 0;
|
|
137
|
-
let completeWeight = 0;
|
|
138
|
-
const criticalIssues: string[] = [];
|
|
139
|
-
const warnings: string[] = [];
|
|
140
|
-
|
|
141
|
-
for (const spec of specs) {
|
|
142
|
-
const weight = priorityWeight(spec.frontmatter.priority);
|
|
143
|
-
totalWeight += weight;
|
|
144
|
-
|
|
145
|
-
if (spec.frontmatter.status === 'complete') {
|
|
146
|
-
completeWeight += weight;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// Detect critical issues
|
|
150
|
-
if (isCriticalOverdue(spec)) {
|
|
151
|
-
criticalIssues.push(spec.path);
|
|
152
|
-
}
|
|
153
|
-
if (isLongRunning(spec)) {
|
|
154
|
-
warnings.push(spec.path);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
return {
|
|
159
|
-
score: Math.round((completeWeight / totalWeight) * 100),
|
|
160
|
-
totalSpecs: specs.length,
|
|
161
|
-
activeSpecs: specs.filter(s => ['planned', 'in-progress'].includes(s.frontmatter.status)).length,
|
|
162
|
-
completeSpecs: specs.filter(s => s.frontmatter.status === 'complete').length,
|
|
163
|
-
criticalIssues,
|
|
164
|
-
warnings,
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### Smart Insights Algorithm
|
|
170
|
-
|
|
171
|
-
Location: `src/utils/insights.ts`
|
|
172
|
-
|
|
173
|
-
```typescript
|
|
174
|
-
export interface Insight {
|
|
175
|
-
severity: 'critical' | 'warning' | 'info';
|
|
176
|
-
message: string;
|
|
177
|
-
specs: string[];
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
export function generateInsights(specs: SpecInfo[]): Insight[] {
|
|
181
|
-
const insights: Insight[] = [];
|
|
182
|
-
|
|
183
|
-
// 1. Critical overdue
|
|
184
|
-
const criticalOverdue = specs.filter(s =>
|
|
185
|
-
s.frontmatter.priority === 'critical' &&
|
|
186
|
-
s.frontmatter.due && dayjs(s.frontmatter.due).isBefore(dayjs()) &&
|
|
187
|
-
s.frontmatter.status !== 'complete'
|
|
188
|
-
);
|
|
189
|
-
|
|
190
|
-
if (criticalOverdue.length > 0) {
|
|
191
|
-
insights.push({
|
|
192
|
-
severity: 'critical',
|
|
193
|
-
message: `${criticalOverdue.length} critical specs overdue`,
|
|
194
|
-
specs: criticalOverdue.map(s => s.path),
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// 2. Long-running WIP
|
|
199
|
-
const longRunning = specs.filter(s =>
|
|
200
|
-
s.frontmatter.status === 'in-progress' &&
|
|
201
|
-
s.frontmatter.updated &&
|
|
202
|
-
dayjs().diff(dayjs(s.frontmatter.updated), 'day') > 7
|
|
203
|
-
);
|
|
204
|
-
|
|
205
|
-
if (longRunning.length > 0) {
|
|
206
|
-
insights.push({
|
|
207
|
-
severity: 'warning',
|
|
208
|
-
message: `${longRunning.length} specs in-progress > 7 days`,
|
|
209
|
-
specs: longRunning.map(s => s.path),
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// 3. Critical not started
|
|
214
|
-
// ... more insight rules
|
|
215
|
-
|
|
216
|
-
return insights.slice(0, 5); // Top 5 only
|
|
217
|
-
}
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### File Structure Changes
|
|
221
|
-
|
|
222
|
-
**New structure:**
|
|
223
|
-
```
|
|
224
|
-
src/commands/
|
|
225
|
-
โโโ stats.ts # ENHANCED: Unified stats + velocity + insights
|
|
226
|
-
โโโ board.ts # ENHANCED: Kanban + health summary
|
|
227
|
-
โโโ ... # analytics.ts and dashboard.ts DELETED
|
|
228
|
-
|
|
229
|
-
src/utils/
|
|
230
|
-
โโโ health.ts # NEW: Health score calculation
|
|
231
|
-
โโโ velocity.ts # KEEP: Velocity metrics (used by stats)
|
|
232
|
-
โโโ insights.ts # NEW: Smart insights algorithm
|
|
233
|
-
โโโ spec-stats.ts # KEEP: Basic counting/grouping
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
## Timeline
|
|
237
|
-
|
|
238
|
-
- **Week 1**: Phase 1 (Stats enhancement) + Phase 2 (Board enhancement)
|
|
239
|
-
- **Week 2**: Phase 3 (Dashboard removal) + Phase 4 (Testing + Release)
|
|
240
|
-
|
|
241
|
-
Total: 2 weeks to v0.2.0 release
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
status: archived
|
|
3
|
-
created: '2025-11-04'
|
|
4
|
-
tags:
|
|
5
|
-
- ux
|
|
6
|
-
- refactor
|
|
7
|
-
- v0.2.0
|
|
8
|
-
priority: high
|
|
9
|
-
created_at: '2025-11-04T00:00:00Z'
|
|
10
|
-
updated_at: '2025-11-11T04:26:08.942Z'
|
|
11
|
-
transitions:
|
|
12
|
-
- status: in-progress
|
|
13
|
-
at: '2025-11-04T13:09:35.107Z'
|
|
14
|
-
- status: complete
|
|
15
|
-
at: '2025-11-04T13:10:54.267Z'
|
|
16
|
-
- status: archived
|
|
17
|
-
at: '2025-11-11T04:26:08.942Z'
|
|
18
|
-
completed_at: '2025-11-04T13:10:54.267Z'
|
|
19
|
-
completed: '2025-11-04'
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
# Stats & Dashboard Reorganization
|
|
23
|
-
|
|
24
|
-
> **Status**: ๐ฆ Archived ยท **Priority**: High ยท **Created**: 2025-11-04 ยท **Tags**: ux, refactor, v0.2.0
|
|
25
|
-
|
|
26
|
-
**Split into sub-specs for Context Economy**
|
|
27
|
-
|
|
28
|
-
## Overview
|
|
29
|
-
|
|
30
|
-
Simplify and consolidate analytics/dashboard commands to create focused, PM-friendly overview tools.
|
|
31
|
-
|
|
32
|
-
### The Problem
|
|
33
|
-
|
|
34
|
-
Current command structure doesn't align with user needs:
|
|
35
|
-
1. "Analytics" is too verbose - "Stats" is more concise
|
|
36
|
-
2. Stats shows too much by default - Users need quick glance
|
|
37
|
-
3. Smart insights are siloed - Should be unified
|
|
38
|
-
4. Board lacks context - Should show health metrics
|
|
39
|
-
5. Dashboard is redundant - Overlaps with stats + board
|
|
40
|
-
|
|
41
|
-
### Solution
|
|
42
|
-
|
|
43
|
-
**Command Changes:**
|
|
44
|
-
```bash
|
|
45
|
-
# Before
|
|
46
|
-
lean-spec analytics # Too verbose
|
|
47
|
-
lean-spec dashboard # Separate command
|
|
48
|
-
lean-spec board # Kanban only
|
|
49
|
-
|
|
50
|
-
# After (v0.2.0)
|
|
51
|
-
lean-spec stats # Essential metrics (default)
|
|
52
|
-
lean-spec stats --full # Full analytics
|
|
53
|
-
lean-spec board # Kanban + health summary
|
|
54
|
-
lean-spec board --simple # Kanban only
|
|
55
|
-
|
|
56
|
-
# REMOVED:
|
|
57
|
-
lean-spec analytics # โ use `lean-spec stats`
|
|
58
|
-
lean-spec dashboard # โ use `lean-spec board`
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Key Changes
|
|
62
|
-
|
|
63
|
-
### 1. Rename analytics โ stats
|
|
64
|
-
- Shorter, more intuitive name
|
|
65
|
-
- Matches common CLI patterns
|
|
66
|
-
- Less intimidating for PMs
|
|
67
|
-
|
|
68
|
-
### 2. Simplify default stats output
|
|
69
|
-
- Focus on actionable insights
|
|
70
|
-
- Health score at a glance
|
|
71
|
-
- "Needs Attention" highlights issues
|
|
72
|
-
- Prompt for `--full` if users want more
|
|
73
|
-
|
|
74
|
-
### 3. Enhance board with health summary
|
|
75
|
-
- Add health box at top of board
|
|
76
|
-
- Show totals, completion %, alerts
|
|
77
|
-
- Include velocity snapshot
|
|
78
|
-
- Keep kanban columns below
|
|
79
|
-
|
|
80
|
-
### 4. Remove dashboard command
|
|
81
|
-
- Functionality merged into enhanced board
|
|
82
|
-
- Reduces command sprawl
|
|
83
|
-
- Simpler mental model
|
|
84
|
-
|
|
85
|
-
## Sub-Specs
|
|
86
|
-
|
|
87
|
-
Detailed information split for Context Economy:
|
|
88
|
-
|
|
89
|
-
- **[DESIGN.md](./DESIGN.md)** - Full command redesign, architecture, health algorithms
|
|
90
|
-
- **[IMPLEMENTATION.md](./IMPLEMENTATION.md)** - Step-by-step implementation details and execution plan
|
|
91
|
-
- **[TESTING.md](./TESTING.md)** - Test strategy and validation criteria
|
|
92
|
-
|
|
93
|
-
## Status
|
|
94
|
-
|
|
95
|
-
โ
**COMPLETE** - All changes shipped in v0.2.0
|
|
96
|
-
|
|
97
|
-
### Breaking Changes
|
|
98
|
-
|
|
99
|
-
**v0.2.0 removes**:
|
|
100
|
-
- `lean-spec analytics` โ use `lean-spec stats`
|
|
101
|
-
- `lean-spec dashboard` โ use `lean-spec board`
|
|
102
|
-
|
|
103
|
-
Migration path documented in CHANGELOG.
|
|
104
|
-
|
|
105
|
-
### What Shipped
|
|
106
|
-
|
|
107
|
-
**Phase 1: Rename analytics โ stats** โ
|
|
108
|
-
- Merged analytics.ts into stats.ts
|
|
109
|
-
- Removed analytics command
|
|
110
|
-
- Updated all documentation
|
|
111
|
-
|
|
112
|
-
**Phase 2: Simplify stats output** โ
|
|
113
|
-
- Default shows essential metrics only
|
|
114
|
-
- `--full` flag for detailed view
|
|
115
|
-
- Smart insights integrated
|
|
116
|
-
|
|
117
|
-
**Phase 3: Enhance board** โ
|
|
118
|
-
- Health summary box at top
|
|
119
|
-
- Velocity snapshot included
|
|
120
|
-
- `--simple` flag for original view
|
|
121
|
-
|
|
122
|
-
**Phase 4: Remove dashboard** โ
|
|
123
|
-
- Command deleted
|
|
124
|
-
- Functionality available via board
|
|
125
|
-
|
|
126
|
-
## Impact
|
|
127
|
-
|
|
128
|
-
**Before:**
|
|
129
|
-
- 4 overlapping commands (analytics, dashboard, stats, board)
|
|
130
|
-
- Confusion about which to use
|
|
131
|
-
- Too much detail by default
|
|
132
|
-
|
|
133
|
-
**After:**
|
|
134
|
-
- 2 focused commands (stats, board)
|
|
135
|
-
- Clear use cases
|
|
136
|
-
- PM-friendly defaults
|
|
137
|
-
- Power users get `--full` flags
|
|
138
|
-
|
|
139
|
-
This reorganization improved command clarity and reduced cognitive overhead for v0.2.0 launch.
|
|
@@ -1,328 +0,0 @@
|
|
|
1
|
-
# Testing Strategy
|
|
2
|
-
|
|
3
|
-
> Part of [046-stats-dashboard-refactor](./README.md)
|
|
4
|
-
|
|
5
|
-
## Stats Command Tests
|
|
6
|
-
|
|
7
|
-
### Default output (simplified)
|
|
8
|
-
- [ ] Shows only essential metrics (not overwhelming)
|
|
9
|
-
- [ ] "Needs Attention" section highlights issues
|
|
10
|
-
- [ ] Velocity summary shows 3 key metrics
|
|
11
|
-
- [ ] Prompts user for `--full` if they want more
|
|
12
|
-
- [ ] Renders in < 200ms for 50 specs
|
|
13
|
-
|
|
14
|
-
### Full output
|
|
15
|
-
- [ ] `lean-spec stats --full` shows all sections
|
|
16
|
-
- [ ] Equivalent to old `lean-spec analytics` output
|
|
17
|
-
- [ ] Stats + Timeline + Velocity all present
|
|
18
|
-
- [ ] No information loss from analytics
|
|
19
|
-
|
|
20
|
-
### Focus modes
|
|
21
|
-
- [ ] `lean-spec stats --velocity` shows only velocity
|
|
22
|
-
- [ ] `lean-spec stats --timeline` shows only timeline/activity
|
|
23
|
-
- [ ] Filters work (--tag, --assignee)
|
|
24
|
-
|
|
25
|
-
### Smart insights
|
|
26
|
-
- [ ] Detects critical overdue specs
|
|
27
|
-
- [ ] Flags long-running WIP (> 7 days)
|
|
28
|
-
- [ ] Shows top 5 issues only
|
|
29
|
-
- [ ] Empty when no issues (positive message)
|
|
30
|
-
|
|
31
|
-
## Board Command Tests
|
|
32
|
-
|
|
33
|
-
### Health summary
|
|
34
|
-
- [ ] Shows at top of board output
|
|
35
|
-
- [ ] Includes totals, health score, alerts, velocity
|
|
36
|
-
- [ ] Doesn't break kanban columns layout
|
|
37
|
-
- [ ] Box renders correctly (Unicode characters)
|
|
38
|
-
|
|
39
|
-
### Health score accuracy
|
|
40
|
-
- [ ] Simple completion rate (not weighted)
|
|
41
|
-
- [ ] 0% when no specs complete
|
|
42
|
-
- [ ] 100% when all complete
|
|
43
|
-
- [ ] Reflects project health intuitively
|
|
44
|
-
|
|
45
|
-
### Options
|
|
46
|
-
- [ ] `lean-spec board` shows default view with health
|
|
47
|
-
- [ ] `lean-spec board --simple` shows kanban only
|
|
48
|
-
- [ ] `lean-spec board --health-only` shows health summary only
|
|
49
|
-
- [ ] All filter options work (--tag, --assignee, --status)
|
|
50
|
-
|
|
51
|
-
## Command Removal Tests
|
|
52
|
-
|
|
53
|
-
### Analytics command
|
|
54
|
-
- [ ] Command no longer exists
|
|
55
|
-
- [ ] `lean-spec analytics` shows "unknown command" error
|
|
56
|
-
- [ ] Error message suggests `lean-spec stats` instead
|
|
57
|
-
- [ ] Help text doesn't mention analytics
|
|
58
|
-
|
|
59
|
-
### Dashboard command
|
|
60
|
-
- [ ] Command no longer exists
|
|
61
|
-
- [ ] `lean-spec dashboard` shows "unknown command" error
|
|
62
|
-
- [ ] Error message suggests `lean-spec board` instead
|
|
63
|
-
- [ ] Help text doesn't mention dashboard
|
|
64
|
-
|
|
65
|
-
## Breaking Changes (v0.2.0)
|
|
66
|
-
|
|
67
|
-
### Expected behavior
|
|
68
|
-
- [ ] `lean-spec analytics` fails with helpful error
|
|
69
|
-
- [ ] `lean-spec dashboard` fails with helpful error
|
|
70
|
-
- [ ] `lean-spec stats` works as replacement
|
|
71
|
-
- [ ] `lean-spec board` works as replacement
|
|
72
|
-
- [ ] JSON output formats compatible where applicable
|
|
73
|
-
|
|
74
|
-
### Existing workflows
|
|
75
|
-
- [ ] All `lean-spec analytics` scripts still work
|
|
76
|
-
- [ ] JSON output format unchanged
|
|
77
|
-
- [ ] Filter options unchanged
|
|
78
|
-
- [ ] No breaking changes in v0.2.0
|
|
79
|
-
|
|
80
|
-
## Performance Tests
|
|
81
|
-
|
|
82
|
-
- [ ] `lean-spec stats` < 200ms for 50 specs
|
|
83
|
-
- [ ] `lean-spec stats --full` < 500ms for 100 specs
|
|
84
|
-
- [ ] `lean-spec board` < 300ms for 50 specs
|
|
85
|
-
- [ ] Health calculation < 50ms
|
|
86
|
-
- [ ] Insight generation < 50ms
|
|
87
|
-
|
|
88
|
-
## Edge Cases
|
|
89
|
-
|
|
90
|
-
- [ ] Empty project (helpful message)
|
|
91
|
-
- [ ] No critical issues (positive message)
|
|
92
|
-
- [ ] All specs complete (celebrate!)
|
|
93
|
-
- [ ] Very long spec names don't break layout
|
|
94
|
-
- [ ] Missing velocity data (graceful degradation)
|
|
95
|
-
|
|
96
|
-
## Test Coverage Requirements
|
|
97
|
-
|
|
98
|
-
### Unit Tests
|
|
99
|
-
|
|
100
|
-
**Health Score Calculation:**
|
|
101
|
-
```typescript
|
|
102
|
-
describe('calculateHealth', () => {
|
|
103
|
-
it('returns 0% for no complete specs', () => {
|
|
104
|
-
const specs = [
|
|
105
|
-
createSpec({ status: 'planned' }),
|
|
106
|
-
createSpec({ status: 'in-progress' }),
|
|
107
|
-
];
|
|
108
|
-
const health = calculateHealth(specs);
|
|
109
|
-
expect(health.score).toBe(0);
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
it('returns 100% for all complete specs', () => {
|
|
113
|
-
const specs = [
|
|
114
|
-
createSpec({ status: 'complete' }),
|
|
115
|
-
createSpec({ status: 'complete' }),
|
|
116
|
-
];
|
|
117
|
-
const health = calculateHealth(specs);
|
|
118
|
-
expect(health.score).toBe(100);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it('calculates partial completion correctly', () => {
|
|
122
|
-
const specs = [
|
|
123
|
-
createSpec({ status: 'complete' }),
|
|
124
|
-
createSpec({ status: 'in-progress' }),
|
|
125
|
-
createSpec({ status: 'planned' }),
|
|
126
|
-
];
|
|
127
|
-
const health = calculateHealth(specs);
|
|
128
|
-
expect(health.score).toBe(33); // 1/3 complete
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**Smart Insights:**
|
|
134
|
-
```typescript
|
|
135
|
-
describe('generateInsights', () => {
|
|
136
|
-
it('detects critical overdue specs', () => {
|
|
137
|
-
const specs = [
|
|
138
|
-
createSpec({
|
|
139
|
-
priority: 'critical',
|
|
140
|
-
due: '2025-11-01',
|
|
141
|
-
status: 'in-progress'
|
|
142
|
-
}),
|
|
143
|
-
];
|
|
144
|
-
const insights = generateInsights(specs);
|
|
145
|
-
expect(insights[0].severity).toBe('critical');
|
|
146
|
-
expect(insights[0].message).toContain('overdue');
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
it('detects long-running WIP', () => {
|
|
150
|
-
const specs = [
|
|
151
|
-
createSpec({
|
|
152
|
-
status: 'in-progress',
|
|
153
|
-
updated: '2025-10-20' // > 7 days ago
|
|
154
|
-
}),
|
|
155
|
-
];
|
|
156
|
-
const insights = generateInsights(specs);
|
|
157
|
-
expect(insights[0].severity).toBe('warning');
|
|
158
|
-
expect(insights[0].message).toContain('in-progress > 7 days');
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
it('limits to top 5 insights', () => {
|
|
162
|
-
const specs = Array(10).fill(null).map(() =>
|
|
163
|
-
createSpec({ priority: 'critical', due: '2025-11-01', status: 'planned' })
|
|
164
|
-
);
|
|
165
|
-
const insights = generateInsights(specs);
|
|
166
|
-
expect(insights.length).toBeLessThanOrEqual(5);
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Integration Tests
|
|
172
|
-
|
|
173
|
-
**Stats Command:**
|
|
174
|
-
```typescript
|
|
175
|
-
describe('stats command', () => {
|
|
176
|
-
it('shows simplified output by default', async () => {
|
|
177
|
-
const output = await runCommand('lean-spec stats');
|
|
178
|
-
expect(output).toContain('๐ Spec Stats');
|
|
179
|
-
expect(output).toContain('Needs Attention');
|
|
180
|
-
expect(output).toContain('Use `lean-spec stats --full` for detailed analytics');
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
it('shows full output with --full flag', async () => {
|
|
184
|
-
const output = await runCommand('lean-spec stats --full');
|
|
185
|
-
expect(output).toContain('Status');
|
|
186
|
-
expect(output).toContain('Priority');
|
|
187
|
-
expect(output).toContain('Timeline');
|
|
188
|
-
expect(output).toContain('Velocity');
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
it('supports filter flags', async () => {
|
|
192
|
-
const output = await runCommand('lean-spec stats --tag=bug');
|
|
193
|
-
expect(output).toContain('Filtered');
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
**Board Command:**
|
|
199
|
-
```typescript
|
|
200
|
-
describe('board command', () => {
|
|
201
|
-
it('shows health summary by default', async () => {
|
|
202
|
-
const output = await runCommand('lean-spec board');
|
|
203
|
-
expect(output).toContain('Project Health');
|
|
204
|
-
expect(output).toContain('health');
|
|
205
|
-
expect(output).toContain('Velocity');
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
it('hides health summary with --simple', async () => {
|
|
209
|
-
const output = await runCommand('lean-spec board --simple');
|
|
210
|
-
expect(output).not.toContain('Project Health');
|
|
211
|
-
expect(output).toContain('๐
Planned');
|
|
212
|
-
});
|
|
213
|
-
|
|
214
|
-
it('shows only health with --health-only', async () => {
|
|
215
|
-
const output = await runCommand('lean-spec board --health-only');
|
|
216
|
-
expect(output).toContain('Project Health');
|
|
217
|
-
expect(output).not.toContain('๐
Planned');
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## Success Criteria
|
|
223
|
-
|
|
224
|
-
### User Experience
|
|
225
|
-
- [ ] PMs can check project health in < 5 seconds (`lean-spec board`)
|
|
226
|
-
- [ ] Quick stats check takes < 10 seconds (`lean-spec stats`)
|
|
227
|
-
- [ ] Deep dive available when needed (`lean-spec stats --full`)
|
|
228
|
-
- [ ] Clear error messages for removed commands
|
|
229
|
-
|
|
230
|
-
### Technical
|
|
231
|
-
- [ ] Breaking changes clearly documented in CHANGELOG
|
|
232
|
-
- [ ] All tests pass
|
|
233
|
-
- [ ] Performance < 300ms for typical projects
|
|
234
|
-
- [ ] Clean codebase (no deprecated code)
|
|
235
|
-
|
|
236
|
-
### Adoption
|
|
237
|
-
- [ ] Beta testers prefer new commands
|
|
238
|
-
- [ ] Positive feedback on simplified output
|
|
239
|
-
- [ ] No confusion about command naming
|
|
240
|
-
- [ ] Documentation clear and helpful
|
|
241
|
-
|
|
242
|
-
## Visual Regression Tests
|
|
243
|
-
|
|
244
|
-
### Stats Output Comparison
|
|
245
|
-
|
|
246
|
-
**Before (analytics):**
|
|
247
|
-
```
|
|
248
|
-
Status:
|
|
249
|
-
Planned: 5
|
|
250
|
-
In Progress: 10
|
|
251
|
-
Complete: 20
|
|
252
|
-
|
|
253
|
-
Priority:
|
|
254
|
-
Critical: 2
|
|
255
|
-
High: 8
|
|
256
|
-
Medium: 15
|
|
257
|
-
Low: 10
|
|
258
|
-
|
|
259
|
-
Tags:
|
|
260
|
-
bug: 5
|
|
261
|
-
feature: 10
|
|
262
|
-
... (long list)
|
|
263
|
-
|
|
264
|
-
Timeline: (14-day chart)
|
|
265
|
-
|
|
266
|
-
Velocity: (full breakdown)
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
**After (stats default):**
|
|
270
|
-
```
|
|
271
|
-
๐ Spec Stats
|
|
272
|
-
|
|
273
|
-
๐ Overview
|
|
274
|
-
Total: 35 ยท Active: 15 ยท Complete: 20 ยท Health: 73% โ
|
|
275
|
-
|
|
276
|
-
โ ๏ธ Needs Attention
|
|
277
|
-
โข 2 critical overdue
|
|
278
|
-
โข 5 specs WIP > 7 days
|
|
279
|
-
|
|
280
|
-
๐ Velocity: 5.2d avg, 2.8/wk โ
|
|
281
|
-
|
|
282
|
-
๐ก Use `lean-spec stats --full` for detailed analytics
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### Board Health Box Layout
|
|
286
|
-
|
|
287
|
-
**Health Summary Box:**
|
|
288
|
-
```
|
|
289
|
-
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
290
|
-
โ Project Health โ
|
|
291
|
-
โ 42 total ยท 20 active ยท 15 complete ยท 73% health โ
|
|
292
|
-
โ โ ๏ธ 2 critical overdue ยท 5 specs WIP > 7 days โ
|
|
293
|
-
โ ๐ Velocity: 5.2d avg cycle ยท 2.8/wk throughput โ
|
|
294
|
-
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
**Verify:**
|
|
298
|
-
- [ ] Box characters render correctly
|
|
299
|
-
- [ ] Content fits within box width
|
|
300
|
-
- [ ] Emojis align properly
|
|
301
|
-
- [ ] No layout breaks on narrow terminals
|
|
302
|
-
- [ ] Graceful handling of long spec names
|
|
303
|
-
|
|
304
|
-
## Performance Benchmarks
|
|
305
|
-
|
|
306
|
-
| Command | Specs | Target | Measured |
|
|
307
|
-
|---------|-------|--------|----------|
|
|
308
|
-
| `lean-spec stats` | 50 | < 200ms | ___ms |
|
|
309
|
-
| `lean-spec stats --full` | 100 | < 500ms | ___ms |
|
|
310
|
-
| `lean-spec board` | 50 | < 300ms | ___ms |
|
|
311
|
-
| Health calc | 100 | < 50ms | ___ms |
|
|
312
|
-
| Insights gen | 100 | < 50ms | ___ms |
|
|
313
|
-
|
|
314
|
-
## Test Automation
|
|
315
|
-
|
|
316
|
-
**CI/CD Pipeline:**
|
|
317
|
-
1. Run unit tests on every commit
|
|
318
|
-
2. Run integration tests on PR
|
|
319
|
-
3. Run performance tests on main branch
|
|
320
|
-
4. Generate coverage report (target: > 80%)
|
|
321
|
-
|
|
322
|
-
**Pre-release Checklist:**
|
|
323
|
-
- [ ] All tests pass
|
|
324
|
-
- [ ] Performance benchmarks met
|
|
325
|
-
- [ ] Visual regression tests reviewed
|
|
326
|
-
- [ ] Documentation updated
|
|
327
|
-
- [ ] Migration guide ready
|
|
328
|
-
- [ ] Beta testers feedback incorporated
|