@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.
Files changed (364) hide show
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  8. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  9. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  10. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  11. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +1 -1
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  27. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  48. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  49. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +1 -1
  50. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +1 -1
  51. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +1 -1
  52. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  53. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  54. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  55. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  56. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  58. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  59. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  60. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  61. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  62. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
  63. package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +20 -0
  64. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +59 -0
  65. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +1 -0
  66. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +427 -0
  67. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +436 -0
  68. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +20 -0
  69. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +10 -0
  70. package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +18 -0
  71. package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +7 -0
  72. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +83 -0
  73. package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +8 -0
  74. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
  75. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/favicon.ico +0 -0
  76. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/file.svg +1 -0
  77. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark-white.svg +1 -0
  78. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark.svg +1 -0
  79. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/globe.svg +1 -0
  80. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/icon.svg +7 -0
  81. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-dark-bg.svg +17 -0
  82. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-with-bg.svg +17 -0
  83. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo.svg +17 -0
  84. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/next.svg +1 -0
  85. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/vercel.svg +1 -0
  86. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/window.svg +1 -0
  87. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
  88. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +23 -0
  89. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +19 -0
  90. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +63 -0
  91. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +51 -0
  92. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +171 -0
  93. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +36 -0
  94. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +46 -0
  95. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +19 -0
  96. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +162 -0
  97. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +43 -0
  98. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +18 -0
  99. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +364 -0
  100. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +43 -0
  101. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +531 -0
  102. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +277 -0
  103. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +70 -0
  104. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +87 -0
  105. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +27 -0
  106. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +18 -0
  107. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +5 -0
  108. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +43 -0
  109. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +18 -0
  110. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +425 -0
  111. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +18 -0
  112. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +283 -0
  113. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +46 -0
  114. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +52 -0
  115. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +175 -0
  116. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +96 -0
  117. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +95 -0
  118. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +210 -0
  119. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +53 -0
  120. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +180 -0
  121. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +119 -0
  122. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +369 -0
  123. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +372 -0
  124. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +42 -0
  125. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +70 -0
  126. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-metadata.tsx +136 -0
  127. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +127 -0
  128. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +186 -0
  129. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +561 -0
  130. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +53 -0
  131. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +143 -0
  132. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +130 -0
  133. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +11 -0
  134. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +37 -0
  135. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +50 -0
  136. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +36 -0
  137. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +110 -0
  138. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +57 -0
  139. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +76 -0
  140. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +153 -0
  141. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +122 -0
  142. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +24 -0
  143. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +159 -0
  144. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +31 -0
  145. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +15 -0
  146. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +55 -0
  147. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +30 -0
  148. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +32 -0
  149. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +76 -0
  150. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +42 -0
  151. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +18 -0
  152. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +114 -0
  153. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +123 -0
  154. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +156 -0
  155. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +216 -0
  156. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +105 -0
  157. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +120 -0
  158. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +94 -0
  159. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +249 -0
  160. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +55 -0
  161. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +152 -0
  162. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +171 -0
  163. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +17 -0
  164. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +18 -0
  165. package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +58 -0
  166. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +34 -0
  167. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +1 -0
  168. package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +14 -0
  169. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
  170. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
  171. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
  172. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
  173. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
  174. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
  175. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
  176. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
  177. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
  178. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
  179. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
  180. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
  181. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
  182. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
  183. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
  184. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
  185. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +306 -0
  186. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
  187. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
  188. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
  189. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
  190. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
  191. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
  192. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
  193. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
  194. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
  195. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
  196. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
  197. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
  198. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
  199. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
  200. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
  201. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
  202. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
  203. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
  204. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
  205. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
  206. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
  207. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
  208. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
  209. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
  210. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
  211. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
  212. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
  213. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
  214. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
  215. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
  216. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
  217. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
  218. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
  219. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
  220. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
  221. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
  222. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
  223. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
  224. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
  225. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
  226. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
  227. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
  228. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
  229. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
  230. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
  231. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
  232. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
  233. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
  234. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
  235. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
  236. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
  237. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
  238. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
  239. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
  240. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
  241. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
  242. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
  243. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
  244. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
  245. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
  246. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
  247. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
  248. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
  249. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
  250. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
  251. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
  252. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
  253. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
  254. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
  255. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
  256. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
  257. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
  258. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
  259. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
  260. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
  261. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
  262. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
  263. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
  264. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
  265. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
  266. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +287 -0
  267. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
  268. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
  269. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
  270. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
  271. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
  272. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
  273. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
  274. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
  275. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +825 -0
  276. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
  277. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
  278. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
  279. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
  280. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +501 -0
  281. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
  282. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
  283. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
  284. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
  285. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +421 -0
  286. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +106 -0
  287. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +126 -0
  288. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +131 -0
  289. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +254 -0
  290. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +152 -0
  291. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +65 -0
  292. package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +332 -0
  293. package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +339 -0
  294. package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +399 -0
  295. package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +525 -0
  296. package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +387 -0
  297. package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +613 -0
  298. package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +266 -0
  299. package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +100 -0
  300. package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +172 -0
  301. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
  302. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
  303. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
  304. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
  305. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
  306. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
  307. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
  308. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
  309. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
  310. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
  311. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
  312. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
  313. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
  314. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
  315. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
  316. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
  317. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
  318. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
  319. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
  320. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
  321. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
  322. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
  323. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
  324. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
  325. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
  326. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
  327. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
  328. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
  329. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
  330. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
  331. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
  332. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
  333. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
  334. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
  335. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
  336. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
  337. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
  338. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
  339. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
  340. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
  341. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
  342. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
  343. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
  344. package/.next/standalone/packages/ui/package.json +1 -1
  345. package/.next/standalone/packages/ui/server.js +1 -1
  346. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  347. package/package.json +2 -2
  348. 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
  349. 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
  350. 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
  351. 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
  352. 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
  353. 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
  354. 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
  355. 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
  356. package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  357. /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
  358. /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
  359. /package/.next/standalone/packages/ui/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
  360. /package/.next/standalone/packages/ui/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
  361. /package/.next/standalone/packages/ui/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
  362. /package/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
  363. /package/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
  364. /package/.next/static/{gmEkSwWc7AIWzMK9b0WXr → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
@@ -0,0 +1,65 @@
1
+ ---
2
+ status: complete
3
+ created: '2025-11-17'
4
+ tags: []
5
+ priority: medium
6
+ created_at: '2025-11-17T06:07:38.678Z'
7
+ updated_at: '2025-11-17T08:18:21.205Z'
8
+ transitions:
9
+ - status: in-progress
10
+ at: '2025-11-17T06:11:38.816Z'
11
+ - status: complete
12
+ at: '2025-11-17T08:18:21.205Z'
13
+ completed_at: '2025-11-17T08:18:21.205Z'
14
+ completed: '2025-11-17'
15
+ ---
16
+
17
+ # spec-detail-ui-improvements
18
+
19
+ > **Status**: ✅ Complete · **Priority**: Medium · **Created**: 2025-11-17
20
+
21
+ **Project**: lean-spec
22
+ **Team**: Core Development
23
+
24
+ ## Overview
25
+
26
+ The docs site's spec-detail experience currently blocks reviewers from scanning specs quickly, which is especially risky for the next release where we promised smoother UI/UX polish. Users reported seven consistent issues: sidebar refresh flicker after every spec switch, timeline panel overpowering the main content, TOC links that do nothing, HTML comment snippets leaking into the rendered markdown, `Updated` metadata stuck on `N/A`, distracting file icons in the nav, and no visual depiction of spec dependencies. These break Context Economy by forcing extra scrolling and erode trust in the data. We want this spec to be the single tracker for all near-release UI/UX fixes so we reclaim focus on the spec body, make navigation reliable, and expose relationship insights without jumping to other tools.
27
+
28
+ ## Design
29
+
30
+ 1. **Stable spec navigation**: cache the spec list response in the sidebar store, only update when metadata actually changes, and preserve scroll + active selection to avoid full re-renders during spec switches.
31
+ 2. **Collapsible timeline**: move the timeline into a lightweight summary chip with a "Show Timeline" toggle that expands inline above metadata, defaulting to collapsed so the spec body stays the primary focus.
32
+ 3. **TOC anchor fix**: normalize heading IDs on the client to match Docusaurus slug generation and rely on `scrollIntoView` plus URL hash updates so clicking TOC jumps to the correct section.
33
+ 4. **Hide HTML comments**: preprocess markdown AST to drop `<!-- ... -->` nodes before rendering to stop internal guidance text from leaking.
34
+ 5. **Accurate updated field**: surface `updated_at` from spec frontmatter, falling back to git modified time when absent, and ensure the detail query feeds the value through the API contract.
35
+ 6. **Icon-less sidebar rows**: simplify the nav list item template to text-only to reduce noise and reclaim horizontal space for long titles.
36
+ 7. **Dependencies visualization**: embed a compact relationship widget (start with badges showing `depends_on` and `related`; stretch goal is mini graph) so readers can see blockers without opening `lean-spec deps`.
37
+
38
+ ## Plan
39
+
40
+ - [ ] Document current UI data flow for spec sidebar, detail header, and relationship sections
41
+ - [x] Implement navigation cache + scroll state persistence in sidebar component (SSR-safe and preserved during route loading)
42
+ - [x] Add collapsible timeline UI with persisted preference and action-style toggle controls
43
+ - [x] Keep spec navigation sidebar mounted while switching specs to avoid layout pop-in
44
+ - [x] Introduce shared action toggle pattern for secondary panels (timeline + dependencies) with highlight state
45
+ - [x] Fix TOC anchor generation and hash syncing, verify across nested headings
46
+ - [x] Strip HTML comments during markdown render pipeline
47
+ - [x] Plumb real `updated_at` values through API and UI
48
+ - [x] Remove file icons from sidebar rows and adjust spacing
49
+ - [x] Ship first iteration of dependency DAG view with precedence/connected naming and follow-up capture for richer charts
50
+
51
+ ## Test
52
+
53
+ - [ ] Switching between multiple specs keeps sidebar state (selection + scroll) and the nav never disappears during route transitions
54
+ - [ ] Timeline action button defaults to collapsed, highlights only when expanded, and the step connectors stay horizontally aligned even when timestamps are missing
55
+ - [ ] Dependencies action button highlights on expansion, hides when collapsed, and renders the DAG with correct precedence/connected labels
56
+ - [ ] Clicking every TOC entry scrolls to the right heading and updates the URL hash
57
+ - [ ] Specs that contain `<!-- comment -->` sequences render without showing the comment text
58
+ - [ ] `Updated` value matches the spec metadata or git timestamp for recently edited specs without duplicating the created date pill
59
+ - [ ] Sidebar displays titles cleanly with no icons and adequate padding
60
+ - [ ] Dependency DAG lists accurate `depends_on` and `related` specs (nodes + edges) for at least two known specs
61
+
62
+ ## Notes
63
+
64
+ - Timeline toggle placement candidates: above metadata vs within sidebar; validate with quick user test after prototype.
65
+ - Dependency chart options include lightweight badges now and cytoscape-style graph once token budgets allow.
@@ -0,0 +1,332 @@
1
+ ---
2
+ status: planned
3
+ created: '2025-11-17'
4
+ tags:
5
+ - web
6
+ - ai
7
+ - ux
8
+ - v0.3.0
9
+ priority: high
10
+ created_at: '2025-11-17T06:31:22.346Z'
11
+ related:
12
+ - 082-web-realtime-sync-architecture
13
+ - 081-web-app-ux-redesign
14
+ updated_at: '2025-11-17T06:32:59.775Z'
15
+ ---
16
+
17
+ # AI Chatbot for Web UI
18
+
19
+ > **Status**: 🗓️ Planned · **Priority**: High · **Created**: 2025-11-17 · **Tags**: web, ai, ux, v0.3.0
20
+
21
+ **Project**: lean-spec
22
+ **Team**: Core Development
23
+
24
+ ## Overview
25
+
26
+ Add an AI chatbot to `@leanspec/web` that **transforms it from read-only to fully interactive**. Users can create, update, and manage specs through natural conversation - no CLI or IDE required.
27
+
28
+ **Core Value**: The web UI becomes a complete spec management tool accessible to everyone (not just developers with terminal access). Users can "talk to their specs" for all operations: viewing, creating, editing, and managing.
29
+
30
+ **Key Unlock**: Non-technical team members (PMs, designers, stakeholders) can now actively participate in spec-driven development, not just passively view specs.
31
+
32
+ ## Problem
33
+
34
+ **The core gap**: `@leanspec/web` is currently **read-only**. Users can browse and view specs, but cannot create, update, or manage them without switching to CLI or VS Code.
35
+
36
+ **Current limitations**:
37
+ - ❌ **No spec creation** - Must drop to terminal: `lean-spec create ...`
38
+ - ❌ **No status updates** - Must use CLI: `lean-spec update 082 --status complete`
39
+ - ❌ **No metadata editing** - Can't change priority, tags, assignee from UI
40
+ - ❌ **No content editing** - Can't modify spec README or sub-specs
41
+ - ✅ **Read-only browsing** - Can view, search, filter (but that's it)
42
+
43
+ **The bigger problem**: Write operations are **locked behind developer tools**:
44
+ - Non-technical users (PMs, designers) can't participate
45
+ - Requires context switch (browser → terminal → IDE → back to browser)
46
+ - Mobile users completely blocked from management tasks
47
+ - No path for casual contributors
48
+
49
+ **User Pain Points**:
50
+ - "I'm viewing spec 082 - can I mark it complete?" → No, need terminal
51
+ - "Let me create a spec for API rate limiting..." → Can't, need CLI
52
+ - "This spec's priority should be high" → Can't change it here
53
+ - "I want to update the description" → Must edit file in IDE
54
+
55
+ **The solution**: AI chatbot makes web UI **fully interactive** through natural conversation - no CLI, no IDE required.
56
+
57
+ ## Goals
58
+
59
+ 1. **Enable Write Operations**: Make web UI fully interactive (create, update, delete specs)
60
+ 2. **Democratize Access**: Allow non-developers to manage specs (no CLI/IDE required)
61
+ 3. **Conversational UX**: Natural language interface for all operations
62
+ 4. **Maintain Context Economy**: Chatbot enforces LeanSpec principles (token limits, validation)
63
+ 5. **Progressive Enhancement**: Chat is optional - traditional UI still works for viewing
64
+
65
+ ## Design
66
+
67
+ ### Architecture
68
+
69
+ **Tech Stack** (as requested):
70
+ - **AI SDK** (`ai` package from Vercel) - Universal AI abstraction layer
71
+ - **AI UI Elements** (`@ai-sdk/ui-elements`) - Pre-built chat components
72
+ - **Backend**: Next.js API routes for LLM integration
73
+ - **Model**: OpenAI GPT-4o (recommended), with pluggable provider support
74
+
75
+ **Component Structure**:
76
+ ```
77
+ packages/web/src/
78
+ ├── components/
79
+ │ ├── chat/
80
+ │ │ ├── chatbot-button.tsx # Floating action button
81
+ │ │ ├── chatbot-panel.tsx # Slide-out chat panel
82
+ │ │ ├── chatbot-message.tsx # Message bubbles
83
+ │ │ └── chatbot-context.tsx # React context for chat state
84
+ │ └── ui/
85
+ │ └── ...existing shadcn components
86
+ ├── app/api/
87
+ │ └── chat/
88
+ │ └── route.ts # AI SDK streaming endpoint
89
+ └── lib/
90
+ ├── ai/
91
+ │ ├── tools.ts # LeanSpec function tools
92
+ │ ├── prompts.ts # System prompts
93
+ │ └── context.ts # Context builders
94
+ └── db/
95
+ └── ...existing queries
96
+ ```
97
+
98
+ ### Chat UI/UX
99
+
100
+ **Placement**: Floating chat button (bottom-right corner, Material-style)
101
+ - **Icon**: MessageCircle or Bot icon from lucide-react
102
+ - **Badge**: Show unread count or typing indicator
103
+ - **Panel**: Slide-out from right (mobile: full-screen modal)
104
+
105
+ **Panel Design**:
106
+ - **Header**: Title ("LeanSpec Assistant"), minimize/close buttons
107
+ - **Messages**: Scrollable chat history with user/assistant bubbles
108
+ - **Input**: Text input with send button, multiline support
109
+ - **Actions**: Quick action chips (e.g., "Show all specs", "Create spec")
110
+ - **Context Indicator**: Show current page context (e.g., "Viewing: Spec 082")
111
+
112
+ ### AI Capabilities
113
+
114
+ **Core Tools** (exposed via AI SDK function calling):
115
+
116
+ 1. **`list_specs`** - List specs with filters (status, tags, priority)
117
+ 2. **`search_specs`** - Search by keywords, return ranked results
118
+ 3. **`get_spec`** - Get full spec details by ID/name
119
+ 4. **`create_spec`** - Create new spec (guided multi-turn conversation)
120
+ 5. **`update_spec_status`** - Update status (planned → in-progress → complete)
121
+ 6. **`update_spec_metadata`** - Update priority, tags, assignee
122
+ 7. **`get_dependencies`** - Show spec relationships (depends_on, related)
123
+ 8. **`get_project_stats`** - Project health metrics, completion rates
124
+ 9. **`get_blockers`** - Find specs blocking others
125
+
126
+ **Example Interactions**:
127
+
128
+ ```
129
+ User: "What specs are in progress?"
130
+ AI: [calls list_specs(status="in-progress")]
131
+ "There are 5 specs in progress:
132
+ • 082-web-realtime-sync-architecture (critical)
133
+ • 092-docs-site-submodule-migration (high)
134
+ • 072-ai-agent-first-use-workflow (high)
135
+ • 035-live-specs-showcase (high)
136
+ • 093-spec-detail-ui-improvements (medium)"
137
+
138
+ User: "Show me spec 082"
139
+ AI: [calls get_spec(id=82)]
140
+ "Spec 082 is about web realtime sync architecture...
141
+ Status: In Progress | Priority: Critical
142
+ [View Full Spec] button"
143
+
144
+ User: "Create a spec for API rate limiting"
145
+ AI: [initiates creation flow]
146
+ "I'll help you create that spec. What's the main goal?"
147
+ User: "Prevent abuse by limiting requests per IP"
148
+ AI: "Got it. What priority level? (low/medium/high/critical)"
149
+ User: "High"
150
+ AI: [calls create_spec(...)]
151
+ "Created spec 095-api-rate-limiting with high priority!"
152
+ ```
153
+
154
+ ### Context Awareness
155
+
156
+ **Page Context Injection**:
157
+ - **Home Page**: Show project stats, recent specs
158
+ - **Spec Detail**: Include current spec in context (pre-populate queries)
159
+ - **Board View**: Suggest workflow queries (blockers, completed today)
160
+
161
+ **Context Provider**:
162
+ ```tsx
163
+ <ChatbotProvider initialContext={{ page: 'spec-detail', specId: 82 }}>
164
+ {children}
165
+ </ChatbotProvider>
166
+ ```
167
+
168
+ ### System Prompt
169
+
170
+ **Core Instructions**:
171
+ - You are the LeanSpec Assistant, helping users manage specs
172
+ - Be concise and actionable - users want quick answers
173
+ - Always use tools to fetch real data (never make up spec IDs)
174
+ - When showing specs, include clickable links
175
+ - Guide users through multi-step actions (creating specs)
176
+ - Explain capabilities when users are unsure
177
+
178
+ **Context Economy**:
179
+ - Keep responses under 3 paragraphs for simple queries
180
+ - Use bullet points for lists
181
+ - Offer "Show more" for detailed info
182
+
183
+ ## Plan
184
+
185
+ ### Phase 1: Core Chat UI (Week 1)
186
+ - [ ] Install `ai` and `@ai-sdk/ui-elements` packages
187
+ - [ ] Create chat button + slide-out panel components
188
+ - [ ] Implement chat context provider
189
+ - [ ] Add basic message rendering (user/assistant bubbles)
190
+ - [ ] Style with Tailwind/shadcn design system
191
+
192
+ ### Phase 2: AI Backend (Week 1-2)
193
+ - [ ] Set up Next.js API route (`/api/chat`)
194
+ - [ ] Integrate AI SDK with OpenAI provider
195
+ - [ ] Implement streaming responses
196
+ - [ ] Add environment variable for API keys
197
+ - [ ] Error handling and rate limiting
198
+
199
+ ### Phase 3: Tool Implementation (Week 2)
200
+ - [ ] Define tools schema (list_specs, search_specs, etc.)
201
+ - [ ] Implement tool execution handlers
202
+ - [ ] Connect tools to existing DB queries
203
+ - [ ] Add tool result formatting (markdown, links)
204
+ - [ ] Test all tools individually
205
+
206
+ ### Phase 4: Context & UX Polish (Week 3)
207
+ - [ ] Page context detection and injection
208
+ - [ ] Quick action chips for common queries
209
+ - [ ] Chat history persistence (localStorage)
210
+ - [ ] Mobile-responsive design
211
+ - [ ] Loading states and typing indicators
212
+
213
+ ### Phase 5: Advanced Features (Week 3-4)
214
+ - [ ] Multi-turn spec creation flow
215
+ - [ ] Dependency graph visualization (inline in chat)
216
+ - [ ] Export chat history (markdown/JSON)
217
+ - [ ] Voice input support (optional, using Web Speech API)
218
+ - [ ] Suggested follow-up queries
219
+
220
+ ### Phase 6: Testing & Docs (Week 4)
221
+ - [ ] E2E tests for chat interactions
222
+ - [ ] Tool execution tests
223
+ - [ ] Document API key setup
224
+ - [ ] Add usage guide to README
225
+ - [ ] Performance optimization (lazy loading, caching)
226
+
227
+ ## Infrastructure Requirements
228
+
229
+ **Environment Variables**:
230
+ ```env
231
+ OPENAI_API_KEY=sk-... # OpenAI API key
232
+ AI_MODEL=gpt-4o # Model to use
233
+ AI_TEMPERATURE=0.7 # Response creativity
234
+ ```
235
+
236
+ **Optional**: Support other providers (Anthropic Claude, local models via Ollama)
237
+
238
+ **Rate Limiting**:
239
+ - Implement per-user rate limits (5 queries/min)
240
+ - Show rate limit status in UI
241
+ - Queue requests if rate limited
242
+
243
+ **Caching**:
244
+ - Cache tool results for 30 seconds (reduce redundant DB queries)
245
+ - Invalidate cache on spec updates
246
+
247
+ ## Test
248
+
249
+ ### Manual Testing
250
+ - [ ] User can open/close chat panel
251
+ - [ ] Chat persists across page navigation
252
+ - [ ] All tools execute correctly
253
+ - [ ] Streaming responses work (no latency spikes)
254
+ - [ ] Mobile UI is usable (no layout breaks)
255
+
256
+ ### Automated Testing
257
+ - [ ] Unit tests for tool handlers
258
+ - [ ] Integration tests for API route
259
+ - [ ] E2E tests for common queries:
260
+ - "List all specs"
261
+ - "Show spec 082"
262
+ - "Create a spec"
263
+ - "What's blocking v0.3?"
264
+
265
+ ### Performance Testing
266
+ - [ ] Response time <2s for simple queries
267
+ - [ ] Streaming starts within 500ms
268
+ - [ ] No memory leaks in long chat sessions
269
+ - [ ] Chat panel loads without blocking main UI
270
+
271
+ ### Success Criteria
272
+ - ✅ Users can complete all spec CRUD operations via chat
273
+ - ✅ Chat feels "instant" (streaming UX)
274
+ - ✅ 80%+ accuracy on natural language queries
275
+ - ✅ No crashes or errors in 100-message chat session
276
+
277
+ ## Notes
278
+
279
+ ### Why ai-sdk?
280
+ - **Unified API**: Works with OpenAI, Anthropic, Mistral, etc.
281
+ - **Type-Safe**: Full TypeScript support
282
+ - **Streaming**: Built-in streaming responses
283
+ - **Function Calling**: Easy tool integration
284
+ - **React Hooks**: `useChat()` hook simplifies state management
285
+
286
+ ### Why @ai-sdk/ui-elements?
287
+ - **Pre-built Components**: Chat UI out-of-the-box
288
+ - **Customizable**: Tailwind-compatible styling
289
+ - **Accessible**: WCAG-compliant components
290
+ - **Maintained**: Official Vercel package
291
+
292
+ ### Alternative Considered: Custom MCP Integration
293
+ **Pros**: Reuse existing MCP server, full CLI parity
294
+ **Cons**: Complex setup, requires separate server, no web-native streaming
295
+ **Decision**: Use ai-sdk for web UI, keep MCP for CLI/desktop agents
296
+
297
+ ### Why This Matters: Breaking the Developer-Only Lock-In
298
+
299
+ **Current state** (pre-chatbot):
300
+ - ✅ Developers with IDE/CLI can do everything
301
+ - ❌ Everyone else is **locked out** of write operations
302
+ - ❌ Web UI is a "view-only spectator mode"
303
+
304
+ **After chatbot**:
305
+ - ✅ **Anyone can manage specs** from web browser
306
+ - ✅ Mobile users can create/update specs
307
+ - ✅ PMs can update status during standup (no CLI needed)
308
+ - ✅ Designers can create specs for UI work
309
+ - ✅ Stakeholders can participate in SDD workflow
310
+
311
+ **This transforms LeanSpec from "developer tool" to "team collaboration platform".**
312
+
313
+ ### Security Considerations
314
+ - **API Key Storage**: Server-side only (never expose to client)
315
+ - **Input Sanitization**: Validate all user inputs before tool execution
316
+ - **Rate Limiting**: Prevent abuse via IP-based rate limits
317
+ - **Audit Logs**: Log all tool executions for debugging
318
+
319
+ ### Future Enhancements (Post-MVP)
320
+ - **Multi-modal**: Upload images (spec diagrams) and analyze
321
+ - **Voice Mode**: Conversational voice interface
322
+ - **Team Chat**: Multi-user chat rooms for spec collaboration
323
+ - **AI Suggestions**: Proactive suggestions ("Spec 082 looks ready to complete")
324
+ - **Integration**: Connect to GitHub, Jira, Linear via AI SDK tools
325
+
326
+ ### Open Questions
327
+ - **Model Choice**: Start with GPT-4o or try Claude 3.5 Sonnet?
328
+ - Recommendation: GPT-4o (better function calling, faster)
329
+ - **Persistence**: Store chat history in DB or localStorage?
330
+ - Recommendation: localStorage (simpler, privacy-friendly)
331
+ - **Auth**: Require login for chatbot access?
332
+ - Recommendation: No (public demo), add later for private deployments