@leanspec/ui 0.2.7-dev.20251128020042 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +2 -0
  4. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  7. package/.next/standalone/packages/ui/.next/routes-manifest.json +12 -0
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -18
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
  24. package/.next/standalone/packages/ui/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
  25. package/.next/standalone/packages/ui/.next/server/app/api/context/route/build-manifest.json +11 -0
  26. package/.next/standalone/packages/ui/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
  27. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +8 -0
  28. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.map +5 -0
  29. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -0
  30. package/.next/standalone/packages/ui/.next/server/app/api/context/route_client-reference-manifest.js +2 -0
  31. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/context/page/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +18 -0
  49. package/.next/standalone/packages/ui/.next/server/app/context/page/next-font-manifest.json +6 -0
  50. package/.next/standalone/packages/ui/.next/server/app/context/page/react-loadable-manifest.json +1 -0
  51. package/.next/standalone/packages/ui/.next/server/app/context/page/server-reference-manifest.json +4 -0
  52. package/.next/standalone/packages/ui/.next/server/app/context/page.js +19 -0
  53. package/.next/standalone/packages/ui/.next/server/app/context/page.js.map +5 -0
  54. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -0
  55. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +2 -0
  56. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  65. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  67. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +12 -12
  68. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +12 -12
  69. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  70. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +3 -3
  71. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  72. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  73. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  76. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  78. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +2 -0
  80. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +2 -2
  81. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
  82. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
  83. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
  84. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +3 -0
  85. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
  86. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
  87. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_context_route_actions_dead6daa.js +3 -0
  88. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__12b4eb41._.js +3 -0
  89. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +3 -0
  90. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__6e739186._.js +7 -0
  91. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a4c56419._.js +7 -0
  92. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b6632d78._.js +3 -0
  93. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +1 -1
  94. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
  95. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  96. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
  98. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_315f3b3a._.js +3 -0
  99. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_959ad3d8._.js +4 -0
  100. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_9dcf102b._.js +3 -0
  101. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_497c8b73._.js → _b397e94a._.js} +2 -2
  102. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_8272a49c._.js +3 -0
  103. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_context_page_actions_1a062d48.js +3 -0
  104. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +12 -0
  105. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  106. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  107. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  108. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  109. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  110. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  111. package/.next/standalone/packages/ui/.next/static/chunks/1eb8283995f370c6.js +1 -0
  112. package/.next/standalone/packages/ui/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  113. package/.next/standalone/packages/ui/.next/static/chunks/37a1236ed50645a6.js +1 -0
  114. package/.next/standalone/packages/ui/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  115. package/.next/standalone/packages/ui/.next/static/chunks/c4b1faff3361a749.js +1 -0
  116. package/.next/{static/chunks/294dea6dbec43ca6.js → standalone/packages/ui/.next/static/chunks/d7420d2a867e57b5.js} +1 -1
  117. package/.next/{static/chunks/cca4441cde342ae3.js → standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js} +1 -1
  118. package/.next/standalone/packages/ui/.next/static/chunks/efded9da04c960d8.js +1 -0
  119. package/.next/standalone/packages/ui/.next/static/chunks/f382932f1a5d6359.js +10 -0
  120. package/.next/standalone/packages/ui/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  121. package/.next/standalone/packages/ui/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  122. package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
  123. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
  124. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  125. package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
  126. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
  127. package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
  128. package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
  129. package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
  130. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
  131. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
  132. package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
  133. package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
  134. package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
  135. package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
  136. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
  137. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
  138. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
  139. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
  140. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
  141. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
  142. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
  143. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
  144. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
  145. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
  146. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
  147. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
  148. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
  149. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
  150. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
  151. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
  152. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
  153. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
  154. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
  155. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
  156. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
  157. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
  158. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
  159. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
  160. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
  161. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
  162. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
  163. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
  164. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
  165. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
  166. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
  167. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
  168. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
  169. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
  170. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
  171. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
  172. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
  173. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
  174. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
  175. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
  176. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
  177. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
  178. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
  179. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
  180. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
  181. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
  182. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
  183. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
  184. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
  185. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
  186. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
  187. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
  188. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
  189. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
  190. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
  191. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
  192. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
  193. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
  194. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
  195. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
  196. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
  197. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
  198. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
  199. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
  200. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
  201. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
  202. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
  203. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
  204. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
  205. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
  206. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
  207. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
  208. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
  209. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
  210. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
  211. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
  212. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
  213. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
  214. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
  215. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
  216. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
  217. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
  218. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
  219. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
  220. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
  221. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
  222. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
  223. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
  224. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
  225. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
  226. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
  227. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
  228. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
  229. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
  230. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
  231. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
  232. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
  233. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
  234. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
  235. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
  236. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
  237. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
  238. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
  239. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
  240. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
  241. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
  242. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
  243. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
  244. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
  245. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
  246. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
  247. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
  248. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
  249. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
  250. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
  251. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
  252. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
  253. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
  254. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
  255. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
  256. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
  257. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
  258. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
  259. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
  260. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
  261. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
  262. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
  263. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
  264. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
  265. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
  266. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
  267. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
  268. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
  269. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
  270. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
  271. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
  272. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
  273. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
  274. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
  275. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
  276. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
  277. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
  278. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
  279. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
  280. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
  281. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
  282. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
  283. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
  284. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
  285. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
  286. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
  287. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
  288. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
  289. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
  290. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
  291. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
  292. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
  293. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
  294. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
  295. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
  296. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
  297. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
  298. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
  299. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
  300. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
  301. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
  302. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
  303. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
  304. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
  305. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
  306. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
  307. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
  308. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
  309. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
  310. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
  311. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
  312. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
  313. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
  314. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
  315. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
  316. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
  317. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
  318. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
  319. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
  320. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
  321. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
  322. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
  323. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
  324. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
  325. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
  326. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
  327. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
  328. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
  329. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
  330. package/.next/standalone/packages/ui/package.json +2 -1
  331. package/.next/standalone/packages/ui/server.js +1 -1
  332. package/.next/standalone/packages/ui/src/app/api/context/route.ts +22 -0
  333. package/.next/standalone/packages/ui/src/app/context/context-client.tsx +371 -0
  334. package/.next/standalone/packages/ui/src/app/context/page.tsx +17 -0
  335. package/.next/standalone/packages/ui/src/app/globals.css +16 -16
  336. package/.next/standalone/packages/ui/src/app/layout.tsx +1 -7
  337. package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +291 -0
  338. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +10 -1
  339. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +181 -134
  340. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +20 -0
  341. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -2
  342. package/.next/standalone/packages/ui/src/components/ui/accordion.tsx +58 -0
  343. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +172 -3
  344. package/.next/standalone/packages/ui/src/lib/specs/types.ts +44 -0
  345. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  346. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_buildManifest.js +11 -0
  347. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_clientMiddlewareManifest.json +1 -0
  348. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_ssgManifest.js +1 -0
  349. package/.next/static/chunks/1eb8283995f370c6.js +1 -0
  350. package/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  351. package/.next/static/chunks/37a1236ed50645a6.js +1 -0
  352. package/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  353. package/.next/static/chunks/c4b1faff3361a749.js +1 -0
  354. package/.next/{standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js → static/chunks/d7420d2a867e57b5.js} +1 -1
  355. package/.next/{standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js → static/chunks/dae403679aae65f4.js} +1 -1
  356. package/.next/static/chunks/efded9da04c960d8.js +1 -0
  357. package/.next/static/chunks/f382932f1a5d6359.js +10 -0
  358. package/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  359. package/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  360. package/package.json +3 -2
  361. package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +0 -95
  362. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +0 -3
  363. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +0 -7
  364. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +0 -7
  365. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +0 -3
  366. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +0 -3
  367. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  368. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  369. package/.next/standalone/packages/ui/.next/static/chunks/a803d646487dfc2d.js +0 -3
  370. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  371. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +0 -5
  372. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  373. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +0 -1
  374. package/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  375. package/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  376. package/.next/static/chunks/a803d646487dfc2d.js +0 -3
  377. package/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  378. package/.next/static/chunks/b845813463167db0.js +0 -5
  379. package/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  380. package/.next/static/chunks/d784d84d5b880e48.js +0 -1
  381. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_buildManifest.js +0 -0
  382. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_clientMiddlewareManifest.json +0 -0
  383. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_ssgManifest.js +0 -0
  384. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
  385. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
  386. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
@@ -0,0 +1,303 @@
1
+ ---
2
+ status: complete
3
+ created: '2025-11-02'
4
+ tags:
5
+ - quality
6
+ - validation
7
+ - cli
8
+ - first-principles
9
+ - v0.2.0
10
+ priority: critical
11
+ related:
12
+ - 043-official-launch-02
13
+ - 012-sub-spec-files
14
+ created_at: '2025-11-02T00:00:00Z'
15
+ updated_at: '2025-11-06T07:08:45.538Z'
16
+ transitions:
17
+ - status: in-progress
18
+ at: '2025-11-05T13:35:26.669Z'
19
+ - status: complete
20
+ at: '2025-11-06T07:00:00.000Z'
21
+ completed: '2025-11-06'
22
+ ---
23
+
24
+ # Comprehensive Spec Validation
25
+
26
+ > **Status**: ✅ Complete · **Priority**: Critical · **Created**: 2025-11-02 · **Tags**: quality, validation, cli, first-principles, v0.2.0
27
+
28
+ ## Overview
29
+
30
+ Provide comprehensive validation tooling that checks specs for quality issues including structure, frontmatter, content, sequence conflicts, and **file corruption**.
31
+
32
+ **Current State:**
33
+ - ✅ `lean-spec check` exists - checks sequence conflicts only
34
+ - ✅ `lean-spec validate` exists - comprehensive validation framework
35
+ - ✅ **Line count validation** - warns at 300 lines, errors at 400+ lines
36
+ - ✅ **Frontmatter validation** - enforces required fields and valid values
37
+ - ✅ **Structure validation** - duplicate headers, required sections
38
+ - ✅ **Corruption detection** - unclosed code blocks, formatting issues, duplicates
39
+ - ❌ No way to detect stale specs (optional, future phase)
40
+ - ❌ No auto-fix capability (optional, future phase)
41
+
42
+ **Implementation Approach:**
43
+ Both `lean-spec check` and `lean-spec validate` exist as separate commands:
44
+
45
+ ```bash
46
+ # Current commands
47
+ lean-spec check # Check for sequence conflicts
48
+ lean-spec validate [specs...] # Validate specs for quality issues
49
+ lean-spec validate --max-lines 500 # Custom line limit
50
+
51
+ # Planned enhancements
52
+ lean-spec validate --frontmatter # Frontmatter validation
53
+ lean-spec validate --structure # Structure validation
54
+ lean-spec validate --corruption # File corruption detection
55
+ lean-spec validate --sub-specs # Sub-spec validation (spec 012)
56
+ lean-spec validate --all # All validation rules
57
+ ```
58
+
59
+ **Use Cases:**
60
+ 1. CI/CD validation (block PRs with invalid specs)
61
+ 2. Pre-commit hooks (comprehensive quality checks)
62
+ 3. Local validation before creating PR
63
+ 4. Detecting stale/abandoned specs
64
+ 5. Enforcing team conventions (required fields, valid values)
65
+ 6. Quality gates for spec completion
66
+ 7. **Detecting corrupted specs from failed edits**
67
+ 8. **Validating sub-spec organization per spec 012**
68
+
69
+ **What Success Looks Like:**
70
+ ```bash
71
+ $ lean-spec validate --all
72
+ Validating specs...
73
+
74
+ Line Count:
75
+ ✓ 043-official-launch-02 (387 lines)
76
+ ⚠ 048-spec-complexity-analysis (356 lines - approaching limit)
77
+ ✗ 018-spec-validation (455 lines - exceeds limit!)
78
+ → Consider splitting into sub-specs (see spec 012)
79
+
80
+ Frontmatter:
81
+ ✗ 1 spec has invalid frontmatter:
82
+ - specs/043-official-launch-02/README.md
83
+ • Invalid status: "wip" (expected: planned, in-progress, complete, archived)
84
+
85
+ Structure:
86
+ ✓ All specs have valid structure
87
+
88
+ Sub-Specs:
89
+ ⚠ 1 spec has warnings:
90
+ - specs/018-spec-validation/README.md
91
+ ⚠ Sub-spec TESTING.md (421 lines) exceeds 400 line limit
92
+ ⚠ Orphaned sub-spec: DEPRECATED.md (not linked from README.md)
93
+
94
+ Corruption:
95
+ ✓ All 25 spec(s) passed
96
+
97
+ Results: 25 specs validated, 5 error(s), 6 warning(s)
98
+ ```
99
+
100
+ **Recent Improvements (2025-11-05):**
101
+ - ✅ Fixed duplicate detection bug: sliding window was reporting adjacent lines as duplicates
102
+ - ✅ Improved thresholds: 8 lines / 200 chars (was 5/100) for better signal-to-noise
103
+ - ✅ Code blocks now included in duplicate detection (catches actual copy-paste errors)
104
+ - ✅ Removed JSON/YAML validation (code examples show invalid syntax)
105
+ - ✅ Smarter formatting checks: exclude inline code and list markers
106
+ - 📉 Result: Zero false positives, catches only real corruption
107
+
108
+ ## Design
109
+
110
+ This spec has been split into focused sub-documents for clarity and maintainability.
111
+
112
+ ### Core Documents
113
+
114
+ 📋 **[VALIDATION-RULES.md](./VALIDATION-RULES.md)** - What gets validated
115
+ - Frontmatter validation rules
116
+ - Structure validation rules
117
+ - Content validation rules
118
+ - Corruption detection rules
119
+ - Staleness detection rules
120
+ - Auto-fix capabilities
121
+
122
+ 🔧 **[CLI-DESIGN.md](./CLI-DESIGN.md)** - Command interface
123
+ - Command syntax and flags
124
+ - Output formats (console, JSON)
125
+ - Backwards compatibility strategy
126
+ - Exit codes
127
+ - CI/CD integration examples
128
+
129
+ ⚙️ **[CONFIGURATION.md](./CONFIGURATION.md)** - Configuration schema
130
+ - Complete config options
131
+ - Rule customization
132
+ - Template-specific rules
133
+ - Default configuration
134
+ - Configuration examples
135
+
136
+ 📝 **[CONFIGURATION-EXAMPLES.md](./CONFIGURATION-EXAMPLES.md)** - Real-world configuration examples and use cases
137
+
138
+ 🗺️ **[IMPLEMENTATION.md](./IMPLEMENTATION.md)** - Implementation plan
139
+ - 8-phase implementation plan
140
+ - Priority and scope decisions
141
+ - Launch strategy (v0.2.0 vs v0.3.0)
142
+ - Dependencies and risks
143
+ - Migration path
144
+
145
+ ✅ **[TESTING.md](./TESTING.md)** - Test strategy
146
+ - Test categories and coverage
147
+ - Integration tests
148
+ - Performance tests
149
+ - Manual testing checklist
150
+
151
+ ## Design Decision
152
+
153
+ **Implementation Note:** The original design proposed expanding `lean-spec check` into a unified validation command. However, the implementation created a separate `lean-spec validate` command instead, keeping both commands focused:
154
+
155
+ - **`lean-spec check`** - Fast sequence conflict detection
156
+ - **`lean-spec validate`** - Comprehensive quality validation
157
+
158
+ **Rationale for Separate Commands:**
159
+
160
+ 1. **Clear separation of concerns:** Sequence checking is fast and targeted; validation is comprehensive
161
+ 2. **Performance:** Users can run quick checks without full validation overhead
162
+ 3. **Backwards compatible:** Existing `lean-spec check` behavior unchanged
163
+ 4. **Incremental adoption:** Can add validation rules without affecting check command
164
+ 5. **Clearer intent:** `validate` explicitly signals quality checking
165
+
166
+ **Trade-offs:**
167
+ - Two commands to remember (but both are intuitive)
168
+ - More CLI surface area
169
+ - Better performance and flexibility
170
+
171
+ ## Evolution
172
+
173
+ | Version | Commands Available |
174
+ |---------|--------------------|
175
+ | v0.1.0 | `lean-spec check` (sequence conflicts only) |
176
+ | v0.2.0+ | `lean-spec check` (sequences) + `lean-spec validate` (line counts) |
177
+ | v0.3.0+ | Both commands with comprehensive validation rules |
178
+
179
+ ## Launch Strategy
180
+
181
+ **v0.2.0 Scope (Current):**
182
+ - ✅ `lean-spec check` for sequence conflicts
183
+ - ✅ `lean-spec validate` with basic framework and line count validation
184
+ - ⏳ Expand validation rules in upcoming phases
185
+
186
+ **v0.3.0 Scope:**
187
+ - **MUST HAVE:** Framework + frontmatter + structure validation
188
+ - **HIGHLY RECOMMENDED:** Corruption detection (addresses real pain point)
189
+ - **SHOULD HAVE:** Auto-fix capability
190
+ - **NICE TO HAVE:** Content and staleness validation
191
+
192
+ **Post-v0.3.0:**
193
+ - Advanced features based on user feedback
194
+ - Custom validation rules
195
+ - Performance optimizations
196
+
197
+ ## Implementation Status
198
+
199
+ See [IMPLEMENTATION.md](./IMPLEMENTATION.md) for detailed plan.
200
+
201
+ **Status:** ✅ COMPLETE for v0.2.0 launch
202
+
203
+ **✅ Completed (Phases 1a, 1b, 2, 3, 3.5):**
204
+ - ✅ Validation framework architecture
205
+ - ✅ **Phase 1a:** `LineCountValidator` with warning/error thresholds (300 line warning, 400 line error)
206
+ - ✅ **Phase 1a:** `lean-spec validate` command with `--max-lines` flag
207
+ - ✅ **Phase 1b:** `FrontmatterValidator` for comprehensive frontmatter validation
208
+ - Required fields (status, created)
209
+ - Valid status/priority values
210
+ - Date format validation (ISO 8601)
211
+ - Tags format validation
212
+ - ✅ **Phase 2:** `StructureValidator` for spec structure validation
213
+ - H1 title presence
214
+ - Required sections (Overview, Design)
215
+ - Empty section detection (with subsection handling)
216
+ - Duplicate section header detection
217
+ - ✅ **Phase 3:** `CorruptionValidator` for file corruption detection
218
+ - Unclosed code block detection (visible syntax highlighting issues)
219
+ - Unclosed markdown formatting (bold, italic) in actual content
220
+ - Duplicate content block detection with improved tuning (8 lines, 200 chars)
221
+ - **Code blocks included** in duplicate detection (catches real copy-paste errors)
222
+ - **Bug fix:** Fixed sliding window algorithm reporting adjacent lines
223
+ - **Removed JSON/YAML validation** (examples show invalid syntax intentionally)
224
+ - Code block exclusion for all formatting checks
225
+ - Inline code and list marker exclusion
226
+ - Duplicate detection tuning: 3/50 → 5/100 (reduced false positives)
227
+ - Removed noisy checks (JSON/YAML, table/list validation)
228
+ - **Bug fix:** Fixed sliding window algorithm causing adjacent line false positives
229
+ - **Threshold increase:** 5/100 → 8/200 (block size/min chars) for less sensitivity
230
+ - **Reverted code block filtering:** Now includes code blocks in duplicate detection
231
+ - ✅ **Phase 3.5:** `SubSpecValidator` for sub-spec file validation
232
+ - Sub-spec naming conventions (uppercase .md files)
233
+ - README.md references all sub-specs (orphan detection)
234
+ - Line count validation per sub-spec file (<400 lines)
235
+ - Cross-document reference validation
236
+ - Found real issues: 3 sub-specs exceeding limits in 2 specs
237
+ - ✅ **370 total tests passing** (16 sub-spec + 354 existing)
238
+ - ✅ Documentation and CLI integration
239
+ - ✅ Tested with real repository specs
240
+
241
+ **📊 Current Validation Results (2025-11-05):**
242
+ ```bash
243
+ $ lean-spec validate
244
+ Results: 25 specs validated, 5 error(s), 6 warning(s)
245
+
246
+ Errors found:
247
+ - Line count: 3 specs exceed 400 lines (048, 046, 045)
248
+ - Sub-specs: 3 sub-spec files exceed 400 lines (049: 2 files, 018: 1 file)
249
+ - Corruption: ✅ 0 errors (bug fixed, thresholds tuned!)
250
+
251
+ Warnings:
252
+ - Line count: 6 specs between 300-400 lines (approaching limit)
253
+ - Corruption: ✅ 0 warnings (improved from 31 false positives!)
254
+
255
+ All specs: ✅ Frontmatter passed, ✅ Structure passed, ✅ Sub-spec validation working
256
+ ```
257
+
258
+ **✨ v0.2.0 Scope Complete:**
259
+ Core validation is complete and working! Phases 1-3.5 deliver the essential quality checks including sub-spec validation. Additional phases (content validation, staleness detection, auto-fix) deferred to v0.3.0 based on user feedback.
260
+
261
+ ## Quick Links
262
+
263
+ - **Validation Details:** [VALIDATION-RULES.md](./VALIDATION-RULES.md)
264
+ - **CLI Reference:** [CLI-DESIGN.md](./CLI-DESIGN.md)
265
+ - **Configuration:** [CONFIGURATION.md](./CONFIGURATION.md)
266
+ - **Implementation:** [IMPLEMENTATION.md](./IMPLEMENTATION.md)
267
+ - **Testing:** [TESTING.md](./TESTING.md)
268
+
269
+ ## Notes
270
+
271
+ **Why This Matters:**
272
+
273
+ This addresses real pain points we've experienced:
274
+ - Spec corruption from failed AI edits
275
+ - Invalid frontmatter causing issues
276
+ - No way to enforce quality standards
277
+ - Manual validation is time-consuming
278
+
279
+ **Performance Goals:**
280
+ - < 1s for 100 specs
281
+ - Parallel checking
282
+ - Incremental mode for auto-check
283
+ - Caching for repeated checks
284
+
285
+ **Integration:**
286
+ ```bash
287
+ # CI/CD - Quick sequence check
288
+ lean-spec check
289
+
290
+ # CI/CD - Comprehensive validation
291
+ lean-spec validate --all --format=json
292
+
293
+ # Pre-commit hook - Fast validation
294
+ lean-spec validate --max-lines 400
295
+
296
+ # Manual comprehensive check
297
+ lean-spec validate --all --fix
298
+ ```
299
+
300
+ **References:**
301
+ - Markdownlint: Markdown linting tool (inspiration)
302
+ - JSON Schema: Validation schema standard
303
+ - YAML Lint: YAML validation patterns
@@ -0,0 +1,368 @@
1
+ # Testing Strategy
2
+
3
+ Comprehensive test plan for the `lean-spec validate` command.
4
+
5
+ **Note:** This spec originally proposed expanding `lean-spec check`, but the implementation created `lean-spec validate` as a separate command.
6
+
7
+ ## Test Categories
8
+
9
+ ### 1. Frontmatter Validation Tests ✅
10
+
11
+ **Status: Phase 1b Complete - 27 tests passing**
12
+
13
+ **Missing Required Fields:**
14
+ - [x] Detects missing `status` field ✅
15
+ - [x] Detects missing `created` field ✅
16
+ - [x] Passes when all required fields present ✅
17
+ - [x] Detects when no frontmatter exists ✅
18
+ - [ ] Detects missing custom required fields (if configured) - future
19
+
20
+ **Invalid Status Values:**
21
+ - [x] Detects invalid status "wip" ✅
22
+ - [x] Detects invalid status values (any non-standard) ✅
23
+ - [x] Passes valid status "planned" ✅
24
+ - [x] Passes valid status "in-progress" ✅
25
+ - [x] Passes valid status "complete" ✅
26
+ - [x] Passes valid status "archived" ✅
27
+ - [x] Coerces non-string status to string and validates ✅
28
+
29
+ **Invalid Priority Values:**
30
+ - [x] Detects invalid priority "urgent" ✅
31
+ - [x] Detects invalid priority values (any non-standard) ✅
32
+ - [x] Passes valid priority "low" ✅
33
+ - [x] Passes valid priority "medium" ✅
34
+ - [x] Passes valid priority "high" ✅
35
+ - [x] Passes valid priority "critical" ✅
36
+ - [x] Passes when priority is optional and missing ✅
37
+ - [x] Coerces non-string priority to string and validates ✅
38
+
39
+ **Date Format Validation:**
40
+ - [x] Detects invalid date formats (11/05/2025, etc.) ✅
41
+ - [x] Detects invalid date values (2025-99-99) ✅
42
+ - [x] Passes valid date "2025-11-04" ✅
43
+ - [x] Passes valid ISO timestamps (with timezone, milliseconds) ✅
44
+ - [x] Warns for invalid optional date fields (e.g., updated) ✅
45
+ - [x] Fails for non-string/non-date created field ✅
46
+
47
+ **Tags Validation:**
48
+ - [x] Detects tags as string instead of array ✅
49
+ - [x] Accepts tags with various types (YAML parsing) ✅
50
+ - [x] Passes valid tags array ✅
51
+ - [x] Passes empty tags array ✅
52
+
53
+ **YAML Parsing:**
54
+ - [x] Detects malformed YAML frontmatter ✅
55
+
56
+ **Custom Configuration:**
57
+ - [x] Respects custom valid statuses (configurable) ✅
58
+ - [x] Validator metadata (name, description) ✅
59
+
60
+ ### 2. Structure Validation Tests
61
+
62
+ **File Requirements:**
63
+ - [ ] Detects missing README.md
64
+ - [ ] Detects invalid YAML frontmatter syntax
65
+ - [ ] Detects missing title (H1 heading)
66
+ - [ ] Passes spec with valid structure
67
+
68
+ **Section Requirements:**
69
+ - [ ] Detects missing required section "Overview"
70
+ - [ ] Detects missing required section "Design"
71
+ - [ ] Detects missing required section "Plan"
72
+ - [ ] Passes when all required sections present
73
+ - [ ] Template-specific section validation
74
+
75
+ **Empty Sections:**
76
+ - [ ] Detects empty required sections (when configured)
77
+ - [ ] Passes sections with only comments (if allowed)
78
+ - [ ] Passes sections with content
79
+
80
+ **Duplicate Sections:**
81
+ - [ ] Detects duplicate "## Plan" sections
82
+ - [ ] Detects duplicate "## Test" sections
83
+ - [ ] Allows same section name at different levels
84
+ - [ ] Passes unique sections
85
+
86
+ ### 3. Corruption Detection Tests
87
+
88
+ **Duplicate Sections:**
89
+ - [ ] Detects exact duplicate sections
90
+ - [ ] Detects sections with same name at same level
91
+ - [ ] Reports line numbers of duplicates
92
+ - [ ] Passes specs with unique sections
93
+
94
+ **Code Block Validation:**
95
+ - [ ] Detects unclosed code block (missing closing ```)
96
+ - [ ] Detects extra closing ``` without opening
97
+ - [ ] Detects mismatched code fence lengths
98
+ - [ ] Passes properly closed code blocks
99
+
100
+ **JSON/YAML Validation:**
101
+ - [ ] Detects incomplete JSON in code blocks
102
+ - [ ] Detects invalid JSON syntax
103
+ - [ ] Detects incomplete YAML in frontmatter
104
+ - [ ] Detects invalid YAML syntax
105
+ - [ ] Passes valid JSON blocks
106
+ - [ ] Passes valid YAML blocks
107
+
108
+ **Content Fragments:**
109
+ - [ ] Detects duplicated content blocks
110
+ - [ ] Detects partial duplicates (merge artifacts)
111
+ - [ ] Detects remnants from failed edits
112
+ - [ ] Passes unique content
113
+
114
+ **Markdown Structure:**
115
+ - [ ] Detects malformed lists
116
+ - [ ] Detects broken tables
117
+ - [ ] Detects unclosed formatting (bold, italic)
118
+ - [ ] Passes valid markdown
119
+
120
+ ### 4. Content Validation Tests
121
+
122
+ **Minimum Length:**
123
+ - [ ] Detects specs below minimum length
124
+ - [ ] Passes specs above minimum length
125
+ - [ ] Respects configured minimum
126
+
127
+ **TODO/FIXME Detection:**
128
+ - [ ] Detects TODO in complete specs
129
+ - [ ] Detects FIXME in complete specs
130
+ - [ ] Allows TODO in non-complete specs
131
+ - [ ] Passes complete specs without TODO
132
+
133
+ **Link Validation:**
134
+ - [ ] Detects broken internal links
135
+ - [ ] Detects links to non-existent specs
136
+ - [ ] Passes valid internal links
137
+ - [ ] Passes external links (not validated)
138
+
139
+ **Placeholder Text:**
140
+ - [ ] Detects common placeholder patterns
141
+ - [ ] Passes real content
142
+
143
+ ### 5. Staleness Tests
144
+
145
+ **In-Progress Specs:**
146
+ - [ ] Warns on in-progress spec > 30 days old
147
+ - [ ] No warning for recent in-progress specs
148
+ - [ ] Respects configured threshold
149
+
150
+ **No Updates:**
151
+ - [ ] Warns on spec with no updates > 90 days
152
+ - [ ] No warning for recently updated specs
153
+ - [ ] Uses git history when available
154
+ - [ ] Falls back to file mtime
155
+
156
+ **Planned Specs:**
157
+ - [ ] Warns on planned spec > 60 days old
158
+ - [ ] No warning for recent planned specs
159
+
160
+ **Archived Specs:**
161
+ - [ ] No staleness warnings for archived specs
162
+
163
+ ### 6. Auto-Fix Tests
164
+
165
+ **Frontmatter Fixes:**
166
+ - [ ] Adds missing `status` field with default
167
+ - [ ] Adds missing `created` field with current date
168
+ - [ ] Formats dates to ISO 8601
169
+ - [ ] Sorts frontmatter fields alphabetically
170
+ - [ ] Updates visual badges from frontmatter
171
+
172
+ **Structure Fixes:**
173
+ - [ ] Adds missing required sections as comments
174
+ - [ ] Removes duplicate sections (keeps first)
175
+
176
+ **Corruption Fixes:**
177
+ - [ ] Closes unclosed code blocks
178
+ - [ ] Removes exact duplicate sections
179
+
180
+ **Non-Fixable Issues:**
181
+ - [ ] Reports invalid status (requires manual fix)
182
+ - [ ] Reports empty sections (requires content)
183
+ - [ ] Reports broken links (requires investigation)
184
+
185
+ **Fix Reporting:**
186
+ - [ ] Reports what was fixed
187
+ - [ ] Reports what couldn't be fixed
188
+ - [ ] Doesn't break valid specs
189
+ - [ ] Maintains spec readability
190
+
191
+ ### 7. Integration Tests
192
+
193
+ **Multiple Specs:**
194
+ - [ ] Validates all specs in project
195
+ - [ ] Reports aggregate results
196
+ - [ ] Handles large number of specs (100+)
197
+
198
+ **Filtering:**
199
+ - [ ] Filters by status work correctly
200
+ - [ ] Filters by tag work correctly
201
+ - [ ] Filters by priority work correctly
202
+ - [ ] Path pattern filtering works
203
+
204
+ **Output Formats:**
205
+ - [ ] Console output is readable
206
+ - [ ] JSON output is valid
207
+ - [ ] Quiet mode produces minimal output
208
+ - [ ] Verbose mode includes details
209
+
210
+ **Exit Codes:**
211
+ - [ ] Returns 0 when all checks pass
212
+ - [ ] Returns 1 when errors found
213
+ - [ ] Returns 2 when warnings in strict mode
214
+ - [ ] Returns 3 on command error
215
+
216
+ **Configuration:**
217
+ - [ ] Respects custom config
218
+ - [ ] Falls back to defaults
219
+ - [ ] Command-line flags override config
220
+ - [ ] Template-specific rules work
221
+
222
+ **Backwards Compatibility:**
223
+ - [ ] `lean-spec check` (sequence conflicts) behavior unchanged
224
+ - [ ] `lean-spec validate` doesn't interfere with check command
225
+ - [ ] Exit codes follow standard pattern
226
+ - [ ] Output format is consistent
227
+
228
+ ### 8. Performance Tests
229
+
230
+ **Speed:**
231
+ - [ ] Validates 10 specs in < 100ms
232
+ - [ ] Validates 100 specs in < 1s
233
+ - [ ] Parallel validation improves performance
234
+
235
+ **Memory:**
236
+ - [ ] Memory usage stays reasonable
237
+ - [ ] No memory leaks with many specs
238
+
239
+ **Caching:**
240
+ - [ ] Cached results speed up repeated checks
241
+ - [ ] Cache invalidation works correctly
242
+
243
+ ### 9. Edge Cases
244
+
245
+ **Empty Specs:**
246
+ - [ ] Handles specs with only frontmatter
247
+ - [ ] Handles completely empty files
248
+
249
+ **Large Specs:**
250
+ - [ ] Handles specs > 1000 lines
251
+ - [ ] Handles specs with > 100 sections
252
+ - [ ] Performance doesn't degrade
253
+
254
+ **Special Characters:**
255
+ - [ ] Handles Unicode in frontmatter
256
+ - [ ] Handles special characters in content
257
+ - [ ] Handles emoji in titles
258
+
259
+ **Symlinks:**
260
+ - [ ] Follows symlinks correctly
261
+ - [ ] Detects circular symlinks
262
+
263
+ **Sub-Spec Files:**
264
+ - [ ] Validates specs with sub-files
265
+ - [ ] Checks README.md in multi-file specs
266
+ - [ ] Doesn't validate sub-files as specs
267
+
268
+ ## Test Organization
269
+
270
+ ```
271
+ src/
272
+ commands/
273
+ check.test.ts # Command-level tests
274
+ validators/
275
+ frontmatter.test.ts # Frontmatter validator tests
276
+ structure.test.ts # Structure validator tests
277
+ corruption.test.ts # Corruption detector tests
278
+ content.test.ts # Content validator tests
279
+ staleness.test.ts # Staleness detector tests
280
+ integration/
281
+ check-integration.test.ts # End-to-end tests
282
+ ```
283
+
284
+ ## Test Data
285
+
286
+ ```
287
+ test-fixtures/
288
+ valid/
289
+ 001-valid-spec/
290
+ README.md # Completely valid spec
291
+ invalid-frontmatter/
292
+ 002-missing-status/
293
+ README.md # Missing status field
294
+ 003-invalid-status/
295
+ README.md # Invalid status value
296
+ invalid-structure/
297
+ 004-missing-sections/
298
+ README.md # Missing required sections
299
+ 005-duplicate-sections/
300
+ README.md # Duplicate section headers
301
+ corrupted/
302
+ 006-unclosed-code-block/
303
+ README.md # Unclosed code block
304
+ 007-invalid-json/
305
+ README.md # Malformed JSON in code block
306
+ 008-duplicate-content/
307
+ README.md # Duplicated content
308
+ stale/
309
+ 009-old-in-progress/
310
+ README.md # Old in-progress spec
311
+ ```
312
+
313
+ ## Continuous Testing
314
+
315
+ **Pre-Commit:**
316
+ ```bash
317
+ npm test # Run all tests
318
+ ```
319
+
320
+ **CI/CD:**
321
+ ```yaml
322
+ - name: Run tests
323
+ run: npm test
324
+
325
+ - name: Check coverage
326
+ run: npm run test:coverage
327
+ ```
328
+
329
+ **Test Coverage Goals:**
330
+ - Overall: >80%
331
+ - Validators: >90%
332
+ - Critical paths: 100%
333
+
334
+ ## Manual Testing Checklist
335
+
336
+ **Before Release:**
337
+ - [ ] Test on real project (this repo)
338
+ - [ ] Test backwards compatibility
339
+ - [ ] Test performance with 100+ specs
340
+ - [ ] Test all output formats
341
+ - [ ] Test all command-line flags
342
+ - [ ] Test configuration options
343
+ - [ ] Test auto-fix on corrupted specs
344
+ - [ ] Test CI/CD integration
345
+ - [ ] Test pre-commit hook
346
+
347
+ **Dogfooding:**
348
+ - [ ] Use comprehensive checking on lean-spec itself
349
+ - [ ] Fix any issues found
350
+ - [ ] Verify no false positives
351
+ - [ ] Collect user feedback
352
+
353
+ ## Test Automation
354
+
355
+ **Snapshot Testing:**
356
+ - Output format snapshots
357
+ - JSON structure snapshots
358
+ - Error message snapshots
359
+
360
+ **Property-Based Testing:**
361
+ - Generate random specs
362
+ - Verify validators don't crash
363
+ - Verify auto-fix doesn't corrupt
364
+
365
+ **Regression Testing:**
366
+ - Save examples of past bugs
367
+ - Ensure fixes remain effective
368
+ - Prevent regressions