@leanspec/ui 0.2.8 → 0.2.9
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/@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64 → @img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64}/package.json +7 -13
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/README.md +2 -2
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/lib/glib-2.0/include/glibconfig.h +8 -9
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib} +0 -0
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/package.json +5 -11
- 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/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +2 -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 +12 -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.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.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.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]/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +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.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.nft.json +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.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.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]/page/build-manifest.json +2 -2
- 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.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.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/page/build-manifest.json +2 -2
- 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.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.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.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 +2 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b0969111._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
- 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/ssr/[root-of-the-server]__12b4eb41._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__3c77d95b._.js +3 -0
- 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]__daee3355._.js → [root-of-the-server]__8608a6fa._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__fd80e4dd._.js → [root-of-the-server]__a965a67b._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daedd80e._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dc176c61._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8cec504f._.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/_da18b655._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ea899b87._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f38e75b7._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fe120f8a._.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_1120b57c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_151891de._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_1c916fe3._.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_bb80de48._.js +3 -0
- 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_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/094cf9f4e3553261.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1c015eb9eaaf9f9c.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/{f6dd06e6d22d2d12.js → 1d36660b2877d213.js} +3 -3
- package/.next/standalone/packages/ui/.next/static/chunks/46275d9d67603bf5.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/4d29ca0fa6843070.js +2 -0
- package/.next/standalone/packages/ui/.next/static/chunks/59854b15bf046467.js +1 -0
- package/.next/{static/chunks/dae403679aae65f4.js → standalone/packages/ui/.next/static/chunks/5fd8101e32b076b1.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/6d938a49daa10208.js +2 -0
- package/.next/standalone/packages/ui/.next/static/chunks/979625373d5474b6.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/a33f10af6abef4df.js +10 -0
- package/.next/{static/chunks/794f3931f1ca12d2.js → standalone/packages/ui/.next/static/chunks/a3d7e1be47de010b.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/b53250480fde6816.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/b7f19087afe1d2c9.css +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/ddd87cd0d26bc2f5.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/eeec245955b3b600.js +5 -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/dist/standalone/packages/web/components.json +20 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +59 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +427 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +436 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +20 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +10 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +7 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +9 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +8 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +1 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +23 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +19 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +63 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +51 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +171 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +36 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +46 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +19 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +162 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +43 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +364 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +43 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +531 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +277 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +70 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +87 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +27 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +5 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +43 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +425 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +283 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +46 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +52 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +175 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +96 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +95 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +210 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +53 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +180 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +119 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +369 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +372 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +42 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +70 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-metadata.tsx +136 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +127 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +186 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +561 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +53 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +143 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +130 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +11 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +37 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +50 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +36 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +110 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +57 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +76 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +153 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +122 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +24 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +159 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +31 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +15 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +55 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +30 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +32 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +76 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +42 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +114 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +123 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +156 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +216 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +105 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +120 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +94 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +249 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +55 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +152 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +171 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +17 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +58 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +34 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +14 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +7 -3
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +5 -3
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +2 -1
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +8 -3
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +73 -259
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +5 -3
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +5 -3
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +5 -3
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +33 -23
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +7 -3
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +25 -14
- package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +332 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +339 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +399 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +525 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +387 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +613 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +266 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +100 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +172 -0
- 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/context/context-client.tsx +23 -1
- package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +24 -0
- package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +625 -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 +198 -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/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/main-sidebar.tsx +10 -1
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/chunks/094cf9f4e3553261.js +1 -0
- package/.next/static/chunks/1c015eb9eaaf9f9c.js +1 -0
- package/.next/static/chunks/{f6dd06e6d22d2d12.js → 1d36660b2877d213.js} +3 -3
- package/.next/static/chunks/46275d9d67603bf5.js +1 -0
- package/.next/static/chunks/4d29ca0fa6843070.js +2 -0
- package/.next/static/chunks/59854b15bf046467.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js → static/chunks/5fd8101e32b076b1.js} +1 -1
- package/.next/static/chunks/6d938a49daa10208.js +2 -0
- package/.next/static/chunks/979625373d5474b6.js +1 -0
- package/.next/static/chunks/a33f10af6abef4df.js +10 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/794f3931f1ca12d2.js → static/chunks/a3d7e1be47de010b.js} +1 -1
- package/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
- package/.next/static/chunks/b53250480fde6816.js +1 -0
- package/.next/static/chunks/b7f19087afe1d2c9.css +1 -0
- package/.next/static/chunks/c658e22a605e0ed1.js +1 -0
- package/.next/static/chunks/c92660d8d0c4763d.js +1 -0
- package/.next/static/chunks/ddd87cd0d26bc2f5.js +1 -0
- package/.next/static/chunks/eeec245955b3b600.js +5 -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/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
- package/.next/standalone/node_modules/.pnpm/@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
- 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]__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/_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/_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_8272a49c._.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/1eb8283995f370c6.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/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/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/dist/BUILD_ID +0 -1
- 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/336e8e8fc6b0fba8.js +0 -1
- package/.next/static/chunks/37a1236ed50645a6.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/efded9da04c960d8.js +0 -1
- package/.next/static/chunks/f382932f1a5d6359.js +0 -10
- package/.next/static/chunks/f43b6e43b4da1a32.css +0 -1
- /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/lib/index.js +0 -0
- /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/versions.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB → 8PwFWS-09QjFSbDbfp15t}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB → 8PwFWS-09QjFSbDbfp15t}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB → 8PwFWS-09QjFSbDbfp15t}/_ssgManifest.js +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/favicon.ico +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/file.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/github-mark-white.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/github-mark.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/globe.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/icon.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/logo-dark-bg.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/logo-with-bg.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/logo.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/next.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/vercel.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{public → standalone/packages/web/public}/window.svg +0 -0
- /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/8PwFWS-09QjFSbDbfp15t}/_buildManifest.js +0 -0
- /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/8PwFWS-09QjFSbDbfp15t}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/8PwFWS-09QjFSbDbfp15t}/_ssgManifest.js +0 -0
package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
status:
|
|
2
|
+
status: complete
|
|
3
3
|
created: '2025-11-03'
|
|
4
4
|
tags:
|
|
5
5
|
- docs
|
|
@@ -8,17 +8,21 @@ tags:
|
|
|
8
8
|
- v0.3.0-launch
|
|
9
9
|
priority: high
|
|
10
10
|
created_at: '2025-11-03T00:00:00Z'
|
|
11
|
-
updated_at: '2025-11-
|
|
11
|
+
updated_at: '2025-11-17T08:18:56.995Z'
|
|
12
12
|
depends_on:
|
|
13
13
|
- 067-monorepo-core-extraction
|
|
14
14
|
transitions:
|
|
15
15
|
- status: in-progress
|
|
16
16
|
at: '2025-11-11T15:21:48.941Z'
|
|
17
|
+
- status: complete
|
|
18
|
+
at: '2025-11-17T08:18:56.995Z'
|
|
19
|
+
completed_at: '2025-11-17T08:18:56.995Z'
|
|
20
|
+
completed: '2025-11-17'
|
|
17
21
|
---
|
|
18
22
|
|
|
19
23
|
# LeanSpec Web: Fullstack Spec Showcase Platform
|
|
20
24
|
|
|
21
|
-
> **Status**:
|
|
25
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-03 · **Tags**: docs, dogfooding, web, v0.3.0-launch
|
|
22
26
|
|
|
23
27
|
**Project**: lean-spec
|
|
24
28
|
**Team**: Core Development
|
package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
status:
|
|
2
|
+
status: planned
|
|
3
3
|
created: '2025-11-13'
|
|
4
4
|
tags:
|
|
5
5
|
- onboarding
|
|
@@ -8,15 +8,17 @@ tags:
|
|
|
8
8
|
- mcp
|
|
9
9
|
priority: high
|
|
10
10
|
created_at: '2025-11-13T08:20:28.110Z'
|
|
11
|
-
updated_at: '2025-11-
|
|
11
|
+
updated_at: '2025-11-17T08:18:44.417Z'
|
|
12
12
|
transitions:
|
|
13
13
|
- status: in-progress
|
|
14
14
|
at: '2025-11-13T08:21:45.345Z'
|
|
15
|
+
- status: planned
|
|
16
|
+
at: '2025-11-17T08:18:44.417Z'
|
|
15
17
|
---
|
|
16
18
|
|
|
17
19
|
# ai-agent-first-use-workflow
|
|
18
20
|
|
|
19
|
-
> **Status**:
|
|
21
|
+
> **Status**: 🗓️ Planned · **Priority**: High · **Created**: 2025-11-13 · **Tags**: onboarding, ai-agents, ux, mcp
|
|
20
22
|
|
|
21
23
|
**Project**: lean-spec
|
|
22
24
|
**Team**: Core Development
|
package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md
CHANGED
|
@@ -14,7 +14,8 @@ depends_on:
|
|
|
14
14
|
related:
|
|
15
15
|
- 052-branding-assets
|
|
16
16
|
- 068-live-specs-ux-enhancements
|
|
17
|
-
|
|
17
|
+
- 094-ai-chatbot-web-integration
|
|
18
|
+
updated_at: '2025-11-17T06:32:59.774Z'
|
|
18
19
|
transitions:
|
|
19
20
|
- status: in-progress
|
|
20
21
|
at: '2025-11-14T04:08:03.555Z'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
status:
|
|
2
|
+
status: complete
|
|
3
3
|
created: '2025-11-14'
|
|
4
4
|
tags:
|
|
5
5
|
- web
|
|
@@ -9,20 +9,25 @@ tags:
|
|
|
9
9
|
- v0.3.0
|
|
10
10
|
priority: critical
|
|
11
11
|
created_at: '2025-11-14T05:33:26.170Z'
|
|
12
|
-
updated_at: '2025-11-
|
|
12
|
+
updated_at: '2025-11-17T08:18:56.781Z'
|
|
13
13
|
transitions:
|
|
14
14
|
- status: in-progress
|
|
15
15
|
at: '2025-11-14T05:35:02.854Z'
|
|
16
|
+
- status: complete
|
|
17
|
+
at: '2025-11-17T08:18:56.781Z'
|
|
16
18
|
related:
|
|
17
19
|
- 035-live-specs-showcase
|
|
18
20
|
- 081-web-app-ux-redesign
|
|
19
21
|
- 068-live-specs-ux-enhancements
|
|
20
22
|
- 065-v03-planning
|
|
23
|
+
- 094-ai-chatbot-web-integration
|
|
24
|
+
completed_at: '2025-11-17T08:18:56.781Z'
|
|
25
|
+
completed: '2025-11-17'
|
|
21
26
|
---
|
|
22
27
|
|
|
23
28
|
# Web App Realtime Spec Sync Architecture
|
|
24
29
|
|
|
25
|
-
> **Status**:
|
|
30
|
+
> **Status**: ✅ Complete · **Priority**: Critical · **Created**: 2025-11-14 · **Tags**: web, architecture, deployment, realtime, v0.3.0
|
|
26
31
|
|
|
27
32
|
**Project**: lean-spec
|
|
28
33
|
**Team**: Core Development
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
status:
|
|
2
|
+
status: complete
|
|
3
3
|
created: '2025-11-17'
|
|
4
4
|
tags:
|
|
5
5
|
- cli
|
|
@@ -12,17 +12,19 @@ related:
|
|
|
12
12
|
- 035-live-specs-showcase
|
|
13
13
|
- 081-web-app-ux-redesign
|
|
14
14
|
- 082-web-realtime-sync-architecture
|
|
15
|
-
updated_at: '2025-11-
|
|
15
|
+
updated_at: '2025-11-17T06:12:03.020Z'
|
|
16
16
|
transitions:
|
|
17
17
|
- status: in-progress
|
|
18
18
|
at: '2025-11-17T01:59:34.354Z'
|
|
19
|
+
- status: complete
|
|
20
|
+
at: '2025-11-17T06:12:03.020Z'
|
|
19
21
|
completed_at: '2025-11-17T02:00:24.131Z'
|
|
20
22
|
completed: '2025-11-17'
|
|
21
23
|
---
|
|
22
24
|
|
|
23
25
|
# CLI UI Command: `lean-spec ui`
|
|
24
26
|
|
|
25
|
-
> **Status**:
|
|
27
|
+
> **Status**: ✅ Complete · **Priority**: Medium · **Created**: 2025-11-17 · **Tags**: cli, web, dx, integration
|
|
26
28
|
|
|
27
29
|
**Project**: lean-spec
|
|
28
30
|
**Team**: Core Development
|
|
@@ -39,207 +41,29 @@ completed: '2025-11-17'
|
|
|
39
41
|
- Unit tests passing
|
|
40
42
|
- Code review feedback addressed
|
|
41
43
|
|
|
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
44
|
### Implementation Approach
|
|
133
45
|
|
|
134
|
-
**Phase 1: CLI
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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'));
|
|
46
|
+
**Phase 1: CLI command (packages/cli/src/commands/ui.ts)**
|
|
47
|
+
- `startUi` validates ports, resolves specs via explicit flag, `.lean-spec/config.json`, YAML configs, or common folder heuristics.
|
|
48
|
+
- `detectPackageManager()` centralizes pnpm/yarn/npm detection using user agents + lockfiles so both dev and production code paths invoke the right tool.
|
|
49
|
+
- `runLocalWeb()` now sets `SPECS_MODE=filesystem`, inherits the detected package manager (`pnpm run dev`, `yarn run dev`, etc.), auto-opens the browser, and tears down cleanly on `SIGINT`.
|
|
50
|
+
|
|
51
|
+
**Phase 2: Published runner (`runPublishedUI`)**
|
|
52
|
+
- Outside the monorepo we construct the proper command (`pnpm dlx --prefer-offline @leanspec/ui ...`, `yarn dlx ...`, or `npx --yes ...`) and stream stdio straight through so the packaged UI owns the console experience.
|
|
53
|
+
- Dry runs show the exact delegation command for both monorepo and external cases, enabling smoke tests without starting servers.
|
|
54
|
+
|
|
55
|
+
**@leanspec/ui package (packages/ui/)**
|
|
56
|
+
- Next.js config now emits `output: 'standalone'`, producing `/.next/standalone/packages/web/server.js` plus the necessary node_modules snapshot.
|
|
57
|
+
- `scripts/prepare-dist.mjs`
|
|
58
|
+
- Ensures a fresh web build exists (running `pnpm --filter @leanspec/web build` on demand).
|
|
59
|
+
- Copies `.next/standalone`, `.next/static`, `public/`, and `BUILD_ID` into `packages/ui/dist/`, handling the nested `packages/web` path automatically.
|
|
60
|
+
- `bin/ui.js`
|
|
61
|
+
- Resolves specs via flag/config/heuristics, validates ports, and exposes `--port`, `--specs`, `--no-open`, and `--dry-run` flags.
|
|
62
|
+
- Runs `node dist/standalone/packages/web/server.js` with `SPECS_MODE=filesystem`, opens the browser after launch, and surfaces troubleshooting hints when the build is missing.
|
|
63
|
+
|
|
64
|
+
**Release automation**
|
|
65
|
+
- `.github/workflows/publish-ui.yml` installs dependencies, runs `pnpm --filter @leanspec/ui build`, and publishes the package with provenance whenever a `ui-v*` tag is pushed or the workflow is dispatched.
|
|
221
66
|
|
|
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
67
|
**Phase 2: Standalone UI Package (packages/ui/)**
|
|
244
68
|
|
|
245
69
|
Create new package `@leanspec/ui`:
|
|
@@ -396,67 +220,65 @@ PORT=3000
|
|
|
396
220
|
- [x] Fix race conditions and event listener leaks
|
|
397
221
|
- [x] Comprehensive error handling
|
|
398
222
|
|
|
399
|
-
**Day 3: External Package Delegation** -
|
|
400
|
-
- [
|
|
401
|
-
- [
|
|
402
|
-
- [
|
|
403
|
-
- [
|
|
404
|
-
- [
|
|
223
|
+
**Day 3: External Package Delegation** - ✅ **COMPLETE**
|
|
224
|
+
- [x] Implement `runPublishedUI()` that spawns pnpm/yarn/npm runners for `@leanspec/ui`
|
|
225
|
+
- [x] Add specs directory auto-detection (config + heuristics)
|
|
226
|
+
- [x] Add error handling for missing specs / missing build artifacts
|
|
227
|
+
- [x] Add graceful shutdown (SIGINT handling)
|
|
228
|
+
- [x] Test with and without local monorepo context (dry-run)
|
|
405
229
|
|
|
406
|
-
### Phase 2: Standalone UI Package (Week 2) -
|
|
230
|
+
### Phase 2: Standalone UI Package (Week 2) - ✅ **COMPLETE**
|
|
407
231
|
|
|
408
232
|
**Day 4-5: Package Structure**
|
|
409
|
-
- [
|
|
410
|
-
- [
|
|
411
|
-
- [
|
|
412
|
-
- [
|
|
413
|
-
- [
|
|
414
|
-
- [
|
|
233
|
+
- [x] Create `packages/ui/` directory
|
|
234
|
+
- [x] Build wrapper + dist copier sourced from `packages/web`
|
|
235
|
+
- [x] Create `bin/ui.js` wrapper script
|
|
236
|
+
- [x] Update package.json with bin entry point + publish config
|
|
237
|
+
- [x] Configure build scripts (`scripts/prepare-dist.mjs` + `prepublishOnly`)
|
|
238
|
+
- [x] Add README with usage + troubleshooting instructions
|
|
415
239
|
|
|
416
240
|
**Day 6-7: Standalone Build**
|
|
417
|
-
- [
|
|
418
|
-
- [
|
|
419
|
-
- [
|
|
420
|
-
- [
|
|
421
|
-
- [
|
|
422
|
-
- [ ] Test opening browser automatically
|
|
241
|
+
- [x] Configure Next.js for standalone builds (`output: 'standalone'`)
|
|
242
|
+
- [x] Test production build works and copies nested workspace paths
|
|
243
|
+
- [x] Verify bundle completeness via `node packages/ui/bin/ui.js --dry-run`
|
|
244
|
+
- [x] Add CLI arg parsing (--specs, --port, --no-open, --dry-run)
|
|
245
|
+
- [x] Browser auto-open + graceful shutdown
|
|
423
246
|
|
|
424
247
|
**Day 8: Integration Testing**
|
|
425
|
-
- [
|
|
426
|
-
- [
|
|
427
|
-
- [
|
|
428
|
-
- [ ]
|
|
429
|
-
- [ ] Test error cases (no specs dir, port already in use)
|
|
248
|
+
- [x] Test `lean-spec ui` in monorepo (dev mode, dry-run)
|
|
249
|
+
- [x] Test external invocation (`node ... ui --specs ... --dry-run`)
|
|
250
|
+
- [x] Validate missing specs messaging + port validation
|
|
251
|
+
- [ ] Full manual verification of realtime filesystem cache (tracked for follow-up release)
|
|
430
252
|
|
|
431
253
|
### Phase 3: Documentation & Polish (Week 3)
|
|
432
254
|
|
|
433
255
|
**Day 9-10: Documentation**
|
|
434
|
-
- [
|
|
435
|
-
- [
|
|
436
|
-
- [
|
|
437
|
-
- [
|
|
438
|
-
- [
|
|
256
|
+
- [x] Update CLI help text with `ui` command + specs override example
|
|
257
|
+
- [x] Add examples to main README (Quick Start step 4)
|
|
258
|
+
- [x] Create @leanspec/ui README with usage + env docs
|
|
259
|
+
- [x] Document environment variables in the package README
|
|
260
|
+
- [x] Add troubleshooting guide for the published package
|
|
439
261
|
|
|
440
262
|
**Day 11-12: Publishing Preparation**
|
|
441
|
-
- [
|
|
442
|
-
- [
|
|
443
|
-
- [ ] Test npm publish dry-run
|
|
444
|
-
- [
|
|
445
|
-
- [ ] Test installation from npm registry
|
|
263
|
+
- [x] Version bump coordination (`@leanspec/ui@0.3.0`)
|
|
264
|
+
- [x] Update CHANGELOG.md
|
|
265
|
+
- [ ] Test npm publish dry-run (handled during release freeze)
|
|
266
|
+
- [x] Verify package.json metadata + files list
|
|
267
|
+
- [ ] Test installation from npm registry (will happen after first publish)
|
|
446
268
|
|
|
447
269
|
**Day 13: Release**
|
|
448
|
-
- [ ] Publish `@leanspec/ui` to npm
|
|
449
|
-
- [ ] Publish updated `lean-spec` CLI to npm
|
|
270
|
+
- [ ] Publish `@leanspec/ui` to npm (next release tag `ui-v0.3.0`)
|
|
271
|
+
- [ ] Publish updated `lean-spec` CLI to npm (bundled with release cadence)
|
|
450
272
|
- [ ] Create GitHub release with notes
|
|
451
|
-
- [ ] Announce feature in docs
|
|
273
|
+
- [ ] Announce feature in docs/social once npm publish is live
|
|
452
274
|
|
|
453
275
|
## Test
|
|
454
276
|
|
|
455
277
|
### Functional Testing
|
|
456
278
|
|
|
457
279
|
**CLI Command:**
|
|
458
|
-
- [x] `lean-spec ui` works in LeanSpec monorepo (
|
|
459
|
-
- [
|
|
280
|
+
- [x] `lean-spec ui` works in LeanSpec monorepo (dev mode dry-run)
|
|
281
|
+
- [x] `lean-spec ui` works in external projects (delegates via pnpm/yarn/npm dry-run)
|
|
460
282
|
- [x] `--specs` option overrides auto-detection
|
|
461
283
|
- [x] `--port` option changes port correctly
|
|
462
284
|
- [x] `--no-open` prevents browser from opening
|
|
@@ -467,19 +289,18 @@ PORT=3000
|
|
|
467
289
|
- [x] Package manager detection (pnpm/yarn/npm)
|
|
468
290
|
|
|
469
291
|
**Standalone UI Package:**
|
|
470
|
-
- [ ] `npx @leanspec/ui` launches web UI
|
|
471
|
-
- [
|
|
472
|
-
- [
|
|
473
|
-
- [
|
|
474
|
-
- [ ]
|
|
475
|
-
- [ ] Filesystem mode reads specs correctly
|
|
292
|
+
- [ ] `npx @leanspec/ui` launches web UI (will verify after first publish)
|
|
293
|
+
- [x] Dry-run confirms env vars (SPECS_MODE/SPECS_DIR) and command construction
|
|
294
|
+
- [x] Works with custom `--specs` directory via CLI flag
|
|
295
|
+
- [x] Browser auto-open + graceful shutdown logic implemented
|
|
296
|
+
- [ ] Filesystem mode async cache + live reload acceptance (tracked via spec 082 instrumentation)
|
|
476
297
|
- [ ] Cache updates work (realtime within 60s)
|
|
477
298
|
|
|
478
299
|
**Integration:**
|
|
479
|
-
- [
|
|
480
|
-
- [
|
|
300
|
+
- [x] CLI delegates to standalone package when outside the monorepo (dry-run verification)
|
|
301
|
+
- [x] Monorepo dev mode takes precedence over published package
|
|
481
302
|
- [ ] Both modes can run simultaneously (different ports)
|
|
482
|
-
- [
|
|
303
|
+
- [x] Process cleanup works (SIGINT propagated to child processes)
|
|
483
304
|
|
|
484
305
|
### Performance Testing
|
|
485
306
|
|
|
@@ -567,16 +388,9 @@ PORT=3000
|
|
|
567
388
|
|
|
568
389
|
### Open Questions
|
|
569
390
|
|
|
570
|
-
- [ ] Should
|
|
571
|
-
|
|
572
|
-
- [ ] Should we
|
|
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
|
|
391
|
+
- [ ] Should we support watching for file changes (instant reload) beyond the filesystem cache window? (Deferred to a future spec once we feel pain)
|
|
392
|
+
- [ ] Should we add `lean-spec ui export/share` flows for static hosting or temporary sharing?
|
|
393
|
+
- [ ] Should we bundle a version checker (warn if CLI/UI versions are out of sync)? (Candidate for the docs polish phase)
|
|
580
394
|
|
|
581
395
|
### Related Work
|
|
582
396
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
status:
|
|
2
|
+
status: complete
|
|
3
3
|
created: '2025-11-17'
|
|
4
4
|
tags: []
|
|
5
5
|
priority: high
|
|
6
6
|
created_at: '2025-11-17T02:09:38.041Z'
|
|
7
|
-
updated_at: '2025-11-
|
|
7
|
+
updated_at: '2025-11-17T09:14:30.117Z'
|
|
8
8
|
transitions:
|
|
9
9
|
- status: in-progress
|
|
10
10
|
at: '2025-11-17T02:10:38.350Z'
|
|
@@ -12,13 +12,15 @@ transitions:
|
|
|
12
12
|
at: '2025-11-17T02:10:43.845Z'
|
|
13
13
|
- status: planned
|
|
14
14
|
at: '2025-11-17T02:58:35.396Z'
|
|
15
|
+
- status: complete
|
|
16
|
+
at: '2025-11-17T09:14:30.117Z'
|
|
15
17
|
completed_at: '2025-11-17T02:10:43.845Z'
|
|
16
18
|
completed: '2025-11-17'
|
|
17
19
|
---
|
|
18
20
|
|
|
19
21
|
# Core Concepts: Real SDD Terminology Only
|
|
20
22
|
|
|
21
|
-
> **Status**:
|
|
23
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-17
|
|
22
24
|
|
|
23
25
|
**Project**: lean-spec
|
|
24
26
|
**Team**: Core Development
|
package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
status:
|
|
2
|
+
status: complete
|
|
3
3
|
created: '2025-11-17'
|
|
4
4
|
tags: []
|
|
5
5
|
priority: high
|
|
6
6
|
created_at: '2025-11-17T02:10:56.366Z'
|
|
7
|
-
updated_at: '2025-11-
|
|
7
|
+
updated_at: '2025-11-17T09:14:41.790Z'
|
|
8
8
|
transitions:
|
|
9
9
|
- status: in-progress
|
|
10
10
|
at: '2025-11-17T02:11:45.474Z'
|
|
@@ -12,13 +12,15 @@ transitions:
|
|
|
12
12
|
at: '2025-11-17T02:11:45.698Z'
|
|
13
13
|
- status: planned
|
|
14
14
|
at: '2025-11-17T02:58:35.617Z'
|
|
15
|
+
- status: complete
|
|
16
|
+
at: '2025-11-17T09:14:41.790Z'
|
|
15
17
|
completed_at: '2025-11-17T02:11:45.698Z'
|
|
16
18
|
completed: '2025-11-17'
|
|
17
19
|
---
|
|
18
20
|
|
|
19
21
|
# Step-by-Step SDD Tutorials for Real Practice
|
|
20
22
|
|
|
21
|
-
> **Status**:
|
|
23
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-17
|
|
22
24
|
|
|
23
25
|
**Project**: lean-spec
|
|
24
26
|
**Team**: Core Development
|
package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
status:
|
|
2
|
+
status: complete
|
|
3
3
|
created: '2025-11-17'
|
|
4
4
|
tags: []
|
|
5
5
|
priority: high
|
|
6
6
|
created_at: '2025-11-17T02:11:56.264Z'
|
|
7
|
-
updated_at: '2025-11-
|
|
7
|
+
updated_at: '2025-11-17T09:14:54.020Z'
|
|
8
8
|
transitions:
|
|
9
9
|
- status: in-progress
|
|
10
10
|
at: '2025-11-17T02:12:47.218Z'
|
|
@@ -12,13 +12,15 @@ transitions:
|
|
|
12
12
|
at: '2025-11-17T02:12:47.445Z'
|
|
13
13
|
- status: planned
|
|
14
14
|
at: '2025-11-17T02:58:35.830Z'
|
|
15
|
+
- status: complete
|
|
16
|
+
at: '2025-11-17T09:14:54.020Z'
|
|
15
17
|
completed_at: '2025-11-17T02:12:47.445Z'
|
|
16
18
|
completed: '2025-11-17'
|
|
17
19
|
---
|
|
18
20
|
|
|
19
21
|
# LeanSpec Dogfooding: Real SDD Case Studies
|
|
20
22
|
|
|
21
|
-
> **Status**:
|
|
23
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-17
|
|
22
24
|
|
|
23
25
|
**Project**: lean-spec
|
|
24
26
|
**Team**: Core Development
|