@leanspec/ui 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/README.md +2 -2
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/package.json +11 -5
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- 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 +221 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- 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 +42 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- 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-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64 → @img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64}/package.json +13 -7
- 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 +46 -0
- 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 +11 -0
- package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
- 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 +88 -0
- 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.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 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +23 -26
- 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.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -1
- 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]/dependency-graph/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route_client-reference-manifest.js +2 -0
- 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]/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route_client-reference-manifest.js +2 -0
- 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]/metadata/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route_client-reference-manifest.js +2 -0
- 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/api/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page.js +2 -1
- 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.js +2 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page.js +2 -1
- 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.js +5 -5
- 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.js +6 -5
- 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.js +5 -4
- 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.js +5 -4
- 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 -25
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -25
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +20 -24
- 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.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.js +2 -1
- 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.js +2 -1
- 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 +11 -0
- package/.next/standalone/packages/ui/.next/server/chunks/284a8_app_api_projects_[id]_specs_[spec]_dependency-graph_route_actions_f18476ed.js +3 -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]_tags_route_actions_40899744.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/730ea_ui__next-internal_server_app_api_specs_[id]_metadata_route_actions_139bb09f.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]__0afcada7._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0e63a440._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0ec6f9b0._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0edb782a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
- 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]__1f037512._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__38780e00._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a535244._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__41f43652._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5081ac6f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__526764b2._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
- 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]__71d98924._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__74af400b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9cf3bf21._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
- 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]__c7a4906b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__de15d2aa._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e16f7651._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2fcb5c6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e8d9903e._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f6936b89._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_metadata_route_actions_35af9a8c.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_tags_route_actions_64625b2c.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]__174e1ca1._.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]__a965a67b._.js → [root-of-the-server]__2d9202e8._.js} +2 -2
- 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]__338c65fe._.js +1 -1
- 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]__44b603f9._.js +1 -1
- 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]__665ae766._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
- 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]__12b4eb41._.js → [root-of-the-server]__b0d6e2ad._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c158c9a9._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c7735439._.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/[root-of-the-server]__e2c760eb._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
- 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/{_adb9d7cb._.js → _22274047._.js} +2 -2
- 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/_59616aa6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_5e1484f9._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
- 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/_be836d6a._.js +5 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.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/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_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_151891de._.js → node_modules__pnpm_4e3e790c._.js} +2 -2
- 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_1120b57c._.js → node_modules__pnpm_b4ff5c78._.js} +2 -2
- 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/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 +1 -1
- 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 +1 -1
- 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/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/0c7bbb59865774a1.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/0fe978002ba489fb.js +3 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1169d4ac8f9df687.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
- package/.next/standalone/packages/ui/.next/static/chunks/241b6b1c83610ebf.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
- package/.next/{static/chunks/6d938a49daa10208.js → standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/6d7922838a3513a4.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/781328ee279ffc41.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/840c6743a491a398.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/937cb3894a606899.js +5 -0
- package/.next/standalone/packages/ui/.next/static/chunks/9cf644b700f37825.css +1 -0
- package/.next/{static/chunks/a3d7e1be47de010b.js → standalone/packages/ui/.next/static/chunks/bbd498aa5689c057.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
- package/.next/{static/chunks/979625373d5474b6.js → standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js} +1 -1
- package/.next/{static/chunks/e3bc96a996e2a314.js → standalone/packages/ui/.next/static/chunks/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/dbce73f7087f2470.js +10 -0
- package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
- package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +1 -9
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +1 -1
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +3 -7
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +1 -2
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +3 -8
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +259 -73
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +23 -33
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +3 -7
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +14 -25
- package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
- package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
- package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
- package/.next/standalone/packages/ui/package.json +1 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +4 -67
- 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 +20 -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]/dependency-graph/route.ts +129 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/metadata/route.ts +170 -0
- 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/[spec]/status/route.ts +9 -2
- 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]/tags/route.ts +25 -0
- 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/api/specs/[id]/metadata/route.ts +184 -0
- package/.next/standalone/packages/ui/src/app/api/tags/route.ts +16 -0
- package/.next/standalone/packages/ui/src/app/context/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +43 -62
- package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +9 -8
- package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +95 -20
- package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +25 -13
- package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +8 -8
- package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +40 -67
- 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 +30 -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 +375 -107
- package/.next/standalone/packages/ui/src/app/specs/[id]/page.tsx +24 -1
- package/.next/standalone/packages/ui/src/app/specs/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +28 -18
- package/.next/standalone/packages/ui/src/app/stats/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
- 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/{dist/standalone/packages/web/src/components/spec-metadata.tsx → src/components/editable-spec-metadata.tsx} +46 -30
- package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +28 -6
- package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
- package/.next/standalone/packages/ui/src/components/priority-editor.tsx +153 -0
- package/.next/standalone/packages/ui/src/components/project-switcher.tsx +74 -10
- 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 +58 -30
- 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/components/status-editor.tsx +153 -0
- package/.next/standalone/packages/ui/src/components/tags-editor.tsx +238 -0
- package/.next/standalone/packages/ui/src/components/ui/command.tsx +1 -1
- package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
- package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +230 -40
- package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
- package/.next/standalone/packages/ui/src/lib/projects/registry.ts +1 -1
- package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +21 -5
- package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/chunks/0c7bbb59865774a1.js +1 -0
- package/.next/static/chunks/0fe978002ba489fb.js +3 -0
- package/.next/static/chunks/1169d4ac8f9df687.js +1 -0
- package/.next/static/chunks/1e0689744f87e958.js +2 -0
- package/.next/static/chunks/241b6b1c83610ebf.js +1 -0
- package/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/6d938a49daa10208.js → static/chunks/4610aea3ca2e69eb.js} +1 -1
- package/.next/static/chunks/6d7922838a3513a4.js +1 -0
- package/.next/static/chunks/781328ee279ffc41.js +1 -0
- package/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
- package/.next/static/chunks/840c6743a491a398.js +1 -0
- package/.next/static/chunks/937cb3894a606899.js +5 -0
- package/.next/static/chunks/9cf644b700f37825.css +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/a3d7e1be47de010b.js → static/chunks/bbd498aa5689c057.js} +1 -1
- package/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/979625373d5474b6.js → static/chunks/c26909a25ca9fc9b.js} +1 -1
- package/.next/{standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js → static/chunks/d26f4109b44eb240.js} +1 -1
- package/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
- package/.next/static/chunks/dbce73f7087f2470.js +10 -0
- package/.next/static/chunks/e399b4afc7936907.js +1 -0
- package/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_buildManifest.js +11 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_clientMiddlewareManifest.json +1 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_ssgManifest.js +1 -0
- package/package.json +2 -2
- 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/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +0 -3
- 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]__b0969111._.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]__3c77d95b._.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]__8608a6fa._.js +0 -3
- 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]__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]__daedd80e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dc176c61._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +0 -5
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8cec504f._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ea899b87._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fe120f8a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_1c916fe3._.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/static/chunks/094cf9f4e3553261.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/1d36660b2877d213.js +0 -3
- 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/3b6b058ebd14dbed.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/4d29ca0fa6843070.js +0 -2
- package/.next/standalone/packages/ui/.next/static/chunks/59854b15bf046467.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/5fd8101e32b076b1.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/a33f10af6abef4df.js +0 -10
- package/.next/standalone/packages/ui/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/eeec245955b3b600.js +0 -5
- package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +0 -20
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +0 -59
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +0 -427
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +0 -436
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +0 -20
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +0 -10
- package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
- package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +0 -23
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +0 -19
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +0 -63
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -51
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +0 -171
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +0 -36
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +0 -46
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +0 -19
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +0 -162
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +0 -43
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +0 -364
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +0 -43
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +0 -531
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +0 -277
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +0 -70
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +0 -87
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +0 -27
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +0 -5
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +0 -43
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +0 -425
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +0 -283
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +0 -46
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +0 -52
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +0 -175
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +0 -96
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +0 -95
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +0 -210
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +0 -53
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +0 -180
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +0 -119
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +0 -369
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +0 -372
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +0 -42
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +0 -70
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +0 -127
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +0 -186
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +0 -561
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +0 -53
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +0 -143
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +0 -130
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +0 -11
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +0 -37
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +0 -50
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +0 -36
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +0 -110
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +0 -57
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +0 -76
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +0 -153
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +0 -122
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +0 -24
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +0 -159
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +0 -31
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +0 -15
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +0 -55
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +0 -30
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +0 -32
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +0 -76
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +0 -42
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +0 -114
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +0 -123
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +0 -156
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +0 -216
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +0 -105
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +0 -120
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +0 -94
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +0 -249
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +0 -55
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +0 -152
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +0 -171
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +0 -17
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +0 -58
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +0 -34
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +0 -14
- package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +0 -332
- package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +0 -339
- package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +0 -399
- package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +0 -525
- package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +0 -387
- package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +0 -613
- package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +0 -266
- package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +0 -100
- package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +0 -172
- package/.next/static/chunks/094cf9f4e3553261.js +0 -1
- package/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
- package/.next/static/chunks/1d36660b2877d213.js +0 -3
- package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
- package/.next/static/chunks/2c85b8059e42248a.js +0 -1
- package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
- package/.next/static/chunks/4d29ca0fa6843070.js +0 -2
- package/.next/static/chunks/59854b15bf046467.js +0 -1
- package/.next/static/chunks/5fd8101e32b076b1.js +0 -1
- package/.next/static/chunks/a33f10af6abef4df.js +0 -10
- package/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
- package/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
- package/.next/static/chunks/eeec245955b3b600.js +0 -5
- /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/lib/index.js +0 -0
- /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/versions.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_ssgManifest.js +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/favicon.ico +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/file.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark-white.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/globe.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/icon.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-dark-bg.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-with-bg.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/next.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/vercel.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/window.svg +0 -0
- /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
- /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md
DELETED
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
status: planned
|
|
3
|
-
created: '2025-11-17'
|
|
4
|
-
tags:
|
|
5
|
-
- web
|
|
6
|
-
- ai
|
|
7
|
-
- ux
|
|
8
|
-
- v0.3.0
|
|
9
|
-
priority: high
|
|
10
|
-
created_at: '2025-11-17T06:31:22.346Z'
|
|
11
|
-
related:
|
|
12
|
-
- 082-web-realtime-sync-architecture
|
|
13
|
-
- 081-web-app-ux-redesign
|
|
14
|
-
updated_at: '2025-11-17T06:32:59.775Z'
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# AI Chatbot for Web UI
|
|
18
|
-
|
|
19
|
-
> **Status**: 🗓️ Planned · **Priority**: High · **Created**: 2025-11-17 · **Tags**: web, ai, ux, v0.3.0
|
|
20
|
-
|
|
21
|
-
**Project**: lean-spec
|
|
22
|
-
**Team**: Core Development
|
|
23
|
-
|
|
24
|
-
## Overview
|
|
25
|
-
|
|
26
|
-
Add an AI chatbot to `@leanspec/web` that **transforms it from read-only to fully interactive**. Users can create, update, and manage specs through natural conversation - no CLI or IDE required.
|
|
27
|
-
|
|
28
|
-
**Core Value**: The web UI becomes a complete spec management tool accessible to everyone (not just developers with terminal access). Users can "talk to their specs" for all operations: viewing, creating, editing, and managing.
|
|
29
|
-
|
|
30
|
-
**Key Unlock**: Non-technical team members (PMs, designers, stakeholders) can now actively participate in spec-driven development, not just passively view specs.
|
|
31
|
-
|
|
32
|
-
## Problem
|
|
33
|
-
|
|
34
|
-
**The core gap**: `@leanspec/web` is currently **read-only**. Users can browse and view specs, but cannot create, update, or manage them without switching to CLI or VS Code.
|
|
35
|
-
|
|
36
|
-
**Current limitations**:
|
|
37
|
-
- ❌ **No spec creation** - Must drop to terminal: `lean-spec create ...`
|
|
38
|
-
- ❌ **No status updates** - Must use CLI: `lean-spec update 082 --status complete`
|
|
39
|
-
- ❌ **No metadata editing** - Can't change priority, tags, assignee from UI
|
|
40
|
-
- ❌ **No content editing** - Can't modify spec README or sub-specs
|
|
41
|
-
- ✅ **Read-only browsing** - Can view, search, filter (but that's it)
|
|
42
|
-
|
|
43
|
-
**The bigger problem**: Write operations are **locked behind developer tools**:
|
|
44
|
-
- Non-technical users (PMs, designers) can't participate
|
|
45
|
-
- Requires context switch (browser → terminal → IDE → back to browser)
|
|
46
|
-
- Mobile users completely blocked from management tasks
|
|
47
|
-
- No path for casual contributors
|
|
48
|
-
|
|
49
|
-
**User Pain Points**:
|
|
50
|
-
- "I'm viewing spec 082 - can I mark it complete?" → No, need terminal
|
|
51
|
-
- "Let me create a spec for API rate limiting..." → Can't, need CLI
|
|
52
|
-
- "This spec's priority should be high" → Can't change it here
|
|
53
|
-
- "I want to update the description" → Must edit file in IDE
|
|
54
|
-
|
|
55
|
-
**The solution**: AI chatbot makes web UI **fully interactive** through natural conversation - no CLI, no IDE required.
|
|
56
|
-
|
|
57
|
-
## Goals
|
|
58
|
-
|
|
59
|
-
1. **Enable Write Operations**: Make web UI fully interactive (create, update, delete specs)
|
|
60
|
-
2. **Democratize Access**: Allow non-developers to manage specs (no CLI/IDE required)
|
|
61
|
-
3. **Conversational UX**: Natural language interface for all operations
|
|
62
|
-
4. **Maintain Context Economy**: Chatbot enforces LeanSpec principles (token limits, validation)
|
|
63
|
-
5. **Progressive Enhancement**: Chat is optional - traditional UI still works for viewing
|
|
64
|
-
|
|
65
|
-
## Design
|
|
66
|
-
|
|
67
|
-
### Architecture
|
|
68
|
-
|
|
69
|
-
**Tech Stack** (as requested):
|
|
70
|
-
- **AI SDK** (`ai` package from Vercel) - Universal AI abstraction layer
|
|
71
|
-
- **AI UI Elements** (`@ai-sdk/ui-elements`) - Pre-built chat components
|
|
72
|
-
- **Backend**: Next.js API routes for LLM integration
|
|
73
|
-
- **Model**: OpenAI GPT-4o (recommended), with pluggable provider support
|
|
74
|
-
|
|
75
|
-
**Component Structure**:
|
|
76
|
-
```
|
|
77
|
-
packages/web/src/
|
|
78
|
-
├── components/
|
|
79
|
-
│ ├── chat/
|
|
80
|
-
│ │ ├── chatbot-button.tsx # Floating action button
|
|
81
|
-
│ │ ├── chatbot-panel.tsx # Slide-out chat panel
|
|
82
|
-
│ │ ├── chatbot-message.tsx # Message bubbles
|
|
83
|
-
│ │ └── chatbot-context.tsx # React context for chat state
|
|
84
|
-
│ └── ui/
|
|
85
|
-
│ └── ...existing shadcn components
|
|
86
|
-
├── app/api/
|
|
87
|
-
│ └── chat/
|
|
88
|
-
│ └── route.ts # AI SDK streaming endpoint
|
|
89
|
-
└── lib/
|
|
90
|
-
├── ai/
|
|
91
|
-
│ ├── tools.ts # LeanSpec function tools
|
|
92
|
-
│ ├── prompts.ts # System prompts
|
|
93
|
-
│ └── context.ts # Context builders
|
|
94
|
-
└── db/
|
|
95
|
-
└── ...existing queries
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Chat UI/UX
|
|
99
|
-
|
|
100
|
-
**Placement**: Floating chat button (bottom-right corner, Material-style)
|
|
101
|
-
- **Icon**: MessageCircle or Bot icon from lucide-react
|
|
102
|
-
- **Badge**: Show unread count or typing indicator
|
|
103
|
-
- **Panel**: Slide-out from right (mobile: full-screen modal)
|
|
104
|
-
|
|
105
|
-
**Panel Design**:
|
|
106
|
-
- **Header**: Title ("LeanSpec Assistant"), minimize/close buttons
|
|
107
|
-
- **Messages**: Scrollable chat history with user/assistant bubbles
|
|
108
|
-
- **Input**: Text input with send button, multiline support
|
|
109
|
-
- **Actions**: Quick action chips (e.g., "Show all specs", "Create spec")
|
|
110
|
-
- **Context Indicator**: Show current page context (e.g., "Viewing: Spec 082")
|
|
111
|
-
|
|
112
|
-
### AI Capabilities
|
|
113
|
-
|
|
114
|
-
**Core Tools** (exposed via AI SDK function calling):
|
|
115
|
-
|
|
116
|
-
1. **`list_specs`** - List specs with filters (status, tags, priority)
|
|
117
|
-
2. **`search_specs`** - Search by keywords, return ranked results
|
|
118
|
-
3. **`get_spec`** - Get full spec details by ID/name
|
|
119
|
-
4. **`create_spec`** - Create new spec (guided multi-turn conversation)
|
|
120
|
-
5. **`update_spec_status`** - Update status (planned → in-progress → complete)
|
|
121
|
-
6. **`update_spec_metadata`** - Update priority, tags, assignee
|
|
122
|
-
7. **`get_dependencies`** - Show spec relationships (depends_on, related)
|
|
123
|
-
8. **`get_project_stats`** - Project health metrics, completion rates
|
|
124
|
-
9. **`get_blockers`** - Find specs blocking others
|
|
125
|
-
|
|
126
|
-
**Example Interactions**:
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
User: "What specs are in progress?"
|
|
130
|
-
AI: [calls list_specs(status="in-progress")]
|
|
131
|
-
"There are 5 specs in progress:
|
|
132
|
-
• 082-web-realtime-sync-architecture (critical)
|
|
133
|
-
• 092-docs-site-submodule-migration (high)
|
|
134
|
-
• 072-ai-agent-first-use-workflow (high)
|
|
135
|
-
• 035-live-specs-showcase (high)
|
|
136
|
-
• 093-spec-detail-ui-improvements (medium)"
|
|
137
|
-
|
|
138
|
-
User: "Show me spec 082"
|
|
139
|
-
AI: [calls get_spec(id=82)]
|
|
140
|
-
"Spec 082 is about web realtime sync architecture...
|
|
141
|
-
Status: In Progress | Priority: Critical
|
|
142
|
-
[View Full Spec] button"
|
|
143
|
-
|
|
144
|
-
User: "Create a spec for API rate limiting"
|
|
145
|
-
AI: [initiates creation flow]
|
|
146
|
-
"I'll help you create that spec. What's the main goal?"
|
|
147
|
-
User: "Prevent abuse by limiting requests per IP"
|
|
148
|
-
AI: "Got it. What priority level? (low/medium/high/critical)"
|
|
149
|
-
User: "High"
|
|
150
|
-
AI: [calls create_spec(...)]
|
|
151
|
-
"Created spec 095-api-rate-limiting with high priority!"
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Context Awareness
|
|
155
|
-
|
|
156
|
-
**Page Context Injection**:
|
|
157
|
-
- **Home Page**: Show project stats, recent specs
|
|
158
|
-
- **Spec Detail**: Include current spec in context (pre-populate queries)
|
|
159
|
-
- **Board View**: Suggest workflow queries (blockers, completed today)
|
|
160
|
-
|
|
161
|
-
**Context Provider**:
|
|
162
|
-
```tsx
|
|
163
|
-
<ChatbotProvider initialContext={{ page: 'spec-detail', specId: 82 }}>
|
|
164
|
-
{children}
|
|
165
|
-
</ChatbotProvider>
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### System Prompt
|
|
169
|
-
|
|
170
|
-
**Core Instructions**:
|
|
171
|
-
- You are the LeanSpec Assistant, helping users manage specs
|
|
172
|
-
- Be concise and actionable - users want quick answers
|
|
173
|
-
- Always use tools to fetch real data (never make up spec IDs)
|
|
174
|
-
- When showing specs, include clickable links
|
|
175
|
-
- Guide users through multi-step actions (creating specs)
|
|
176
|
-
- Explain capabilities when users are unsure
|
|
177
|
-
|
|
178
|
-
**Context Economy**:
|
|
179
|
-
- Keep responses under 3 paragraphs for simple queries
|
|
180
|
-
- Use bullet points for lists
|
|
181
|
-
- Offer "Show more" for detailed info
|
|
182
|
-
|
|
183
|
-
## Plan
|
|
184
|
-
|
|
185
|
-
### Phase 1: Core Chat UI (Week 1)
|
|
186
|
-
- [ ] Install `ai` and `@ai-sdk/ui-elements` packages
|
|
187
|
-
- [ ] Create chat button + slide-out panel components
|
|
188
|
-
- [ ] Implement chat context provider
|
|
189
|
-
- [ ] Add basic message rendering (user/assistant bubbles)
|
|
190
|
-
- [ ] Style with Tailwind/shadcn design system
|
|
191
|
-
|
|
192
|
-
### Phase 2: AI Backend (Week 1-2)
|
|
193
|
-
- [ ] Set up Next.js API route (`/api/chat`)
|
|
194
|
-
- [ ] Integrate AI SDK with OpenAI provider
|
|
195
|
-
- [ ] Implement streaming responses
|
|
196
|
-
- [ ] Add environment variable for API keys
|
|
197
|
-
- [ ] Error handling and rate limiting
|
|
198
|
-
|
|
199
|
-
### Phase 3: Tool Implementation (Week 2)
|
|
200
|
-
- [ ] Define tools schema (list_specs, search_specs, etc.)
|
|
201
|
-
- [ ] Implement tool execution handlers
|
|
202
|
-
- [ ] Connect tools to existing DB queries
|
|
203
|
-
- [ ] Add tool result formatting (markdown, links)
|
|
204
|
-
- [ ] Test all tools individually
|
|
205
|
-
|
|
206
|
-
### Phase 4: Context & UX Polish (Week 3)
|
|
207
|
-
- [ ] Page context detection and injection
|
|
208
|
-
- [ ] Quick action chips for common queries
|
|
209
|
-
- [ ] Chat history persistence (localStorage)
|
|
210
|
-
- [ ] Mobile-responsive design
|
|
211
|
-
- [ ] Loading states and typing indicators
|
|
212
|
-
|
|
213
|
-
### Phase 5: Advanced Features (Week 3-4)
|
|
214
|
-
- [ ] Multi-turn spec creation flow
|
|
215
|
-
- [ ] Dependency graph visualization (inline in chat)
|
|
216
|
-
- [ ] Export chat history (markdown/JSON)
|
|
217
|
-
- [ ] Voice input support (optional, using Web Speech API)
|
|
218
|
-
- [ ] Suggested follow-up queries
|
|
219
|
-
|
|
220
|
-
### Phase 6: Testing & Docs (Week 4)
|
|
221
|
-
- [ ] E2E tests for chat interactions
|
|
222
|
-
- [ ] Tool execution tests
|
|
223
|
-
- [ ] Document API key setup
|
|
224
|
-
- [ ] Add usage guide to README
|
|
225
|
-
- [ ] Performance optimization (lazy loading, caching)
|
|
226
|
-
|
|
227
|
-
## Infrastructure Requirements
|
|
228
|
-
|
|
229
|
-
**Environment Variables**:
|
|
230
|
-
```env
|
|
231
|
-
OPENAI_API_KEY=sk-... # OpenAI API key
|
|
232
|
-
AI_MODEL=gpt-4o # Model to use
|
|
233
|
-
AI_TEMPERATURE=0.7 # Response creativity
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
**Optional**: Support other providers (Anthropic Claude, local models via Ollama)
|
|
237
|
-
|
|
238
|
-
**Rate Limiting**:
|
|
239
|
-
- Implement per-user rate limits (5 queries/min)
|
|
240
|
-
- Show rate limit status in UI
|
|
241
|
-
- Queue requests if rate limited
|
|
242
|
-
|
|
243
|
-
**Caching**:
|
|
244
|
-
- Cache tool results for 30 seconds (reduce redundant DB queries)
|
|
245
|
-
- Invalidate cache on spec updates
|
|
246
|
-
|
|
247
|
-
## Test
|
|
248
|
-
|
|
249
|
-
### Manual Testing
|
|
250
|
-
- [ ] User can open/close chat panel
|
|
251
|
-
- [ ] Chat persists across page navigation
|
|
252
|
-
- [ ] All tools execute correctly
|
|
253
|
-
- [ ] Streaming responses work (no latency spikes)
|
|
254
|
-
- [ ] Mobile UI is usable (no layout breaks)
|
|
255
|
-
|
|
256
|
-
### Automated Testing
|
|
257
|
-
- [ ] Unit tests for tool handlers
|
|
258
|
-
- [ ] Integration tests for API route
|
|
259
|
-
- [ ] E2E tests for common queries:
|
|
260
|
-
- "List all specs"
|
|
261
|
-
- "Show spec 082"
|
|
262
|
-
- "Create a spec"
|
|
263
|
-
- "What's blocking v0.3?"
|
|
264
|
-
|
|
265
|
-
### Performance Testing
|
|
266
|
-
- [ ] Response time <2s for simple queries
|
|
267
|
-
- [ ] Streaming starts within 500ms
|
|
268
|
-
- [ ] No memory leaks in long chat sessions
|
|
269
|
-
- [ ] Chat panel loads without blocking main UI
|
|
270
|
-
|
|
271
|
-
### Success Criteria
|
|
272
|
-
- ✅ Users can complete all spec CRUD operations via chat
|
|
273
|
-
- ✅ Chat feels "instant" (streaming UX)
|
|
274
|
-
- ✅ 80%+ accuracy on natural language queries
|
|
275
|
-
- ✅ No crashes or errors in 100-message chat session
|
|
276
|
-
|
|
277
|
-
## Notes
|
|
278
|
-
|
|
279
|
-
### Why ai-sdk?
|
|
280
|
-
- **Unified API**: Works with OpenAI, Anthropic, Mistral, etc.
|
|
281
|
-
- **Type-Safe**: Full TypeScript support
|
|
282
|
-
- **Streaming**: Built-in streaming responses
|
|
283
|
-
- **Function Calling**: Easy tool integration
|
|
284
|
-
- **React Hooks**: `useChat()` hook simplifies state management
|
|
285
|
-
|
|
286
|
-
### Why @ai-sdk/ui-elements?
|
|
287
|
-
- **Pre-built Components**: Chat UI out-of-the-box
|
|
288
|
-
- **Customizable**: Tailwind-compatible styling
|
|
289
|
-
- **Accessible**: WCAG-compliant components
|
|
290
|
-
- **Maintained**: Official Vercel package
|
|
291
|
-
|
|
292
|
-
### Alternative Considered: Custom MCP Integration
|
|
293
|
-
**Pros**: Reuse existing MCP server, full CLI parity
|
|
294
|
-
**Cons**: Complex setup, requires separate server, no web-native streaming
|
|
295
|
-
**Decision**: Use ai-sdk for web UI, keep MCP for CLI/desktop agents
|
|
296
|
-
|
|
297
|
-
### Why This Matters: Breaking the Developer-Only Lock-In
|
|
298
|
-
|
|
299
|
-
**Current state** (pre-chatbot):
|
|
300
|
-
- ✅ Developers with IDE/CLI can do everything
|
|
301
|
-
- ❌ Everyone else is **locked out** of write operations
|
|
302
|
-
- ❌ Web UI is a "view-only spectator mode"
|
|
303
|
-
|
|
304
|
-
**After chatbot**:
|
|
305
|
-
- ✅ **Anyone can manage specs** from web browser
|
|
306
|
-
- ✅ Mobile users can create/update specs
|
|
307
|
-
- ✅ PMs can update status during standup (no CLI needed)
|
|
308
|
-
- ✅ Designers can create specs for UI work
|
|
309
|
-
- ✅ Stakeholders can participate in SDD workflow
|
|
310
|
-
|
|
311
|
-
**This transforms LeanSpec from "developer tool" to "team collaboration platform".**
|
|
312
|
-
|
|
313
|
-
### Security Considerations
|
|
314
|
-
- **API Key Storage**: Server-side only (never expose to client)
|
|
315
|
-
- **Input Sanitization**: Validate all user inputs before tool execution
|
|
316
|
-
- **Rate Limiting**: Prevent abuse via IP-based rate limits
|
|
317
|
-
- **Audit Logs**: Log all tool executions for debugging
|
|
318
|
-
|
|
319
|
-
### Future Enhancements (Post-MVP)
|
|
320
|
-
- **Multi-modal**: Upload images (spec diagrams) and analyze
|
|
321
|
-
- **Voice Mode**: Conversational voice interface
|
|
322
|
-
- **Team Chat**: Multi-user chat rooms for spec collaboration
|
|
323
|
-
- **AI Suggestions**: Proactive suggestions ("Spec 082 looks ready to complete")
|
|
324
|
-
- **Integration**: Connect to GitHub, Jira, Linear via AI SDK tools
|
|
325
|
-
|
|
326
|
-
### Open Questions
|
|
327
|
-
- **Model Choice**: Start with GPT-4o or try Claude 3.5 Sonnet?
|
|
328
|
-
- Recommendation: GPT-4o (better function calling, faster)
|
|
329
|
-
- **Persistence**: Store chat history in DB or localStorage?
|
|
330
|
-
- Recommendation: localStorage (simpler, privacy-friendly)
|
|
331
|
-
- **Auth**: Require login for chatbot access?
|
|
332
|
-
- Recommendation: No (public demo), add later for private deployments
|
package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md
DELETED
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
status: complete
|
|
3
|
-
created: '2025-11-17'
|
|
4
|
-
tags:
|
|
5
|
-
- migration
|
|
6
|
-
- docs
|
|
7
|
-
- verification
|
|
8
|
-
priority: high
|
|
9
|
-
created_at: '2025-11-17T06:39:54.583Z'
|
|
10
|
-
updated_at: '2025-11-17T06:41:25.954Z'
|
|
11
|
-
completed: '2025-11-17'
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# PR Migration Verification: docs-site → lean-spec-docs
|
|
15
|
-
|
|
16
|
-
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-17 · **Tags**: migration, docs, verification
|
|
17
|
-
|
|
18
|
-
**Project**: lean-spec
|
|
19
|
-
**Team**: Core Development
|
|
20
|
-
|
|
21
|
-
## Overview
|
|
22
|
-
|
|
23
|
-
Successfully migrated PRs #66-69 from the old `lean-spec` repository to the new `lean-spec-docs` repository using cherry-pick approach (Option 1). These PRs contained substantial documentation improvements that were created before the docs-site migration to a separate repository.
|
|
24
|
-
|
|
25
|
-
**Problem**: After migrating docs-site to lean-spec-docs repo, discovered 4 unmerged PRs (#66-69) with ~4,500+ lines of documentation improvements that needed to be migrated.
|
|
26
|
-
|
|
27
|
-
**Solution**: Used git cherry-pick approach to extract and apply docs-site changes from each PR to the new repository, preserving all work without losing any content.
|
|
28
|
-
|
|
29
|
-
## Migration Summary
|
|
30
|
-
|
|
31
|
-
### Total Changes
|
|
32
|
-
- **21 files changed**: 4,032 insertions(+), 7 deletions(-)
|
|
33
|
-
- **4 PRs migrated**: #66, #67, #68, #69
|
|
34
|
-
- **Branch created**: `migrate-prs-66-69` in lean-spec-docs repo
|
|
35
|
-
- **Branch pushed**: Successfully pushed to origin
|
|
36
|
-
|
|
37
|
-
### PR #66: Terminology Glossary (295 lines)
|
|
38
|
-
**Spec**: 088-core-concepts-terminology-only
|
|
39
|
-
**Status**: Complete
|
|
40
|
-
**Commit**: ae12682
|
|
41
|
-
|
|
42
|
-
**Changes**:
|
|
43
|
-
- Created `docs/guide/terminology.mdx` with 16 essential SDD terms
|
|
44
|
-
- Updated sidebar positions for all Core Concepts files (1→2, 2→3, 3→4, 4→5, 5→6, 4→7)
|
|
45
|
-
- Added terminology as first item in Core Concepts sidebar
|
|
46
|
-
- Added terminology note to `first-principles.mdx`
|
|
47
|
-
- Added Quick Start tip to `understanding.mdx`
|
|
48
|
-
- Added terminology links to `getting-started.mdx` and `understanding.mdx`
|
|
49
|
-
|
|
50
|
-
**Files modified**: 9 files
|
|
51
|
-
- New: `docs/guide/terminology.mdx`
|
|
52
|
-
- Updated: ai-agent-memory.mdx, context-engineering.mdx, first-principles.mdx, getting-started.mdx, limits-and-tradeoffs.mdx, philosophy.mdx, understanding.mdx, sidebars.ts
|
|
53
|
-
|
|
54
|
-
### PR #67: Step-by-Step SDD Tutorials (1,676 lines)
|
|
55
|
-
**Spec**: 089-sdd-practical-tutorials
|
|
56
|
-
**Status**: Complete
|
|
57
|
-
**Commit**: 808a141
|
|
58
|
-
|
|
59
|
-
**Changes**:
|
|
60
|
-
- Created 4 progressive tutorials:
|
|
61
|
-
- `docs/tutorials/your-first-spec.mdx` (326 lines)
|
|
62
|
-
- `docs/tutorials/sdd-workflow-feature-development.mdx` (369 lines)
|
|
63
|
-
- `docs/tutorials/managing-multiple-specs.mdx` (454 lines)
|
|
64
|
-
- `docs/tutorials/working-with-teams.mdx` (527 lines)
|
|
65
|
-
- Added Tutorials section to sidebar (after Introduction, before Core Concepts)
|
|
66
|
-
- Added Quick Start button on homepage linking to first tutorial
|
|
67
|
-
- Changed existing Get Started button to secondary style
|
|
68
|
-
|
|
69
|
-
**Files modified**: 6 files
|
|
70
|
-
- New: 4 tutorial files in `docs/tutorials/`
|
|
71
|
-
- Updated: sidebars.ts, src/pages/index.tsx
|
|
72
|
-
|
|
73
|
-
### PR #68: Dogfooding Case Studies (~2,500 lines)
|
|
74
|
-
**Spec**: 090-leanspec-sdd-case-studies
|
|
75
|
-
**Status**: Complete
|
|
76
|
-
**Commit**: d8c6955
|
|
77
|
-
|
|
78
|
-
**Changes**:
|
|
79
|
-
- Created 5 case study pages:
|
|
80
|
-
- `docs/case-studies/index.mdx` (113 lines) - Overview
|
|
81
|
-
- `docs/case-studies/simple-feature-token-validation.mdx` (254 lines) - Spec 071
|
|
82
|
-
- `docs/case-studies/complex-feature-web-sync.mdx` (375 lines) - Spec 082
|
|
83
|
-
- `docs/case-studies/refactoring-monorepo-core.mdx` (580 lines) - Spec 067
|
|
84
|
-
- `docs/case-studies/cross-team-official-launch.mdx` (513 lines) - Spec 043
|
|
85
|
-
- Added Case Studies section to sidebar (before roadmap/faq)
|
|
86
|
-
- Added case studies CTA section on homepage
|
|
87
|
-
- Chinese translations for homepage elements in `i18n/zh-Hans/code.json`
|
|
88
|
-
|
|
89
|
-
**Files modified**: 8 files
|
|
90
|
-
- New: 5 case study files in `docs/case-studies/`
|
|
91
|
-
- Updated: sidebars.ts, src/pages/index.tsx, i18n/zh-Hans/code.json
|
|
92
|
-
|
|
93
|
-
### PR #69: Chinese Localization (149 lines)
|
|
94
|
-
**Spec**: 091-chinese-localization-strategy
|
|
95
|
-
**Status**: Complete (docs-site portion)
|
|
96
|
-
**Commit**: 3b059ef
|
|
97
|
-
|
|
98
|
-
**Changes**:
|
|
99
|
-
- Created `i18n/zh-Hans/TERMINOLOGY_GLOSSARY.md` with standardized Chinese translations
|
|
100
|
-
- Comprehensive glossary for consistent terminology across all translations
|
|
101
|
-
- Includes core concepts, first principles, status/priority terms, CLI commands, etc.
|
|
102
|
-
|
|
103
|
-
**Note**: Web app i18n infrastructure (packages/web locales, hooks, components) from PR #69 applies to main lean-spec repo, not docs-site, so only the terminology glossary was migrated.
|
|
104
|
-
|
|
105
|
-
**Files modified**: 1 file
|
|
106
|
-
- New: `i18n/zh-Hans/TERMINOLOGY_GLOSSARY.md`
|
|
107
|
-
|
|
108
|
-
### Post-Migration QA Fix (ee70869, 2025-11-17)
|
|
109
|
-
|
|
110
|
-
After verification we found zh-Hans anchor references missing for the new terminology links. Commit `ee70869` adds:
|
|
111
|
-
- Explicit anchor IDs on `guide/first-principles` translation so cross-links resolve
|
|
112
|
-
- Translated `lean-spec tokens` reference section to surface `/reference/cli#lean-spec-tokens`
|
|
113
|
-
- FAQ link update to reuse the new anchor slug
|
|
114
|
-
- `pnpm build` now passes without broken-anchor warnings for en + zh-Hans
|
|
115
|
-
|
|
116
|
-
This commit is part of the same `migrate-prs-66-69` branch and must be included in the docs-site PR.
|
|
117
|
-
|
|
118
|
-
## Design
|
|
119
|
-
|
|
120
|
-
### Migration Approach
|
|
121
|
-
|
|
122
|
-
**Method**: Git cherry-pick with manual file extraction
|
|
123
|
-
|
|
124
|
-
**Process**:
|
|
125
|
-
1. Added old lean-spec repo as remote in docs-site submodule
|
|
126
|
-
2. Fetched PR branches from old repo
|
|
127
|
-
3. For each PR:
|
|
128
|
-
- Extracted files from specific commits using `git show <commit>:<path>`
|
|
129
|
-
- Applied changes manually to avoid path conflicts
|
|
130
|
-
- Updated references (sidebar positions, links)
|
|
131
|
-
- Tested build after each PR
|
|
132
|
-
- Committed with descriptive message and PR reference
|
|
133
|
-
4. Pushed all commits to new branch in lean-spec-docs repo
|
|
134
|
-
|
|
135
|
-
**Why manual extraction vs direct cherry-pick?**
|
|
136
|
-
- Path differences: PR commits had `docs-site/` prefix, new repo doesn't
|
|
137
|
-
- Merge conflicts: PRs were based on different base branches
|
|
138
|
-
- Selective migration: Some PRs had non-docs changes (specs/, packages/)
|
|
139
|
-
- Build verification: Could test incrementally
|
|
140
|
-
|
|
141
|
-
### Branch Structure
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
lean-spec-docs (new repo)
|
|
145
|
-
├── main (0f0522f)
|
|
146
|
-
└── migrate-prs-66-69 (3b059ef) ← Migration branch
|
|
147
|
-
├── ae12682 - PR #66: Terminology glossary
|
|
148
|
-
├── 808a141 - PR #67: Tutorials
|
|
149
|
-
├── d8c6955 - PR #68: Case studies
|
|
150
|
-
└── 3b059ef - PR #69: Chinese glossary
|
|
151
|
-
|
|
152
|
-
lean-spec (old repo)
|
|
153
|
-
└── docs-site/ (submodule)
|
|
154
|
-
└── pointing to lean-spec-docs @ migrate-prs-66-69
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## Plan
|
|
158
|
-
|
|
159
|
-
- [x] **Step 1**: Analyze unmerged PRs #66-69 in old repo
|
|
160
|
-
- [x] **Step 2**: Set up git remotes (add old-repo remote)
|
|
161
|
-
- [x] **Step 3**: Fetch PR branches from old repo
|
|
162
|
-
- [x] **Step 4**: Create migration branch `migrate-prs-66-69`
|
|
163
|
-
- [x] **Step 5**: Migrate PR #66 (terminology glossary)
|
|
164
|
-
- [x] Extract terminology.mdx file
|
|
165
|
-
- [x] Update sidebar positions for Core Concepts files
|
|
166
|
-
- [x] Add terminology references and notes
|
|
167
|
-
- [x] Test build
|
|
168
|
-
- [x] Commit changes
|
|
169
|
-
- [x] **Step 6**: Migrate PR #67 (tutorials)
|
|
170
|
-
- [x] Extract 4 tutorial files
|
|
171
|
-
- [x] Update sidebar with Tutorials section
|
|
172
|
-
- [x] Update homepage with Quick Start button
|
|
173
|
-
- [x] Test build
|
|
174
|
-
- [x] Commit changes
|
|
175
|
-
- [x] **Step 7**: Migrate PR #68 (case studies)
|
|
176
|
-
- [x] Extract 5 case study files
|
|
177
|
-
- [x] Update sidebar with Case Studies section
|
|
178
|
-
- [x] Update homepage with case studies CTA
|
|
179
|
-
- [x] Add Chinese translations
|
|
180
|
-
- [x] Test build
|
|
181
|
-
- [x] Commit changes
|
|
182
|
-
- [x] **Step 8**: Migrate PR #69 (Chinese localization)
|
|
183
|
-
- [x] Extract terminology glossary
|
|
184
|
-
- [x] Test build
|
|
185
|
-
- [x] Commit changes
|
|
186
|
-
- [x] **Step 9**: Push migration branch to lean-spec-docs repo
|
|
187
|
-
- [x] **Step 10**: Document migration for verification
|
|
188
|
-
|
|
189
|
-
## Test
|
|
190
|
-
|
|
191
|
-
### Build Verification
|
|
192
|
-
- [x] Build succeeds with PR #66 changes (terminology)
|
|
193
|
-
- [x] Build succeeds with PR #67 changes (tutorials)
|
|
194
|
-
- [x] Build succeeds with PR #68 changes (case studies)
|
|
195
|
-
- [x] Build succeeds with PR #69 changes (Chinese glossary)
|
|
196
|
-
- [x] Final build succeeds with all changes
|
|
197
|
-
- [x] Both English and Chinese locales build successfully
|
|
198
|
-
- [x] `pnpm build` (2025-11-17) after `ee70869` → no broken anchors; warning resolved by zh-Hans fixes
|
|
199
|
-
|
|
200
|
-
### Content Verification
|
|
201
|
-
- [x] All 21 files present in migration branch
|
|
202
|
-
- [x] Terminology glossary accessible from sidebar
|
|
203
|
-
- [x] 4 tutorials accessible from Tutorials section
|
|
204
|
-
- [x] 5 case studies accessible from Case Studies section
|
|
205
|
-
- [x] Homepage Quick Start button links to first tutorial
|
|
206
|
-
- [x] Homepage case studies CTA section present
|
|
207
|
-
- [x] Chinese translations present in i18n files
|
|
208
|
-
|
|
209
|
-
### Git Verification
|
|
210
|
-
- [x] 5 commits on migrate-prs-66-69 branch (includes QA fix `ee70869`)
|
|
211
|
-
- [x] Each commit references source PR
|
|
212
|
-
- [x] Commit messages descriptive and detailed
|
|
213
|
-
- [x] Branch successfully pushed to origin
|
|
214
|
-
- [x] No merge conflicts
|
|
215
|
-
|
|
216
|
-
## Next Steps for Verification Session
|
|
217
|
-
|
|
218
|
-
### 0. Update docs-site Submodule Pointer
|
|
219
|
-
```bash
|
|
220
|
-
cd /home/marvin/projects/codervisor/lean-spec
|
|
221
|
-
git add docs-site
|
|
222
|
-
git commit -m "chore: point docs-site to ee70869 (spec 095 QA fix)"
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Verify:
|
|
226
|
-
- Root repo references `ee70869`
|
|
227
|
-
- Include this commit with any follow-up PR in main repo
|
|
228
|
-
|
|
229
|
-
### 1. Review Migration Branch
|
|
230
|
-
```bash
|
|
231
|
-
cd docs-site
|
|
232
|
-
git checkout migrate-prs-66-69
|
|
233
|
-
git log --oneline --stat
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
Verify:
|
|
237
|
-
- 4 commits present
|
|
238
|
-
- Commit messages reference PRs
|
|
239
|
-
- File changes match summary above
|
|
240
|
-
|
|
241
|
-
### 2. Test Documentation Build
|
|
242
|
-
```bash
|
|
243
|
-
npm run build
|
|
244
|
-
npm run serve
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Verify:
|
|
248
|
-
- Build completes without errors
|
|
249
|
-
- Navigate to Terminology (/docs/guide/terminology)
|
|
250
|
-
- Navigate to Tutorials section (/docs/tutorials/your-first-spec)
|
|
251
|
-
- Navigate to Case Studies section (/docs/case-studies)
|
|
252
|
-
- Check homepage Quick Start button
|
|
253
|
-
- Check homepage case studies section
|
|
254
|
-
- Test Chinese locale (zh-Hans)
|
|
255
|
-
|
|
256
|
-
### 3. Create Pull Request
|
|
257
|
-
```bash
|
|
258
|
-
# Visit: https://github.com/codervisor/lean-spec-docs/pull/new/migrate-prs-66-69
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
PR Description Template:
|
|
262
|
-
```
|
|
263
|
-
## Migrate PRs #66-69 from lean-spec to lean-spec-docs
|
|
264
|
-
|
|
265
|
-
Migrates documentation improvements from 4 unmerged PRs that were created before docs-site migration.
|
|
266
|
-
|
|
267
|
-
### Changes Summary
|
|
268
|
-
- **PR #66**: Terminology glossary (295 lines)
|
|
269
|
-
- **PR #67**: Step-by-step tutorials (1,676 lines)
|
|
270
|
-
- **PR #68**: Dogfooding case studies (2,500 lines)
|
|
271
|
-
- **PR #69**: Chinese terminology glossary (149 lines)
|
|
272
|
-
|
|
273
|
-
**Total**: 21 files changed, 4,032 insertions(+), 7 deletions(-)
|
|
274
|
-
|
|
275
|
-
### Verification
|
|
276
|
-
- ✅ All builds pass (EN + zh-Hans) — confirmed via `pnpm build` on 2025-11-17 after `ee70869`
|
|
277
|
-
- ✅ No breaking changes
|
|
278
|
-
- ✅ All links functional
|
|
279
|
-
- ✅ Each PR tracked in separate commit
|
|
280
|
-
|
|
281
|
-
### Original PRs
|
|
282
|
-
- codervisor/lean-spec#66 (spec 088)
|
|
283
|
-
- codervisor/lean-spec#67 (spec 089)
|
|
284
|
-
- codervisor/lean-spec#68 (spec 090)
|
|
285
|
-
- codervisor/lean-spec#69 (spec 091)
|
|
286
|
-
|
|
287
|
-
Closes #[issue-number-if-exists]
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
### 4. After Merge: Update Main Repo
|
|
291
|
-
```bash
|
|
292
|
-
cd /home/marvin/projects/codervisor/lean-spec
|
|
293
|
-
git checkout main
|
|
294
|
-
git submodule update --remote docs-site
|
|
295
|
-
git add docs-site
|
|
296
|
-
git commit -m "chore: update docs-site submodule to include migrated PRs #66-69"
|
|
297
|
-
git push origin main
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### 5. Close Old PRs in lean-spec Repo
|
|
301
|
-
|
|
302
|
-
For each PR #66, #67, #68, #69, add comment:
|
|
303
|
-
```
|
|
304
|
-
This PR has been successfully migrated to the new docs repository at:
|
|
305
|
-
https://github.com/codervisor/lean-spec-docs/pull/[new-pr-number]
|
|
306
|
-
|
|
307
|
-
All documentation changes from this PR are now tracked in lean-spec-docs.
|
|
308
|
-
|
|
309
|
-
Closing as the docs-site has been migrated to its own repository.
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
Then close each PR.
|
|
313
|
-
|
|
314
|
-
## Notes
|
|
315
|
-
|
|
316
|
-
### Migration Success Factors
|
|
317
|
-
- **Incremental approach**: Migrated one PR at a time with testing
|
|
318
|
-
- **Build verification**: Tested after each PR to catch issues early
|
|
319
|
-
- **Descriptive commits**: Each commit explains what was migrated and references source PR
|
|
320
|
-
- **Manual extraction**: Avoided complex merge conflicts by extracting files manually
|
|
321
|
-
- **Preserved content**: Zero content loss, all 4,500+ lines migrated successfully
|
|
322
|
-
|
|
323
|
-
### Challenges Encountered
|
|
324
|
-
1. **Path differences**: PRs had `docs-site/` prefix, required manual path adjustment
|
|
325
|
-
2. **Base branch differences**: PRs based on different branches, some included/excluded prior changes
|
|
326
|
-
3. **Web app vs docs-site**: PR #69 had both web app and docs-site changes, needed separation
|
|
327
|
-
|
|
328
|
-
### Technical Details
|
|
329
|
-
- **Remote added**: `git remote add old-repo https://github.com/codervisor/lean-spec.git`
|
|
330
|
-
- **PR fetch pattern**: `git fetch old-repo pull/{N}/head:pr-{N}`
|
|
331
|
-
- **File extraction**: `git show <commit>:<path> > <target>`
|
|
332
|
-
- **Build tool**: Docusaurus with i18n support
|
|
333
|
-
- **Languages**: English (en), Chinese (zh-Hans)
|
|
334
|
-
|
|
335
|
-
### Repository Links
|
|
336
|
-
- **Old repo**: https://github.com/codervisor/lean-spec
|
|
337
|
-
- **New repo**: https://github.com/codervisor/lean-spec-docs
|
|
338
|
-
- **Migration branch**: https://github.com/codervisor/lean-spec-docs/tree/migrate-prs-66-69
|
|
339
|
-
- **Create PR**: https://github.com/codervisor/lean-spec-docs/pull/new/migrate-prs-66-69
|