@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,317 @@
1
+ ---
2
+ status: archived
3
+ created: '2025-11-04'
4
+ tags:
5
+ - ux
6
+ - clarity
7
+ - frontmatter
8
+ - relationships
9
+ - v0.2.0
10
+ priority: high
11
+ related:
12
+ - 043-official-launch-02
13
+ created_at: '2025-11-04T00:00:00Z'
14
+ updated_at: '2025-11-11T04:26:08.272Z'
15
+ completed_at: '2025-11-06T06:35:03.913Z'
16
+ completed: '2025-11-06'
17
+ transitions:
18
+ - status: complete
19
+ at: '2025-11-06T06:35:03.913Z'
20
+ - status: archived
21
+ at: '2025-11-11T04:26:08.272Z'
22
+ ---
23
+
24
+ # Clarify Spec Relationship Model
25
+
26
+ > **Status**: 📦 Archived · **Priority**: High · **Created**: 2025-11-04 · **Tags**: ux, clarity, frontmatter, relationships, v0.2.0
27
+
28
+ **Project**: lean-spec
29
+ **Team**: Core Development
30
+
31
+ ## Overview
32
+
33
+ **Problem**: The current spec relationship model is confusing and inconsistent.
34
+
35
+ **Confusion points:**
36
+ 1. **`related` appears bidirectional but isn't** - If spec A has `related: [B]`, the `deps` command shows it from A's perspective but not automatically from B's
37
+ 2. **`depends_on` vs `related` unclear** - When should you use which?
38
+ 3. **Display confusion** - "Related" vs "Related By" sections in `lean-spec deps` output
39
+ 4. **Symmetry expectations** - Users expect `related` to be symmetric (if A relates to B, then B relates to A)
40
+
41
+ **Current behavior:**
42
+ ```bash
43
+ # Spec 042 has: related: [043]
44
+ lean-spec deps 042 # Shows: Related → 043
45
+ lean-spec deps 043 # Shows: Related By ← 042 (had to add this!)
46
+ ```
47
+
48
+ **Why this matters:**
49
+ - Core UX issue affecting how users track work
50
+ - Confusion leads to inconsistent spec relationships
51
+ - Critical for v0.2.0 launch coordination (blocking specs need clear relationships)
52
+
53
+ ## Design
54
+
55
+ ### Option 1: Make `related` Truly Bidirectional (Recommended)
56
+
57
+ **Change behavior**: When spec A has `related: [B]`, automatically show the relationship from both sides without requiring B to also list A.
58
+
59
+ **Implementation:**
60
+ - `related` field means "this spec is related to these specs" (one-way declaration)
61
+ - `lean-spec deps` shows bidirectional view automatically
62
+ - Remove "Related" vs "Related By" distinction - just show "Related Specs"
63
+ - Merge both directions into single list
64
+
65
+ **Example:**
66
+ ```yaml
67
+ # Spec 042
68
+ related: [043]
69
+
70
+ # Spec 043
71
+ related: [] # Doesn't need to list 042
72
+ ```
73
+
74
+ **Output:**
75
+ ```bash
76
+ lean-spec deps 042
77
+ Related Specs:
78
+ ⟷ 043-official-launch-02 [in-progress]
79
+
80
+ lean-spec deps 043
81
+ Related Specs:
82
+ ⟷ 042-mcp-error-handling [in-progress] # Automatically shown!
83
+ ```
84
+
85
+ **Pros:**
86
+ - ✅ Intuitive - matches user expectations
87
+ - ✅ Less redundancy - don't need to update both specs
88
+ - ✅ Cleaner UX - single "Related Specs" section
89
+ - ✅ Easier maintenance - update in one place
90
+
91
+ **Cons:**
92
+ - ❌ Can't distinguish who declared the relationship
93
+ - ❌ Asymmetric data model (one side declares, both show)
94
+
95
+ ### Option 2: Keep Directional, Improve Clarity
96
+
97
+ **Change terminology and documentation:**
98
+ - Rename `related` → `see-also` or `references`
99
+ - Make it clear this is **directional** (one-way)
100
+ - Better docs explaining when to use each field
101
+
102
+ **Relationship types:**
103
+ ```yaml
104
+ depends_on: [spec-id] # Hard dependency - can't start until these complete
105
+ see_also: [spec-id] # Soft reference - related context, no blocking
106
+ blocks: [spec-id] # This spec blocks these specs (inverse of depends_on)
107
+ ```
108
+
109
+ **Pros:**
110
+ - ✅ Clear semantics
111
+ - ✅ Explicit control over directionality
112
+ - ✅ More powerful for complex relationships
113
+
114
+ **Cons:**
115
+ - ❌ More fields to understand
116
+ - ❌ More manual work to maintain relationships
117
+ - ❌ Still confusing for simple use cases
118
+
119
+ ### Option 3: Bidirectional with Explicit Sync
120
+
121
+ **Introduce relationship commands:**
122
+ ```bash
123
+ lean-spec relate 042 043 # Links both specs bidirectionally
124
+ lean-spec unrelate 042 043 # Removes from both
125
+ lean-spec deps 042 --sync # Auto-sync relationships
126
+ ```
127
+
128
+ **Implementation:**
129
+ - Commands automatically update both specs
130
+ - Maintain bidirectional consistency
131
+ - Can still manually edit for asymmetric cases
132
+
133
+ **Pros:**
134
+ - ✅ Best of both worlds - bidirectional when desired
135
+ - ✅ Still allows manual asymmetric relationships
136
+ - ✅ Tooling enforces consistency
137
+
138
+ **Cons:**
139
+ - ❌ More commands to learn
140
+ - ❌ More complex implementation
141
+ - ❌ Risk of conflicts in concurrent edits
142
+
143
+ ### Option 4: Typed Relationships (Advanced)
144
+
145
+ **Introduce relationship types:**
146
+ ```yaml
147
+ relationships:
148
+ - spec: 043
149
+ type: part-of # This spec is part of 043
150
+ - spec: 018
151
+ type: prerequisite # 018 should be done first
152
+ - spec: 037
153
+ type: related # Loosely related
154
+ ```
155
+
156
+ **Pros:**
157
+ - ✅ Very expressive
158
+ - ✅ Clear semantics
159
+ - ✅ Supports complex project structures
160
+
161
+ **Cons:**
162
+ - ❌ Too complex for most users
163
+ - ❌ Against "lean" philosophy
164
+ - ❌ Overkill for 90% of use cases
165
+
166
+ ## Recommendation
167
+
168
+ **Go with Option 1: Make `related` truly bidirectional**
169
+
170
+ **Rationale:**
171
+ 1. **Matches user expectations** - "related" sounds symmetric
172
+ 2. **Lean philosophy** - simpler is better
173
+ 3. **Reduces maintenance** - update once, show everywhere
174
+ 4. **Backward compatible** - existing specs still work
175
+
176
+ **Keep directional for dependencies:**
177
+ - `depends_on` stays directional (hard dependency)
178
+ - `related` becomes bidirectional (soft relationship)
179
+ - This gives us both semantic clarity and ease of use
180
+
181
+ ## Plan
182
+
183
+ ### Phase 1: Update `deps` Command UX ⏳ READY TO IMPLEMENT
184
+ - [ ] Merge "Related" and "Related By" into single "Related Specs" section
185
+ - [ ] Show relationships bidirectionally without distinction
186
+ - [ ] Update help text and examples
187
+ - [ ] Test with launch specs (042, 037, 043, etc.)
188
+
189
+ **Implementation Notes (2025-11-04):**
190
+ - Current `deps` command shows "Related" and "Related By" separately
191
+ - Bidirectional approach is intuitive and reduces maintenance
192
+ - Low risk, high value UX improvement
193
+ - Estimated: 2-4 hours implementation
194
+ - Can implement independently, no blocking dependencies
195
+
196
+ ### Phase 2: Update Documentation
197
+ - [ ] Update AGENTS.md to explain relationship model
198
+ - [ ] Update command docs to clarify `depends_on` vs `related`
199
+ - [ ] Add examples showing both types
200
+ - [ ] Document: "related = bidirectional, depends_on = directional blocking"
201
+
202
+ ### Phase 3: Consider Enhanced Commands (Optional)
203
+ - [ ] Add `lean-spec relate <spec-a> <spec-b>` convenience command
204
+ - [ ] Add `lean-spec unrelate <spec-a> <spec-b>`
205
+ - [ ] Consider `--sync` flag to auto-update both sides
206
+ - [ ] Defer if not needed for v0.2.0
207
+
208
+ ### Phase 4: Visual Improvements
209
+ - [ ] Consider showing relationship direction for `depends_on`
210
+ - [ ] Use better symbols: → for depends, ⟷ for related
211
+ - [ ] Add color coding for relationship types
212
+ - [ ] Test with complex dependency graphs
213
+
214
+ ## Test
215
+
216
+ ### Bidirectional Behavior
217
+ - [ ] Spec A has `related: [B]`, `lean-spec deps A` shows B
218
+ - [ ] `lean-spec deps B` also shows A (bidirectional)
219
+ - [ ] Spec C has `depends_on: [D]`, shows directionally only
220
+ - [ ] `lean-spec deps D` shows "Blocks: C" (inverse)
221
+ - [ ] Combined test: A related to B, A depends on C
222
+
223
+ ### UX Clarity
224
+ - [ ] Users understand difference between `related` and `depends_on`
225
+ - [ ] No confusion about "Related" vs "Related By"
226
+ - [ ] Single section makes sense to first-time users
227
+ - [ ] Help text is clear and accurate
228
+
229
+ ### Edge Cases
230
+ - [ ] Spec relates to archived spec
231
+ - [ ] Spec relates to non-existent spec (graceful error)
232
+ - [ ] Circular relationships (A → B → A)
233
+ - [ ] Large relationship graphs (performance)
234
+
235
+ ### Migration
236
+ - [ ] Existing specs with `related` continue working
237
+ - [ ] No breaking changes to frontmatter format
238
+ - [ ] JSON output includes both directions
239
+ - [ ] MCP server reflects new behavior
240
+
241
+ ## Notes
242
+
243
+ ### Current State Analysis
244
+
245
+ **What we have now:**
246
+ ```typescript
247
+ // In spec 042
248
+ related: [043]
249
+
250
+ // Command output is asymmetric:
251
+ lean-spec deps 042 // Related: 043
252
+ lean-spec deps 043 // Related By: 042
253
+ ```
254
+
255
+ **The confusion:**
256
+ - "Related" sounds mutual/bidirectional
257
+ - But it's stored directionally (only in 042)
258
+ - We had to add "Related By" to show reverse direction
259
+ - This creates two sections for what feels like one relationship
260
+
261
+ ### Semantic Comparison
262
+
263
+ | Field | Current Behavior | Proposed Behavior |
264
+ |-------|-----------------|-------------------|
265
+ | `depends_on` | Directional blocking dependency | **Keep**: Directional - A depends on B (B blocks A) |
266
+ | `related` | Directional soft reference | **Change**: Bidirectional - A relates to B means B relates to A |
267
+ | Display | "Related" + "Related By" sections | **Merge**: Single "Related Specs" section |
268
+
269
+ ### Implementation Impact
270
+
271
+ **Code changes:**
272
+ - Update `findRelated()` to merge both directions
273
+ - Remove "Related By" section
274
+ - Update JSON output to include both directions in `related` field
275
+ - Update tests
276
+
277
+ **Estimated effort:** 2-4 hours
278
+
279
+ **Risk:** Low - backward compatible, improves UX
280
+
281
+ ### Alternative: Do Nothing
282
+
283
+ **Could argue:**
284
+ - Current behavior is technically correct
285
+ - Users can learn "Related" vs "Related By"
286
+ - Already implemented and working
287
+
288
+ **Counter-argument:**
289
+ - UX matters more than technical correctness
290
+ - If it's confusing, fix it
291
+ - Better now than after wider adoption
292
+ - Aligns with "lean" philosophy of clarity
293
+
294
+ ### Related Work
295
+
296
+ - Spec 043: Official Launch - needs clear relationship tracking
297
+ - Spec 018: Spec Validation - could validate relationship consistency
298
+ - Spec 037: Docs Overhaul - should document relationship model clearly
299
+
300
+ ### Open Questions
301
+
302
+ 1. **Should `lean-spec relate` command auto-edit both specs?**
303
+ - Pro: Maintains consistency
304
+ - Con: More complex, can wait for v0.3.0
305
+
306
+ 2. **How to handle `depends_on` in visualization?**
307
+ - Keep separate from `related`? Yes
308
+ - Show direction with arrows? Yes (→ for depends, ⟷ for related)
309
+
310
+ 3. **Should related specs show in board/list views?**
311
+ - Probably not - would clutter
312
+ - Keep in `deps` command only
313
+
314
+ 4. **What about `blocks` field?**
315
+ - Auto-computed from `depends_on` (inverse)
316
+ - Don't need explicit field
317
+ - Current behavior is correct
@@ -0,0 +1,276 @@
1
+ # Design: Stats & Dashboard Reorganization
2
+
3
+ ## Command Redesign
4
+
5
+ ### Part 1: Rename `analytics` → `stats`
6
+
7
+ **Why "stats" over "analytics"?**
8
+ - Shorter, easier to type
9
+ - More intuitive for quick metrics
10
+ - Matches common CLI patterns (`git stats`, `npm stats`)
11
+ - Less intimidating for non-technical PMs
12
+
13
+ **Implementation:**
14
+ 1. Merge `src/commands/analytics.ts` logic into `src/commands/stats.ts`
15
+ 2. Delete `src/commands/analytics.ts` entirely
16
+ 3. Update command registration in `cli.ts`
17
+ 4. Remove analytics from help text
18
+ 5. Keep all analytics functionality (just rename command)
19
+
20
+ **Breaking Change (v0.2.0):**
21
+ - `lean-spec analytics` removed → use `lean-spec stats`
22
+ - Note in CHANGELOG as breaking change
23
+ - Update all documentation immediately
24
+
25
+ ### Part 2: Simplify Default Stats Output
26
+
27
+ **Current Problem**: `lean-spec stats` shows everything (status, priority, tags, timeline, velocity)
28
+ - Too much info for quick check-ins
29
+ - Takes time to render
30
+ - Overwhelming for PMs
31
+
32
+ **New Default Output** (`lean-spec stats`):
33
+ ```
34
+ 📊 Spec Stats
35
+
36
+ 📈 Overview
37
+ Total Specs 42
38
+ Active (Planned+WIP) 20
39
+ Complete 15
40
+ Health Score 73% ✓
41
+
42
+ 📊 Status
43
+ 📅 Planned ████░░░░ 5
44
+ ⏳ In Progress ████████ 15
45
+ ✅ Complete ██████░░ 10
46
+
47
+ 🎯 Priority Focus
48
+ 🔴 Critical 2 specs (1 overdue!)
49
+ 🟠 High 5 specs (3 in-progress)
50
+
51
+ ⚠️ Needs Attention
52
+ • spec-042: Critical bug overdue by 2 days
53
+ • 5 specs in-progress > 7 days
54
+
55
+ 🚀 Velocity Summary
56
+ Avg Cycle Time 5.2 days ✓ (target: 7d)
57
+ Throughput 2.8/week ↑
58
+ WIP 5 specs
59
+
60
+ 💡 Use `lean-spec stats --full` for detailed analytics
61
+ ```
62
+
63
+ **Key Changes:**
64
+ - **Focus on actionable insights** - What needs attention?
65
+ - **Health score** - Simple completion rate (% complete)
66
+ - **Priority focus** - Only show priorities that matter (critical/high with issues)
67
+ - **Needs attention** - Top 3-5 actionable items
68
+ - **Velocity summary** - Key metrics only (not full breakdown)
69
+ - **Clear next action** - Prompt for `--full` if they want more
70
+
71
+ **Full Stats Output** (`lean-spec stats --full`):
72
+ - Everything from current analytics command
73
+ - Stats + Timeline + Velocity (all sections)
74
+ - Equivalent to current `lean-spec analytics` output
75
+
76
+ ### Part 3: Integrate Smart Insights into Stats
77
+
78
+ **Current**: Smart insights in dashboard, velocity in analytics (separated)
79
+ **New**: Both unified in stats command
80
+
81
+ **Smart Insights Algorithm** (for "Needs Attention"):
82
+ 1. **Critical overdue** - `priority=critical, due < today, status != complete`
83
+ 2. **High overdue** - `priority=high, due < today, status != complete`
84
+ 3. **Long-running WIP** - `status=in-progress, updated > 7 days ago`
85
+ 4. **Blocked specs** - Has dependencies but can't start
86
+ 5. **Critical not started** - `priority=critical, status=planned`
87
+
88
+ Show top 5 items, then "and N more need attention"
89
+
90
+ **Velocity Integration:**
91
+ - Include velocity summary in default stats
92
+ - Full velocity breakdown in `--full` or `--velocity`
93
+ - Make velocity calculations part of core stats logic
94
+
95
+ ### Part 4: Enhance Board with Health Summary
96
+
97
+ **Why**: Board is the primary PM/workflow entry point - should provide context
98
+
99
+ **New Board Output:**
100
+ ```
101
+ 📋 Spec Kanban Board
102
+
103
+ ╔══════════════════════════════════════════════════════════╗
104
+ ║ Project Health ║
105
+ ║ 42 total · 20 active · 15 complete · 73% health ║
106
+ ║ ⚠️ 2 critical overdue · 5 specs WIP > 7 days ║
107
+ ║ 🚀 Velocity: 5.2d avg cycle · 2.8/wk throughput ║
108
+ ╚══════════════════════════════════════════════════════════╝
109
+
110
+ 📅 Planned (5)
111
+ 🔴 Critical (2)
112
+ spec-048-critical-bug @alice #bug #launch
113
+ spec-047-security-patch @bob #security
114
+ 🟠 High (3)
115
+ spec-046-stats-refactor @alice #ux #refactor
116
+ ...
117
+
118
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
119
+
120
+ ⏳ In Progress (15)
121
+ 🔴 Critical (1)
122
+ spec-042-error-handling @alice #bug (8d ⚠️ long)
123
+ ...
124
+ ```
125
+
126
+ **Health Summary Box Shows:**
127
+ - **Totals** - Quick counts
128
+ - **Health score** - Simple % complete
129
+ - **Alerts** - Critical issues needing attention
130
+ - **Velocity snapshot** - Key metrics only
131
+
132
+ **Options:**
133
+ - `lean-spec board` - Default (with health summary)
134
+ - `lean-spec board --simple` - Original kanban-only view (no health box)
135
+ - `lean-spec board --health-only` - Just show health box, no kanban
136
+
137
+ **Implementation:**
138
+ - Extract health calculation to `utils/health.ts`
139
+ - Reuse velocity calculations from stats
140
+ - Keep board rendering clean (separate concerns)
141
+
142
+ ### Part 5: Remove Dashboard Command
143
+
144
+ **Why Remove?**
145
+ - With enhanced board + simplified stats, dashboard is redundant
146
+ - Users can get overview from `lean-spec board`
147
+ - Detailed analytics from `lean-spec stats --full`
148
+ - Reduces command sprawl
149
+
150
+ **Migration Path:**
151
+ ```
152
+ lean-spec dashboard → lean-spec board
153
+ lean-spec dashboard --compact → lean-spec board --health-only
154
+ lean-spec dashboard --json → lean-spec stats --json
155
+ ```
156
+
157
+ **Removal Strategy (v0.2.0):**
158
+ - Delete `src/commands/dashboard.ts` entirely
159
+ - Remove from CLI registration
160
+ - Update all documentation
161
+ - Note in CHANGELOG as breaking change
162
+
163
+ ## Architecture
164
+
165
+ **New File Structure:**
166
+ ```
167
+ src/commands/
168
+ ├── stats.ts # ENHANCED: Unified stats + velocity + insights
169
+ ├── board.ts # ENHANCED: Kanban + health summary
170
+ └── ... # analytics.ts and dashboard.ts DELETED
171
+
172
+ src/utils/
173
+ ├── health.ts # NEW: Health score calculation
174
+ ├── velocity.ts # KEEP: Velocity metrics (used by stats)
175
+ ├── insights.ts # NEW: Smart insights algorithm
176
+ └── spec-stats.ts # KEEP: Basic counting/grouping
177
+ ```
178
+
179
+ ## Health Score Calculation
180
+
181
+ `utils/health.ts`:
182
+ ```typescript
183
+ export interface HealthMetrics {
184
+ score: number; // 0-100
185
+ totalSpecs: number;
186
+ activeSpecs: number;
187
+ completeSpecs: number;
188
+ criticalIssues: string[];
189
+ warnings: string[];
190
+ }
191
+
192
+ export function calculateHealth(specs: SpecInfo[]): HealthMetrics {
193
+ // Simple: completion_rate = complete / total * 100
194
+
195
+ let completeCount = 0;
196
+ let completeWeight = 0;
197
+ const criticalIssues: string[] = [];
198
+ const warnings: string[] = [];
199
+
200
+ for (const spec of specs) {
201
+ const weight = priorityWeight(spec.frontmatter.priority);
202
+ totalWeight += weight;
203
+
204
+ if (spec.frontmatter.status === 'complete') {
205
+ completeWeight += weight;
206
+ }
207
+
208
+ // Detect critical issues
209
+ if (isCriticalOverdue(spec)) {
210
+ criticalIssues.push(spec.path);
211
+ }
212
+ if (isLongRunning(spec)) {
213
+ warnings.push(spec.path);
214
+ }
215
+ }
216
+
217
+ return {
218
+ score: Math.round((completeWeight / totalWeight) * 100),
219
+ totalSpecs: specs.length,
220
+ activeSpecs: specs.filter(s => ['planned', 'in-progress'].includes(s.frontmatter.status)).length,
221
+ completeSpecs: specs.filter(s => s.frontmatter.status === 'complete').length,
222
+ criticalIssues,
223
+ warnings,
224
+ };
225
+ }
226
+ ```
227
+
228
+ ## Smart Insights
229
+
230
+ `utils/insights.ts`:
231
+ ```typescript
232
+ export interface Insight {
233
+ severity: 'critical' | 'warning' | 'info';
234
+ message: string;
235
+ specs: string[];
236
+ }
237
+
238
+ export function generateInsights(specs: SpecInfo[]): Insight[] {
239
+ const insights: Insight[] = [];
240
+
241
+ // 1. Critical overdue
242
+ const criticalOverdue = specs.filter(s =>
243
+ s.frontmatter.priority === 'critical' &&
244
+ s.frontmatter.due && dayjs(s.frontmatter.due).isBefore(dayjs()) &&
245
+ s.frontmatter.status !== 'complete'
246
+ );
247
+
248
+ if (criticalOverdue.length > 0) {
249
+ insights.push({
250
+ severity: 'critical',
251
+ message: `${criticalOverdue.length} critical specs overdue`,
252
+ specs: criticalOverdue.map(s => s.path),
253
+ });
254
+ }
255
+
256
+ // 2. Long-running WIP
257
+ const longRunning = specs.filter(s =>
258
+ s.frontmatter.status === 'in-progress' &&
259
+ s.frontmatter.updated &&
260
+ dayjs().diff(dayjs(s.frontmatter.updated), 'day') > 7
261
+ );
262
+
263
+ if (longRunning.length > 0) {
264
+ insights.push({
265
+ severity: 'warning',
266
+ message: `${longRunning.length} specs in-progress > 7 days`,
267
+ specs: longRunning.map(s => s.path),
268
+ });
269
+ }
270
+
271
+ // 3. Critical not started
272
+ // ... more insight rules
273
+
274
+ return insights.slice(0, 5); // Top 5 only
275
+ }
276
+ ```