@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.
Files changed (386) hide show
  1. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +2 -0
  4. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  7. package/.next/standalone/packages/ui/.next/routes-manifest.json +12 -0
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -18
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
  24. package/.next/standalone/packages/ui/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
  25. package/.next/standalone/packages/ui/.next/server/app/api/context/route/build-manifest.json +11 -0
  26. package/.next/standalone/packages/ui/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
  27. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +8 -0
  28. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.map +5 -0
  29. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -0
  30. package/.next/standalone/packages/ui/.next/server/app/api/context/route_client-reference-manifest.js +2 -0
  31. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/context/page/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +18 -0
  49. package/.next/standalone/packages/ui/.next/server/app/context/page/next-font-manifest.json +6 -0
  50. package/.next/standalone/packages/ui/.next/server/app/context/page/react-loadable-manifest.json +1 -0
  51. package/.next/standalone/packages/ui/.next/server/app/context/page/server-reference-manifest.json +4 -0
  52. package/.next/standalone/packages/ui/.next/server/app/context/page.js +19 -0
  53. package/.next/standalone/packages/ui/.next/server/app/context/page.js.map +5 -0
  54. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -0
  55. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +2 -0
  56. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  65. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  67. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +12 -12
  68. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +12 -12
  69. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  70. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +3 -3
  71. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  72. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  73. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  76. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  78. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +2 -0
  80. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +2 -2
  81. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
  82. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
  83. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
  84. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +3 -0
  85. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
  86. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
  87. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_context_route_actions_dead6daa.js +3 -0
  88. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__12b4eb41._.js +3 -0
  89. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +3 -0
  90. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__6e739186._.js +7 -0
  91. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a4c56419._.js +7 -0
  92. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b6632d78._.js +3 -0
  93. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +1 -1
  94. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
  95. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  96. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
  98. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_315f3b3a._.js +3 -0
  99. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_959ad3d8._.js +4 -0
  100. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_9dcf102b._.js +3 -0
  101. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_497c8b73._.js → _b397e94a._.js} +2 -2
  102. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_8272a49c._.js +3 -0
  103. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_context_page_actions_1a062d48.js +3 -0
  104. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +12 -0
  105. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  106. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  107. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  108. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  109. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  110. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  111. package/.next/standalone/packages/ui/.next/static/chunks/1eb8283995f370c6.js +1 -0
  112. package/.next/standalone/packages/ui/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  113. package/.next/standalone/packages/ui/.next/static/chunks/37a1236ed50645a6.js +1 -0
  114. package/.next/standalone/packages/ui/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  115. package/.next/standalone/packages/ui/.next/static/chunks/c4b1faff3361a749.js +1 -0
  116. package/.next/{static/chunks/294dea6dbec43ca6.js → standalone/packages/ui/.next/static/chunks/d7420d2a867e57b5.js} +1 -1
  117. package/.next/{static/chunks/cca4441cde342ae3.js → standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js} +1 -1
  118. package/.next/standalone/packages/ui/.next/static/chunks/efded9da04c960d8.js +1 -0
  119. package/.next/standalone/packages/ui/.next/static/chunks/f382932f1a5d6359.js +10 -0
  120. package/.next/standalone/packages/ui/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  121. package/.next/standalone/packages/ui/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  122. package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
  123. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
  124. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  125. package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
  126. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
  127. package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
  128. package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
  129. package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
  130. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
  131. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
  132. package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
  133. package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
  134. package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
  135. package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
  136. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
  137. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
  138. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
  139. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
  140. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
  141. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
  142. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
  143. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
  144. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
  145. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
  146. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
  147. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
  148. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
  149. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
  150. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
  151. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
  152. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
  153. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
  154. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
  155. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
  156. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
  157. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
  158. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
  159. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
  160. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
  161. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
  162. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
  163. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
  164. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
  165. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
  166. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
  167. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
  168. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
  169. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
  170. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
  171. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
  172. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
  173. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
  174. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
  175. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
  176. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
  177. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
  178. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
  179. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
  180. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
  181. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
  182. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
  183. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
  184. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
  185. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
  186. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
  187. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
  188. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
  189. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
  190. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
  191. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
  192. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
  193. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
  194. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
  195. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
  196. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
  197. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
  198. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
  199. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
  200. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
  201. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
  202. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
  203. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
  204. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
  205. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
  206. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
  207. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
  208. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
  209. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
  210. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
  211. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
  212. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
  213. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
  214. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
  215. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
  216. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
  217. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
  218. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
  219. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
  220. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
  221. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
  222. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
  223. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
  224. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
  225. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
  226. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
  227. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
  228. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
  229. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
  230. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
  231. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
  232. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
  233. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
  234. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
  235. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
  236. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
  237. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
  238. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
  239. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
  240. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
  241. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
  242. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
  243. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
  244. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
  245. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
  246. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
  247. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
  248. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
  249. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
  250. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
  251. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
  252. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
  253. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
  254. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
  255. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
  256. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
  257. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
  258. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
  259. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
  260. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
  261. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
  262. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
  263. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
  264. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
  265. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
  266. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
  267. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
  268. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
  269. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
  270. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
  271. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
  272. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
  273. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
  274. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
  275. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
  276. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
  277. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
  278. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
  279. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
  280. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
  281. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
  282. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
  283. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
  284. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
  285. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
  286. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
  287. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
  288. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
  289. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
  290. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
  291. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
  292. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
  293. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
  294. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
  295. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
  296. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
  297. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
  298. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
  299. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
  300. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
  301. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
  302. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
  303. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
  304. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
  305. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
  306. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
  307. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
  308. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
  309. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
  310. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
  311. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
  312. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
  313. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
  314. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
  315. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
  316. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
  317. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
  318. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
  319. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
  320. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
  321. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
  322. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
  323. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
  324. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
  325. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
  326. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
  327. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
  328. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
  329. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
  330. package/.next/standalone/packages/ui/package.json +2 -1
  331. package/.next/standalone/packages/ui/server.js +1 -1
  332. package/.next/standalone/packages/ui/src/app/api/context/route.ts +22 -0
  333. package/.next/standalone/packages/ui/src/app/context/context-client.tsx +371 -0
  334. package/.next/standalone/packages/ui/src/app/context/page.tsx +17 -0
  335. package/.next/standalone/packages/ui/src/app/globals.css +16 -16
  336. package/.next/standalone/packages/ui/src/app/layout.tsx +1 -7
  337. package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +291 -0
  338. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +10 -1
  339. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +181 -134
  340. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +20 -0
  341. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -2
  342. package/.next/standalone/packages/ui/src/components/ui/accordion.tsx +58 -0
  343. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +172 -3
  344. package/.next/standalone/packages/ui/src/lib/specs/types.ts +44 -0
  345. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  346. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_buildManifest.js +11 -0
  347. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_clientMiddlewareManifest.json +1 -0
  348. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_ssgManifest.js +1 -0
  349. package/.next/static/chunks/1eb8283995f370c6.js +1 -0
  350. package/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  351. package/.next/static/chunks/37a1236ed50645a6.js +1 -0
  352. package/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  353. package/.next/static/chunks/c4b1faff3361a749.js +1 -0
  354. package/.next/{standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js → static/chunks/d7420d2a867e57b5.js} +1 -1
  355. package/.next/{standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js → static/chunks/dae403679aae65f4.js} +1 -1
  356. package/.next/static/chunks/efded9da04c960d8.js +1 -0
  357. package/.next/static/chunks/f382932f1a5d6359.js +10 -0
  358. package/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  359. package/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  360. package/package.json +3 -2
  361. package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +0 -95
  362. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +0 -3
  363. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +0 -7
  364. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +0 -7
  365. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +0 -3
  366. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +0 -3
  367. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  368. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  369. package/.next/standalone/packages/ui/.next/static/chunks/a803d646487dfc2d.js +0 -3
  370. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  371. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +0 -5
  372. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  373. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +0 -1
  374. package/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  375. package/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  376. package/.next/static/chunks/a803d646487dfc2d.js +0 -3
  377. package/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  378. package/.next/static/chunks/b845813463167db0.js +0 -5
  379. package/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  380. package/.next/static/chunks/d784d84d5b880e48.js +0 -1
  381. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_buildManifest.js +0 -0
  382. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_clientMiddlewareManifest.json +0 -0
  383. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_ssgManifest.js +0 -0
  384. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
  385. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
  386. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_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