@leanspec/ui 0.2.7-dev.20251126090633 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/node_modules/.pnpm/@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64 → @img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64}/package.json +7 -13
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/README.md +2 -2
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/lib/glib-2.0/include/glibconfig.h +8 -9
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib} +0 -0
- package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/package.json +5 -11
- package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/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/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.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +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]/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/page.js.nft.json +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]/specs/[specId]/page.js.nft.json +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/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
- 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/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +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/dist/standalone/packages/web/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +20 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +59 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +427 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +436 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +20 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +10 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +7 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +83 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +8 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/favicon.ico +0 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/file.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark-white.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/globe.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/icon.svg +7 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-dark-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-with-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo.svg +17 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/next.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/vercel.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/window.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +23 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +19 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +63 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +51 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +171 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +36 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +46 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +19 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +162 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +43 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +364 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +43 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +531 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +277 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +70 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +87 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +27 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +5 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +43 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +425 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +283 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +46 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +52 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +175 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +96 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +95 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +210 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +53 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +180 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +119 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +369 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +372 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +42 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +70 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-metadata.tsx +136 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +127 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +186 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +561 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +53 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +143 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +130 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +11 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +37 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +50 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +36 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +110 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +57 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +76 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +153 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +122 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +24 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +159 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +31 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +15 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +55 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +30 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +32 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +76 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +42 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +114 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +123 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +156 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +216 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +105 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +120 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +94 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +249 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +55 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +152 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +171 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +17 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +18 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +58 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +34 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +14 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/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 +306 -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 +287 -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 +825 -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 +501 -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 +421 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +106 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +126 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +131 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +254 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +152 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +65 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +332 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +339 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +399 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +525 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +387 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +613 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +266 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +100 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +172 -0
- package/.next/standalone/packages/ui/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/package.json +1 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
- package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
- package/.next/standalone/node_modules/.pnpm/@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
- /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/lib/index.js +0 -0
- /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64 → @img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64}/versions.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
- /package/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
- /package/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: complete
|
|
3
|
+
created: '2025-11-16'
|
|
4
|
+
tags:
|
|
5
|
+
- mcp
|
|
6
|
+
- tools
|
|
7
|
+
- sub-specs
|
|
8
|
+
- ai-agents
|
|
9
|
+
- ux
|
|
10
|
+
priority: high
|
|
11
|
+
created_at: '2025-11-16T13:30:17.281Z'
|
|
12
|
+
updated_at: '2025-11-16T14:00:10.316Z'
|
|
13
|
+
transitions:
|
|
14
|
+
- status: in-progress
|
|
15
|
+
at: '2025-11-16T13:58:37.156Z'
|
|
16
|
+
- status: complete
|
|
17
|
+
at: '2025-11-16T14:00:10.316Z'
|
|
18
|
+
completed_at: '2025-11-16T14:00:10.316Z'
|
|
19
|
+
completed: '2025-11-16'
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Sub-Spec File Visibility in MCP Tools and Commands
|
|
23
|
+
|
|
24
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-16 · **Tags**: mcp, tools, sub-specs, ai-agents, ux
|
|
25
|
+
|
|
26
|
+
**Project**: lean-spec
|
|
27
|
+
**Team**: Core Development
|
|
28
|
+
|
|
29
|
+
## Overview
|
|
30
|
+
|
|
31
|
+
AI agents frequently miss critical information in sub-spec files (DESIGN.md, TESTING.md, IMPLEMENTATION.md) because standard tools (`list`, `search`, `view`) don't surface their existence. This creates incomplete context and poor decision-making.
|
|
32
|
+
|
|
33
|
+
**Solution**: Include lightweight sub-spec file references in tool outputs so agents know what additional content exists and can fetch it when needed.
|
|
34
|
+
|
|
35
|
+
## Problem
|
|
36
|
+
|
|
37
|
+
### Current Behavior
|
|
38
|
+
|
|
39
|
+
When AI agents interact with LeanSpec through MCP tools or CLI commands:
|
|
40
|
+
|
|
41
|
+
1. **`lean-spec list`** / **`list` MCP tool**: Returns spec metadata (name, status, tags) but **no indication that sub-specs exist**
|
|
42
|
+
2. **`lean-spec search`** / **`search` MCP tool**: Searches content but doesn't highlight which **file** matches came from
|
|
43
|
+
3. **`lean-spec view <spec>`** / **`view` MCP tool**: Shows only README.md, agents don't know about DESIGN.md, TESTING.md, etc.
|
|
44
|
+
|
|
45
|
+
### Real-World Impact
|
|
46
|
+
|
|
47
|
+
**Example**: Spec 082 (web-navigation-performance) has:
|
|
48
|
+
- `README.md` - Overview and problem statement (200 lines)
|
|
49
|
+
- `DESIGN.md` - Detailed architecture and implementation approach (300 lines)
|
|
50
|
+
- `TESTING.md` - Performance benchmarks and test strategy (150 lines)
|
|
51
|
+
|
|
52
|
+
**Agent behavior**:
|
|
53
|
+
```
|
|
54
|
+
Agent: "Show me specs related to web performance"
|
|
55
|
+
Tool: Returns 082-web-navigation-performance with README.md content
|
|
56
|
+
Agent: "Implement the optimization"
|
|
57
|
+
Result: Agent misses the detailed architecture in DESIGN.md and benchmarks in TESTING.md
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Why This Happens
|
|
61
|
+
|
|
62
|
+
The Context Economy principle (spec 066, 069, 071) **correctly** encourages splitting specs to stay under token limits. However, tooling hasn't kept pace:
|
|
63
|
+
|
|
64
|
+
- **Spec splitting is working** - Complex specs now have 3-5 focused files
|
|
65
|
+
- **Tool visibility is not working** - Agents only see README.md
|
|
66
|
+
- **Gap**: Agents don't know what they're missing
|
|
67
|
+
|
|
68
|
+
### User Quote
|
|
69
|
+
|
|
70
|
+
> "I often found that AI agents will ignore the sub-specs of the main spec."
|
|
71
|
+
|
|
72
|
+
## Design
|
|
73
|
+
|
|
74
|
+
### Design Principle
|
|
75
|
+
|
|
76
|
+
**Progressive Disclosure with Signaling**: Don't load all sub-specs by default (Context Economy), but **signal their existence** so agents can fetch them when needed.
|
|
77
|
+
|
|
78
|
+
### Implementation Strategy
|
|
79
|
+
|
|
80
|
+
Add a `subSpecs` field to all tool outputs containing lightweight references:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
{
|
|
84
|
+
name: "082-web-navigation-performance",
|
|
85
|
+
status: "in-progress",
|
|
86
|
+
tags: ["web", "performance"],
|
|
87
|
+
// NEW: Sub-spec references (not full content)
|
|
88
|
+
subSpecs: [
|
|
89
|
+
{ name: "DESIGN.md", tokens: 1243, summary: "Hybrid rendering architecture and caching strategy" },
|
|
90
|
+
{ name: "TESTING.md", tokens: 892, summary: "Performance benchmarks and test plan" }
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Key properties**:
|
|
96
|
+
- ✅ **Signals presence** - Agent knows sub-specs exist
|
|
97
|
+
- ✅ **Context-aware** - Token count helps agent decide if worth loading
|
|
98
|
+
- ✅ **Self-descriptive** - Summary helps agent understand relevance
|
|
99
|
+
- ✅ **Progressive** - Agent can fetch full content if needed via `view <spec>/DESIGN.md`
|
|
100
|
+
|
|
101
|
+
### Affected Tools
|
|
102
|
+
|
|
103
|
+
#### 1. `list` Tool (MCP + CLI)
|
|
104
|
+
|
|
105
|
+
**Current output**:
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"specs": [
|
|
109
|
+
{
|
|
110
|
+
"name": "082-web-navigation-performance",
|
|
111
|
+
"status": "in-progress",
|
|
112
|
+
"tags": ["web", "performance"]
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Enhanced output**:
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"specs": [
|
|
122
|
+
{
|
|
123
|
+
"name": "082-web-navigation-performance",
|
|
124
|
+
"status": "in-progress",
|
|
125
|
+
"tags": ["web", "performance"],
|
|
126
|
+
"subSpecs": [
|
|
127
|
+
{ "name": "DESIGN.md", "tokens": 1243 },
|
|
128
|
+
{ "name": "TESTING.md", "tokens": 892 }
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Implementation**: Modify `listSpecsData()` in `packages/cli/src/mcp/tools/list.ts` to:
|
|
136
|
+
1. Call `loadSubFiles(specDir)` for each spec
|
|
137
|
+
2. Count tokens for each sub-spec using `countTokens()` from `@leanspec/core`
|
|
138
|
+
3. Add `subSpecs: [{ name, tokens }]` to response
|
|
139
|
+
|
|
140
|
+
#### 2. `view` Tool (MCP + CLI)
|
|
141
|
+
|
|
142
|
+
**Current output** (when viewing main spec):
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"spec": {
|
|
146
|
+
"name": "082-web-navigation-performance",
|
|
147
|
+
"status": "in-progress"
|
|
148
|
+
},
|
|
149
|
+
"content": "# web-navigation-performance\n\n..."
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Enhanced output**:
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"spec": {
|
|
157
|
+
"name": "082-web-navigation-performance",
|
|
158
|
+
"status": "in-progress",
|
|
159
|
+
"subSpecs": [
|
|
160
|
+
{ "name": "DESIGN.md", "tokens": 1243, "summary": "Hybrid rendering..." },
|
|
161
|
+
{ "name": "TESTING.md", "tokens": 892, "summary": "Performance benchmarks..." }
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
"content": "# web-navigation-performance\n\n..."
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Implementation**: Modify `readSpecData()` in `packages/cli/src/mcp/tools/view.ts` to:
|
|
169
|
+
1. Detect if viewing main spec (not a sub-spec file)
|
|
170
|
+
2. Load sub-spec metadata (name, tokens, first 100 chars as summary)
|
|
171
|
+
3. Include in `spec` object
|
|
172
|
+
|
|
173
|
+
**Note**: Don't include `subSpecs` when viewing a **sub-spec file** itself (e.g., `082/DESIGN.md`) - only when viewing the main README.md
|
|
174
|
+
|
|
175
|
+
#### 3. `search` Tool (MCP + CLI)
|
|
176
|
+
|
|
177
|
+
**Current output**:
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"results": [
|
|
181
|
+
{
|
|
182
|
+
"spec": { "name": "082-web-navigation-performance" },
|
|
183
|
+
"matches": [
|
|
184
|
+
{ "field": "content", "text": "...hybrid rendering..." }
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Enhanced output**:
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"results": [
|
|
195
|
+
{
|
|
196
|
+
"spec": {
|
|
197
|
+
"name": "082-web-navigation-performance",
|
|
198
|
+
"subSpecs": [
|
|
199
|
+
{ "name": "DESIGN.md", "tokens": 1243 },
|
|
200
|
+
{ "name": "TESTING.md", "tokens": 892 }
|
|
201
|
+
]
|
|
202
|
+
},
|
|
203
|
+
"matches": [
|
|
204
|
+
{
|
|
205
|
+
"field": "content",
|
|
206
|
+
"text": "...hybrid rendering...",
|
|
207
|
+
"source": "README.md" // NEW: Indicate which file matched
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"field": "content",
|
|
211
|
+
"text": "...caching strategy...",
|
|
212
|
+
"source": "DESIGN.md" // NEW: Match from sub-spec
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
}
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Implementation**:
|
|
221
|
+
1. Modify `searchSpecsData()` in `packages/cli/src/mcp/tools/search.ts` to:
|
|
222
|
+
- Load sub-spec content when `includeContent: true`
|
|
223
|
+
- Search across README.md + all sub-specs
|
|
224
|
+
- Track which file each match came from
|
|
225
|
+
2. Add `source` field to match results
|
|
226
|
+
3. Include `subSpecs` metadata in spec object
|
|
227
|
+
|
|
228
|
+
**Alternative (Simpler)**: Don't change search behavior, just add `subSpecs` metadata to results (agents can see sub-specs exist even if not searched)
|
|
229
|
+
|
|
230
|
+
#### 4. CLI Commands
|
|
231
|
+
|
|
232
|
+
Apply same changes to CLI formatters:
|
|
233
|
+
- `packages/cli/src/commands/lister.ts` - Display sub-spec count in list view
|
|
234
|
+
- `packages/cli/src/commands/viewer.ts` - Show sub-spec references when viewing main spec
|
|
235
|
+
- Search output formatter - Add source file to match display
|
|
236
|
+
|
|
237
|
+
### Sub-Spec Metadata Schema
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
interface SubSpecReference {
|
|
241
|
+
name: string; // "DESIGN.md"
|
|
242
|
+
tokens: number; // 1243 (from countTokens)
|
|
243
|
+
summary?: string; // First 100 chars or H1 title (optional)
|
|
244
|
+
size?: number; // File size in bytes (optional)
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
interface SpecData {
|
|
248
|
+
// ... existing fields ...
|
|
249
|
+
subSpecs?: SubSpecReference[]; // Only when viewing main spec
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Performance Considerations
|
|
254
|
+
|
|
255
|
+
**Impact**: Adds ~5-10ms per spec (need to stat + count tokens for sub-files)
|
|
256
|
+
|
|
257
|
+
**Mitigation**:
|
|
258
|
+
- Only compute when outputting data (not during search indexing)
|
|
259
|
+
- Cache token counts in memory during single operation
|
|
260
|
+
- Skip for `--fast` flag (if we add one later)
|
|
261
|
+
|
|
262
|
+
**Trade-off**: Acceptable cost for massive UX improvement (agents won't miss critical content)
|
|
263
|
+
|
|
264
|
+
### Design Decisions
|
|
265
|
+
|
|
266
|
+
#### 1. Should sub-specs be included in search by default?
|
|
267
|
+
|
|
268
|
+
**Options**:
|
|
269
|
+
- **A**: Search README.md only by default, add `--include-subspecs` flag
|
|
270
|
+
- **B**: Search all content by default (current behavior)
|
|
271
|
+
- **C**: Search all, but indicate source file in results ✅ **Recommended**
|
|
272
|
+
|
|
273
|
+
**Decision**: Option C - Keep current search behavior (comprehensive), add source attribution
|
|
274
|
+
|
|
275
|
+
**Rationale**: Context Economy says "don't load if not needed", but if agent explicitly searches, they want complete results. The `source` field lets them know which file to fetch.
|
|
276
|
+
|
|
277
|
+
#### 2. How detailed should sub-spec summaries be?
|
|
278
|
+
|
|
279
|
+
**Options**:
|
|
280
|
+
- **A**: No summary, just filename + token count
|
|
281
|
+
- **B**: First H1 heading from file
|
|
282
|
+
- **C**: First 100 characters of content ✅ **Recommended**
|
|
283
|
+
- **D**: LLM-generated summary (too expensive)
|
|
284
|
+
|
|
285
|
+
**Decision**: Start with B (H1 heading), fall back to C (first 100 chars)
|
|
286
|
+
|
|
287
|
+
**Rationale**: Balance between information value and computation cost
|
|
288
|
+
|
|
289
|
+
#### 3. Should `files` tool output change?
|
|
290
|
+
|
|
291
|
+
**Current**: `lean-spec files <spec>` shows all files with sizes
|
|
292
|
+
|
|
293
|
+
**Proposed**: Add token counts to document listing
|
|
294
|
+
|
|
295
|
+
```diff
|
|
296
|
+
Documents:
|
|
297
|
+
- ✓ DESIGN.md (15 KB)
|
|
298
|
+
+ ✓ DESIGN.md (15 KB, ~1,243 tokens)
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**Decision**: Yes, add token counts (consistent with other tool outputs)
|
|
302
|
+
|
|
303
|
+
#### 4. Web app impact?
|
|
304
|
+
|
|
305
|
+
The web app (`packages/web`) already has `SubSpecTabs` component that detects and displays sub-specs. This spec only affects CLI/MCP tools.
|
|
306
|
+
|
|
307
|
+
**No changes needed** to web app (already handles sub-specs well)
|
|
308
|
+
|
|
309
|
+
## Plan
|
|
310
|
+
|
|
311
|
+
### Phase 1: Core Infrastructure (1-2 hours)
|
|
312
|
+
- [ ] Create `loadSubSpecMetadata(specDir)` helper function
|
|
313
|
+
- Input: Spec directory path
|
|
314
|
+
- Output: `SubSpecReference[]`
|
|
315
|
+
- Uses existing `loadSubFiles()` + `countTokens()`
|
|
316
|
+
- [ ] Add `subSpecs?: SubSpecReference[]` to `SpecData` type in `packages/cli/src/mcp/types.ts`
|
|
317
|
+
|
|
318
|
+
### Phase 2: MCP Tools (2-3 hours)
|
|
319
|
+
- [ ] Update `list` tool - Add sub-spec metadata to list responses
|
|
320
|
+
- [ ] Update `view` tool - Add sub-spec references when viewing main spec
|
|
321
|
+
- [ ] Update `search` tool - Add sub-spec metadata + source tracking (or simpler version)
|
|
322
|
+
|
|
323
|
+
### Phase 3: CLI Formatters (1-2 hours)
|
|
324
|
+
- [ ] Update list formatter - Display sub-spec count: `(+2 sub-specs)`
|
|
325
|
+
- [ ] Update view formatter - Show sub-spec references with token counts
|
|
326
|
+
- [ ] Update search formatter - Show source file in match context
|
|
327
|
+
- [ ] Update `files` command - Add token counts to document listing
|
|
328
|
+
|
|
329
|
+
### Phase 4: Testing & Documentation (1-2 hours)
|
|
330
|
+
- [ ] Add test cases for specs with/without sub-specs
|
|
331
|
+
- [ ] Update AGENTS.md - Document new sub-spec visibility behavior
|
|
332
|
+
- [ ] Update docs site - Add examples to MCP tools documentation
|
|
333
|
+
- [ ] Update CLI help text where relevant
|
|
334
|
+
|
|
335
|
+
**Total estimate**: 6-10 hours
|
|
336
|
+
|
|
337
|
+
## Test
|
|
338
|
+
|
|
339
|
+
### Success Criteria
|
|
340
|
+
|
|
341
|
+
- [ ] **AI agents discover sub-specs**: When listing or viewing a spec, agents see which sub-spec files exist
|
|
342
|
+
- [ ] **Token-aware decisions**: Agents can decide whether to load sub-specs based on token count
|
|
343
|
+
- [ ] **Search attribution**: Search results indicate which file (README vs sub-spec) matches came from
|
|
344
|
+
- [ ] **No breaking changes**: Existing tools continue to work, `subSpecs` field is additive
|
|
345
|
+
- [ ] **Performance acceptable**: <50ms overhead per spec in list operations
|
|
346
|
+
- [ ] **Documentation complete**: AGENTS.md and docs site reflect new behavior
|
|
347
|
+
|
|
348
|
+
### Test Cases
|
|
349
|
+
|
|
350
|
+
**Unit Tests**:
|
|
351
|
+
- [ ] `loadSubSpecMetadata()` returns correct token counts
|
|
352
|
+
- [ ] `loadSubSpecMetadata()` handles specs without sub-specs
|
|
353
|
+
- [ ] `loadSubSpecMetadata()` extracts H1 title as summary
|
|
354
|
+
- [ ] Token counting works for all sub-spec types
|
|
355
|
+
|
|
356
|
+
**Integration Tests**:
|
|
357
|
+
- [ ] `list` tool includes `subSpecs` field for specs with sub-files
|
|
358
|
+
- [ ] `list` tool omits `subSpecs` field for single-file specs
|
|
359
|
+
- [ ] `view` tool includes `subSpecs` when viewing main README
|
|
360
|
+
- [ ] `view` tool omits `subSpecs` when viewing sub-spec file
|
|
361
|
+
- [ ] `search` tool includes `subSpecs` metadata in results
|
|
362
|
+
- [ ] CLI formatters display sub-spec information correctly
|
|
363
|
+
|
|
364
|
+
**Agent Workflow Tests** (manual):
|
|
365
|
+
- [ ] Agent viewing spec 082 sees DESIGN.md and TESTING.md references
|
|
366
|
+
- [ ] Agent can decide to fetch DESIGN.md based on token count
|
|
367
|
+
- [ ] Agent searching "performance" sees which file matches came from
|
|
368
|
+
|
|
369
|
+
## Notes
|
|
370
|
+
|
|
371
|
+
### Related Specs
|
|
372
|
+
|
|
373
|
+
- **Spec 012** - Sub-Spec Files Management (original sub-spec support)
|
|
374
|
+
- **Spec 066** - Context Economy Thresholds Refinement (why we split specs)
|
|
375
|
+
- **Spec 069** - Token Counting Utils (provides `countTokens()` function)
|
|
376
|
+
- **Spec 075** - Intelligent Search Engine (search infrastructure)
|
|
377
|
+
- **Spec 080** - MCP Server Modular Architecture (MCP tools structure)
|
|
378
|
+
|
|
379
|
+
### Open Questions
|
|
380
|
+
|
|
381
|
+
1. Should we add a `--no-subspecs` flag to list/view for minimal output? **→ Not yet, wait for user feedback**
|
|
382
|
+
2. Should search results be grouped by file (README, DESIGN, etc.)? **→ Future enhancement**
|
|
383
|
+
3. Should we precompute and cache token counts in metadata? **→ Not yet, measure performance first**
|
|
384
|
+
|
|
385
|
+
### Future Enhancements
|
|
386
|
+
|
|
387
|
+
- **Smart sub-spec recommendations**: "Based on your query, you might want to check DESIGN.md"
|
|
388
|
+
- **Sub-spec diff tracking**: Show which sub-specs changed in recent updates
|
|
389
|
+
- **Grouped search results**: Group matches by file for better readability
|