@leanspec/ui 0.2.7-dev.20251126100750 → 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 +2 -2
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  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 +2 -2
  50. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  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/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
  360. /package/.next/standalone/packages/ui/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
  361. /package/.next/standalone/packages/ui/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
  362. /package/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_buildManifest.js +0 -0
  363. /package/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_clientMiddlewareManifest.json +0 -0
  364. /package/.next/static/{_6lLNPdRExIaMIs9fFqLK → 6nq7WNafPv5Bf_7mWgRQ-}/_ssgManifest.js +0 -0
@@ -0,0 +1,413 @@
1
+ ---
2
+ status: complete
3
+ created: '2025-11-02'
4
+ tags:
5
+ - feature
6
+ - templates
7
+ - cli
8
+ - customization
9
+ priority: high
10
+ completed: '2025-11-02'
11
+ ---
12
+
13
+ # Customization-First Template System
14
+
15
+ > **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-02 · **Tags**: feature, templates, cli, customization
16
+
17
+ ## Overview
18
+
19
+ **Core Principle**: LeanSpec's whole purpose is to ensure full control for users over the SDD process with AI agents. Customization must be a first-class citizen, not an afterthought.
20
+
21
+ **Current Problem**: Templates are locked in the npm package. Users cannot customize spec templates, frontmatter fields, variables, or template directory structure without modifying package files (which are lost on updates).
22
+
23
+ **Solution**: Invert the architecture - templates live in the user's project (`.lean-spec/templates/`), not the npm package. Package templates become initialization starters only.
24
+
25
+ ## Current Architecture (Template-Centric) ❌
26
+
27
+ ```
28
+ npm package (read-only)
29
+ └── templates/
30
+ ├── minimal/
31
+ ├── standard/
32
+ └── enterprise/
33
+
34
+ User's project
35
+ └── .lean-spec/
36
+ └── config.json # Only stores template name reference
37
+ ```
38
+
39
+ **Problems:**
40
+ - Templates in npm package are immutable
41
+ - No way to add custom templates
42
+ - No way to customize spec structure
43
+ - Users don't own their workflow
44
+
45
+ ## New Architecture (User-Centric) ✅
46
+
47
+ ```
48
+ User's project
49
+ └── .lean-spec/
50
+ ├── config.json
51
+ └── templates/
52
+ ├── spec-template.md # Default (copied from npm on init)
53
+ ├── api-spec.md # User's custom API template
54
+ ├── rfc.md # User's custom RFC template
55
+ └── ... # Any custom templates
56
+
57
+ npm package (initialization only)
58
+ └── templates/
59
+ ├── minimal/
60
+ ├── standard/
61
+ └── enterprise/
62
+ ```
63
+
64
+ **Benefits:**
65
+ - ✅ Users own and control all templates
66
+ - ✅ Can customize immediately after init
67
+ - ✅ Can add unlimited custom templates
68
+ - ✅ Templates are versioned with project
69
+ - ✅ No dependency on npm package structure
70
+ - ✅ True customization-first
71
+
72
+ ## Design
73
+
74
+ ### 1. Template Lifecycle
75
+
76
+ **Phase 1: Initialization (`lean-spec init`)**
77
+ ```bash
78
+ lean-spec init
79
+ # User chooses template: minimal/standard/enterprise
80
+ # Template copied from npm package to .lean-spec/templates/spec-template.md
81
+ # User immediately has full control
82
+ ```
83
+
84
+ **Phase 2: Customization (User's choice)**
85
+ ```bash
86
+ # Edit default template
87
+ vim .lean-spec/templates/spec-template.md
88
+
89
+ # Add custom templates
90
+ cp .lean-spec/templates/spec-template.md .lean-spec/templates/api-spec.md
91
+ # Edit api-spec.md for API-specific structure
92
+
93
+ # Register in config
94
+ lean-spec templates add api api-spec.md
95
+ ```
96
+
97
+ **Phase 3: Usage**
98
+ ```bash
99
+ # Use default template
100
+ lean-spec create my-feature
101
+
102
+ # Use custom template
103
+ lean-spec create my-api --template=api
104
+ ```
105
+
106
+ ### 2. Enhanced Config Structure
107
+
108
+ ```json
109
+ {
110
+ "template": "spec-template.md",
111
+ "templates": {
112
+ "default": "spec-template.md",
113
+ "api": "api-spec.md",
114
+ "rfc": "rfc.md"
115
+ },
116
+ "specsDir": "specs",
117
+ "structure": {
118
+ "pattern": "{date}/{seq}-{name}/",
119
+ "dateFormat": "YYYYMMDD",
120
+ "sequenceDigits": 3,
121
+ "defaultFile": "README.md"
122
+ },
123
+ "frontmatter": {
124
+ "required": ["status", "created"],
125
+ "optional": ["tags", "priority", "assignee", "reviewer"],
126
+ "custom": {
127
+ "epic": "string",
128
+ "sprint": "number",
129
+ "estimate": "string",
130
+ "milestone": "string"
131
+ }
132
+ },
133
+ "variables": {
134
+ "project_name": "my-project",
135
+ "team": "platform",
136
+ "author": "${git_user}",
137
+ "repo": "${git_repo}"
138
+ }
139
+ }
140
+ ```
141
+
142
+ ### 3. New Commands
143
+
144
+ ```bash
145
+ # List available templates in project
146
+ lean-spec templates list
147
+
148
+ # Add/register a template
149
+ lean-spec templates add <name> <file>
150
+ # Example: lean-spec templates add api api-spec.md
151
+
152
+ # Show template content
153
+ lean-spec templates show <name>
154
+
155
+ # Remove template
156
+ lean-spec templates remove <name>
157
+
158
+ # Copy existing template as starting point
159
+ lean-spec templates copy <source> <target>
160
+ # Example: lean-spec templates copy default api-spec
161
+ ```
162
+
163
+ ### 4. Template Resolution
164
+
165
+ **In `create.ts`:**
166
+
167
+ ```typescript
168
+ async function resolveTemplate(
169
+ templateName: string | undefined,
170
+ config: LeanSpecConfig,
171
+ cwd: string
172
+ ): Promise<string> {
173
+ const templatesDir = path.join(cwd, '.lean-spec', 'templates');
174
+
175
+ // 1. Check for --template flag
176
+ if (templateName && config.templates?.[templateName]) {
177
+ const templateFile = config.templates[templateName];
178
+ const templatePath = path.join(templatesDir, templateFile);
179
+
180
+ try {
181
+ await fs.access(templatePath);
182
+ return templatePath;
183
+ } catch {
184
+ console.error(chalk.red(`Template not found: ${templateName}`));
185
+ console.error(chalk.gray(`Looking for: ${templatePath}`));
186
+ console.error(chalk.gray(`Available templates: ${Object.keys(config.templates || {}).join(', ')}`));
187
+ process.exit(1);
188
+ }
189
+ }
190
+
191
+ // 2. Use default template from config
192
+ const defaultTemplate = config.template || 'spec-template.md';
193
+ const defaultPath = path.join(templatesDir, defaultTemplate);
194
+
195
+ try {
196
+ await fs.access(defaultPath);
197
+ return defaultPath;
198
+ } catch {
199
+ // Error - templates should exist after init
200
+ console.error(chalk.red('No templates found!'));
201
+ console.error(chalk.gray('Expected: .lean-spec/templates/spec-template.md'));
202
+ console.error(chalk.yellow('Run: lean-spec init'));
203
+ process.exit(1);
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### 5. Custom Frontmatter Support
209
+
210
+ **Extend frontmatter parser to support custom fields:**
211
+
212
+ ```typescript
213
+ interface FrontmatterConfig {
214
+ required: string[];
215
+ optional: string[];
216
+ custom?: Record<string, 'string' | 'number' | 'boolean' | 'array'>;
217
+ }
218
+
219
+ // Validate and parse custom fields
220
+ function parseCustomFrontmatter(
221
+ frontmatter: Record<string, any>,
222
+ config: FrontmatterConfig
223
+ ): Record<string, any> {
224
+ const custom: Record<string, any> = {};
225
+
226
+ if (config.custom) {
227
+ for (const [key, type] of Object.entries(config.custom)) {
228
+ if (key in frontmatter) {
229
+ // Type validation and coercion
230
+ custom[key] = coerceType(frontmatter[key], type);
231
+ }
232
+ }
233
+ }
234
+
235
+ return custom;
236
+ }
237
+ ```
238
+
239
+ **Usage:**
240
+ ```bash
241
+ # Create with custom frontmatter
242
+ lean-spec create my-feature --epic=PLAT-123 --sprint=42
243
+
244
+ # Update custom fields
245
+ lean-spec update specs/20251102/001-my-feature --epic=PLAT-456
246
+ ```
247
+
248
+ ### 6. Variable Substitution System
249
+
250
+ **Built-in variables:**
251
+ - `{name}` - Spec name
252
+ - `{date}` - Creation date
253
+ - `{project_name}` - From package.json or config
254
+ - `{author}` - From git config
255
+ - `{git_user}` - Git username
256
+ - `{git_repo}` - Git repository name
257
+ - `{team}` - From config
258
+
259
+ **Custom variables from config:**
260
+ ```json
261
+ {
262
+ "variables": {
263
+ "company": "Acme Corp",
264
+ "department": "Platform Engineering",
265
+ "default_reviewer": "alice"
266
+ }
267
+ }
268
+ ```
269
+
270
+ **In templates:**
271
+ ```markdown
272
+ ---
273
+ status: planned
274
+ created: {date}
275
+ assignee: {author}
276
+ reviewer: {default_reviewer}
277
+ epic: {epic}
278
+ ---
279
+
280
+ # {name}
281
+
282
+ **Project**: {project_name}
283
+ **Team**: {team}
284
+ **Company**: {company}
285
+
286
+ ...
287
+ ```
288
+
289
+ ## Implementation Plan
290
+
291
+ ### Phase 1: Core Template System (Week 1)
292
+ - [ ] Create `.lean-spec/templates/` directory on init
293
+ - [ ] Copy chosen template to `.lean-spec/templates/spec-template.md`
294
+ - [ ] Update `create.ts` to use project templates (remove package fallback)
295
+ - [ ] Implement template resolution logic
296
+ - [ ] Update `init.ts` to set up templates directory
297
+
298
+ ### Phase 2: Template Management (Week 1)
299
+ - [ ] Implement `lean-spec templates list` command
300
+ - [ ] Implement `lean-spec templates add <name> <file>` command
301
+ - [ ] Implement `lean-spec templates show <name>` command
302
+ - [ ] Implement `lean-spec templates copy <source> <target>` command
303
+ - [ ] Implement `lean-spec templates remove <name>` command
304
+ - [ ] Add `--template` flag to `create` command
305
+
306
+ ### Phase 3: Custom Frontmatter (Week 2)
307
+ - [ ] Extend config.json schema with `frontmatter.custom`
308
+ - [ ] Update frontmatter parser to handle custom fields
309
+ - [ ] Add validation and type coercion
310
+ - [ ] Support custom fields in `create` command
311
+ - [ ] Support custom fields in `update` command
312
+ - [ ] Update `list` command to show custom fields
313
+
314
+ ### Phase 4: Variable System (Week 2)
315
+ - [ ] Implement built-in variable resolution
316
+ - [ ] Support custom variables from config
317
+ - [ ] Add git integration for author/repo variables
318
+ - [ ] Apply variables during template rendering
319
+ - [ ] Document all available variables
320
+
321
+ ### Phase 5: Documentation & Dogfooding (Week 2)
322
+ - [ ] Update README.md with customization examples
323
+ - [ ] Update AGENTS.md with template customization workflow
324
+ ## Test Cases
325
+
326
+ ### Template Resolution
327
+ - [ ] Uses project template when exists
328
+ - [ ] Errors when template missing (no fallback)
329
+ - [ ] Resolves --template flag correctly
330
+ - [ ] Errors gracefully with helpful message when template not found
331
+
332
+ ### Template Management
333
+ - [ ] `templates list` shows all project templates
334
+ - [ ] `templates add` registers new template
335
+ - [ ] `templates copy` creates copy with new name
336
+ - [ ] `templates remove` unregisters template
337
+ - [ ] Config stays in sync with template commands
338
+
339
+ ### Custom Frontmatter
340
+ - [ ] Parses custom fields from config
341
+ - [ ] Validates field types
342
+ - [ ] Accepts custom fields in create command
343
+ - [ ] Updates custom fields in update command
344
+ - [ ] Lists specs with custom fields
345
+
346
+ ### Variables
347
+ - [ ] Substitutes built-in variables
348
+ - [ ] Substitutes custom variables from config
349
+ - [ ] Resolves git variables correctly
350
+ - [ ] Handles missing variables gracefully
351
+
352
+ ### Init Process
353
+ - [ ] Creates .lean-spec/templates/ directory
354
+ - [ ] Copies chosen template to spec-template.md
355
+ - [ ] Sets up config with templates section
356
+ - [ ] Works with merge/backup/skip for AGENTS.md
357
+
358
+ ## Breaking Changes
359
+
360
+ **This is a breaking change** - but since lean-spec is new and only dogfooding itself, this is acceptable.
361
+
362
+ **What breaks:**
363
+ - Projects initialized with old version will have no `.lean-spec/templates/`
364
+ - `lean-spec create` will fail with clear error message
365
+ - Solution: Run `lean-spec init` again or manually create templates directory
366
+
367
+ **Migration for lean-spec itself:**
368
+ 1. Create `.lean-spec/templates/` directory
369
+ 2. Copy current package template to `.lean-spec/templates/spec-template.md`
370
+ 3. Update config to include templates section
371
+ 4. Test creating new specstinuing with: lean-spec create my-feature
372
+ ```
373
+
374
+ **Manual migration:**
375
+ ```bash
376
+ lean-spec templates migrate
377
+ ```
378
+
379
+ ## Non-Goals (for v1)
380
+
381
+ - Template inheritance/composition system
382
+ - Template marketplace or sharing
383
+ - Template validation/linting tools
384
+ - Visual template editor
385
+ - Template versioning system
386
+ - Hot-reloading of templates
387
+ - Backward compatibility with pre-templates projects
388
+
389
+ These can be added later based on user feedback.ly after init
390
+ - ✅ Users can add unlimited custom templates
391
+ - ✅ Users can define custom frontmatter fields
392
+ - ✅ Users can define custom variables
393
+ - ✅ Zero breaking changes for existing projects
394
+ - ✅ Documentation clearly shows customization options
395
+
396
+ ## Notes
397
+
398
+ **Why this is critical:**
399
+
400
+ LeanSpec's entire value proposition is about **giving users control** over their SDD process. If templates are locked in npm packages, we're contradicting our core principle. This redesign makes customization the default, not an advanced feature.
401
+
402
+ **Philosophy alignment:**
403
+
404
+ > "LeanSpec is a mindset. Adapt these guidelines to what actually helps."
405
+
406
+ This only works if users can actually adapt the system. Moving templates to `.lean-spec/templates/` makes customization tangible and discoverable.
407
+
408
+ **Learning from other tools:**
409
+ - **Next.js**: `eject` is available but discouraged (creates maintenance burden)
410
+ - **Create React App**: Same - eject is one-way, creates complexity
411
+ - **Prettier/Tailwind**: Configs in project - users have full control ✅
412
+
413
+ We should follow the Prettier/Tailwind model: sensible defaults, full customization in user's project.
@@ -0,0 +1,255 @@
1
+ ---
2
+ status: complete
3
+ created: 2025-11-02
4
+ tags: [release, publishing, distribution]
5
+ priority: high
6
+ ---
7
+
8
+ # npm-publishing
9
+
10
+ > **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-02
11
+
12
+ ## Overview
13
+
14
+ Publish LeanSpec to npm registry to make it available for global installation and use by external teams. Currently the package is only used locally for dogfooding.
15
+
16
+ **Why Now:**
17
+ - Core features are stable (13 specs completed)
18
+ - Test suite is comprehensive (62 tests passing)
19
+ - Template system redesign is complete
20
+ - No compilation errors
21
+ - Ready for external validation and feedback
22
+
23
+ **What Success Looks Like:**
24
+ - Package published to npm as `lean-spec`
25
+ - Users can install via `npm install -g lean-spec` or `pnpm add -D lean-spec`
26
+ - Semantic versioning established
27
+ - Changelog maintained
28
+ - Clear upgrade path for future versions
29
+
30
+ ## Design
31
+
32
+ ### 1. Pre-Publishing Checklist
33
+
34
+ **Package.json Audit:**
35
+ - ✅ Name: `lean-spec` (check npm availability)
36
+ - ✅ Version: Currently `0.1.0` (appropriate for initial release)
37
+ - ✅ Description: Clear and concise
38
+ - ✅ Keywords: Good SEO (spec, ai, agent, sdd)
39
+ - ✅ License: MIT
40
+ - ⚠️ Repository: Add GitHub repo URL
41
+ - ⚠️ Homepage: Add project homepage
42
+ - ⚠️ Bugs: Add issues URL
43
+ - ⚠️ Author: Verify author info
44
+ - ✅ Bin: `lean-spec` command defined
45
+
46
+ **Build Configuration:**
47
+ - ✅ TypeScript compilation working
48
+ - ✅ tsup building correctly
49
+ - ⚠️ Files field: Specify what to publish (bin/, dist/, templates/)
50
+ - ⚠️ .npmignore: Exclude dev files (src/, coverage/, .lean-spec/, specs/)
51
+
52
+ **Documentation:**
53
+ - ✅ README.md comprehensive
54
+ - ⚠️ CHANGELOG.md: Create initial changelog
55
+ - ✅ LICENSE: MIT license present
56
+ - ✅ CONTRIBUTING.md: Present
57
+
58
+ ### 2. Package Structure
59
+
60
+ ```
61
+ lean-spec/
62
+ ├── bin/ # CLI entry point ✅
63
+ │ └── lspec.js
64
+ ├── dist/ # Compiled JS (tsup output) ✅
65
+ │ ├── cli.js
66
+ │ ├── commands/
67
+ │ └── ...
68
+ ├── templates/ # Built-in templates ✅
69
+ │ ├── minimal/
70
+ │ ├── standard/
71
+ │ └── enterprise/
72
+ ├── package.json # Package metadata ⚠️
73
+ ├── README.md # Documentation ✅
74
+ ├── LICENSE # MIT license ✅
75
+ └── CHANGELOG.md # Version history ❌
76
+ ```
77
+
78
+ **What NOT to publish:**
79
+ - `src/` (TypeScript source - only dist/)
80
+ - `coverage/` (test coverage reports)
81
+ - `.lean-spec/` (project's own specs)
82
+ - `specs/` (development specs)
83
+ - `*.test.ts` files
84
+ - Development configs (vitest.config.ts, tsconfig.json, etc.)
85
+
86
+ ### 3. Versioning Strategy
87
+
88
+ Follow semantic versioning (semver):
89
+ - `0.1.0` - Initial public release (current)
90
+ - `0.x.y` - Pre-1.0 (breaking changes allowed in minor versions)
91
+ - `1.0.0` - First stable release (after community feedback)
92
+
93
+ **Version Milestones:**
94
+ - `0.1.0` - Initial release (core features)
95
+ - `0.2.0` - Custom frontmatter + variables complete
96
+ - `0.3.0` - VS Code extension ready
97
+ - `1.0.0` - Production-ready, API stable
98
+
99
+ ### 4. Publishing Process
100
+
101
+ **Manual Publishing (v1):**
102
+ ```bash
103
+ # 1. Update version
104
+ pnpm version patch|minor|major
105
+
106
+ # 2. Build
107
+ pnpm build
108
+
109
+ # 3. Test build
110
+ npm pack --dry-run
111
+
112
+ # 4. Review package contents
113
+ tar -tzf lean-spec-*.tgz
114
+
115
+ # 5. Publish
116
+ npm publish
117
+
118
+ # 6. Tag release
119
+ git tag v0.1.0
120
+ git push origin v0.1.0
121
+ ```
122
+
123
+ **Automated Publishing (v2 - future):**
124
+ - GitHub Actions workflow on tag push
125
+ - Automated tests before publish
126
+ - Release notes generation
127
+
128
+ ### 5. Post-Publishing Tasks
129
+
130
+ - [ ] Add npm badge to README
131
+ - [ ] Announce on relevant communities (if appropriate)
132
+ - [ ] Monitor npm stats
133
+ - [ ] Set up GitHub releases
134
+ - [ ] Create installation documentation
135
+
136
+ ## Plan
137
+
138
+ ### Phase 1: Package Preparation
139
+ - [x] Check npm name availability: `npm view lean-spec` ✅ Available
140
+ - [x] Update package.json with repository, homepage, bugs URLs
141
+ - [x] Add `files` field to package.json (include dist, bin, templates)
142
+ - [x] Create .npmignore (exclude src, coverage, specs, .lean-spec)
143
+ - [x] Create CHANGELOG.md with 0.1.0 entry
144
+ - [x] Verify author and license information
145
+ - [x] Test local installation: `npm link`
146
+
147
+ ### Phase 2: Build Verification
148
+ - [x] Clean build: `rm -rf dist && pnpm build` ✅ Success
149
+ - [x] Verify dist/ contains all necessary files
150
+ - [x] Test CLI after build: `node bin/lspec.js --help`
151
+ - [x] Run full test suite: `pnpm test:run` ✅ 62 tests passing
152
+ - [x] Check for TypeScript errors: `pnpm typecheck` ✅ No errors
153
+ - [x] Dry run pack: `npm pack --dry-run` ✅ 58.6 KB package
154
+ - [x] Review package contents: `tar -tzf lean-spec-*.tgz`
155
+
156
+ ### Phase 3: Publishing
157
+ - [ ] Create npm account (if needed)
158
+ - [ ] Login: `npm login`
159
+ - [ ] Publish: `npm publish` (or `npm publish --access public` if scoped)
160
+ - [ ] Verify on npm: https://www.npmjs.com/package/lean-spec
161
+ - [ ] Test installation: `npm install -g lean-spec`
162
+ - [ ] Test CLI works: `lean-spec --version`
163
+
164
+ ### Phase 4: Git Tagging & Release
165
+ - [ ] Tag release: `git tag v0.1.0`
166
+ - [ ] Push tag: `git push origin v0.1.0`
167
+ - [ ] Create GitHub release with changelog
168
+ - [ ] Add release notes (copy from CHANGELOG.md)
169
+
170
+ ### Phase 5: Documentation Updates
171
+ - [ ] Add npm installation badge to README
172
+ - [ ] Update README with installation instructions
173
+ - [ ] Add "Installing from npm" section
174
+ - [ ] Document upgrade process
175
+ - [ ] Add troubleshooting section
176
+
177
+ ## Test
178
+
179
+ ### Pre-Publishing Tests
180
+ - [x] `npm pack --dry-run` succeeds without errors ✅
181
+ - [x] Package size is reasonable (< 5MB) ✅ 58.6 KB
182
+ - [x] All necessary files are included in tarball ✅
183
+ - [x] No sensitive files included (.env, .lean-spec/, specs/) ✅
184
+ - [x] bin/lspec.js has correct shebang: `#!/usr/bin/env node` ✅
185
+
186
+ ### Post-Publishing Tests
187
+ - [x] `npm link` for local testing ✅
188
+ - [x] `lean-spec --version` shows correct version ✅ 0.1.0
189
+ - [x] `lean-spec --help` displays help ✅
190
+ - [x] `lean-spec init` works in fresh directory ✅
191
+ - [x] `lean-spec create test` creates a spec ✅
192
+ - [x] All commands work after global install ✅
193
+ - [ ] `npm install -g lean-spec` works (after publishing)
194
+ - [ ] Works on macOS, Linux (test in CI)
195
+
196
+ ### Documentation Tests
197
+ - [ ] README on npm page renders correctly
198
+ - [ ] Installation instructions work
199
+ - [ ] Quick start guide works for new users
200
+
201
+ ## Notes
202
+
203
+ **Preparation Complete - 2025-11-02:**
204
+ - ✅ Package name `lean-spec` confirmed available on npm
205
+ - ✅ package.json updated with all metadata (repository, homepage, bugs, files)
206
+ - ✅ .npmignore created to exclude dev files
207
+ - ✅ CHANGELOG.md created with comprehensive v0.1.0 entry
208
+ - ✅ Clean build successful (58.6 KB package, 254.8 KB unpacked)
209
+ - ✅ All 62 tests passing with no TypeScript errors
210
+ - ✅ Local installation tested with `npm link`
211
+ - ✅ All CLI commands verified working (init, create, list, etc.)
212
+
213
+ **Ready for Publishing:**
214
+ The package is fully prepared and tested. Run `npm publish` when ready to release v0.1.0 to the npm registry.
215
+
216
+ **NPM Scope Considerations:**
217
+ - Unscoped: `lean-spec` (requires name availability)
218
+ - Scoped: `@codervisor/lean-spec` (guaranteed availability under your org)
219
+ - Recommendation: Try unscoped first, fall back to scoped
220
+
221
+ **Package.json Files Field Example:**
222
+ ```json
223
+ {
224
+ "files": [
225
+ "bin/",
226
+ "dist/",
227
+ "templates/",
228
+ "README.md",
229
+ "LICENSE",
230
+ "CHANGELOG.md"
231
+ ]
232
+ }
233
+ ```
234
+
235
+ **.npmignore Example:**
236
+ ```
237
+ src/
238
+ coverage/
239
+ specs/
240
+ .lean-spec/
241
+ *.test.ts
242
+ vitest.config.ts
243
+ tsconfig.json
244
+ tsup.config.ts
245
+ .git/
246
+ .github/
247
+ ```
248
+
249
+ **Breaking Changes:**
250
+ - None for v0.1.0 (initial release)
251
+ - For future versions, document in CHANGELOG.md
252
+
253
+ **References:**
254
+ - npm docs: https://docs.npmjs.com/cli/v10/commands/npm-publish
255
+ - Semantic versioning: https://semver.org/