@leanspec/ui 0.2.6-dev.20251125010539 → 0.2.6
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.
- package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
- package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
- package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
- package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
- package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
- package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/leanspec.db +0 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
- package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
- package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
- package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
- package/.next/standalone/packages/ui/leanspec.db +0 -0
- package/.next/standalone/packages/ui/package.json +1 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_buildManifest.js +11 -0
- package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_clientMiddlewareManifest.json +1 -0
- package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_ssgManifest.js +1 -0
- package/package.json +2 -2
- /package/.next/standalone/packages/ui/.next/static/{WJi9opx4ShY8zt8yBFo4r → T_KGFP0pHt_xSaaYUJa3L}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{WJi9opx4ShY8zt8yBFo4r → T_KGFP0pHt_xSaaYUJa3L}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{WJi9opx4ShY8zt8yBFo4r → T_KGFP0pHt_xSaaYUJa3L}/_ssgManifest.js +0 -0
- /package/.next/{static/WJi9opx4ShY8zt8yBFo4r → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
- /package/.next/{static/WJi9opx4ShY8zt8yBFo4r → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{static/WJi9opx4ShY8zt8yBFo4r → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md
ADDED
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
# Validation Rules
|
|
2
|
+
|
|
3
|
+
This document details what gets validated by `lean-spec validate` and the specific rules for each validation type.
|
|
4
|
+
|
|
5
|
+
**Note:** This spec originally proposed expanding `lean-spec check`, but the implementation created `lean-spec validate` as a separate command.
|
|
6
|
+
|
|
7
|
+
## Implementation Status
|
|
8
|
+
|
|
9
|
+
- ✅ **Line Count Validation** - Phase 1a Complete
|
|
10
|
+
- ✅ **Frontmatter Validation** - Phase 1b Complete
|
|
11
|
+
- ⏳ **Structure Validation** - Phase 2 (Planned)
|
|
12
|
+
- ⏳ **Corruption Detection** - Phase 3 (High Priority)
|
|
13
|
+
- ⏳ **Sub-Spec Validation** - Phase 3.5 (High Priority)
|
|
14
|
+
- ⏳ **Content Validation** - Phase 4 (Optional)
|
|
15
|
+
- ⏳ **Staleness Detection** - Phase 5 (Optional)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Line Count Validation ✅
|
|
20
|
+
|
|
21
|
+
**Status:** Implemented in Phase 1a
|
|
22
|
+
|
|
23
|
+
**Thresholds:**
|
|
24
|
+
- **Warning**: 300-400 lines (approaching limit)
|
|
25
|
+
- **Error**: >400 lines (exceeds limit)
|
|
26
|
+
- **Configurable**: `--max-lines` flag to customize limit
|
|
27
|
+
|
|
28
|
+
**Rationale:**
|
|
29
|
+
Enforces **Context Economy** principle - specs must fit in working memory (human and AI). Files >400 lines become difficult to read, edit, and maintain.
|
|
30
|
+
|
|
31
|
+
**Suggestions:**
|
|
32
|
+
- Warns: "Consider simplification or splitting"
|
|
33
|
+
- Errors: "Consider splitting into sub-specs using spec 012 pattern"
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Frontmatter Validation ✅
|
|
38
|
+
|
|
39
|
+
**Status:** Implemented in Phase 1b (27 tests passing)
|
|
40
|
+
|
|
41
|
+
**Required Fields:**
|
|
42
|
+
- `status` - Must be present
|
|
43
|
+
- `created` - Must be present
|
|
44
|
+
|
|
45
|
+
**Status Values:**
|
|
46
|
+
- Valid: `planned`, `in-progress`, `complete`, `archived`
|
|
47
|
+
- Invalid: Any other value (e.g., `wip`, `draft`, `done`)
|
|
48
|
+
|
|
49
|
+
**Priority Values:**
|
|
50
|
+
- Valid: `low`, `medium`, `high`, `critical`
|
|
51
|
+
- Optional field, but if present must be valid
|
|
52
|
+
|
|
53
|
+
**Date Formats:**
|
|
54
|
+
- ISO 8601 format (YYYY-MM-DD or full ISO timestamp)
|
|
55
|
+
- `created` field must be valid date
|
|
56
|
+
- Other date fields (if present) must be valid
|
|
57
|
+
|
|
58
|
+
**Tags:**
|
|
59
|
+
- Must be array of strings
|
|
60
|
+
- Example: `["quality", "validation", "cli"]`
|
|
61
|
+
|
|
62
|
+
**Custom Fields:**
|
|
63
|
+
- If config schema defined, custom fields must match
|
|
64
|
+
- Type validation based on config
|
|
65
|
+
|
|
66
|
+
## Structure Validation
|
|
67
|
+
|
|
68
|
+
**File Requirements:**
|
|
69
|
+
- `README.md` must exist in spec directory
|
|
70
|
+
- Frontmatter must be valid YAML
|
|
71
|
+
- Must have title (H1 heading: `# Title`)
|
|
72
|
+
|
|
73
|
+
**Section Requirements:**
|
|
74
|
+
- Required sections based on template
|
|
75
|
+
- Typically: Overview, Design, Plan, Test
|
|
76
|
+
- No empty required sections (content beyond just comment)
|
|
77
|
+
- No duplicate section headers at same level
|
|
78
|
+
|
|
79
|
+
## Sub-Spec Validation
|
|
80
|
+
|
|
81
|
+
**File Naming Conventions (from spec 012):**
|
|
82
|
+
- Sub-spec files should follow recommended naming patterns
|
|
83
|
+
- Standard names: `DESIGN.md`, `IMPLEMENTATION.md`, `TESTING.md`, `API.md`, `ARCHITECTURE.md`, `MIGRATION.md`, `CONFIGURATION.md`, etc.
|
|
84
|
+
- Custom names allowed but should be descriptive (e.g., `PHASE1.md`, `RESEARCH.md`)
|
|
85
|
+
- Assets should be in `assets/` subdirectory
|
|
86
|
+
|
|
87
|
+
**README.md Integration:**
|
|
88
|
+
- Main `README.md` should reference all sub-spec files
|
|
89
|
+
- Links can be in any section (Overview, Design, etc.)
|
|
90
|
+
- Missing links to sub-specs generate warnings
|
|
91
|
+
- Example: `[Testing Strategy](TESTING.md)` or `See [DESIGN.md](DESIGN.md)`
|
|
92
|
+
|
|
93
|
+
**Line Count Per Sub-Spec (Context Economy):**
|
|
94
|
+
- Each sub-spec file should be < 400 lines (error threshold)
|
|
95
|
+
- Warning at 300 lines (same as main spec)
|
|
96
|
+
- Rationale: Context Economy applies to each file independently
|
|
97
|
+
- Sub-specs exist to split complexity - they shouldn't become bloated
|
|
98
|
+
|
|
99
|
+
**Orphan Detection:**
|
|
100
|
+
- Detect sub-spec markdown files not referenced from README.md
|
|
101
|
+
- Warn about orphaned sub-specs (may be deprecated)
|
|
102
|
+
- Exception: README.md itself is never orphaned
|
|
103
|
+
- Assets (.png, .svg, etc.) are checked separately
|
|
104
|
+
|
|
105
|
+
**Cross-Document Validation:**
|
|
106
|
+
- Validate internal links between sub-specs work correctly
|
|
107
|
+
- Check relative paths are correct
|
|
108
|
+
- Detect circular references (if spec A links to B, B to C, C to A)
|
|
109
|
+
|
|
110
|
+
**Sub-Spec Structure:**
|
|
111
|
+
- Each sub-spec should have clear heading structure
|
|
112
|
+
- Should include backlink to main spec (recommended)
|
|
113
|
+
- Example: `> Part of spec: [018-spec-validation](README.md)`
|
|
114
|
+
|
|
115
|
+
## Content Validation
|
|
116
|
+
|
|
117
|
+
**Minimum Requirements:**
|
|
118
|
+
- Spec must have minimum content length (avoid stub specs)
|
|
119
|
+
- Default: 100 characters (configurable)
|
|
120
|
+
|
|
121
|
+
**Quality Checks:**
|
|
122
|
+
- No TODO/FIXME in complete specs
|
|
123
|
+
- Internal links should be valid (no broken references)
|
|
124
|
+
- No placeholder text in complete specs
|
|
125
|
+
|
|
126
|
+
## Corruption Detection
|
|
127
|
+
|
|
128
|
+
**Duplicate Content:**
|
|
129
|
+
- No duplicate section headers at same level
|
|
130
|
+
- Detect sections appearing multiple times
|
|
131
|
+
- Example: "## Plan" appearing twice in same spec
|
|
132
|
+
|
|
133
|
+
**Code Block Validation:**
|
|
134
|
+
- All code blocks properly closed (unclosed blocks break syntax highlighting)
|
|
135
|
+
- Matching number of opening ``` and closing ```
|
|
136
|
+
- This is the #1 indicator of corruption humans notice visually
|
|
137
|
+
|
|
138
|
+
**Formatting Validation:**
|
|
139
|
+
- Unclosed bold formatting (**) in actual content
|
|
140
|
+
- Unclosed italic formatting (*) in actual content
|
|
141
|
+
- Excludes code blocks, inline code, and list markers from checks
|
|
142
|
+
- Only validates markdown content outside code fences
|
|
143
|
+
|
|
144
|
+
**Duplicate Content Detection:**
|
|
145
|
+
- Detects duplicated content blocks (5+ consecutive lines, 100+ chars)
|
|
146
|
+
- Excludes code blocks to prevent false positives from code examples
|
|
147
|
+
- Tuned to reduce noise: was 3 lines/50 chars (too sensitive)
|
|
148
|
+
- Helps find merge artifacts and failed edits
|
|
149
|
+
- Warnings only (not errors) as some duplication is intentional
|
|
150
|
+
|
|
151
|
+
**Intentionally Excluded:**
|
|
152
|
+
- ❌ JSON/YAML validation in code blocks (examples often show invalid syntax)
|
|
153
|
+
- ❌ Table and list structure validation (too noisy, not actual corruption)
|
|
154
|
+
|
|
155
|
+
**Sub-Spec Duplication:**
|
|
156
|
+
- Detect if same content appears in multiple sub-specs
|
|
157
|
+
- Warn about significant content overlap between files
|
|
158
|
+
- Helps identify when content should be consolidated
|
|
159
|
+
|
|
160
|
+
### Corruption Detection Philosophy
|
|
161
|
+
|
|
162
|
+
**Focus on visually apparent corruption:**
|
|
163
|
+
- What breaks rendering (unclosed code blocks, unclosed formatting)
|
|
164
|
+
- What humans actually notice when reading specs
|
|
165
|
+
- Not semantic issues or style preferences
|
|
166
|
+
|
|
167
|
+
**Why we exclude certain checks:**
|
|
168
|
+
- JSON/YAML in code blocks: Examples intentionally show invalid syntax
|
|
169
|
+
- Duplicate content detection: Many false positives from boilerplate/templates
|
|
170
|
+
- Table/list validation: Too noisy, rarely indicates actual corruption
|
|
171
|
+
|
|
172
|
+
**Tuning for signal-to-noise:**
|
|
173
|
+
- Originally: 3 lines, 50 chars → 13 duplicate warnings across all specs
|
|
174
|
+
- Improved: 5 lines, 100 chars, exclude code blocks → More targeted detection
|
|
175
|
+
- Goal: Only flag genuine corruption, not common patterns
|
|
176
|
+
|
|
177
|
+
## Staleness Detection
|
|
178
|
+
|
|
179
|
+
**In-Progress Specs:**
|
|
180
|
+
- Warn if status is `in-progress` for > 30 days
|
|
181
|
+
- Suggests spec might be stalled
|
|
182
|
+
|
|
183
|
+
**No Updates:**
|
|
184
|
+
- Warn if no updates in > 90 days
|
|
185
|
+
- Based on git history or file mtime
|
|
186
|
+
- Suggests spec might be abandoned
|
|
187
|
+
|
|
188
|
+
**Planned Specs:**
|
|
189
|
+
- Warn if status is `planned` for > 60 days
|
|
190
|
+
- Suggests planning without execution
|
|
191
|
+
|
|
192
|
+
**Archived Specs:**
|
|
193
|
+
- No staleness warnings for archived specs
|
|
194
|
+
- Archived specs are expected to be static
|
|
195
|
+
|
|
196
|
+
## Auto-Fix Capabilities
|
|
197
|
+
|
|
198
|
+
### Fixable Issues
|
|
199
|
+
|
|
200
|
+
**Frontmatter:**
|
|
201
|
+
- Add missing required fields (use defaults)
|
|
202
|
+
- Format dates to ISO 8601 standard
|
|
203
|
+
- Sort frontmatter fields alphabetically
|
|
204
|
+
- Update visual badges to match frontmatter
|
|
205
|
+
|
|
206
|
+
**Structure:**
|
|
207
|
+
- Add missing required sections (as comments)
|
|
208
|
+
- Remove duplicate sections (keep first occurrence)
|
|
209
|
+
- Close unclosed code blocks (where unambiguous)
|
|
210
|
+
|
|
211
|
+
**Sub-Specs:**
|
|
212
|
+
- Add missing links to sub-specs in README.md
|
|
213
|
+
- Generate suggested backlinks for sub-specs
|
|
214
|
+
- Create "Documentation Structure" section if missing (when sub-specs exist)
|
|
215
|
+
|
|
216
|
+
### Non-Fixable Issues
|
|
217
|
+
|
|
218
|
+
These require manual intervention:
|
|
219
|
+
- Invalid status/priority values (requires decision)
|
|
220
|
+
- Empty required sections (requires content)
|
|
221
|
+
- Broken links (requires investigation)
|
|
222
|
+
- Stale specs (requires status update or work)
|
|
223
|
+
- Complex corruption (requires human judgment)
|
|
224
|
+
|
|
225
|
+
## Error Severity Levels
|
|
226
|
+
|
|
227
|
+
**Error (blocks passing):**
|
|
228
|
+
- Missing required fields
|
|
229
|
+
- Invalid status/priority values
|
|
230
|
+
- Duplicate sections
|
|
231
|
+
- Corrupted code blocks
|
|
232
|
+
- Invalid JSON/YAML syntax
|
|
233
|
+
- Malformed markdown structure
|
|
234
|
+
|
|
235
|
+
**Warning (passes with warning):**
|
|
236
|
+
- Stale specs
|
|
237
|
+
- Suggested improvements
|
|
238
|
+
- Minor formatting issues
|
|
239
|
+
- Empty optional sections
|
|
240
|
+
|
|
241
|
+
**Info (informational):**
|
|
242
|
+
- Best practice suggestions
|
|
243
|
+
- Style recommendations
|
|
244
|
+
- Optimization hints
|
|
245
|
+
|
|
246
|
+
## Validation Rules Configuration
|
|
247
|
+
|
|
248
|
+
Rules can be customized in `.lean-spec/config.json`:
|
|
249
|
+
|
|
250
|
+
```json
|
|
251
|
+
{
|
|
252
|
+
"check": {
|
|
253
|
+
"rules": {
|
|
254
|
+
"frontmatter": {
|
|
255
|
+
"required": ["status", "created"],
|
|
256
|
+
"allowedStatus": ["planned", "in-progress", "complete", "archived"],
|
|
257
|
+
"allowedPriority": ["low", "medium", "high", "critical"]
|
|
258
|
+
},
|
|
259
|
+
"structure": {
|
|
260
|
+
"requireReadme": true,
|
|
261
|
+
"requiredSections": ["Overview", "Design", "Plan"],
|
|
262
|
+
"forbidEmptySections": true
|
|
263
|
+
},
|
|
264
|
+
"content": {
|
|
265
|
+
"minLength": 100,
|
|
266
|
+
"forbidTodoInComplete": true,
|
|
267
|
+
"validateLinks": true
|
|
268
|
+
},
|
|
269
|
+
"corruption": {
|
|
270
|
+
"detectDuplicateSections": true,
|
|
271
|
+
"validateCodeBlocks": true,
|
|
272
|
+
"validateJsonYaml": true,
|
|
273
|
+
"detectFragments": true
|
|
274
|
+
},
|
|
275
|
+
"staleness": {
|
|
276
|
+
"inProgressMaxDays": 30,
|
|
277
|
+
"noUpdateMaxDays": 90,
|
|
278
|
+
"plannedMaxDays": 60
|
|
279
|
+
},
|
|
280
|
+
"subSpecs": {
|
|
281
|
+
"validateNaming": true,
|
|
282
|
+
"requireReferences": true,
|
|
283
|
+
"detectOrphans": true,
|
|
284
|
+
"maxLinesPerFile": 400,
|
|
285
|
+
"warnLinesPerFile": 300,
|
|
286
|
+
"validateCrossReferences": true,
|
|
287
|
+
"standardNames": [
|
|
288
|
+
"DESIGN.md",
|
|
289
|
+
"IMPLEMENTATION.md",
|
|
290
|
+
"TESTING.md",
|
|
291
|
+
"API.md",
|
|
292
|
+
"ARCHITECTURE.md",
|
|
293
|
+
"MIGRATION.md",
|
|
294
|
+
"CONFIGURATION.md"
|
|
295
|
+
]
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## Why These Rules?
|
|
303
|
+
|
|
304
|
+
**Frontmatter:**
|
|
305
|
+
- Ensures specs are trackable and categorizable
|
|
306
|
+
- Required fields enable automation and reporting
|
|
307
|
+
- Valid values prevent typos and inconsistencies
|
|
308
|
+
|
|
309
|
+
**Structure:**
|
|
310
|
+
- Maintains consistency across team
|
|
311
|
+
- Makes specs easier to navigate
|
|
312
|
+
- Enables automated processing
|
|
313
|
+
|
|
314
|
+
**Content:**
|
|
315
|
+
- Prevents stub specs from cluttering project
|
|
316
|
+
- Ensures specs are complete before marking done
|
|
317
|
+
- Maintains quality standards
|
|
318
|
+
|
|
319
|
+
**Corruption:**
|
|
320
|
+
- Catches errors from failed AI edits
|
|
321
|
+
- Prevents shipping broken specs
|
|
322
|
+
- Early detection saves debugging time
|
|
323
|
+
|
|
324
|
+
**Staleness:**
|
|
325
|
+
- Identifies abandoned work
|
|
326
|
+
- Prompts status updates
|
|
327
|
+
- Keeps project health visible
|
package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: complete
|
|
3
|
+
created: '2025-11-03'
|
|
4
|
+
tags:
|
|
5
|
+
- ux
|
|
6
|
+
- polish
|
|
7
|
+
- v0.2.0
|
|
8
|
+
priority: high
|
|
9
|
+
related:
|
|
10
|
+
- 043-official-launch-02
|
|
11
|
+
created_at: '2025-11-03T00:00:00Z'
|
|
12
|
+
updated_at: '2025-11-05T05:43:43.501Z'
|
|
13
|
+
completed_at: '2025-11-05T05:43:43.501Z'
|
|
14
|
+
completed: '2025-11-05'
|
|
15
|
+
transitions:
|
|
16
|
+
- status: complete
|
|
17
|
+
at: '2025-11-05T05:43:43.501Z'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Pattern-Aware List Grouping
|
|
21
|
+
|
|
22
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-03 · **Tags**: ux, polish, v0.2.0
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
> Make `lean-spec list` adapt to flat vs date-grouped folder patterns
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
Currently `list.ts` has hardcoded date grouping logic that assumes the `{YYYYMMDD}/{NNN}-{name}/` pattern. When users configure flat patterns like `{NNN}-{name}/` or custom patterns, the list command still tries to group by date, which doesn't make sense.
|
|
30
|
+
|
|
31
|
+
**Issue:** List command doesn't adapt to configured folder pattern.
|
|
32
|
+
|
|
33
|
+
**Solution:** Detect pattern type and adjust grouping accordingly.
|
|
34
|
+
|
|
35
|
+
## Design
|
|
36
|
+
|
|
37
|
+
Make `lean-spec list` respect the configured folder pattern:
|
|
38
|
+
|
|
39
|
+
1. **For date-grouped patterns** (contains `{YYYYMMDD}/`):
|
|
40
|
+
- Group by date as it does now
|
|
41
|
+
- Show date headers
|
|
42
|
+
|
|
43
|
+
2. **For flat patterns**:
|
|
44
|
+
- Show flat list, no date grouping
|
|
45
|
+
- Or group by prefix if present
|
|
46
|
+
|
|
47
|
+
3. **For custom patterns**:
|
|
48
|
+
- Adapt based on pattern structure
|
|
49
|
+
- Default to flat list if unclear
|
|
50
|
+
|
|
51
|
+
**Implementation:**
|
|
52
|
+
- Read `folderPattern` from config
|
|
53
|
+
- Detect if pattern includes date component
|
|
54
|
+
- Adjust grouping logic in `list.ts` accordingly
|
|
55
|
+
|
|
56
|
+
## Plan
|
|
57
|
+
|
|
58
|
+
**Status (2025-11-05):** ✅ Complete - Implemented pattern detection utility and updated list command
|
|
59
|
+
|
|
60
|
+
- [x] Extract grouping logic from `list.ts`
|
|
61
|
+
- [x] Add pattern detection utility
|
|
62
|
+
- [x] Implement adaptive grouping
|
|
63
|
+
- [x] Add tests for flat/date/custom patterns
|
|
64
|
+
- [x] Update documentation
|
|
65
|
+
|
|
66
|
+
**Implementation Notes:**
|
|
67
|
+
- Makes list command respect configured folder patterns
|
|
68
|
+
- Fixes hardcoded date grouping assumption
|
|
69
|
+
- Improves UX for users with flat or custom patterns
|
|
70
|
+
- Part of spec 043 launch preparation
|
|
71
|
+
- Estimated: 2-3 hours implementation
|
|
72
|
+
- Works with spec 026 (pattern selection during init)
|
|
73
|
+
|
|
74
|
+
**Technical Approach:**
|
|
75
|
+
1. Read `folderPattern` from `.lean-spec/config.json`
|
|
76
|
+
2. Detect if pattern contains `{YYYYMMDD}/` for date grouping
|
|
77
|
+
3. Apply appropriate grouping strategy in list output
|
|
78
|
+
4. Maintain backward compatibility
|
|
79
|
+
|
|
80
|
+
## Implementation (2025-11-05)
|
|
81
|
+
|
|
82
|
+
**Created new utility module:** `src/utils/pattern-detection.ts`
|
|
83
|
+
- Exports `detectPatternType()` function that returns explicit pattern type
|
|
84
|
+
- Pattern types: `flat`, `date-grouped`, or `custom-grouped`
|
|
85
|
+
- Helper functions: `isDateGroupedPattern()`, `shouldGroupSpecs()`
|
|
86
|
+
- Makes the logic testable and reusable
|
|
87
|
+
|
|
88
|
+
**Updated list command:** `src/commands/list.ts`
|
|
89
|
+
- Replaced inline pattern detection with utility function
|
|
90
|
+
- Clearer intent: detect pattern type, then decide rendering strategy
|
|
91
|
+
- Maintains full backward compatibility
|
|
92
|
+
|
|
93
|
+
**Test coverage:**
|
|
94
|
+
- 14 unit tests for pattern-detection utility
|
|
95
|
+
- 4 integration tests for list command:
|
|
96
|
+
- Flat pattern → flat list
|
|
97
|
+
- Date-grouped pattern → grouped by date
|
|
98
|
+
- Custom-grouped pattern → grouped by custom field (e.g., milestone)
|
|
99
|
+
- Flat with date prefix → flat list (prefix in name, not folder)
|
|
100
|
+
- All 261 tests pass
|
|
101
|
+
|
|
102
|
+
**Files changed:**
|
|
103
|
+
- `src/utils/pattern-detection.ts` (new)
|
|
104
|
+
- `src/utils/pattern-detection.test.ts` (new)
|
|
105
|
+
- `src/list-integration.test.ts` (new)
|
|
106
|
+
- `src/commands/list.ts` (updated)
|
|
107
|
+
|
|
108
|
+
## Test
|
|
109
|
+
|
|
110
|
+
- [x] List command adapts to configured pattern
|
|
111
|
+
- [x] Date grouping works for date-grouped patterns
|
|
112
|
+
- [x] Flat list works for flat patterns
|
|
113
|
+
- [x] No breaking changes to existing behavior
|
|
114
|
+
|
|
115
|
+
## Notes
|
|
116
|
+
|
|
117
|
+
Related to spec 20251103/002-folder-structure-improvements - this is a polish issue split out for focused tracking.
|
package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: planned
|
|
3
|
+
created: 2025-11-03
|
|
4
|
+
tags: [templates, polish]
|
|
5
|
+
priority: low
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Template Config Updates
|
|
9
|
+
|
|
10
|
+
> Update all template configs to use new format consistently
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
The built-in templates (minimal, standard, enterprise) in `templates/` still use the legacy config format. They work fine but are inconsistent with the new flexible folder structure config format introduced in spec 20251103/001.
|
|
15
|
+
|
|
16
|
+
**Issue:** Templates use old config format.
|
|
17
|
+
|
|
18
|
+
**Solution:** Update all template `config.json` files to new format with `folderPattern`.
|
|
19
|
+
|
|
20
|
+
## Design
|
|
21
|
+
|
|
22
|
+
Update templates to use new config format:
|
|
23
|
+
|
|
24
|
+
**Current format (legacy):**
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"specDir": "specs"
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**New format:**
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"specDir": "specs",
|
|
35
|
+
"folderPattern": "{YYYYMMDD}/{NNN}-{name}/",
|
|
36
|
+
"prefix": "",
|
|
37
|
+
"frontmatter": {
|
|
38
|
+
"required": ["status", "created"],
|
|
39
|
+
"custom": {}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Templates to update:**
|
|
45
|
+
- `templates/minimal/config.json`
|
|
46
|
+
- `templates/standard/config.json`
|
|
47
|
+
- `templates/enterprise/config.json`
|
|
48
|
+
|
|
49
|
+
Each template should have a sensible default `folderPattern`:
|
|
50
|
+
- **Minimal**: Flat pattern `{NNN}-{name}/` (simplest)
|
|
51
|
+
- **Standard**: Date-grouped `{YYYYMMDD}/{NNN}-{name}/` (prevents conflicts)
|
|
52
|
+
- **Enterprise**: Date-grouped `{YYYYMMDD}/{NNN}-{name}/` (team workflows)
|
|
53
|
+
|
|
54
|
+
## Plan
|
|
55
|
+
|
|
56
|
+
- [ ] Update `templates/minimal/config.json`
|
|
57
|
+
- [ ] Update `templates/standard/config.json`
|
|
58
|
+
- [ ] Update `templates/enterprise/config.json`
|
|
59
|
+
- [ ] Test template creation with new configs
|
|
60
|
+
- [ ] Update template README files if needed
|
|
61
|
+
|
|
62
|
+
## Test
|
|
63
|
+
|
|
64
|
+
- [ ] All templates use new config format
|
|
65
|
+
- [ ] `lean-spec init` works with each template
|
|
66
|
+
- [ ] Config merging works correctly
|
|
67
|
+
- [ ] Backward compatibility maintained
|
|
68
|
+
|
|
69
|
+
## Notes
|
|
70
|
+
|
|
71
|
+
Related to spec 20251103/002-folder-structure-improvements - this is a polish issue split out for focused tracking.
|
|
72
|
+
|
|
73
|
+
Low priority since legacy format still works, but good for consistency.
|
package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: complete
|
|
3
|
+
created: '2025-11-03'
|
|
4
|
+
tags:
|
|
5
|
+
- ux
|
|
6
|
+
- init
|
|
7
|
+
- v0.2.0
|
|
8
|
+
priority: high
|
|
9
|
+
related:
|
|
10
|
+
- 043-official-launch-02
|
|
11
|
+
created_at: '2025-11-03T00:00:00Z'
|
|
12
|
+
updated_at: '2025-11-05T05:44:40.533Z'
|
|
13
|
+
completed_at: '2025-11-05T05:44:40.533Z'
|
|
14
|
+
completed: '2025-11-05'
|
|
15
|
+
transitions:
|
|
16
|
+
- status: complete
|
|
17
|
+
at: '2025-11-05T05:44:40.533Z'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Init Pattern Selection
|
|
21
|
+
|
|
22
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-03 · **Tags**: ux, init, v0.2.0
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
> Let users choose folder pattern during `lean-spec init`
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
Currently when running `lean-spec init`, users can only choose a template (minimal/standard/enterprise). The folder pattern is set by the template and users must manually edit `.lean-spec/config.json` to change it.
|
|
30
|
+
|
|
31
|
+
**Issue:** No way to choose folder pattern during initialization.
|
|
32
|
+
|
|
33
|
+
**Solution:** Add pattern selection step to init wizard.
|
|
34
|
+
|
|
35
|
+
## Design
|
|
36
|
+
|
|
37
|
+
Enhance the `lean-spec init` wizard to offer pattern choices:
|
|
38
|
+
|
|
39
|
+
**Current flow:**
|
|
40
|
+
1. Choose template (minimal/standard/enterprise)
|
|
41
|
+
2. Confirm → Done
|
|
42
|
+
|
|
43
|
+
**New flow:**
|
|
44
|
+
1. Choose template (minimal/standard/enterprise)
|
|
45
|
+
2. Choose folder pattern:
|
|
46
|
+
- `{YYYYMMDD}/{NNN}-{name}/` (Date-grouped - recommended for teams)
|
|
47
|
+
- `{YYYYMMDD}-{NNN}-{name}/` (Flat with date prefix)
|
|
48
|
+
- `{NNN}-{name}/` (Simple sequential)
|
|
49
|
+
- Custom (enter your own)
|
|
50
|
+
3. Confirm → Done
|
|
51
|
+
|
|
52
|
+
**UI mockup:**
|
|
53
|
+
```bash
|
|
54
|
+
$ lean-spec init
|
|
55
|
+
|
|
56
|
+
? Select a template:
|
|
57
|
+
❯ standard
|
|
58
|
+
minimal
|
|
59
|
+
enterprise
|
|
60
|
+
|
|
61
|
+
? Select folder pattern:
|
|
62
|
+
❯ Date-grouped: 20251103/001-my-spec/ (recommended for teams)
|
|
63
|
+
Flat with date: 20251103-001-my-spec/
|
|
64
|
+
Simple: 001-my-spec/
|
|
65
|
+
Custom pattern
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Implementation:**
|
|
69
|
+
- Add pattern selection prompt to `init.ts`
|
|
70
|
+
- Override template's `folderPattern` in generated config
|
|
71
|
+
- Provide sensible descriptions for each pattern
|
|
72
|
+
- Default to date-grouped (current best practice)
|
|
73
|
+
|
|
74
|
+
## Plan
|
|
75
|
+
|
|
76
|
+
**Status (2025-11-04):** Ready to implement - part of Phase 2 UX improvements for v0.2.0
|
|
77
|
+
|
|
78
|
+
- [ ] Add pattern selection to init wizard
|
|
79
|
+
- [ ] Update init command to handle pattern choice
|
|
80
|
+
- [ ] Add pattern override logic
|
|
81
|
+
- [ ] Update documentation
|
|
82
|
+
- [ ] Add tests for pattern selection
|
|
83
|
+
|
|
84
|
+
**Implementation Notes:**
|
|
85
|
+
- Straightforward UX enhancement to init flow
|
|
86
|
+
- Improves onboarding by eliminating manual config edits
|
|
87
|
+
- Part of spec 043 launch preparation
|
|
88
|
+
- Estimated: 3-4 hours implementation
|
|
89
|
+
- No blocking dependencies
|
|
90
|
+
|
|
91
|
+
**Testing Priority:**
|
|
92
|
+
- Pattern selection UI is intuitive
|
|
93
|
+
- Selected pattern correctly overrides template default
|
|
94
|
+
- Custom pattern validation works
|
|
95
|
+
- Backward compatibility maintained
|
|
96
|
+
|
|
97
|
+
## Test
|
|
98
|
+
|
|
99
|
+
- [ ] Init wizard offers pattern choices
|
|
100
|
+
- [ ] Selected pattern overrides template default
|
|
101
|
+
- [ ] Custom pattern option works
|
|
102
|
+
- [ ] Default pattern is date-grouped
|
|
103
|
+
- [ ] Backward compatibility (skip pattern selection if not needed)
|
|
104
|
+
|
|
105
|
+
## Notes
|
|
106
|
+
|
|
107
|
+
Related to spec 20251103/002-folder-structure-improvements - this is a polish issue split out for focused tracking.
|
|
108
|
+
|
|
109
|
+
This improves onboarding by letting users choose the right pattern upfront instead of requiring manual config edits.
|