@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,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: complete
|
|
3
|
+
created: '2025-11-03'
|
|
4
|
+
tags:
|
|
5
|
+
- ux
|
|
6
|
+
- visualization
|
|
7
|
+
- pm-tools
|
|
8
|
+
priority: high
|
|
9
|
+
completed: '2025-11-03'
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# gantt-ux-improvements
|
|
13
|
+
|
|
14
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-03 · **Tags**: ux, visualization, pm-tools
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
The current `lean-spec gantt` command has significant UX/UI issues that make it confusing and not very useful:
|
|
19
|
+
|
|
20
|
+
**Current Problems:**
|
|
21
|
+
|
|
22
|
+
1. **All bars look the same without due dates** - Every planned spec shows a 2-week bar starting from creation date, making it impossible to distinguish urgency or actual timelines
|
|
23
|
+
2. **Bars start from creation date** - This clutters the past with already-created specs instead of focusing on future work
|
|
24
|
+
3. **No visual priority** - All specs get equal visual weight regardless of priority
|
|
25
|
+
4. **Redundant metadata** - Shows status emoji + status text + created date (which is already in the timeline)
|
|
26
|
+
5. **Poor information density** - Takes 4 lines per spec but doesn't show enough useful info
|
|
27
|
+
6. **No grouping** - All specs are flat, making it hard to see patterns or organize work
|
|
28
|
+
7. **Today marker (○)** is often invisible when it overlaps with bars
|
|
29
|
+
|
|
30
|
+
**Why Fix This:**
|
|
31
|
+
Gantt charts are meant to show timeline planning and dependencies. The current implementation doesn't help users plan or prioritize work effectively.
|
|
32
|
+
|
|
33
|
+
## Design
|
|
34
|
+
|
|
35
|
+
### Option A: Simplified Timeline (Recommended)
|
|
36
|
+
|
|
37
|
+
Focus on **future work** with **clear visual hierarchy**:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
📅 Gantt Chart (4 weeks from Nov 3, 2025)
|
|
41
|
+
|
|
42
|
+
Spec Timeline
|
|
43
|
+
Nov 3 Nov 10 Nov 17 Nov 24
|
|
44
|
+
───────────────────────────────────────── ────────────────────────────────
|
|
45
|
+
│ Today
|
|
46
|
+
|
|
47
|
+
🔴 CRITICAL (0)
|
|
48
|
+
|
|
49
|
+
🟠 HIGH (2)
|
|
50
|
+
⚡ 002-complete-custom-frontmatter ████████░░░░░░░░░░░░░░░░
|
|
51
|
+
📋 016-created-date-format-bug (no due date set)
|
|
52
|
+
|
|
53
|
+
🟡 MEDIUM (5)
|
|
54
|
+
📋 005-pattern-aware-list-grouping (no due date set)
|
|
55
|
+
📋 012-init-pattern-selection (no due date set)
|
|
56
|
+
📋 004-github-action (no due date set)
|
|
57
|
+
📋 006-vscode-extension (no due date set)
|
|
58
|
+
📋 008-spec-validation (no due date set)
|
|
59
|
+
|
|
60
|
+
🟢 LOW (1)
|
|
61
|
+
📋 006-template-config-updates (no due date set)
|
|
62
|
+
|
|
63
|
+
Summary: 1 in-progress · 7 planned · 0 overdue
|
|
64
|
+
💡 Tip: Add "due: YYYY-MM-DD" to frontmatter for timeline planning
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Key Changes:**
|
|
68
|
+
- Group by priority (visual hierarchy)
|
|
69
|
+
- Fixed-width columns: Spec (43 chars) + Timeline (32 chars)
|
|
70
|
+
- Status emoji merged into spec name
|
|
71
|
+
- Timeline bars only show if there's a due date
|
|
72
|
+
- Timeline starts from today, not from creation dates
|
|
73
|
+
- "(no due date set)" encourages adding due dates
|
|
74
|
+
|
|
75
|
+
### Option B: Dependency-First View
|
|
76
|
+
|
|
77
|
+
Focus on **critical path** and **blockers**:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
📅 Gantt Chart - Dependency View
|
|
81
|
+
|
|
82
|
+
Spec Timeline
|
|
83
|
+
───────────────────────────────────────── ────────────────────────────────
|
|
84
|
+
|
|
85
|
+
⚠️ BLOCKED (0 specs waiting on dependencies)
|
|
86
|
+
|
|
87
|
+
⚡ IN PROGRESS (1)
|
|
88
|
+
⚡ 002-complete-custom-frontmatter ████████░░░░░░░░ started Nov 2
|
|
89
|
+
[HIGH]
|
|
90
|
+
|
|
91
|
+
📋 READY TO START (7 specs with no blockers)
|
|
92
|
+
🟠 High Priority (2)
|
|
93
|
+
📋 016-created-date-format-bug
|
|
94
|
+
|
|
95
|
+
🟡 Medium Priority (5)
|
|
96
|
+
📋 005-pattern-aware-list-grouping
|
|
97
|
+
📋 012-init-pattern-selection
|
|
98
|
+
📋 004-github-action
|
|
99
|
+
📋 006-vscode-extension
|
|
100
|
+
📋 008-spec-validation
|
|
101
|
+
|
|
102
|
+
🟢 Low Priority (1)
|
|
103
|
+
📋 006-template-config-updates
|
|
104
|
+
|
|
105
|
+
✅ COMPLETE (22) - use --show-complete to view
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Option C: Hybrid Approach (Table-Based)
|
|
109
|
+
|
|
110
|
+
Combine timeline + priority + dependencies with **table alignment**:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
📅 Gantt Chart (4 weeks from Nov 3, 2025)
|
|
114
|
+
|
|
115
|
+
Spec Timeline
|
|
116
|
+
Nov 3 Nov 10 Nov 17 Nov 24
|
|
117
|
+
───────────────────────────────────────── ────────────────────────────────
|
|
118
|
+
│ Today
|
|
119
|
+
|
|
120
|
+
🔴 CRITICAL (0)
|
|
121
|
+
|
|
122
|
+
🟠 HIGH (2)
|
|
123
|
+
⚡ 002-complete-custom-frontmatter ████████░░░░░░░░░░░░░░░░
|
|
124
|
+
📋 016-created-date-format-bug (no due date set)
|
|
125
|
+
|
|
126
|
+
🟡 MEDIUM (5)
|
|
127
|
+
📋 005-pattern-aware-list-grouping (no due date set)
|
|
128
|
+
📋 012-init-pattern-selection (no due date set)
|
|
129
|
+
📋 004-github-action (no due date set)
|
|
130
|
+
📋 006-vscode-extension (no due date set)
|
|
131
|
+
📋 008-spec-validation (no due date set)
|
|
132
|
+
|
|
133
|
+
🟢 LOW (1)
|
|
134
|
+
📋 006-template-config-updates (no due date set)
|
|
135
|
+
|
|
136
|
+
Summary: 1 in-progress · 7 planned · 0 overdue
|
|
137
|
+
💡 Add "due: YYYY-MM-DD" to see timeline bars
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Recommendation: Option A + Option B Hybrid
|
|
141
|
+
|
|
142
|
+
Implement **Option A** as the default view (priority-grouped timeline), and add **flags**:
|
|
143
|
+
- `lean-spec gantt` - Priority-grouped with timelines (Option A)
|
|
144
|
+
- `lean-spec gantt --deps` - Dependency-focused view (Option B)
|
|
145
|
+
- `lean-spec gantt --compact` - Ultra-compact list view
|
|
146
|
+
- `lean-spec gantt --traditional` - Classic gantt with all metadata (current style)
|
|
147
|
+
|
|
148
|
+
## Plan
|
|
149
|
+
|
|
150
|
+
- [ ] Decide on default view (recommend Option A)
|
|
151
|
+
- [ ] **Define column width constants**
|
|
152
|
+
- Spec column: 43 characters (fixed)
|
|
153
|
+
- Timeline column: 32 characters (8 chars per week × 4 weeks default)
|
|
154
|
+
- Separator: 2 spaces between columns
|
|
155
|
+
- [ ] **Implement table-based layout system**
|
|
156
|
+
- Create helper functions for column alignment
|
|
157
|
+
- Ensure spec names are truncated/padded to 43 chars
|
|
158
|
+
- Ensure timeline bars are exactly 32 chars (or weeks × 8)
|
|
159
|
+
- [ ] Implement priority grouping with section headers
|
|
160
|
+
- [ ] Merge status emoji into spec name (⚡ for in-progress, 📋 for planned, ✅ for complete)
|
|
161
|
+
- [ ] Add column headers: "Spec" and "Timeline"
|
|
162
|
+
- [ ] Add separator line matching column widths
|
|
163
|
+
- [ ] Add calendar dates in Timeline column header (Nov 3, Nov 10, etc.)
|
|
164
|
+
- [ ] Add "Today" marker aligned to current week
|
|
165
|
+
- [ ] Change timeline bars to start from "today" instead of spec creation dates
|
|
166
|
+
- [ ] Show "(no due date set)" for specs without due dates instead of fake bars
|
|
167
|
+
- [ ] Add --deps flag for Option B (dependency view)
|
|
168
|
+
- [ ] Add --compact flag for minimal view
|
|
169
|
+
- [ ] Add --traditional flag for old style
|
|
170
|
+
- [ ] Update tests to verify column alignment
|
|
171
|
+
- [ ] Update documentation
|
|
172
|
+
|
|
173
|
+
## Test
|
|
174
|
+
|
|
175
|
+
- [ ] **Column alignment is perfect**
|
|
176
|
+
- Spec column exactly 43 chars wide (including status emoji and padding)
|
|
177
|
+
- Timeline column exactly 32 chars (8 per week)
|
|
178
|
+
- Column separator line matches column widths exactly
|
|
179
|
+
- Calendar dates align with timeline bars
|
|
180
|
+
- [ ] Priority groups show clear visual hierarchy
|
|
181
|
+
- [ ] Status emoji (⚡📋✅) appears inline with spec names
|
|
182
|
+
- [ ] Specs without due dates show "(no due date set)" instead of bars
|
|
183
|
+
- [ ] Timeline starts from today, not creation dates
|
|
184
|
+
- [ ] "Today" marker aligns with current week boundary
|
|
185
|
+
- [ ] --deps flag shows blocker-focused view
|
|
186
|
+
- [ ] Works well with 5, 10, 50 specs
|
|
187
|
+
- [ ] Long spec names truncate gracefully (with …)
|
|
188
|
+
- [ ] Short spec names pad correctly
|
|
189
|
+
- [ ] Alignment is consistent across all priority groups
|
|
190
|
+
|
|
191
|
+
## Notes
|
|
192
|
+
|
|
193
|
+
**Current Code Location:** `src/commands/gantt.ts`
|
|
194
|
+
|
|
195
|
+
**Critical Implementation Rules:**
|
|
196
|
+
|
|
197
|
+
1. **Column Width Constants** (must be enforced):
|
|
198
|
+
```typescript
|
|
199
|
+
const SPEC_COLUMN_WIDTH = 43; // Includes status emoji + 1 space + spec name
|
|
200
|
+
const TIMELINE_COLUMN_WIDTH = weeks * 8; // 8 chars per week
|
|
201
|
+
const COLUMN_SEPARATOR = ' '; // 2 spaces
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
2. **Spec Name Formatting**:
|
|
205
|
+
- Format: `{emoji} {spec-name}` (e.g., `⚡ 002-complete-custom-frontmatter`)
|
|
206
|
+
- Total width must be exactly 43 chars (pad with spaces or truncate with …)
|
|
207
|
+
- Emoji is 1 char, space is 1 char, name is remaining chars
|
|
208
|
+
|
|
209
|
+
3. **Alignment Pattern** (same as `stats` and `timeline`):
|
|
210
|
+
```
|
|
211
|
+
Header Header
|
|
212
|
+
─────────────── ────────────────────────────────
|
|
213
|
+
Content Content
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
4. **Timeline Calculation**:
|
|
217
|
+
- Start date = today.startOf('week')
|
|
218
|
+
- Each week = 8 characters exactly
|
|
219
|
+
- Timeline bars use: ████ (filled), ░░░░ (empty), │ (today marker)
|
|
220
|
+
|
|
221
|
+
5. **Priority Groups**:
|
|
222
|
+
- Always show all 4 priorities (CRITICAL, HIGH, MEDIUM, LOW)
|
|
223
|
+
- Show count in parentheses: `🟠 HIGH (2)`
|
|
224
|
+
- Indent specs under priority by 2 spaces
|
|
225
|
+
|
|
226
|
+
**Key Issue:** The original design tried to show timeline bars for all specs even without due dates by creating fake 2-week estimates. This creates visual noise and doesn't help with planning.
|
|
227
|
+
|
|
228
|
+
**Better Approach:** Embrace that most specs don't have due dates yet, and make the gantt chart encourage setting them while still being useful for high-level overview. Use "(no due date set)" placeholder text.
|
|
229
|
+
|
|
230
|
+
**Alignment is Critical:** Following the same column-width discipline as `stats` and `timeline` ensures a consistent, professional CLI experience. All widths must be exact.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: complete
|
|
3
|
+
created: '2025-11-03'
|
|
4
|
+
tags:
|
|
5
|
+
- security
|
|
6
|
+
- refactor
|
|
7
|
+
priority: high
|
|
8
|
+
completed: '2025-11-03'
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# console-log-chalk-security
|
|
12
|
+
|
|
13
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-03 · **Tags**: security, refactor
|
|
14
|
+
|
|
15
|
+
**Project**: lean-spec
|
|
16
|
+
**Team**: Core Development
|
|
17
|
+
|
|
18
|
+
## Overview
|
|
19
|
+
|
|
20
|
+
**Security Issue**: Direct use of `console.log` with `chalk` throughout the codebase creates a potential security vulnerability. User-controlled input that flows through chalk formatting without proper sanitization could be exploited via terminal escape sequences or ANSI injection attacks.
|
|
21
|
+
|
|
22
|
+
**Why now**: This is a security concern that should be addressed before wider adoption. The codebase has 40+ instances of `console.log` + `chalk` usage that need to be audited and potentially refactored.
|
|
23
|
+
|
|
24
|
+
## Security Concerns
|
|
25
|
+
|
|
26
|
+
1. **ANSI Injection**: Malicious spec names or metadata could inject terminal control sequences
|
|
27
|
+
2. **Terminal Escape Abuse**: Unescaped user input could manipulate terminal behavior
|
|
28
|
+
3. **Output Integrity**: Attackers could craft inputs that alter display or hide information
|
|
29
|
+
|
|
30
|
+
**Attack Vector Example**:
|
|
31
|
+
```
|
|
32
|
+
lean-spec create "\x1b[0m\x1b[31mFAKE ERROR\x1b[0m"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Design
|
|
36
|
+
|
|
37
|
+
**Approach**: Create a safe output abstraction layer
|
|
38
|
+
|
|
39
|
+
1. **Centralized Output Module** (`src/utils/safe-output.ts`):
|
|
40
|
+
- Sanitize all user-provided input before chalk formatting
|
|
41
|
+
- Strip ANSI sequences from untrusted strings
|
|
42
|
+
- Provide safe wrappers: `safeLog()`, `safeSuccess()`, `safeWarn()`, etc.
|
|
43
|
+
|
|
44
|
+
2. **Input Sanitization**:
|
|
45
|
+
- Escape or strip terminal control characters
|
|
46
|
+
- Validate spec names, paths, and metadata
|
|
47
|
+
- Use allowlist approach for known-safe characters
|
|
48
|
+
|
|
49
|
+
3. **Migration Strategy**:
|
|
50
|
+
- Replace direct `console.log(chalk...)` with safe wrappers
|
|
51
|
+
- Update `src/utils/ui.ts` to use sanitization
|
|
52
|
+
- Audit all instances found in grep results
|
|
53
|
+
|
|
54
|
+
## Plan
|
|
55
|
+
|
|
56
|
+
- [ ] Create `src/utils/safe-output.ts` with sanitization utilities
|
|
57
|
+
- [ ] Implement `stripAnsi()` and `sanitizeUserInput()` functions
|
|
58
|
+
- [ ] Add safe output wrappers (safeLog, safeSuccess, safeWarn, etc.)
|
|
59
|
+
- [ ] Update `src/utils/ui.ts` to use safe wrappers internally
|
|
60
|
+
- [ ] Migrate all console.log + chalk usage in commands:
|
|
61
|
+
- [ ] `src/commands/board.ts` (18 instances)
|
|
62
|
+
- [ ] `src/commands/search.ts` (8 instances)
|
|
63
|
+
- [ ] `src/commands/files.ts` (9 instances)
|
|
64
|
+
- [ ] `src/commands/deps.ts` (1 instance)
|
|
65
|
+
- [ ] `src/commands/update.ts` (2 instances)
|
|
66
|
+
- [ ] `src/utils/template-helpers.ts` (3 instances)
|
|
67
|
+
- [ ] Add ESLint rule to prevent direct console.log + chalk usage
|
|
68
|
+
- [ ] Add security documentation to README
|
|
69
|
+
|
|
70
|
+
## Test
|
|
71
|
+
|
|
72
|
+
- [ ] Unit tests for ANSI injection attempts
|
|
73
|
+
- [ ] Test spec creation with malicious names containing escape sequences
|
|
74
|
+
- [ ] Verify output sanitization doesn't break legitimate formatting
|
|
75
|
+
- [ ] Test edge cases: unicode, emojis, special characters
|
|
76
|
+
- [ ] Manual testing with terminal escape sequences
|
|
77
|
+
- [ ] Verify no ANSI bleeding in error messages
|
|
78
|
+
|
|
79
|
+
## Notes
|
|
80
|
+
|
|
81
|
+
**Libraries to consider**:
|
|
82
|
+
- `strip-ansi` - Well-maintained library for stripping ANSI codes
|
|
83
|
+
- `ansi-regex` - For detection/validation
|
|
84
|
+
|
|
85
|
+
**Files with console.log + chalk**:
|
|
86
|
+
- 40+ instances found across 7 files
|
|
87
|
+
- Most concentrated in `board.ts` (18), `search.ts` (8), `files.ts` (9)
|
|
88
|
+
|
|
89
|
+
**Severity**: High - This affects all user-facing output and could be exploited in automated environments or CI/CD pipelines where lean-spec commands process untrusted input.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: complete
|
|
3
|
+
created: '2025-11-03'
|
|
4
|
+
tags:
|
|
5
|
+
- integration
|
|
6
|
+
- mcp
|
|
7
|
+
- ai
|
|
8
|
+
priority: high
|
|
9
|
+
completed: '2025-11-03'
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# MCP Server Integration
|
|
13
|
+
|
|
14
|
+
> **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-03 · **Tags**: integration, mcp, ai
|
|
15
|
+
|
|
16
|
+
**Project**: lean-spec
|
|
17
|
+
**Team**: Core Development
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Build a Model Context Protocol (MCP) server for LeanSpec that enables AI assistants (Claude Desktop, Cline, etc.) to interact with LeanSpec projects. This allows AI agents to read specs, create new ones, update status, search, and visualize project state—directly from their native environment.
|
|
22
|
+
|
|
23
|
+
**Why now?** MCP is the emerging standard for AI-tool integration. Supporting it positions LeanSpec as AI-native and enables seamless workflows where agents can discover, understand, and contribute to specs without context switching.
|
|
24
|
+
|
|
25
|
+
## Design
|
|
26
|
+
|
|
27
|
+
**Architecture:**
|
|
28
|
+
- TypeScript MCP server (`packages/mcp-server/`)
|
|
29
|
+
- Implements MCP protocol for tools, prompts, and resources
|
|
30
|
+
- Reuses existing CLI logic via shared core package
|
|
31
|
+
|
|
32
|
+
**MCP Tools (exposed to AI):**
|
|
33
|
+
- `lean-spec_list` - List specs with filtering
|
|
34
|
+
- `lean-spec_search` - Full-text search across specs
|
|
35
|
+
- `lean-spec_read` - Read full spec content
|
|
36
|
+
- `lean-spec_create` - Create new spec
|
|
37
|
+
- `lean-spec_update` - Update spec frontmatter/status
|
|
38
|
+
- `lean-spec_stats` - Get project statistics
|
|
39
|
+
- `lean-spec_board` - Get Kanban board view
|
|
40
|
+
- `lean-spec_deps` - Show dependencies
|
|
41
|
+
|
|
42
|
+
**MCP Resources (browsable by AI):**
|
|
43
|
+
- `spec://<spec-name>` - Individual spec content
|
|
44
|
+
- `board://kanban` - Current board state
|
|
45
|
+
- `stats://overview` - Project statistics
|
|
46
|
+
|
|
47
|
+
**MCP Prompts (quick actions for users):**
|
|
48
|
+
- "Create feature spec" - Guided spec creation
|
|
49
|
+
- "Update spec status" - Quick status changes
|
|
50
|
+
- "Find related specs" - Dependency discovery
|
|
51
|
+
|
|
52
|
+
**Configuration:**
|
|
53
|
+
- Add to Claude Desktop config or any MCP-compatible client
|
|
54
|
+
- Auto-discover project root from config file
|
|
55
|
+
- Support multiple projects via config path parameter
|
|
56
|
+
|
|
57
|
+
## Plan
|
|
58
|
+
|
|
59
|
+
- [ ] Set up MCP server package structure
|
|
60
|
+
- [ ] Implement MCP protocol handlers (tools, resources, prompts)
|
|
61
|
+
- [ ] Wrap CLI commands as MCP tools
|
|
62
|
+
- [ ] Add resource providers for browseable content
|
|
63
|
+
- [ ] Create helpful prompt templates
|
|
64
|
+
- [ ] Write setup instructions for Claude Desktop
|
|
65
|
+
- [ ] Test with Claude Desktop and other MCP clients
|
|
66
|
+
- [ ] Document in `docs/ai-integration/mcp-server.md`
|
|
67
|
+
|
|
68
|
+
## Test
|
|
69
|
+
|
|
70
|
+
- [ ] MCP server starts and responds to protocol handshake
|
|
71
|
+
- [ ] All tools execute successfully and return valid data
|
|
72
|
+
- [ ] Resources are browseable and return correct content
|
|
73
|
+
- [ ] Prompts generate appropriate responses
|
|
74
|
+
- [ ] Works with Claude Desktop in real project
|
|
75
|
+
- [ ] Error handling for invalid project paths
|
|
76
|
+
- [ ] Multiple projects can be configured simultaneously
|
|
77
|
+
|
|
78
|
+
## Notes
|
|
79
|
+
|
|
80
|
+
**MCP Protocol Reference:** https://modelcontextprotocol.io/
|
|
81
|
+
|
|
82
|
+
**Related Work:**
|
|
83
|
+
- VS Code extension (spec 006) - complementary UX for different context
|
|
84
|
+
- PM integrations (planned) - MCP could expose sync status
|
|
85
|
+
|
|
86
|
+
**Implementation Notes:**
|
|
87
|
+
- Consider using `@modelcontextprotocol/sdk` for TypeScript
|
|
88
|
+
- Keep server stateless; read from filesystem on each request
|
|
89
|
+
- Reuse validation and config logic from core CLI
|
package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: archived
|
|
3
|
+
created: '2025-11-03'
|
|
4
|
+
tags:
|
|
5
|
+
- docs
|
|
6
|
+
- maintenance
|
|
7
|
+
- clarity
|
|
8
|
+
- merged-into-051
|
|
9
|
+
priority: low
|
|
10
|
+
related:
|
|
11
|
+
- 043-official-launch-02
|
|
12
|
+
created_at: '2025-11-03T00:00:00Z'
|
|
13
|
+
updated_at: '2025-11-11T04:26:08.615Z'
|
|
14
|
+
completed_at: '2025-11-07T07:00:40.261Z'
|
|
15
|
+
completed: '2025-11-07'
|
|
16
|
+
transitions:
|
|
17
|
+
- status: complete
|
|
18
|
+
at: '2025-11-07T07:00:40.261Z'
|
|
19
|
+
- status: archived
|
|
20
|
+
at: '2025-11-11T04:26:08.615Z'
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Documentation Overhaul & Simplification
|
|
24
|
+
|
|
25
|
+
> **Status**: 📦 Archived · **Priority**: Low · **Created**: 2025-11-03 · **Tags**: docs, maintenance, clarity, merged-into-051
|
|
26
|
+
|
|
27
|
+
**Project**: lean-spec
|
|
28
|
+
**Team**: Core Development
|
|
29
|
+
|
|
30
|
+
## Overview
|
|
31
|
+
|
|
32
|
+
Audit and simplify all LeanSpec documentation to eliminate unnecessary complexity, reduce redundancy, and ensure docs stay true to the "lean" philosophy. We may have accumulated overkill documentation that contradicts our core principle of clarity over documentation.
|
|
33
|
+
|
|
34
|
+
**Why now?** As the project matures, docs naturally accumulate. Before we scale further, we need to ensure our documentation practices what we preach: minimal, clear, actionable—not exhaustive.
|
|
35
|
+
|
|
36
|
+
## Design
|
|
37
|
+
|
|
38
|
+
**Audit Scope:**
|
|
39
|
+
- Main README.md
|
|
40
|
+
- AGENTS.md (AI agent instructions)
|
|
41
|
+
- CONTRIBUTING.md
|
|
42
|
+
- Documentation website (`docs-site/docs/**`)
|
|
43
|
+
- Inline code comments
|
|
44
|
+
- Spec templates
|
|
45
|
+
- Example specs
|
|
46
|
+
|
|
47
|
+
**Assessment Criteria:**
|
|
48
|
+
|
|
49
|
+
**Keep if:**
|
|
50
|
+
- ✅ Answers "why" or "what" clearly
|
|
51
|
+
- ✅ Needed for first-time users
|
|
52
|
+
- ✅ Prevents common mistakes
|
|
53
|
+
- ✅ Explains non-obvious design decisions
|
|
54
|
+
|
|
55
|
+
**Cut if:**
|
|
56
|
+
- ❌ Duplicates other docs
|
|
57
|
+
- ❌ States the obvious (self-documenting code)
|
|
58
|
+
- ❌ Over-explains simple concepts
|
|
59
|
+
- ❌ Shows off rather than helps
|
|
60
|
+
- ❌ Prescribes one "right way" unnecessarily
|
|
61
|
+
- ❌ Hasn't been updated and is stale
|
|
62
|
+
|
|
63
|
+
**Structure Review:**
|
|
64
|
+
|
|
65
|
+
**README.md:**
|
|
66
|
+
- Should get someone started in <5 min
|
|
67
|
+
- Quick install, one example, link to docs
|
|
68
|
+
- Cut: long philosophy sections, redundant examples
|
|
69
|
+
|
|
70
|
+
**AGENTS.md:**
|
|
71
|
+
- Keep focused on actionable instructions
|
|
72
|
+
- Remove redundant context (they can read README)
|
|
73
|
+
- Ensure examples are current
|
|
74
|
+
|
|
75
|
+
**Documentation Website:**
|
|
76
|
+
- Consolidate overlapping guides
|
|
77
|
+
- Merge "Getting Started" with "Quick Start" if redundant
|
|
78
|
+
- Reduce tutorial depth—link to specs as examples instead
|
|
79
|
+
|
|
80
|
+
**Spec Templates:**
|
|
81
|
+
- Already fairly lean, but review for cruft
|
|
82
|
+
- Ensure comments are helpful, not prescriptive
|
|
83
|
+
|
|
84
|
+
**Code Comments:**
|
|
85
|
+
- Audit for unnecessary comments
|
|
86
|
+
- Keep: "why" comments, non-obvious decisions
|
|
87
|
+
- Remove: "what" comments that restate code
|
|
88
|
+
|
|
89
|
+
## Plan
|
|
90
|
+
|
|
91
|
+
**Status (2025-11-04):** Ready to start - part of Phase 2 for v0.2.0 launch
|
|
92
|
+
|
|
93
|
+
- [ ] Audit README.md for redundancy and verbosity
|
|
94
|
+
- [ ] Review AGENTS.md for outdated or unnecessary instructions
|
|
95
|
+
- [ ] Check CONTRIBUTING.md for overkill guidelines
|
|
96
|
+
- [ ] Audit docs-site structure for overlapping content
|
|
97
|
+
- [ ] Review each doc page against assessment criteria
|
|
98
|
+
- [ ] Consolidate or remove redundant guides
|
|
99
|
+
- [ ] Simplify spec templates if needed
|
|
100
|
+
- [ ] Scan codebase for unnecessary comments
|
|
101
|
+
- [ ] Update examples to reflect current best practices
|
|
102
|
+
- [ ] Test first-time user experience with simplified docs
|
|
103
|
+
- [ ] Get feedback from fresh users (if possible)
|
|
104
|
+
- [ ] Archive removed content for reference
|
|
105
|
+
|
|
106
|
+
**Implementation Priority:**
|
|
107
|
+
- 🔴 HIGH: README.md simplification (first impression matters)
|
|
108
|
+
- 🔴 HIGH: AGENTS.md accuracy (AI integration is core feature)
|
|
109
|
+
- 🟡 MEDIUM: Docs site consolidation
|
|
110
|
+
- 🟢 LOW: Code comment cleanup
|
|
111
|
+
|
|
112
|
+
**Related Work:**
|
|
113
|
+
- Spec 043: Official Launch v0.2.0 - docs quality is critical for launch
|
|
114
|
+
- Clear docs support adoption and reduce support burden
|
|
115
|
+
|
|
116
|
+
## Test
|
|
117
|
+
|
|
118
|
+
- [ ] New user can get started in <5 minutes from README
|
|
119
|
+
- [ ] No duplicate information across docs
|
|
120
|
+
- [ ] Every doc serves a clear purpose
|
|
121
|
+
- [ ] Docs site navigation is intuitive
|
|
122
|
+
- [ ] Spec templates are clear but not prescriptive
|
|
123
|
+
- [ ] Code comments add value, not noise
|
|
124
|
+
- [ ] Examples are current and accurate
|
|
125
|
+
- [ ] No broken links after consolidation
|
|
126
|
+
- [ ] Docs still cover critical use cases
|
|
127
|
+
- [ ] The word count is notably reduced
|
|
128
|
+
|
|
129
|
+
## Notes
|
|
130
|
+
|
|
131
|
+
**Metrics to Track:**
|
|
132
|
+
- Word count before/after
|
|
133
|
+
- Number of doc pages before/after
|
|
134
|
+
- Time to first successful spec creation (ideal: <5min)
|
|
135
|
+
|
|
136
|
+
**LeanSpec Philosophy Check:**
|
|
137
|
+
- "Clarity over documentation"
|
|
138
|
+
- "If it doesn't add clarity, cut it"
|
|
139
|
+
- "Minimal is the goal"
|
|
140
|
+
|
|
141
|
+
**Risk:**
|
|
142
|
+
- We might cut too much and confuse users
|
|
143
|
+
- Mitigation: start with obvious redundancies, gather feedback
|
|
144
|
+
|
|
145
|
+
**Related:**
|
|
146
|
+
- Live specs showcase (spec 021) - could replace some documentation with examples
|
|
147
|
+
- README improvement (spec 009) - previous work to build on
|
|
148
|
+
|
|
149
|
+
**Examples of Potential Overkill:**
|
|
150
|
+
- Multiple "Quick Start" sections across README and docs
|
|
151
|
+
- Long philosophical explanations in every doc
|
|
152
|
+
- Over-documented example projects
|
|
153
|
+
- Exhaustive command references (when `--help` exists)
|
|
154
|
+
- Multiple tutorials covering the same workflow
|
|
155
|
+
|
|
156
|
+
**What Makes Good Lean Docs:**
|
|
157
|
+
- Get user to "aha!" moment fast
|
|
158
|
+
- One clear path for common tasks
|
|
159
|
+
- Link to details rather than inline them
|
|
160
|
+
- Trust users to explore
|
|
161
|
+
- Show, don't tell (examples over prose)
|
|
162
|
+
|
|
163
|
+
**Action Items Post-Overhaul:**
|
|
164
|
+
- Add docs maintenance guidelines to CONTRIBUTING.md
|
|
165
|
+
- Set up periodic review (quarterly?) to prevent accumulation
|
|
166
|
+
- Consider docs page limit or word count budget
|