@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
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
# System Architecture
|
|
2
|
+
|
|
3
|
+
**Mechanical transformation tools for AI agent orchestration**
|
|
4
|
+
|
|
5
|
+
## Design Principles
|
|
6
|
+
|
|
7
|
+
### 1. AI Agent Orchestration Model
|
|
8
|
+
|
|
9
|
+
**AI Agent Role** (GitHub Copilot, Claude, etc.):
|
|
10
|
+
- Read and understand spec content
|
|
11
|
+
- Detect issues (token count, redundancy, structure)
|
|
12
|
+
- Decide transformation strategy
|
|
13
|
+
- Determine split points, what to remove, what to compress
|
|
14
|
+
- Call tools with explicit parameters
|
|
15
|
+
- Verify results
|
|
16
|
+
|
|
17
|
+
**Tool Role** (LeanSpec CLI):
|
|
18
|
+
- Parse markdown structure (sections, line ranges)
|
|
19
|
+
- Execute mechanical transformations (split, move, delete)
|
|
20
|
+
- Update cross-references
|
|
21
|
+
- Validate markdown syntax
|
|
22
|
+
- Report results as structured data (JSON)
|
|
23
|
+
|
|
24
|
+
**Key Insight**: Tools don't need semantic understanding - AI agents already have context. Tools just need reliable execution.
|
|
25
|
+
|
|
26
|
+
**What Changed**: Previously designed tools to do semantic analysis (detect concerns, find redundancy). Now tools are dumb executors - AI agents do the thinking.
|
|
27
|
+
|
|
28
|
+
### 2. Deterministic Transformations
|
|
29
|
+
|
|
30
|
+
**No LLM in tools** - AI agent provides intelligence, tools execute:
|
|
31
|
+
```
|
|
32
|
+
AI Agent analyzes spec → Decides what to do → Calls tool with parameters
|
|
33
|
+
↓
|
|
34
|
+
Tool executes mechanically
|
|
35
|
+
↓
|
|
36
|
+
Returns result (JSON)
|
|
37
|
+
↓
|
|
38
|
+
AI Agent verifies/continues
|
|
39
|
+
|
|
40
|
+
NOT:
|
|
41
|
+
Tool tries to understand content → Makes decisions → Uses LLM → Slow/unreliable
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Benefits**:
|
|
45
|
+
- ✅ Predictable results (same input = same output)
|
|
46
|
+
- ✅ No hallucinations (just file operations)
|
|
47
|
+
- ✅ Fast (milliseconds, no LLM calls)
|
|
48
|
+
- ✅ Testable (deterministic behavior)
|
|
49
|
+
- ✅ Simple (no AI integration complexity)
|
|
50
|
+
|
|
51
|
+
### 3. Minimal Parsing Requirements
|
|
52
|
+
|
|
53
|
+
Tools only need basic markdown parsing:
|
|
54
|
+
- Extract line ranges: "Give me lines 100-200"
|
|
55
|
+
- Identify sections: "Where does ## Design start?"
|
|
56
|
+
- Parse frontmatter: "What's the current status?"
|
|
57
|
+
- Update references: "Change line 45 ref to line 23"
|
|
58
|
+
|
|
59
|
+
**No need for**:
|
|
60
|
+
- ❌ Semantic understanding of content
|
|
61
|
+
- ❌ Concern detection algorithms
|
|
62
|
+
- ❌ Similarity/redundancy detection
|
|
63
|
+
- ❌ Conflict detection
|
|
64
|
+
- ❌ Content summarization
|
|
65
|
+
|
|
66
|
+
AI agents already have this context - tools just execute their decisions.
|
|
67
|
+
|
|
68
|
+
## System Components
|
|
69
|
+
|
|
70
|
+
### High-Level Architecture
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
┌──────────────────────────────────────────────────┐
|
|
74
|
+
│ AI Agent (Copilot/Claude) │
|
|
75
|
+
│ • Reads specs │
|
|
76
|
+
│ • Detects issues (4,800 tokens) │
|
|
77
|
+
│ • Decides strategy (split by concerns) │
|
|
78
|
+
│ • Calls tools with parameters │
|
|
79
|
+
└─────────────────┬────────────────────────────────┘
|
|
80
|
+
│ (tool calls)
|
|
81
|
+
┌─────────────────▼────────────────────────────────┐
|
|
82
|
+
│ LeanSpec CLI Tools │
|
|
83
|
+
│ lean-spec analyze | split | compact | compress │
|
|
84
|
+
└─────────────────┬────────────────────────────────┘
|
|
85
|
+
│
|
|
86
|
+
┌─────────┼─────────┐
|
|
87
|
+
│ │ │
|
|
88
|
+
┌───────▼──────┐ │ ┌───────▼─────────┐
|
|
89
|
+
│ Parser │ │ │ Transformer │
|
|
90
|
+
│ (Basic MD) │ │ │ (Mechanical) │
|
|
91
|
+
└───────┬──────┘ │ └───────┬─────────┘
|
|
92
|
+
│ │ │
|
|
93
|
+
└─────────┼─────────┘
|
|
94
|
+
│
|
|
95
|
+
┌────────▼─────────┐
|
|
96
|
+
│ Validator │
|
|
97
|
+
│ (Syntax checks) │
|
|
98
|
+
└──────────────────┘
|
|
99
|
+
│
|
|
100
|
+
┌────────▼─────────┐
|
|
101
|
+
│ JSON Output │
|
|
102
|
+
│ (for AI agent) │
|
|
103
|
+
└──────────────────┘
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Key Points**:
|
|
107
|
+
- AI agent is the orchestrator (top)
|
|
108
|
+
- Tools are executors (middle)
|
|
109
|
+
- No "analyzer" or "concern detector" - AI does that
|
|
110
|
+
- Validation is just syntax checking
|
|
111
|
+
|
|
112
|
+
### Component Details
|
|
113
|
+
|
|
114
|
+
#### 1. Markdown Parser (Simplified)
|
|
115
|
+
|
|
116
|
+
**Technology**: [unified.js](https://unifiedjs.com/) for basic parsing
|
|
117
|
+
- `remark-parse`: Markdown → AST
|
|
118
|
+
- `remark-stringify`: AST → Markdown
|
|
119
|
+
- `remark-frontmatter`: YAML frontmatter
|
|
120
|
+
|
|
121
|
+
**Why unified.js**:
|
|
122
|
+
- ✅ Battle-tested
|
|
123
|
+
- ✅ Handles edge cases (nested lists, code blocks, etc.)
|
|
124
|
+
- ✅ Position tracking (line numbers)
|
|
125
|
+
- ✅ Round-trip safe (parse → stringify → parse = same)
|
|
126
|
+
|
|
127
|
+
**What we need**:
|
|
128
|
+
```typescript
|
|
129
|
+
interface MarkdownParser {
|
|
130
|
+
// Get section line ranges
|
|
131
|
+
getSectionRange(content: string, sectionName: string): [number, number];
|
|
132
|
+
|
|
133
|
+
// Extract line range
|
|
134
|
+
extractLines(content: string, start: number, end: number): string;
|
|
135
|
+
|
|
136
|
+
// Parse frontmatter
|
|
137
|
+
parseFrontmatter(content: string): Record<string, any>;
|
|
138
|
+
|
|
139
|
+
// Update frontmatter
|
|
140
|
+
updateFrontmatter(content: string, updates: Record<string, any>): string;
|
|
141
|
+
|
|
142
|
+
// Find and replace references
|
|
143
|
+
updateReferences(content: string, oldLine: number, newLine: number): string;
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**What we DON'T need**:
|
|
148
|
+
- ❌ Full AST traversal algorithms
|
|
149
|
+
- ❌ Semantic analysis
|
|
150
|
+
- ❌ Content understanding
|
|
151
|
+
- ❌ Concern detection
|
|
152
|
+
|
|
153
|
+
#### 2. Analyze Command (Metrics Only)
|
|
154
|
+
|
|
155
|
+
**Purpose**: Return structural metrics as JSON for AI agent
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
interface AnalyzeResult {
|
|
159
|
+
spec: string;
|
|
160
|
+
metrics: {
|
|
161
|
+
tokens: number;
|
|
162
|
+
lines: number;
|
|
163
|
+
sections: SectionInfo[];
|
|
164
|
+
codeBlocks: number;
|
|
165
|
+
};
|
|
166
|
+
threshold: {
|
|
167
|
+
status: 'excellent' | 'good' | 'warning' | 'error';
|
|
168
|
+
limit: number;
|
|
169
|
+
};
|
|
170
|
+
structure: {
|
|
171
|
+
section: string;
|
|
172
|
+
level: number;
|
|
173
|
+
lineRange: [number, number];
|
|
174
|
+
tokens: number;
|
|
175
|
+
}[];
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**No semantic analysis** - just counts and structure. AI agent interprets the data.
|
|
180
|
+
|
|
181
|
+
#### 3. Transformation Commands (Mechanical)
|
|
182
|
+
|
|
183
|
+
**Split**: Extract line ranges to new files
|
|
184
|
+
```typescript
|
|
185
|
+
function split(spec: string, outputs: Array<{file: string, lines: [number, number]}>) {
|
|
186
|
+
outputs.forEach(({file, lines}) => {
|
|
187
|
+
const content = extractLines(spec, lines[0], lines[1]);
|
|
188
|
+
writeFile(`${spec}/${file}`, content);
|
|
189
|
+
});
|
|
190
|
+
updateFrontmatter(spec, { /* sub-spec links */ });
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Compact**: Remove specified line ranges
|
|
195
|
+
```typescript
|
|
196
|
+
function compact(spec: string, removes: Array<[number, number]>) {
|
|
197
|
+
let content = readFile(spec);
|
|
198
|
+
removes.reverse().forEach(([start, end]) => {
|
|
199
|
+
content = removeLines(content, start, end);
|
|
200
|
+
});
|
|
201
|
+
writeFile(spec, content);
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Compress**: Replace line range with new content
|
|
206
|
+
```typescript
|
|
207
|
+
function compress(spec: string, range: [number, number], replacement: string) {
|
|
208
|
+
const content = readFile(spec);
|
|
209
|
+
const newContent = replaceLines(content, range[0], range[1], replacement);
|
|
210
|
+
writeFile(spec, newContent);
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Isolate**: Move lines to new spec
|
|
215
|
+
```typescript
|
|
216
|
+
function isolate(spec: string, lines: [number, number], newSpec: string) {
|
|
217
|
+
const content = extractLines(spec, lines[0], lines[1]);
|
|
218
|
+
createSpec(newSpec, content);
|
|
219
|
+
compact(spec, [lines]);
|
|
220
|
+
addReference(spec, newSpec);
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
All mechanical - no decisions, no LLM calls.
|
|
225
|
+
|
|
226
|
+
#### 4. Validation (Syntax Only)
|
|
227
|
+
|
|
228
|
+
**Purpose**: Ensure transformations produce valid markdown
|
|
229
|
+
|
|
230
|
+
```typescript
|
|
231
|
+
interface Validator {
|
|
232
|
+
validateMarkdown(content: string): ValidationResult;
|
|
233
|
+
validateFrontmatter(content: string): ValidationResult;
|
|
234
|
+
validateReferences(content: string): ValidationResult;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
class SyntaxValidator {
|
|
238
|
+
validateMarkdown(content) {
|
|
239
|
+
// Use unified.js to check for syntax errors
|
|
240
|
+
// No semantic validation
|
|
241
|
+
return { valid: true, errors: [] };
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
validateFrontmatter(content) {
|
|
245
|
+
// Use existing frontmatter validator (spec 018)
|
|
246
|
+
return validateFrontmatter(parseFrontmatter(content));
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
validateReferences(content) {
|
|
250
|
+
// Check that links point to existing files/sections
|
|
251
|
+
// No semantic validation of whether link makes sense
|
|
252
|
+
return { valid: true, brokenLinks: [] };
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**No complex validation** - just syntax and structure. AI agent handles semantic correctness.
|
|
258
|
+
|
|
259
|
+
## Data Flow
|
|
260
|
+
|
|
261
|
+
### Example: AI Agent Splits Oversized Spec
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
1. AI Agent reads spec
|
|
265
|
+
├─ Spec 045: 4,800 tokens
|
|
266
|
+
└─ Detects: Exceeds 3,500 token warning
|
|
267
|
+
|
|
268
|
+
2. AI Agent calls analyze
|
|
269
|
+
$ lean-spec analyze 045 --json
|
|
270
|
+
├─ Returns: Structure, sections, line ranges
|
|
271
|
+
└─ AI interprets: "5 major H2 sections"
|
|
272
|
+
|
|
273
|
+
3. AI Agent decides strategy
|
|
274
|
+
├─ Group sections into concerns
|
|
275
|
+
├─ Overview (lines 1-150)
|
|
276
|
+
├─ Design (lines 151-528)
|
|
277
|
+
└─ Testing (lines 529-710)
|
|
278
|
+
|
|
279
|
+
4. AI Agent calls split
|
|
280
|
+
$ lean-spec split 045 \
|
|
281
|
+
--output=README.md:1-150 \
|
|
282
|
+
--output=DESIGN.md:151-528 \
|
|
283
|
+
--output=TESTING.md:529-710
|
|
284
|
+
|
|
285
|
+
5. Tool executes mechanically
|
|
286
|
+
├─ Extract line ranges
|
|
287
|
+
├─ Create new files
|
|
288
|
+
├─ Update frontmatter
|
|
289
|
+
└─ Validate syntax
|
|
290
|
+
|
|
291
|
+
6. Tool returns result
|
|
292
|
+
{
|
|
293
|
+
"filesCreated": 3,
|
|
294
|
+
"totalTokens": 3052,
|
|
295
|
+
"success": true
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
7. AI Agent verifies
|
|
299
|
+
$ lean-spec tokens 045/*
|
|
300
|
+
└─ Confirms all under 2,000 tokens
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## Implementation Scope
|
|
304
|
+
|
|
305
|
+
### What We're Building
|
|
306
|
+
|
|
307
|
+
**Core Functionality**:
|
|
308
|
+
- ✅ Basic markdown parsing (sections, line ranges, frontmatter)
|
|
309
|
+
- ✅ `analyze` - Return structure as JSON
|
|
310
|
+
- ✅ `split` - Extract line ranges to files
|
|
311
|
+
- ✅ `compact` - Remove line ranges
|
|
312
|
+
- ✅ `compress` - Replace line range with text
|
|
313
|
+
- ✅ `isolate` - Move lines to new spec
|
|
314
|
+
- ✅ Syntax validation
|
|
315
|
+
|
|
316
|
+
**What We're NOT Building** (AI agent does this):
|
|
317
|
+
- ❌ Concern detection algorithms
|
|
318
|
+
- ❌ Redundancy detection
|
|
319
|
+
- ❌ Similarity analysis
|
|
320
|
+
- ❌ Conflict detection
|
|
321
|
+
- ❌ Content summarization
|
|
322
|
+
- ❌ Semantic understanding
|
|
323
|
+
|
|
324
|
+
### Technology Stack
|
|
325
|
+
|
|
326
|
+
**Core**:
|
|
327
|
+
- `unified.js` + `remark-parse` - Markdown parsing
|
|
328
|
+
- `remark-frontmatter` - YAML parsing
|
|
329
|
+
- TypeScript - Type safety
|
|
330
|
+
- Node.js - Runtime
|
|
331
|
+
|
|
332
|
+
**Testing**:
|
|
333
|
+
- Vitest - Unit/integration tests
|
|
334
|
+
- Existing specs - Real-world test data
|
|
335
|
+
|
|
336
|
+
**CLI**:
|
|
337
|
+
- Commander.js - CLI framework (already used)
|
|
338
|
+
- Existing CLI infrastructure from core package
|
|
339
|
+
|
|
340
|
+
## Performance Targets
|
|
341
|
+
|
|
342
|
+
| Operation | Target | Why |
|
|
343
|
+
|-----------|--------|-----|
|
|
344
|
+
| Parse spec | <50ms | Feels instant |
|
|
345
|
+
| Analyze | <100ms | AI agent needs fast feedback |
|
|
346
|
+
| Split/compact | <200ms | Simple file operations |
|
|
347
|
+
| Validate | <50ms | Just syntax checking |
|
|
348
|
+
|
|
349
|
+
**No complex algorithms = naturally fast**
|
|
350
|
+
|
|
351
|
+
## Error Handling
|
|
352
|
+
|
|
353
|
+
**Simple and clear**:
|
|
354
|
+
```typescript
|
|
355
|
+
// Invalid line range
|
|
356
|
+
if (startLine > endLine || startLine < 1) {
|
|
357
|
+
return { error: 'Invalid line range', code: 2 };
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// File doesn't exist
|
|
361
|
+
if (!fs.existsSync(specPath)) {
|
|
362
|
+
return { error: 'Spec not found', code: 4 };
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Markdown syntax error
|
|
366
|
+
if (!isValidMarkdown(content)) {
|
|
367
|
+
return { error: 'Invalid markdown syntax', code: 3 };
|
|
368
|
+
}
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Exit codes match COMMANDS.md specification.
|
|
372
|
+
|
|
373
|
+
## Future Considerations
|
|
374
|
+
|
|
375
|
+
### v0.4.0: Enhanced Tooling
|
|
376
|
+
- `--dry-run` mode for all commands
|
|
377
|
+
- `preview` command for visualization
|
|
378
|
+
- `rollback` via git integration
|
|
379
|
+
|
|
380
|
+
### v0.5.0: MCP Integration
|
|
381
|
+
- Expose tools as MCP server
|
|
382
|
+
- AI agents can call tools over stdio/HTTP
|
|
383
|
+
- Better integration with Claude Desktop, etc.
|
|
384
|
+
|
|
385
|
+
### v1.0.0: Advanced Features
|
|
386
|
+
- Batch operations (split multiple specs)
|
|
387
|
+
- Project-wide analysis
|
|
388
|
+
- CI/CD integration
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
**Key Takeaway**: Keep it simple. Tools provide clean file operations, AI agents provide intelligence. This architecture reflects that philosophy.
|