@leanspec/ui 0.2.7-dev.20251128020042 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +2 -0
- package/.next/standalone/packages/ui/.next/build-manifest.json +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 +12 -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.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 -18
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
- package/.next/standalone/packages/ui/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/context/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/context/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/context/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page.js +19 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.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.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.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/page.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 +12 -12
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +12 -12
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +3 -3
- 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.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.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +2 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_context_route_actions_dead6daa.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__12b4eb41._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__6e739186._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a4c56419._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b6632d78._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +1 -1
- 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/_000dd317._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_315f3b3a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_959ad3d8._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_9dcf102b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_497c8b73._.js → _b397e94a._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_8272a49c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_context_page_actions_1a062d48.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +12 -0
- 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_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/1eb8283995f370c6.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/37a1236ed50645a6.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/9d84ba08a41145ec.js +5 -0
- package/.next/standalone/packages/ui/.next/static/chunks/c4b1faff3361a749.js +1 -0
- package/.next/{static/chunks/294dea6dbec43ca6.js → standalone/packages/ui/.next/static/chunks/d7420d2a867e57b5.js} +1 -1
- package/.next/{static/chunks/cca4441cde342ae3.js → standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/efded9da04c960d8.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f382932f1a5d6359.js +10 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
- package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
- package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
- package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
- package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
- package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
- 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 +2 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/src/app/api/context/route.ts +22 -0
- package/.next/standalone/packages/ui/src/app/context/context-client.tsx +371 -0
- package/.next/standalone/packages/ui/src/app/context/page.tsx +17 -0
- package/.next/standalone/packages/ui/src/app/globals.css +16 -16
- package/.next/standalone/packages/ui/src/app/layout.tsx +1 -7
- package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +291 -0
- package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +10 -1
- package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +181 -134
- package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +20 -0
- package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -2
- package/.next/standalone/packages/ui/src/components/ui/accordion.tsx +58 -0
- package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +172 -3
- package/.next/standalone/packages/ui/src/lib/specs/types.ts +44 -0
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_buildManifest.js +11 -0
- package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_clientMiddlewareManifest.json +1 -0
- package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_ssgManifest.js +1 -0
- package/.next/static/chunks/1eb8283995f370c6.js +1 -0
- package/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
- package/.next/static/chunks/37a1236ed50645a6.js +1 -0
- package/.next/static/chunks/9d84ba08a41145ec.js +5 -0
- package/.next/static/chunks/c4b1faff3361a749.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js → static/chunks/d7420d2a867e57b5.js} +1 -1
- package/.next/{standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js → static/chunks/dae403679aae65f4.js} +1 -1
- package/.next/static/chunks/efded9da04c960d8.js +1 -0
- package/.next/static/chunks/f382932f1a5d6359.js +10 -0
- package/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
- package/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
- package/package.json +3 -2
- package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +0 -95
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/a803d646487dfc2d.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +0 -5
- package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +0 -1
- package/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
- package/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
- package/.next/static/chunks/a803d646487dfc2d.js +0 -3
- package/.next/static/chunks/b6976cf6c48996e5.js +0 -1
- package/.next/static/chunks/b845813463167db0.js +0 -5
- package/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
- package/.next/static/chunks/d784d84d5b880e48.js +0 -1
- /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_ssgManifest.js +0 -0
- /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
- /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: planned
|
|
3
|
+
created: '2025-11-02'
|
|
4
|
+
tags: ["feature","ci","automation"]
|
|
5
|
+
priority: low
|
|
6
|
+
depends_on:
|
|
7
|
+
- 067-monorepo-core-extraction
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# github-action
|
|
11
|
+
|
|
12
|
+
> **Status**: 📅 Planned · **Priority**: Medium · **Created**: 2025-11-02
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Create a GitHub Action to automate LeanSpec workflows in CI/CD pipelines. Enable teams to validate specs, check status, and enforce spec requirements as part of their development process.
|
|
17
|
+
|
|
18
|
+
**Use Cases:**
|
|
19
|
+
1. **Spec Validation** - Ensure all specs have required frontmatter
|
|
20
|
+
2. **Status Checks** - Block PRs if planned specs aren't complete
|
|
21
|
+
3. **Documentation Generation** - Auto-generate spec summaries in PR comments
|
|
22
|
+
4. **Metrics Collection** - Track spec completion over time
|
|
23
|
+
5. **Template Compliance** - Validate specs follow template structure
|
|
24
|
+
|
|
25
|
+
**Why Now:**
|
|
26
|
+
- Core CLI is stable and tested
|
|
27
|
+
- Common use case for teams adopting LeanSpec
|
|
28
|
+
- Differentiator for AI-powered development workflows
|
|
29
|
+
|
|
30
|
+
## Design
|
|
31
|
+
|
|
32
|
+
### 1. Action Types
|
|
33
|
+
|
|
34
|
+
**Option A: Single Flexible Action**
|
|
35
|
+
```yaml
|
|
36
|
+
- uses: codervisor/lspec-action@v1
|
|
37
|
+
with:
|
|
38
|
+
command: validate # or: stats, board, search, check-status
|
|
39
|
+
filters: '--status=in-progress'
|
|
40
|
+
fail-on-error: true
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Option B: Multiple Specific Actions**
|
|
44
|
+
```yaml
|
|
45
|
+
- uses: codervisor/lspec-validate@v1
|
|
46
|
+
- uses: codervisor/lspec-stats@v1
|
|
47
|
+
- uses: codervisor/lspec-check-status@v1
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Recommendation**: Option A (single flexible action) for v1, easier to maintain.
|
|
51
|
+
|
|
52
|
+
### 2. Core Features
|
|
53
|
+
|
|
54
|
+
**1. Spec Validation**
|
|
55
|
+
```yaml
|
|
56
|
+
- uses: codervisor/lspec-action@v1
|
|
57
|
+
with:
|
|
58
|
+
command: validate
|
|
59
|
+
rules: |
|
|
60
|
+
- required: [status, created]
|
|
61
|
+
- no-empty-sections: true
|
|
62
|
+
- max-age-days: 90
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**2. Status Checks**
|
|
66
|
+
```yaml
|
|
67
|
+
- uses: codervisor/lspec-action@v1
|
|
68
|
+
with:
|
|
69
|
+
command: check-status
|
|
70
|
+
fail-if: 'in-progress'
|
|
71
|
+
message: 'Cannot merge with in-progress specs'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**3. PR Comments**
|
|
75
|
+
```yaml
|
|
76
|
+
- uses: codervisor/lspec-action@v1
|
|
77
|
+
with:
|
|
78
|
+
command: stats
|
|
79
|
+
output: pr-comment
|
|
80
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**4. Metrics Export**
|
|
84
|
+
```yaml
|
|
85
|
+
- uses: codervisor/lspec-action@v1
|
|
86
|
+
with:
|
|
87
|
+
command: export-metrics
|
|
88
|
+
format: json
|
|
89
|
+
output-file: specs-metrics.json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 3. Action Structure
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
lspec-action/
|
|
96
|
+
├── action.yml # Action metadata
|
|
97
|
+
├── dist/
|
|
98
|
+
│ └── index.js # Bundled action code (ncc)
|
|
99
|
+
├── src/
|
|
100
|
+
│ ├── main.ts # Entry point
|
|
101
|
+
│ ├── commands/ # Command implementations
|
|
102
|
+
│ │ ├── validate.ts
|
|
103
|
+
│ │ ├── check-status.ts
|
|
104
|
+
│ │ ├── stats.ts
|
|
105
|
+
│ │ └── export.ts
|
|
106
|
+
│ └── utils/
|
|
107
|
+
│ ├── github.ts # GitHub API helpers
|
|
108
|
+
│ └── formatting.ts
|
|
109
|
+
├── package.json
|
|
110
|
+
├── tsconfig.json
|
|
111
|
+
└── README.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 4. Example Workflows
|
|
115
|
+
|
|
116
|
+
**Validate on PR:**
|
|
117
|
+
```yaml
|
|
118
|
+
name: Validate Specs
|
|
119
|
+
on: pull_request
|
|
120
|
+
|
|
121
|
+
jobs:
|
|
122
|
+
validate:
|
|
123
|
+
runs-on: ubuntu-latest
|
|
124
|
+
steps:
|
|
125
|
+
- uses: actions/checkout@v4
|
|
126
|
+
- uses: codervisor/lspec-action@v1
|
|
127
|
+
with:
|
|
128
|
+
command: validate
|
|
129
|
+
fail-on-error: true
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Block Merge with In-Progress Specs:**
|
|
133
|
+
```yaml
|
|
134
|
+
name: Check Spec Status
|
|
135
|
+
on: pull_request
|
|
136
|
+
|
|
137
|
+
jobs:
|
|
138
|
+
check-status:
|
|
139
|
+
runs-on: ubuntu-latest
|
|
140
|
+
steps:
|
|
141
|
+
- uses: actions/checkout@v4
|
|
142
|
+
- uses: codervisor/lspec-action@v1
|
|
143
|
+
with:
|
|
144
|
+
command: check-status
|
|
145
|
+
allow-status: 'planned,complete'
|
|
146
|
+
fail-if: 'in-progress'
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Post Stats to PR:**
|
|
150
|
+
```yaml
|
|
151
|
+
name: Spec Stats
|
|
152
|
+
on: pull_request
|
|
153
|
+
|
|
154
|
+
jobs:
|
|
155
|
+
stats:
|
|
156
|
+
runs-on: ubuntu-latest
|
|
157
|
+
steps:
|
|
158
|
+
- uses: actions/checkout@v4
|
|
159
|
+
- uses: codervisor/lspec-action@v1
|
|
160
|
+
with:
|
|
161
|
+
command: stats
|
|
162
|
+
output: pr-comment
|
|
163
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 5. Action Inputs
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
inputs:
|
|
170
|
+
command:
|
|
171
|
+
description: 'Command to run (validate, check-status, stats, export-metrics)'
|
|
172
|
+
required: true
|
|
173
|
+
|
|
174
|
+
fail-on-error:
|
|
175
|
+
description: 'Fail action if validation fails'
|
|
176
|
+
default: 'true'
|
|
177
|
+
|
|
178
|
+
filters:
|
|
179
|
+
description: 'CLI filter flags (--status, --tag, --priority)'
|
|
180
|
+
required: false
|
|
181
|
+
|
|
182
|
+
output:
|
|
183
|
+
description: 'Output type (console, pr-comment, file, json)'
|
|
184
|
+
default: 'console'
|
|
185
|
+
|
|
186
|
+
output-file:
|
|
187
|
+
description: 'Output file path (for file/json output)'
|
|
188
|
+
required: false
|
|
189
|
+
|
|
190
|
+
github-token:
|
|
191
|
+
description: 'GitHub token for PR comments'
|
|
192
|
+
required: false
|
|
193
|
+
|
|
194
|
+
working-directory:
|
|
195
|
+
description: 'Directory containing .lean-spec/ (defaults to repo root)'
|
|
196
|
+
default: '.'
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 6. Action Outputs
|
|
200
|
+
|
|
201
|
+
```yaml
|
|
202
|
+
outputs:
|
|
203
|
+
result:
|
|
204
|
+
description: 'Command result (success/failure)'
|
|
205
|
+
|
|
206
|
+
stats:
|
|
207
|
+
description: 'Spec statistics (JSON)'
|
|
208
|
+
|
|
209
|
+
validation-errors:
|
|
210
|
+
description: 'List of validation errors (JSON array)'
|
|
211
|
+
|
|
212
|
+
comment-url:
|
|
213
|
+
description: 'URL of posted PR comment'
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Plan
|
|
217
|
+
|
|
218
|
+
### Phase 1: Setup & Core Infrastructure
|
|
219
|
+
- [ ] Create `lspec-action` repository
|
|
220
|
+
- [ ] Set up TypeScript build with @vercel/ncc for bundling
|
|
221
|
+
- [ ] Create action.yml with inputs/outputs
|
|
222
|
+
- [ ] Set up GitHub Actions workflow for testing action itself
|
|
223
|
+
- [ ] Install lean-spec as dependency
|
|
224
|
+
|
|
225
|
+
### Phase 2: Core Commands
|
|
226
|
+
- [ ] Implement `validate` command (check frontmatter, structure)
|
|
227
|
+
- [ ] Implement `check-status` command (fail on specific statuses)
|
|
228
|
+
- [ ] Implement `stats` command (gather metrics)
|
|
229
|
+
- [ ] Implement `export-metrics` command (JSON output)
|
|
230
|
+
- [ ] Add formatting utilities for console/PR output
|
|
231
|
+
|
|
232
|
+
### Phase 3: GitHub Integration
|
|
233
|
+
- [ ] Add PR comment posting (using @actions/github)
|
|
234
|
+
- [ ] Add commit status updates
|
|
235
|
+
- [ ] Add annotations for validation errors
|
|
236
|
+
- [ ] Test with sample repository
|
|
237
|
+
|
|
238
|
+
### Phase 4: Documentation & Examples
|
|
239
|
+
- [ ] Write comprehensive README
|
|
240
|
+
- [ ] Add example workflows for common use cases
|
|
241
|
+
- [ ] Create action marketplace listing
|
|
242
|
+
- [ ] Document all inputs/outputs
|
|
243
|
+
|
|
244
|
+
### Phase 5: Publishing
|
|
245
|
+
- [ ] Tag v1.0.0 release
|
|
246
|
+
- [ ] Publish to GitHub Marketplace
|
|
247
|
+
- [ ] Link from lean-spec README
|
|
248
|
+
- [ ] Create demo repository showing usage
|
|
249
|
+
|
|
250
|
+
## Test
|
|
251
|
+
|
|
252
|
+
### Action Tests
|
|
253
|
+
- [ ] Action builds and bundles correctly
|
|
254
|
+
- [ ] All commands execute without errors
|
|
255
|
+
- [ ] Exit codes are correct (0 for success, 1 for failure)
|
|
256
|
+
- [ ] Inputs are parsed correctly
|
|
257
|
+
- [ ] Outputs are set correctly
|
|
258
|
+
|
|
259
|
+
### Command Tests
|
|
260
|
+
- [ ] `validate` detects missing frontmatter
|
|
261
|
+
- [ ] `validate` passes for valid specs
|
|
262
|
+
- [ ] `check-status` fails on disallowed statuses
|
|
263
|
+
- [ ] `stats` generates correct metrics
|
|
264
|
+
- [ ] `export-metrics` produces valid JSON
|
|
265
|
+
|
|
266
|
+
### GitHub Integration Tests
|
|
267
|
+
- [ ] PR comments are posted correctly
|
|
268
|
+
- [ ] Comments include formatted tables
|
|
269
|
+
- [ ] Annotations appear on correct files/lines
|
|
270
|
+
- [ ] Works with GITHUB_TOKEN
|
|
271
|
+
|
|
272
|
+
### End-to-End Tests
|
|
273
|
+
- [ ] Run action in test repository
|
|
274
|
+
- [ ] Validate specs workflow works
|
|
275
|
+
- [ ] PR comment workflow works
|
|
276
|
+
- [ ] Metrics export workflow works
|
|
277
|
+
|
|
278
|
+
## Notes
|
|
279
|
+
|
|
280
|
+
**Dependencies:**
|
|
281
|
+
- lean-spec CLI (core dependency)
|
|
282
|
+
- @actions/core (GitHub Actions SDK)
|
|
283
|
+
- @actions/github (GitHub API)
|
|
284
|
+
- @vercel/ncc (bundle for distribution)
|
|
285
|
+
|
|
286
|
+
**Marketplace Listing:**
|
|
287
|
+
- Name: "LeanSpec Action"
|
|
288
|
+
- Description: "Validate and manage LeanSpec documents in CI/CD"
|
|
289
|
+
- Categories: Code Quality, Continuous Integration
|
|
290
|
+
- Icon: 📋 or 📝
|
|
291
|
+
- Color: Blue
|
|
292
|
+
|
|
293
|
+
**Future Enhancements:**
|
|
294
|
+
- Spec coverage reports (% of code with specs)
|
|
295
|
+
- Spec drift detection (specs out of sync with code)
|
|
296
|
+
- Auto-create specs from PR descriptions
|
|
297
|
+
- Integration with Linear, Jira for issue linking
|
|
298
|
+
- Spec dependency graph visualization in PR
|
|
299
|
+
|
|
300
|
+
**Alternative: Reusable Workflow**
|
|
301
|
+
Instead of GitHub Action, could provide reusable workflow:
|
|
302
|
+
```yaml
|
|
303
|
+
# .github/workflows/lspec-validate.yml
|
|
304
|
+
on:
|
|
305
|
+
workflow_call:
|
|
306
|
+
inputs:
|
|
307
|
+
command:
|
|
308
|
+
required: true
|
|
309
|
+
type: string
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
But GitHub Action is more flexible and easier for users to adopt.
|
|
313
|
+
|
|
314
|
+
**References:**
|
|
315
|
+
- GitHub Actions docs: https://docs.github.com/en/actions
|
|
316
|
+
- Action toolkit: https://github.com/actions/toolkit
|
|
317
|
+
- Marketplace: https://github.com/marketplace?type=actions
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: planned
|
|
3
|
+
created: '2025-11-02'
|
|
4
|
+
tags: ["feature","ide","vscode"]
|
|
5
|
+
priority: low
|
|
6
|
+
depends_on:
|
|
7
|
+
- 067-monorepo-core-extraction
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# vscode-extension
|
|
11
|
+
|
|
12
|
+
> **Status**: 📅 Planned · **Priority**: Medium · **Created**: 2025-11-02
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Create a VS Code extension that integrates LeanSpec directly into the editor, providing inline spec management, navigation, and AI agent integration.
|
|
17
|
+
|
|
18
|
+
**Developer Pain Points:**
|
|
19
|
+
- Switching between editor and terminal for spec management
|
|
20
|
+
- Finding specs across folder structure
|
|
21
|
+
- No syntax highlighting for spec frontmatter
|
|
22
|
+
- AI agents can't easily reference specs during coding
|
|
23
|
+
- Manual updating of spec status
|
|
24
|
+
|
|
25
|
+
**What Success Looks Like:**
|
|
26
|
+
- Create/edit specs without leaving VS Code
|
|
27
|
+
- Tree view showing all specs with status indicators
|
|
28
|
+
- Quick actions to update spec metadata
|
|
29
|
+
- Frontmatter validation and autocomplete
|
|
30
|
+
- Integration with GitHub Copilot context
|
|
31
|
+
|
|
32
|
+
## Design
|
|
33
|
+
|
|
34
|
+
### 1. Extension Features
|
|
35
|
+
|
|
36
|
+
**Spec Explorer (Tree View)**
|
|
37
|
+
```
|
|
38
|
+
LEANSPEC SPECS
|
|
39
|
+
├── 📅 20251102/
|
|
40
|
+
│ ├── ✅ 001-custom-spec-templates/
|
|
41
|
+
│ ├── 📅 002-complete-custom-frontmatter/
|
|
42
|
+
│ └── 🔨 003-npm-publishing/
|
|
43
|
+
├── ✅ 20251101/
|
|
44
|
+
│ └── ✅ 001-existing-project-integration/
|
|
45
|
+
└── 📅 Planned (3)
|
|
46
|
+
🔨 In Progress (1)
|
|
47
|
+
✅ Complete (9)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Quick Actions:**
|
|
51
|
+
- Right-click spec → Update Status
|
|
52
|
+
- Right-click spec → Archive
|
|
53
|
+
- Right-click spec → Open in Editor
|
|
54
|
+
- Right-click spec → Copy Path
|
|
55
|
+
|
|
56
|
+
**Commands (Ctrl+Shift+P):**
|
|
57
|
+
- `LeanSpec: Create New Spec`
|
|
58
|
+
- `LeanSpec: Update Spec Status`
|
|
59
|
+
- `LeanSpec: Show Stats`
|
|
60
|
+
- `LeanSpec: Show Board`
|
|
61
|
+
- `LeanSpec: Search Specs`
|
|
62
|
+
- `LeanSpec: Validate All Specs`
|
|
63
|
+
|
|
64
|
+
**Status Bar:**
|
|
65
|
+
```
|
|
66
|
+
📋 LeanSpec: 3 planned, 1 in progress, 9 complete
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 2. Editor Features
|
|
70
|
+
|
|
71
|
+
**Frontmatter Validation:**
|
|
72
|
+
- Syntax highlighting for YAML frontmatter
|
|
73
|
+
- Red squiggles for invalid fields
|
|
74
|
+
- Autocomplete for status, priority, tags
|
|
75
|
+
- Hover tooltips showing field descriptions
|
|
76
|
+
|
|
77
|
+
**Snippets:**
|
|
78
|
+
- `lspec-spec` → Full spec template
|
|
79
|
+
- `lspec-front` → Frontmatter block
|
|
80
|
+
- `lspec-plan` → Plan section with checkboxes
|
|
81
|
+
|
|
82
|
+
**CodeLens:**
|
|
83
|
+
```markdown
|
|
84
|
+
---
|
|
85
|
+
status: planned
|
|
86
|
+
---
|
|
87
|
+
👆 Update Status | 🔄 Sync Metadata
|
|
88
|
+
|
|
89
|
+
# My Feature Spec
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 3. AI Agent Integration
|
|
93
|
+
|
|
94
|
+
**Copilot Context Provider:**
|
|
95
|
+
```typescript
|
|
96
|
+
// Enable Copilot to reference specs
|
|
97
|
+
vscode.lm.registerContextProvider('leanspec', {
|
|
98
|
+
provideContext(query) {
|
|
99
|
+
// Search specs matching query
|
|
100
|
+
// Return relevant spec content
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Usage:**
|
|
106
|
+
```
|
|
107
|
+
@leanspec How should I implement the API endpoints?
|
|
108
|
+
// Copilot gets context from relevant specs
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 4. Extension Architecture
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
// Extension structure
|
|
115
|
+
src/
|
|
116
|
+
├── extension.ts # Activation
|
|
117
|
+
├── commands/
|
|
118
|
+
│ ├── createSpec.ts
|
|
119
|
+
│ ├── updateSpec.ts
|
|
120
|
+
│ └── searchSpecs.ts
|
|
121
|
+
├── providers/
|
|
122
|
+
│ ├── SpecTreeProvider.ts # Tree view
|
|
123
|
+
│ ├── FrontmatterValidator.ts
|
|
124
|
+
│ ├── CompletionProvider.ts # Autocomplete
|
|
125
|
+
│ └── CopilotProvider.ts # AI context
|
|
126
|
+
├── views/
|
|
127
|
+
│ └── statsWebview.ts # Stats dashboard
|
|
128
|
+
└── utils/
|
|
129
|
+
└── lspecClient.ts # Wrap CLI commands
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 5. Configuration
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"leanspec.specsDirectory": "specs",
|
|
137
|
+
"leanspec.autoRefresh": true,
|
|
138
|
+
"leanspec.showStatusBar": true,
|
|
139
|
+
"leanspec.validateOnSave": true,
|
|
140
|
+
"leanspec.copilotIntegration": true
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Plan
|
|
145
|
+
|
|
146
|
+
### Phase 1: Core Extension Setup
|
|
147
|
+
- [ ] Initialize VS Code extension project
|
|
148
|
+
- [ ] Set up TypeScript, webpack bundling
|
|
149
|
+
- [ ] Create extension manifest (package.json)
|
|
150
|
+
- [ ] Set up activation events
|
|
151
|
+
- [ ] Install lean-spec as dependency
|
|
152
|
+
|
|
153
|
+
### Phase 2: Spec Explorer Tree View
|
|
154
|
+
- [ ] Implement SpecTreeProvider
|
|
155
|
+
- [ ] Load specs from workspace
|
|
156
|
+
- [ ] Display folder structure with icons
|
|
157
|
+
- [ ] Show status indicators (icons)
|
|
158
|
+
- [ ] Add click to open spec
|
|
159
|
+
- [ ] Add refresh button
|
|
160
|
+
|
|
161
|
+
### Phase 3: Commands & Quick Actions
|
|
162
|
+
- [ ] Implement `Create New Spec` command
|
|
163
|
+
- [ ] Implement `Update Status` command
|
|
164
|
+
- [ ] Implement `Show Stats` command
|
|
165
|
+
- [ ] Implement `Search Specs` command
|
|
166
|
+
- [ ] Add context menu items to tree view
|
|
167
|
+
- [ ] Add status bar item with spec counts
|
|
168
|
+
|
|
169
|
+
### Phase 4: Editor Features
|
|
170
|
+
- [ ] Add frontmatter syntax highlighting
|
|
171
|
+
- [ ] Implement validation diagnostics
|
|
172
|
+
- [ ] Add autocomplete for frontmatter fields
|
|
173
|
+
- [ ] Create spec snippets
|
|
174
|
+
- [ ] Add CodeLens for quick actions
|
|
175
|
+
- [ ] Add hover tooltips
|
|
176
|
+
|
|
177
|
+
### Phase 5: AI Integration
|
|
178
|
+
- [ ] Research Copilot Context Provider API
|
|
179
|
+
- [ ] Implement context provider
|
|
180
|
+
- [ ] Test with GitHub Copilot
|
|
181
|
+
- [ ] Add configuration toggle
|
|
182
|
+
|
|
183
|
+
### Phase 6: Polish & Publishing
|
|
184
|
+
- [ ] Create extension icon
|
|
185
|
+
- [ ] Write comprehensive README
|
|
186
|
+
- [ ] Add screenshots/GIFs
|
|
187
|
+
- [ ] Test on Windows, macOS, Linux
|
|
188
|
+
- [ ] Publish to VS Code Marketplace
|
|
189
|
+
- [ ] Link from lean-spec README
|
|
190
|
+
|
|
191
|
+
## Test
|
|
192
|
+
|
|
193
|
+
### Tree View Tests
|
|
194
|
+
- [ ] Tree view loads specs correctly
|
|
195
|
+
- [ ] Icons match spec status
|
|
196
|
+
- [ ] Click opens spec file
|
|
197
|
+
- [ ] Refresh updates tree
|
|
198
|
+
- [ ] Works with empty specs directory
|
|
199
|
+
|
|
200
|
+
### Command Tests
|
|
201
|
+
- [ ] Create spec command works
|
|
202
|
+
- [ ] Update status command works
|
|
203
|
+
- [ ] Commands show in palette
|
|
204
|
+
- [ ] Status bar updates on changes
|
|
205
|
+
|
|
206
|
+
### Editor Tests
|
|
207
|
+
- [ ] Frontmatter validation detects errors
|
|
208
|
+
- [ ] Autocomplete suggests valid values
|
|
209
|
+
- [ ] Snippets expand correctly
|
|
210
|
+
- [ ] CodeLens actions work
|
|
211
|
+
|
|
212
|
+
### Integration Tests
|
|
213
|
+
- [ ] Extension activates in workspace with .lean-spec/
|
|
214
|
+
- [ ] Works with all templates
|
|
215
|
+
- [ ] Handles spec creation/deletion
|
|
216
|
+
- [ ] File watcher updates on external changes
|
|
217
|
+
|
|
218
|
+
### Copilot Tests
|
|
219
|
+
- [ ] Context provider registers
|
|
220
|
+
- [ ] Copilot can query specs
|
|
221
|
+
- [ ] Returns relevant spec content
|
|
222
|
+
|
|
223
|
+
## Notes
|
|
224
|
+
|
|
225
|
+
**VS Code Extension API:**
|
|
226
|
+
- TreeDataProvider for tree view
|
|
227
|
+
- DiagnosticCollection for validation
|
|
228
|
+
- CompletionItemProvider for autocomplete
|
|
229
|
+
- CodeLensProvider for inline actions
|
|
230
|
+
- StatusBarItem for status display
|
|
231
|
+
- FileSystemWatcher for auto-refresh
|
|
232
|
+
|
|
233
|
+
**Marketplace Listing:**
|
|
234
|
+
- Name: "LeanSpec"
|
|
235
|
+
- Description: "Lightweight spec management for AI-powered development"
|
|
236
|
+
- Categories: Programming Languages, Other
|
|
237
|
+
- Icon: 📋 or spec document icon
|
|
238
|
+
- Keywords: spec, sdd, documentation, ai, agent
|
|
239
|
+
|
|
240
|
+
**Bundle Size:**
|
|
241
|
+
- Keep extension lightweight (< 5MB)
|
|
242
|
+
- Use webpack to bundle dependencies
|
|
243
|
+
- Consider using CLI as subprocess vs. importing
|
|
244
|
+
|
|
245
|
+
**Future Enhancements:**
|
|
246
|
+
- Spec dependency graph visualization
|
|
247
|
+
- Inline spec preview in hover
|
|
248
|
+
- Spec templates gallery
|
|
249
|
+
- Integration with other AI tools (Cursor, etc.)
|
|
250
|
+
- Spec metrics dashboard (webview)
|
|
251
|
+
- Git blame integration (show who wrote spec)
|
|
252
|
+
|
|
253
|
+
**Alternative Approach:**
|
|
254
|
+
- Could build as Language Server Protocol (LSP)
|
|
255
|
+
- Would enable support for other editors (Neovim, etc.)
|
|
256
|
+
- More complex but more portable
|
|
257
|
+
|
|
258
|
+
**References:**
|
|
259
|
+
- VS Code Extension API: https://code.visualstudio.com/api
|
|
260
|
+
- Tree View Guide: https://code.visualstudio.com/api/extension-guides/tree-view
|
|
261
|
+
- Copilot Context: https://code.visualstudio.com/api/extension-guides/language-model
|