@ginkoai/cli 1.0.0
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/LICENSE +21 -0
- package/README.md +230 -0
- package/dist/adapters/ai-adapter.d.ts +25 -0
- package/dist/adapters/ai-adapter.d.ts.map +1 -0
- package/dist/adapters/ai-adapter.js +21 -0
- package/dist/adapters/ai-adapter.js.map +1 -0
- package/dist/adapters/ai-completion.d.ts +35 -0
- package/dist/adapters/ai-completion.d.ts.map +1 -0
- package/dist/adapters/ai-completion.js +118 -0
- package/dist/adapters/ai-completion.js.map +1 -0
- package/dist/adapters/base.d.ts +64 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +48 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude-adapter.d.ts +18 -0
- package/dist/adapters/claude-adapter.d.ts.map +1 -0
- package/dist/adapters/claude-adapter.js +73 -0
- package/dist/adapters/claude-adapter.js.map +1 -0
- package/dist/adapters/claude.d.ts +20 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/claude.js +91 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/copilot-adapter.d.ts +16 -0
- package/dist/adapters/copilot-adapter.d.ts.map +1 -0
- package/dist/adapters/copilot-adapter.js +288 -0
- package/dist/adapters/copilot-adapter.js.map +1 -0
- package/dist/adapters/cursor-adapter.d.ts +22 -0
- package/dist/adapters/cursor-adapter.d.ts.map +1 -0
- package/dist/adapters/cursor-adapter.js +108 -0
- package/dist/adapters/cursor-adapter.js.map +1 -0
- package/dist/adapters/detector.d.ts +29 -0
- package/dist/adapters/detector.d.ts.map +1 -0
- package/dist/adapters/detector.js +132 -0
- package/dist/adapters/detector.js.map +1 -0
- package/dist/adapters/generic-adapter.d.ts +18 -0
- package/dist/adapters/generic-adapter.d.ts.map +1 -0
- package/dist/adapters/generic-adapter.js +37 -0
- package/dist/adapters/generic-adapter.js.map +1 -0
- package/dist/adapters/gpt4.d.ts +20 -0
- package/dist/adapters/gpt4.d.ts.map +1 -0
- package/dist/adapters/gpt4.js +114 -0
- package/dist/adapters/gpt4.js.map +1 -0
- package/dist/adapters/grok-adapter.d.ts +18 -0
- package/dist/adapters/grok-adapter.d.ts.map +1 -0
- package/dist/adapters/grok-adapter.js +94 -0
- package/dist/adapters/grok-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +18 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +71 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/openai-adapter.d.ts +18 -0
- package/dist/adapters/openai-adapter.d.ts.map +1 -0
- package/dist/adapters/openai-adapter.js +97 -0
- package/dist/adapters/openai-adapter.js.map +1 -0
- package/dist/adapters/universal.d.ts +20 -0
- package/dist/adapters/universal.d.ts.map +1 -0
- package/dist/adapters/universal.js +80 -0
- package/dist/adapters/universal.js.map +1 -0
- package/dist/analysis/deep-analyzer.d.ts +61 -0
- package/dist/analysis/deep-analyzer.d.ts.map +1 -0
- package/dist/analysis/deep-analyzer.js +349 -0
- package/dist/analysis/deep-analyzer.js.map +1 -0
- package/dist/analysis/project-analyzer.d.ts +25 -0
- package/dist/analysis/project-analyzer.d.ts.map +1 -0
- package/dist/analysis/project-analyzer.js +244 -0
- package/dist/analysis/project-analyzer.js.map +1 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts +82 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.js +649 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.js.map +1 -0
- package/dist/commands/architecture/architecture-pipeline.d.ts +105 -0
- package/dist/commands/architecture/architecture-pipeline.d.ts.map +1 -0
- package/dist/commands/architecture/architecture-pipeline.js +510 -0
- package/dist/commands/architecture/architecture-pipeline.js.map +1 -0
- package/dist/commands/architecture/architecture-reflection.d.ts +67 -0
- package/dist/commands/architecture/architecture-reflection.d.ts.map +1 -0
- package/dist/commands/architecture/architecture-reflection.js +508 -0
- package/dist/commands/architecture/architecture-reflection.js.map +1 -0
- package/dist/commands/architecture/index.d.ts +21 -0
- package/dist/commands/architecture/index.d.ts.map +1 -0
- package/dist/commands/architecture/index.js +41 -0
- package/dist/commands/architecture/index.js.map +1 -0
- package/dist/commands/architecture.d.ts +20 -0
- package/dist/commands/architecture.d.ts.map +1 -0
- package/dist/commands/architecture.js +223 -0
- package/dist/commands/architecture.js.map +1 -0
- package/dist/commands/backlog/ai-enhanced.d.ts +83 -0
- package/dist/commands/backlog/ai-enhanced.d.ts.map +1 -0
- package/dist/commands/backlog/ai-enhanced.js +462 -0
- package/dist/commands/backlog/ai-enhanced.js.map +1 -0
- package/dist/commands/backlog/ai-prompt.d.ts +21 -0
- package/dist/commands/backlog/ai-prompt.d.ts.map +1 -0
- package/dist/commands/backlog/ai-prompt.js +373 -0
- package/dist/commands/backlog/ai-prompt.js.map +1 -0
- package/dist/commands/backlog/ai-template.d.ts +21 -0
- package/dist/commands/backlog/ai-template.d.ts.map +1 -0
- package/dist/commands/backlog/ai-template.js +374 -0
- package/dist/commands/backlog/ai-template.js.map +1 -0
- package/dist/commands/backlog/ai.d.ts +21 -0
- package/dist/commands/backlog/ai.d.ts.map +1 -0
- package/dist/commands/backlog/ai.js +76 -0
- package/dist/commands/backlog/ai.js.map +1 -0
- package/dist/commands/backlog/backlog-pipeline.d.ts +103 -0
- package/dist/commands/backlog/backlog-pipeline.d.ts.map +1 -0
- package/dist/commands/backlog/backlog-pipeline.js +538 -0
- package/dist/commands/backlog/backlog-pipeline.js.map +1 -0
- package/dist/commands/backlog/backlog-reflection.d.ts +48 -0
- package/dist/commands/backlog/backlog-reflection.d.ts.map +1 -0
- package/dist/commands/backlog/backlog-reflection.js +231 -0
- package/dist/commands/backlog/backlog-reflection.js.map +1 -0
- package/dist/commands/backlog/base.d.ts +95 -0
- package/dist/commands/backlog/base.d.ts.map +1 -0
- package/dist/commands/backlog/base.js +291 -0
- package/dist/commands/backlog/base.js.map +1 -0
- package/dist/commands/backlog/complete.d.ts +20 -0
- package/dist/commands/backlog/complete.d.ts.map +1 -0
- package/dist/commands/backlog/complete.js +83 -0
- package/dist/commands/backlog/complete.js.map +1 -0
- package/dist/commands/backlog/context-gatherer.d.ts +76 -0
- package/dist/commands/backlog/context-gatherer.d.ts.map +1 -0
- package/dist/commands/backlog/context-gatherer.js +216 -0
- package/dist/commands/backlog/context-gatherer.js.map +1 -0
- package/dist/commands/backlog/create.d.ts +25 -0
- package/dist/commands/backlog/create.d.ts.map +1 -0
- package/dist/commands/backlog/create.js +131 -0
- package/dist/commands/backlog/create.js.map +1 -0
- package/dist/commands/backlog/index.d.ts +17 -0
- package/dist/commands/backlog/index.d.ts.map +1 -0
- package/dist/commands/backlog/index.js +177 -0
- package/dist/commands/backlog/index.js.map +1 -0
- package/dist/commands/backlog/list.d.ts +25 -0
- package/dist/commands/backlog/list.d.ts.map +1 -0
- package/dist/commands/backlog/list.js +136 -0
- package/dist/commands/backlog/list.js.map +1 -0
- package/dist/commands/backlog/quick-query.d.ts +16 -0
- package/dist/commands/backlog/quick-query.d.ts.map +1 -0
- package/dist/commands/backlog/quick-query.js +126 -0
- package/dist/commands/backlog/quick-query.js.map +1 -0
- package/dist/commands/backlog/show.d.ts +20 -0
- package/dist/commands/backlog/show.d.ts.map +1 -0
- package/dist/commands/backlog/show.js +95 -0
- package/dist/commands/backlog/show.js.map +1 -0
- package/dist/commands/backlog/update.d.ts +25 -0
- package/dist/commands/backlog/update.d.ts.map +1 -0
- package/dist/commands/backlog/update.js +113 -0
- package/dist/commands/backlog/update.js.map +1 -0
- package/dist/commands/bug/bug-context-gatherer.d.ts +58 -0
- package/dist/commands/bug/bug-context-gatherer.d.ts.map +1 -0
- package/dist/commands/bug/bug-context-gatherer.js +228 -0
- package/dist/commands/bug/bug-context-gatherer.js.map +1 -0
- package/dist/commands/bug/bug-reflection.d.ts +70 -0
- package/dist/commands/bug/bug-reflection.d.ts.map +1 -0
- package/dist/commands/bug/bug-reflection.js +343 -0
- package/dist/commands/bug/bug-reflection.js.map +1 -0
- package/dist/commands/capture/capture-reflection.d.ts +139 -0
- package/dist/commands/capture/capture-reflection.d.ts.map +1 -0
- package/dist/commands/capture/capture-reflection.js +583 -0
- package/dist/commands/capture/capture-reflection.js.map +1 -0
- package/dist/commands/capture.d.ts +22 -0
- package/dist/commands/capture.d.ts.map +1 -0
- package/dist/commands/capture.js +301 -0
- package/dist/commands/capture.js.map +1 -0
- package/dist/commands/changelog/changelog-reflection.d.ts +65 -0
- package/dist/commands/changelog/changelog-reflection.d.ts.map +1 -0
- package/dist/commands/changelog/changelog-reflection.js +252 -0
- package/dist/commands/changelog/changelog-reflection.js.map +1 -0
- package/dist/commands/compact.d.ts +15 -0
- package/dist/commands/compact.d.ts.map +1 -0
- package/dist/commands/compact.js +113 -0
- package/dist/commands/compact.js.map +1 -0
- package/dist/commands/config.d.ts +10 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +85 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/context-new.d.ts +18 -0
- package/dist/commands/context-new.d.ts.map +1 -0
- package/dist/commands/context-new.js +265 -0
- package/dist/commands/context-new.js.map +1 -0
- package/dist/commands/context.d.ts +16 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +82 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/documentation/documentation-pipeline.d.ts +130 -0
- package/dist/commands/documentation/documentation-pipeline.d.ts.map +1 -0
- package/dist/commands/documentation/documentation-pipeline.js +716 -0
- package/dist/commands/documentation/documentation-pipeline.js.map +1 -0
- package/dist/commands/documentation/documentation-reflection.d.ts +54 -0
- package/dist/commands/documentation/documentation-reflection.d.ts.map +1 -0
- package/dist/commands/documentation/documentation-reflection.js +338 -0
- package/dist/commands/documentation/documentation-reflection.js.map +1 -0
- package/dist/commands/explore/explore-reflection-pipeline.d.ts +117 -0
- package/dist/commands/explore/explore-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/explore/explore-reflection-pipeline.js +503 -0
- package/dist/commands/explore/explore-reflection-pipeline.js.map +1 -0
- package/dist/commands/explore/index.d.ts +29 -0
- package/dist/commands/explore/index.d.ts.map +1 -0
- package/dist/commands/explore/index.js +30 -0
- package/dist/commands/explore/index.js.map +1 -0
- package/dist/commands/explore.d.ts +20 -0
- package/dist/commands/explore.d.ts.map +1 -0
- package/dist/commands/explore.js +224 -0
- package/dist/commands/explore.js.map +1 -0
- package/dist/commands/git/git-context-gatherer.d.ts +101 -0
- package/dist/commands/git/git-context-gatherer.d.ts.map +1 -0
- package/dist/commands/git/git-context-gatherer.js +284 -0
- package/dist/commands/git/git-context-gatherer.js.map +1 -0
- package/dist/commands/git/git-pipeline.d.ts +75 -0
- package/dist/commands/git/git-pipeline.d.ts.map +1 -0
- package/dist/commands/git/git-pipeline.js +530 -0
- package/dist/commands/git/git-pipeline.js.map +1 -0
- package/dist/commands/git/git-reflection.d.ts +50 -0
- package/dist/commands/git/git-reflection.d.ts.map +1 -0
- package/dist/commands/git/git-reflection.js +193 -0
- package/dist/commands/git/git-reflection.js.map +1 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.d.ts +106 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.js +534 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.js.map +1 -0
- package/dist/commands/handoff/handoff-save.d.ts +16 -0
- package/dist/commands/handoff/handoff-save.d.ts.map +1 -0
- package/dist/commands/handoff/handoff-save.js +72 -0
- package/dist/commands/handoff/handoff-save.js.map +1 -0
- package/dist/commands/handoff/index.d.ts +19 -0
- package/dist/commands/handoff/index.d.ts.map +1 -0
- package/dist/commands/handoff/index.js +55 -0
- package/dist/commands/handoff/index.js.map +1 -0
- package/dist/commands/handoff-ai-orig.d.ts +27 -0
- package/dist/commands/handoff-ai-orig.d.ts.map +1 -0
- package/dist/commands/handoff-ai-orig.js +405 -0
- package/dist/commands/handoff-ai-orig.js.map +1 -0
- package/dist/commands/handoff-ai.d.ts +27 -0
- package/dist/commands/handoff-ai.d.ts.map +1 -0
- package/dist/commands/handoff-ai.js +405 -0
- package/dist/commands/handoff-ai.js.map +1 -0
- package/dist/commands/handoff-enhanced-orig.d.ts +25 -0
- package/dist/commands/handoff-enhanced-orig.d.ts.map +1 -0
- package/dist/commands/handoff-enhanced-orig.js +349 -0
- package/dist/commands/handoff-enhanced-orig.js.map +1 -0
- package/dist/commands/handoff-enhanced.d.ts +25 -0
- package/dist/commands/handoff-enhanced.d.ts.map +1 -0
- package/dist/commands/handoff-enhanced.js +349 -0
- package/dist/commands/handoff-enhanced.js.map +1 -0
- package/dist/commands/handoff-orig.d.ts +10 -0
- package/dist/commands/handoff-orig.d.ts.map +1 -0
- package/dist/commands/handoff-orig.js +167 -0
- package/dist/commands/handoff-orig.js.map +1 -0
- package/dist/commands/handoff.d.ts +10 -0
- package/dist/commands/handoff.d.ts.map +1 -0
- package/dist/commands/handoff.js +167 -0
- package/dist/commands/handoff.js.map +1 -0
- package/dist/commands/init-copilot.d.ts +6 -0
- package/dist/commands/init-copilot.d.ts.map +1 -0
- package/dist/commands/init-copilot.js +151 -0
- package/dist/commands/init-copilot.js.map +1 -0
- package/dist/commands/init-cursor.d.ts +5 -0
- package/dist/commands/init-cursor.d.ts.map +1 -0
- package/dist/commands/init-cursor.js +95 -0
- package/dist/commands/init-cursor.js.map +1 -0
- package/dist/commands/init-enhanced.d.ts +20 -0
- package/dist/commands/init-enhanced.d.ts.map +1 -0
- package/dist/commands/init-enhanced.js +430 -0
- package/dist/commands/init-enhanced.js.map +1 -0
- package/dist/commands/init.d.ts +16 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +213 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/magic-prompt.d.ts +20 -0
- package/dist/commands/magic-prompt.d.ts.map +1 -0
- package/dist/commands/magic-prompt.js +166 -0
- package/dist/commands/magic-prompt.js.map +1 -0
- package/dist/commands/magic-simple.d.ts +20 -0
- package/dist/commands/magic-simple.d.ts.map +1 -0
- package/dist/commands/magic-simple.js +32 -0
- package/dist/commands/magic-simple.js.map +1 -0
- package/dist/commands/magic.d.ts +20 -0
- package/dist/commands/magic.d.ts.map +1 -0
- package/dist/commands/magic.js +144 -0
- package/dist/commands/magic.js.map +1 -0
- package/dist/commands/plan/plan-reflection-pipeline.d.ts +126 -0
- package/dist/commands/plan/plan-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/plan/plan-reflection-pipeline.js +554 -0
- package/dist/commands/plan/plan-reflection-pipeline.js.map +1 -0
- package/dist/commands/plan.d.ts +20 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +253 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/prd/index.d.ts +21 -0
- package/dist/commands/prd/index.d.ts.map +1 -0
- package/dist/commands/prd/index.js +41 -0
- package/dist/commands/prd/index.js.map +1 -0
- package/dist/commands/prd/prd-pipeline-enhanced.d.ts +82 -0
- package/dist/commands/prd/prd-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/prd/prd-pipeline-enhanced.js +565 -0
- package/dist/commands/prd/prd-pipeline-enhanced.js.map +1 -0
- package/dist/commands/prd/prd-pipeline.d.ts +106 -0
- package/dist/commands/prd/prd-pipeline.d.ts.map +1 -0
- package/dist/commands/prd/prd-pipeline.js +491 -0
- package/dist/commands/prd/prd-pipeline.js.map +1 -0
- package/dist/commands/prd/prd-reflection-enhanced.d.ts +63 -0
- package/dist/commands/prd/prd-reflection-enhanced.d.ts.map +1 -0
- package/dist/commands/prd/prd-reflection-enhanced.js +310 -0
- package/dist/commands/prd/prd-reflection-enhanced.js.map +1 -0
- package/dist/commands/prd/prd-reflection.d.ts +59 -0
- package/dist/commands/prd/prd-reflection.d.ts.map +1 -0
- package/dist/commands/prd/prd-reflection.js +548 -0
- package/dist/commands/prd/prd-reflection.js.map +1 -0
- package/dist/commands/reflect.d.ts +24 -0
- package/dist/commands/reflect.d.ts.map +1 -0
- package/dist/commands/reflect.js +135 -0
- package/dist/commands/reflect.js.map +1 -0
- package/dist/commands/ship/ship-reflection.d.ts +164 -0
- package/dist/commands/ship/ship-reflection.d.ts.map +1 -0
- package/dist/commands/ship/ship-reflection.js +732 -0
- package/dist/commands/ship/ship-reflection.js.map +1 -0
- package/dist/commands/ship-ai.d.ts +28 -0
- package/dist/commands/ship-ai.d.ts.map +1 -0
- package/dist/commands/ship-ai.js +318 -0
- package/dist/commands/ship-ai.js.map +1 -0
- package/dist/commands/ship.d.ts +17 -0
- package/dist/commands/ship.d.ts.map +1 -0
- package/dist/commands/ship.js +175 -0
- package/dist/commands/ship.js.map +1 -0
- package/dist/commands/sprint/index.d.ts +21 -0
- package/dist/commands/sprint/index.d.ts.map +1 -0
- package/dist/commands/sprint/index.js +39 -0
- package/dist/commands/sprint/index.js.map +1 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.d.ts +142 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.js +822 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.js.map +1 -0
- package/dist/commands/sprint/sprint-pipeline.d.ts +72 -0
- package/dist/commands/sprint/sprint-pipeline.d.ts.map +1 -0
- package/dist/commands/sprint/sprint-pipeline.js +363 -0
- package/dist/commands/sprint/sprint-pipeline.js.map +1 -0
- package/dist/commands/start/index.d.ts +19 -0
- package/dist/commands/start/index.d.ts.map +1 -0
- package/dist/commands/start/index.js +41 -0
- package/dist/commands/start/index.js.map +1 -0
- package/dist/commands/start/start-reflection-pipeline.d.ts +99 -0
- package/dist/commands/start/start-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/start/start-reflection-pipeline.js +458 -0
- package/dist/commands/start/start-reflection-pipeline.js.map +1 -0
- package/dist/commands/start/start-reflection.d.ts +89 -0
- package/dist/commands/start/start-reflection.d.ts.map +1 -0
- package/dist/commands/start/start-reflection.js +572 -0
- package/dist/commands/start/start-reflection.js.map +1 -0
- package/dist/commands/start/start-with-synthesis.d.ts +20 -0
- package/dist/commands/start/start-with-synthesis.d.ts.map +1 -0
- package/dist/commands/start/start-with-synthesis.js +134 -0
- package/dist/commands/start/start-with-synthesis.js.map +1 -0
- package/dist/commands/start-enhanced-orig.d.ts +19 -0
- package/dist/commands/start-enhanced-orig.d.ts.map +1 -0
- package/dist/commands/start-enhanced-orig.js +434 -0
- package/dist/commands/start-enhanced-orig.js.map +1 -0
- package/dist/commands/start-enhanced.d.ts +19 -0
- package/dist/commands/start-enhanced.d.ts.map +1 -0
- package/dist/commands/start-enhanced.js +434 -0
- package/dist/commands/start-enhanced.js.map +1 -0
- package/dist/commands/start-orig.d.ts +10 -0
- package/dist/commands/start-orig.d.ts.map +1 -0
- package/dist/commands/start-orig.js +119 -0
- package/dist/commands/start-orig.js.map +1 -0
- package/dist/commands/start.d.ts +10 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +119 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +11 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +119 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/testing/index.d.ts +21 -0
- package/dist/commands/testing/index.d.ts.map +1 -0
- package/dist/commands/testing/index.js +41 -0
- package/dist/commands/testing/index.js.map +1 -0
- package/dist/commands/testing/testing-pipeline-enhanced.d.ts +94 -0
- package/dist/commands/testing/testing-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/testing/testing-pipeline-enhanced.js +760 -0
- package/dist/commands/testing/testing-pipeline-enhanced.js.map +1 -0
- package/dist/commands/testing/testing-pipeline.d.ts +77 -0
- package/dist/commands/testing/testing-pipeline.d.ts.map +1 -0
- package/dist/commands/testing/testing-pipeline.js +479 -0
- package/dist/commands/testing/testing-pipeline.js.map +1 -0
- package/dist/commands/uninstall-copilot.d.ts +5 -0
- package/dist/commands/uninstall-copilot.d.ts.map +1 -0
- package/dist/commands/uninstall-copilot.js +143 -0
- package/dist/commands/uninstall-copilot.js.map +1 -0
- package/dist/commands/uninstall-cursor.d.ts +6 -0
- package/dist/commands/uninstall-cursor.d.ts.map +1 -0
- package/dist/commands/uninstall-cursor.js +124 -0
- package/dist/commands/uninstall-cursor.js.map +1 -0
- package/dist/commands/vibecheck-ai.d.ts +25 -0
- package/dist/commands/vibecheck-ai.d.ts.map +1 -0
- package/dist/commands/vibecheck-ai.js +260 -0
- package/dist/commands/vibecheck-ai.js.map +1 -0
- package/dist/commands/vibecheck-aware.d.ts +19 -0
- package/dist/commands/vibecheck-aware.d.ts.map +1 -0
- package/dist/commands/vibecheck-aware.js +350 -0
- package/dist/commands/vibecheck-aware.js.map +1 -0
- package/dist/commands/vibecheck-final.d.ts +22 -0
- package/dist/commands/vibecheck-final.d.ts.map +1 -0
- package/dist/commands/vibecheck-final.js +132 -0
- package/dist/commands/vibecheck-final.js.map +1 -0
- package/dist/commands/vibecheck-natural.d.ts +18 -0
- package/dist/commands/vibecheck-natural.d.ts.map +1 -0
- package/dist/commands/vibecheck-natural.js +105 -0
- package/dist/commands/vibecheck-natural.js.map +1 -0
- package/dist/commands/vibecheck-simple.d.ts +20 -0
- package/dist/commands/vibecheck-simple.d.ts.map +1 -0
- package/dist/commands/vibecheck-simple.js +136 -0
- package/dist/commands/vibecheck-simple.js.map +1 -0
- package/dist/commands/vibecheck.d.ts +10 -0
- package/dist/commands/vibecheck.d.ts.map +1 -0
- package/dist/commands/vibecheck.js +95 -0
- package/dist/commands/vibecheck.js.map +1 -0
- package/dist/core/adapters/path-adapter.d.ts +144 -0
- package/dist/core/adapters/path-adapter.d.ts.map +1 -0
- package/dist/core/adapters/path-adapter.js +245 -0
- package/dist/core/adapters/path-adapter.js.map +1 -0
- package/dist/core/command-shortcuts.d.ts +62 -0
- package/dist/core/command-shortcuts.d.ts.map +1 -0
- package/dist/core/command-shortcuts.js +124 -0
- package/dist/core/command-shortcuts.js.map +1 -0
- package/dist/core/config/config-aware-reflection.d.ts +37 -0
- package/dist/core/config/config-aware-reflection.d.ts.map +1 -0
- package/dist/core/config/config-aware-reflection.js +97 -0
- package/dist/core/config/config-aware-reflection.js.map +1 -0
- package/dist/core/config/config-loader.d.ts +154 -0
- package/dist/core/config/config-loader.d.ts.map +1 -0
- package/dist/core/config/config-loader.js +424 -0
- package/dist/core/config/config-loader.js.map +1 -0
- package/dist/core/config/config-migrator.d.ts +150 -0
- package/dist/core/config/config-migrator.d.ts.map +1 -0
- package/dist/core/config/config-migrator.js +423 -0
- package/dist/core/config/config-migrator.js.map +1 -0
- package/dist/core/config/config-schema.d.ts +276 -0
- package/dist/core/config/config-schema.d.ts.map +1 -0
- package/dist/core/config/config-schema.js +277 -0
- package/dist/core/config/config-schema.js.map +1 -0
- package/dist/core/config/index.d.ts +260 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +283 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/interactive-config.d.ts +76 -0
- package/dist/core/config/interactive-config.d.ts.map +1 -0
- package/dist/core/config/interactive-config.js +315 -0
- package/dist/core/config/interactive-config.js.map +1 -0
- package/dist/core/config/path-config.d.ts +121 -0
- package/dist/core/config/path-config.d.ts.map +1 -0
- package/dist/core/config/path-config.js +210 -0
- package/dist/core/config/path-config.js.map +1 -0
- package/dist/core/config/path-resolver.d.ts +151 -0
- package/dist/core/config/path-resolver.d.ts.map +1 -0
- package/dist/core/config/path-resolver.js +343 -0
- package/dist/core/config/path-resolver.js.map +1 -0
- package/dist/core/config/project-detector.d.ts +58 -0
- package/dist/core/config/project-detector.d.ts.map +1 -0
- package/dist/core/config/project-detector.js +310 -0
- package/dist/core/config/project-detector.js.map +1 -0
- package/dist/core/config-backup/config-aware-reflection.d.ts +37 -0
- package/dist/core/config-backup/config-aware-reflection.d.ts.map +1 -0
- package/dist/core/config-backup/config-aware-reflection.js +97 -0
- package/dist/core/config-backup/config-aware-reflection.js.map +1 -0
- package/dist/core/config-backup/config-loader.d.ts +71 -0
- package/dist/core/config-backup/config-loader.d.ts.map +1 -0
- package/dist/core/config-backup/config-loader.js +288 -0
- package/dist/core/config-backup/config-loader.js.map +1 -0
- package/dist/core/config-backup/interactive-config.d.ts +76 -0
- package/dist/core/config-backup/interactive-config.d.ts.map +1 -0
- package/dist/core/config-backup/interactive-config.js +315 -0
- package/dist/core/config-backup/interactive-config.js.map +1 -0
- package/dist/core/config-backup/path-config.d.ts +121 -0
- package/dist/core/config-backup/path-config.d.ts.map +1 -0
- package/dist/core/config-backup/path-config.js +210 -0
- package/dist/core/config-backup/path-config.js.map +1 -0
- package/dist/core/config-backup/project-detector.d.ts +58 -0
- package/dist/core/config-backup/project-detector.d.ts.map +1 -0
- package/dist/core/config-backup/project-detector.js +310 -0
- package/dist/core/config-backup/project-detector.js.map +1 -0
- package/dist/core/documents/document-manager.d.ts +97 -0
- package/dist/core/documents/document-manager.d.ts.map +1 -0
- package/dist/core/documents/document-manager.js +441 -0
- package/dist/core/documents/document-manager.js.map +1 -0
- package/dist/core/documents/document-migrator.d.ts +138 -0
- package/dist/core/documents/document-migrator.d.ts.map +1 -0
- package/dist/core/documents/document-migrator.js +349 -0
- package/dist/core/documents/document-migrator.js.map +1 -0
- package/dist/core/documents/document-namer.d.ts +111 -0
- package/dist/core/documents/document-namer.d.ts.map +1 -0
- package/dist/core/documents/document-namer.js +225 -0
- package/dist/core/documents/document-namer.js.map +1 -0
- package/dist/core/documents/examples.d.ts +74 -0
- package/dist/core/documents/examples.d.ts.map +1 -0
- package/dist/core/documents/examples.js +273 -0
- package/dist/core/documents/examples.js.map +1 -0
- package/dist/core/documents/file-system.d.ts +93 -0
- package/dist/core/documents/file-system.d.ts.map +1 -0
- package/dist/core/documents/file-system.js +432 -0
- package/dist/core/documents/file-system.js.map +1 -0
- package/dist/core/documents/index.d.ts +97 -0
- package/dist/core/documents/index.d.ts.map +1 -0
- package/dist/core/documents/index.js +119 -0
- package/dist/core/documents/index.js.map +1 -0
- package/dist/core/documents/markdown-processor.d.ts +84 -0
- package/dist/core/documents/markdown-processor.d.ts.map +1 -0
- package/dist/core/documents/markdown-processor.js +302 -0
- package/dist/core/documents/markdown-processor.js.map +1 -0
- package/dist/core/documents/sequence-manager.d.ts +107 -0
- package/dist/core/documents/sequence-manager.d.ts.map +1 -0
- package/dist/core/documents/sequence-manager.js +246 -0
- package/dist/core/documents/sequence-manager.js.map +1 -0
- package/dist/core/documents/template-engine.d.ts +101 -0
- package/dist/core/documents/template-engine.d.ts.map +1 -0
- package/dist/core/documents/template-engine.js +440 -0
- package/dist/core/documents/template-engine.js.map +1 -0
- package/dist/core/handoff-quality.d.ts +164 -0
- package/dist/core/handoff-quality.d.ts.map +1 -0
- package/dist/core/handoff-quality.js +590 -0
- package/dist/core/handoff-quality.js.map +1 -0
- package/dist/core/platform/hook-adapter.d.ts +109 -0
- package/dist/core/platform/hook-adapter.d.ts.map +1 -0
- package/dist/core/platform/hook-adapter.js +527 -0
- package/dist/core/platform/hook-adapter.js.map +1 -0
- package/dist/core/platform/hook-migration.d.ts +73 -0
- package/dist/core/platform/hook-migration.d.ts.map +1 -0
- package/dist/core/platform/hook-migration.js +339 -0
- package/dist/core/platform/hook-migration.js.map +1 -0
- package/dist/core/platform/hook-migrator.d.ts +49 -0
- package/dist/core/platform/hook-migrator.d.ts.map +1 -0
- package/dist/core/platform/hook-migrator.js +305 -0
- package/dist/core/platform/hook-migrator.js.map +1 -0
- package/dist/core/platform/hook-templates.d.ts +60 -0
- package/dist/core/platform/hook-templates.d.ts.map +1 -0
- package/dist/core/platform/hook-templates.js +352 -0
- package/dist/core/platform/hook-templates.js.map +1 -0
- package/dist/core/platform/index.d.ts +82 -0
- package/dist/core/platform/index.d.ts.map +1 -0
- package/dist/core/platform/index.js +173 -0
- package/dist/core/platform/index.js.map +1 -0
- package/dist/core/platform/path-normalizer.d.ts +117 -0
- package/dist/core/platform/path-normalizer.d.ts.map +1 -0
- package/dist/core/platform/path-normalizer.js +333 -0
- package/dist/core/platform/path-normalizer.js.map +1 -0
- package/dist/core/platform/path-resolver.d.ts +120 -0
- package/dist/core/platform/path-resolver.d.ts.map +1 -0
- package/dist/core/platform/path-resolver.js +339 -0
- package/dist/core/platform/path-resolver.js.map +1 -0
- package/dist/core/platform/platform-adapter.d.ts +101 -0
- package/dist/core/platform/platform-adapter.d.ts.map +1 -0
- package/dist/core/platform/platform-adapter.js +243 -0
- package/dist/core/platform/platform-adapter.js.map +1 -0
- package/dist/core/platform/platform-detector.d.ts +122 -0
- package/dist/core/platform/platform-detector.d.ts.map +1 -0
- package/dist/core/platform/platform-detector.js +318 -0
- package/dist/core/platform/platform-detector.js.map +1 -0
- package/dist/core/platform/platform-templates.d.ts +62 -0
- package/dist/core/platform/platform-templates.d.ts.map +1 -0
- package/dist/core/platform/platform-templates.js +364 -0
- package/dist/core/platform/platform-templates.js.map +1 -0
- package/dist/core/platform/types.d.ts +54 -0
- package/dist/core/platform/types.d.ts.map +1 -0
- package/dist/core/platform/types.js +12 -0
- package/dist/core/platform/types.js.map +1 -0
- package/dist/core/polyglot-example.d.ts +115 -0
- package/dist/core/polyglot-example.d.ts.map +1 -0
- package/dist/core/polyglot-example.js +341 -0
- package/dist/core/polyglot-example.js.map +1 -0
- package/dist/core/pressure-monitor.d.ts +76 -0
- package/dist/core/pressure-monitor.d.ts.map +1 -0
- package/dist/core/pressure-monitor.js +156 -0
- package/dist/core/pressure-monitor.js.map +1 -0
- package/dist/core/reflection-pattern.d.ts +99 -0
- package/dist/core/reflection-pattern.d.ts.map +1 -0
- package/dist/core/reflection-pattern.js +294 -0
- package/dist/core/reflection-pattern.js.map +1 -0
- package/dist/core/session-log-manager.d.ts +83 -0
- package/dist/core/session-log-manager.d.ts.map +1 -0
- package/dist/core/session-log-manager.js +288 -0
- package/dist/core/session-log-manager.js.map +1 -0
- package/dist/core/simple-pipeline-base.d.ts +130 -0
- package/dist/core/simple-pipeline-base.d.ts.map +1 -0
- package/dist/core/simple-pipeline-base.js +240 -0
- package/dist/core/simple-pipeline-base.js.map +1 -0
- package/dist/core/simple-pipeline.d.ts +70 -0
- package/dist/core/simple-pipeline.d.ts.map +1 -0
- package/dist/core/simple-pipeline.js +241 -0
- package/dist/core/simple-pipeline.js.map +1 -0
- package/dist/core/utils/paths.d.ts +50 -0
- package/dist/core/utils/paths.d.ts.map +1 -0
- package/dist/core/utils/paths.js +75 -0
- package/dist/core/utils/paths.js.map +1 -0
- package/dist/core/validators/command-argument-validator.d.ts +102 -0
- package/dist/core/validators/command-argument-validator.d.ts.map +1 -0
- package/dist/core/validators/command-argument-validator.js +377 -0
- package/dist/core/validators/command-argument-validator.js.map +1 -0
- package/dist/core/validators/config-validator.d.ts +111 -0
- package/dist/core/validators/config-validator.d.ts.map +1 -0
- package/dist/core/validators/config-validator.js +433 -0
- package/dist/core/validators/config-validator.js.map +1 -0
- package/dist/core/validators/environment-validator.d.ts +138 -0
- package/dist/core/validators/environment-validator.d.ts.map +1 -0
- package/dist/core/validators/environment-validator.js +516 -0
- package/dist/core/validators/environment-validator.js.map +1 -0
- package/dist/core/validators/git-validator.d.ts +100 -0
- package/dist/core/validators/git-validator.d.ts.map +1 -0
- package/dist/core/validators/git-validator.js +288 -0
- package/dist/core/validators/git-validator.js.map +1 -0
- package/dist/core/validators/git-validator.test.d.ts +12 -0
- package/dist/core/validators/git-validator.test.d.ts.map +1 -0
- package/dist/core/validators/git-validator.test.js +40 -0
- package/dist/core/validators/git-validator.test.js.map +1 -0
- package/dist/core/validators/index.d.ts +90 -0
- package/dist/core/validators/index.d.ts.map +1 -0
- package/dist/core/validators/index.js +166 -0
- package/dist/core/validators/index.js.map +1 -0
- package/dist/core/validators/input-validator.d.ts +117 -0
- package/dist/core/validators/input-validator.d.ts.map +1 -0
- package/dist/core/validators/input-validator.js +368 -0
- package/dist/core/validators/input-validator.js.map +1 -0
- package/dist/core/validators/temp_index.d.ts +56 -0
- package/dist/core/validators/temp_index.d.ts.map +1 -0
- package/dist/core/validators/temp_index.js +94 -0
- package/dist/core/validators/temp_index.js.map +1 -0
- package/dist/core/validators/validation-error-handler.d.ts +107 -0
- package/dist/core/validators/validation-error-handler.d.ts.map +1 -0
- package/dist/core/validators/validation-error-handler.js +379 -0
- package/dist/core/validators/validation-error-handler.js.map +1 -0
- package/dist/core/validators/validation-orchestrator.d.ts +128 -0
- package/dist/core/validators/validation-orchestrator.d.ts.map +1 -0
- package/dist/core/validators/validation-orchestrator.js +301 -0
- package/dist/core/validators/validation-orchestrator.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +316 -0
- package/dist/index.js.map +1 -0
- package/dist/services/active-context-manager.d.ts +118 -0
- package/dist/services/active-context-manager.d.ts.map +1 -0
- package/dist/services/active-context-manager.js +435 -0
- package/dist/services/active-context-manager.js.map +1 -0
- package/dist/services/ai-service.d.ts +71 -0
- package/dist/services/ai-service.d.ts.map +1 -0
- package/dist/services/ai-service.js +329 -0
- package/dist/services/ai-service.js.map +1 -0
- package/dist/services/context-search.d.ts +98 -0
- package/dist/services/context-search.d.ts.map +1 -0
- package/dist/services/context-search.js +289 -0
- package/dist/services/context-search.js.map +1 -0
- package/dist/services/insight-extractor.d.ts +69 -0
- package/dist/services/insight-extractor.d.ts.map +1 -0
- package/dist/services/insight-extractor.js +343 -0
- package/dist/services/insight-extractor.js.map +1 -0
- package/dist/services/insight-quality-controller.d.ts +167 -0
- package/dist/services/insight-quality-controller.d.ts.map +1 -0
- package/dist/services/insight-quality-controller.js +543 -0
- package/dist/services/insight-quality-controller.js.map +1 -0
- package/dist/services/module-generator.d.ts +108 -0
- package/dist/services/module-generator.d.ts.map +1 -0
- package/dist/services/module-generator.js +561 -0
- package/dist/services/module-generator.js.map +1 -0
- package/dist/services/statusline-tracker.d.ts +139 -0
- package/dist/services/statusline-tracker.d.ts.map +1 -0
- package/dist/services/statusline-tracker.js +360 -0
- package/dist/services/statusline-tracker.js.map +1 -0
- package/dist/templates/ai-instructions-template.d.ts +39 -0
- package/dist/templates/ai-instructions-template.d.ts.map +1 -0
- package/dist/templates/ai-instructions-template.js +222 -0
- package/dist/templates/ai-instructions-template.js.map +1 -0
- package/dist/types/config.d.ts +128 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +49 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/documents.d.ts +87 -0
- package/dist/types/documents.d.ts.map +1 -0
- package/dist/types/documents.js +12 -0
- package/dist/types/documents.js.map +1 -0
- package/dist/types/session-log.d.ts +83 -0
- package/dist/types/session-log.d.ts.map +1 -0
- package/dist/types/session-log.js +12 -0
- package/dist/types/session-log.js.map +1 -0
- package/dist/types/session.d.ts +257 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +12 -0
- package/dist/types/session.js.map +1 -0
- package/dist/utils/ai-templates.d.ts +98 -0
- package/dist/utils/ai-templates.d.ts.map +1 -0
- package/dist/utils/ai-templates.js +179 -0
- package/dist/utils/ai-templates.js.map +1 -0
- package/dist/utils/ginko-root.d.ts +51 -0
- package/dist/utils/ginko-root.d.ts.map +1 -0
- package/dist/utils/ginko-root.js +96 -0
- package/dist/utils/ginko-root.js.map +1 -0
- package/dist/utils/helpers.d.ts +19 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +107 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/progressive-learning.d.ts +42 -0
- package/dist/utils/progressive-learning.d.ts.map +1 -0
- package/dist/utils/progressive-learning.js +248 -0
- package/dist/utils/progressive-learning.js.map +1 -0
- package/dist/utils/session-collector.d.ts +81 -0
- package/dist/utils/session-collector.d.ts.map +1 -0
- package/dist/utils/session-collector.js +387 -0
- package/dist/utils/session-collector.js.map +1 -0
- package/dist/utils/session-logger.d.ts +125 -0
- package/dist/utils/session-logger.d.ts.map +1 -0
- package/dist/utils/session-logger.js +359 -0
- package/dist/utils/session-logger.js.map +1 -0
- package/dist/utils/session-synthesizer.d.ts +36 -0
- package/dist/utils/session-synthesizer.d.ts.map +1 -0
- package/dist/utils/session-synthesizer.js +239 -0
- package/dist/utils/session-synthesizer.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magic.js","sourceRoot":"","sources":["../../src/commands/magic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-10-01
|
|
5
|
+
* @tags: [plan, reflection, pipeline, builder, sprint]
|
|
6
|
+
* @related: [../../core/simple-pipeline-base.ts, ../handoff/handoff-reflection-pipeline.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [simple-pipeline-base, simple-git, fs-extra]
|
|
10
|
+
*/
|
|
11
|
+
import { SimplePipelineBase } from '../../core/simple-pipeline-base.js';
|
|
12
|
+
/**
|
|
13
|
+
* Plan Quality Definition
|
|
14
|
+
*/
|
|
15
|
+
export interface PlanQualityTemplate {
|
|
16
|
+
requiredSections: string[];
|
|
17
|
+
contextToConsider: string[];
|
|
18
|
+
rulesAndConstraints: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Plan Context
|
|
22
|
+
*/
|
|
23
|
+
export interface PlanContext {
|
|
24
|
+
feature: string;
|
|
25
|
+
sprintDays: number;
|
|
26
|
+
adrReference?: string;
|
|
27
|
+
planId: string;
|
|
28
|
+
timestamp: string;
|
|
29
|
+
phases: Array<{
|
|
30
|
+
name: string;
|
|
31
|
+
duration: string;
|
|
32
|
+
}>;
|
|
33
|
+
recentCommits?: any[];
|
|
34
|
+
currentBranch?: string;
|
|
35
|
+
adrContent?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Plan pipeline using Simple Builder Pattern
|
|
39
|
+
* Refactored from plan.ts standalone command to use SimplePipelineBase
|
|
40
|
+
* Implements ADR-013 for consistent pipeline architecture
|
|
41
|
+
*/
|
|
42
|
+
export declare class PlanReflectionPipeline extends SimplePipelineBase {
|
|
43
|
+
private git;
|
|
44
|
+
private ginkoDir;
|
|
45
|
+
private projectRoot;
|
|
46
|
+
private feature;
|
|
47
|
+
private options;
|
|
48
|
+
constructor(feature: string, options?: any);
|
|
49
|
+
/**
|
|
50
|
+
* Initialize pipeline dependencies
|
|
51
|
+
*/
|
|
52
|
+
initialize(): Promise<this>;
|
|
53
|
+
/**
|
|
54
|
+
* Load plan-specific quality template
|
|
55
|
+
*/
|
|
56
|
+
loadTemplate(): this;
|
|
57
|
+
/**
|
|
58
|
+
* Gather comprehensive context for planning
|
|
59
|
+
*/
|
|
60
|
+
gatherContext(): Promise<this>;
|
|
61
|
+
/**
|
|
62
|
+
* Generate the planning prompt for AI
|
|
63
|
+
*/
|
|
64
|
+
generatePrompt(): this;
|
|
65
|
+
/**
|
|
66
|
+
* Build the plan framework content
|
|
67
|
+
*/
|
|
68
|
+
private buildPlanFramework;
|
|
69
|
+
/**
|
|
70
|
+
* Build the planning instructions for AI
|
|
71
|
+
*/
|
|
72
|
+
private buildPlanInstructions;
|
|
73
|
+
/**
|
|
74
|
+
* Validate the generated output
|
|
75
|
+
*/
|
|
76
|
+
validateOutput(): this;
|
|
77
|
+
/**
|
|
78
|
+
* Display the plan output
|
|
79
|
+
*/
|
|
80
|
+
display(): Promise<this>;
|
|
81
|
+
/**
|
|
82
|
+
* Custom validation for plan pipeline
|
|
83
|
+
*/
|
|
84
|
+
protected customValidate(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Custom recovery logic
|
|
87
|
+
*/
|
|
88
|
+
protected customRecover(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Custom execution logic
|
|
91
|
+
*/
|
|
92
|
+
protected customExecute(): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Generate phases based on sprint duration
|
|
95
|
+
*/
|
|
96
|
+
private generatePhases;
|
|
97
|
+
/**
|
|
98
|
+
* Find ADR reference from feature description
|
|
99
|
+
*/
|
|
100
|
+
private findADRReference;
|
|
101
|
+
/**
|
|
102
|
+
* Get ADR content for context
|
|
103
|
+
*/
|
|
104
|
+
private getADRContent;
|
|
105
|
+
/**
|
|
106
|
+
* Main build method using fluent interface
|
|
107
|
+
*/
|
|
108
|
+
build(): Promise<string>;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Store sprint plan to filesystem
|
|
112
|
+
*/
|
|
113
|
+
export declare function storeSprintPlan(planId: string, content: string, verbose?: boolean): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Adapter for CLI command usage
|
|
116
|
+
* Maintains backward compatibility with existing command structure
|
|
117
|
+
*/
|
|
118
|
+
export declare class PlanReflectionCommand {
|
|
119
|
+
private pipeline;
|
|
120
|
+
/**
|
|
121
|
+
* Execute the plan command
|
|
122
|
+
*/
|
|
123
|
+
execute(feature: string | undefined, options?: any): Promise<void>;
|
|
124
|
+
}
|
|
125
|
+
export default PlanReflectionCommand;
|
|
126
|
+
//# sourceMappingURL=plan-reflection-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-reflection-pipeline.d.ts","sourceRoot":"","sources":["../../../src/commands/plan/plan-reflection-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAmB,MAAM,oCAAoC,CAAC;AAOzF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;IAO9C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACH,YAAY,IAAI,IAAI;IAwCpB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDpC;;OAEG;IACH,cAAc,IAAI,IAAI;IAuBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8E1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;OAEG;IACH,cAAc,IAAI,IAAI;IA+CtB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9B;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAkBhC;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAkB/B;;OAEG;cACa,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9C;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,aAAa;IAa3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAiC/B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD9G;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B7E;AAGD,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,554 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-10-01
|
|
5
|
+
* @tags: [plan, reflection, pipeline, builder, sprint]
|
|
6
|
+
* @related: [../../core/simple-pipeline-base.ts, ../handoff/handoff-reflection-pipeline.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [simple-pipeline-base, simple-git, fs-extra]
|
|
10
|
+
*/
|
|
11
|
+
import { SimplePipelineBase } from '../../core/simple-pipeline-base.js';
|
|
12
|
+
import simpleGit from 'simple-git';
|
|
13
|
+
import fs from 'fs-extra';
|
|
14
|
+
import path from 'path';
|
|
15
|
+
import chalk from 'chalk';
|
|
16
|
+
import { getGinkoDir } from '../../utils/helpers.js';
|
|
17
|
+
/**
|
|
18
|
+
* Plan pipeline using Simple Builder Pattern
|
|
19
|
+
* Refactored from plan.ts standalone command to use SimplePipelineBase
|
|
20
|
+
* Implements ADR-013 for consistent pipeline architecture
|
|
21
|
+
*/
|
|
22
|
+
export class PlanReflectionPipeline extends SimplePipelineBase {
|
|
23
|
+
git;
|
|
24
|
+
ginkoDir = '';
|
|
25
|
+
projectRoot = '';
|
|
26
|
+
feature = '';
|
|
27
|
+
options = {};
|
|
28
|
+
constructor(feature, options = {}) {
|
|
29
|
+
super(`Generate sprint plan for: ${feature}`);
|
|
30
|
+
this.feature = feature;
|
|
31
|
+
this.options = options;
|
|
32
|
+
this.withDomain('plan');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize pipeline dependencies
|
|
36
|
+
*/
|
|
37
|
+
async initialize() {
|
|
38
|
+
this.git = simpleGit();
|
|
39
|
+
this.ginkoDir = await getGinkoDir();
|
|
40
|
+
this.projectRoot = path.dirname(this.ginkoDir);
|
|
41
|
+
if (this.options.verbose) {
|
|
42
|
+
console.log(chalk.cyan('📋 Initializing plan pipeline...'));
|
|
43
|
+
}
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Load plan-specific quality template
|
|
48
|
+
*/
|
|
49
|
+
loadTemplate() {
|
|
50
|
+
const template = {
|
|
51
|
+
requiredSections: [
|
|
52
|
+
'overview',
|
|
53
|
+
'success_criteria',
|
|
54
|
+
'implementation_phases',
|
|
55
|
+
'dependencies',
|
|
56
|
+
'testing_strategy',
|
|
57
|
+
'rollback_plan',
|
|
58
|
+
'daily_standup_topics'
|
|
59
|
+
],
|
|
60
|
+
contextToConsider: [
|
|
61
|
+
'feature_description',
|
|
62
|
+
'adr_reference',
|
|
63
|
+
'sprint_duration',
|
|
64
|
+
'git_history',
|
|
65
|
+
'existing_architecture',
|
|
66
|
+
'team_velocity',
|
|
67
|
+
'technical_constraints'
|
|
68
|
+
],
|
|
69
|
+
rulesAndConstraints: [
|
|
70
|
+
'Break work into clear, measurable phases',
|
|
71
|
+
'Each task should be 0.5-4 hours (larger = break down further)',
|
|
72
|
+
'Include specific acceptance criteria',
|
|
73
|
+
'Consider team capacity and dependencies',
|
|
74
|
+
'Build in time for code review and testing (~20% overhead)',
|
|
75
|
+
'Front-load risky or blocking work',
|
|
76
|
+
'Back-load polish and nice-to-haves',
|
|
77
|
+
'Reference ADRs for architectural alignment',
|
|
78
|
+
'Include daily checkpoints for progress assessment'
|
|
79
|
+
]
|
|
80
|
+
};
|
|
81
|
+
this.withTemplate(template);
|
|
82
|
+
if (this.options.verbose) {
|
|
83
|
+
console.log(chalk.gray(' ✓ Template loaded'));
|
|
84
|
+
}
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Gather comprehensive context for planning
|
|
89
|
+
*/
|
|
90
|
+
async gatherContext() {
|
|
91
|
+
if (this.options.verbose) {
|
|
92
|
+
console.log(chalk.cyan('🔍 Gathering context...'));
|
|
93
|
+
}
|
|
94
|
+
const planId = `plan-${Date.now()}`;
|
|
95
|
+
const sprintDays = this.options.days || 5;
|
|
96
|
+
// Try to detect if this references an ADR
|
|
97
|
+
const adrReference = await this.findADRReference(this.feature);
|
|
98
|
+
// Get ADR content if reference found
|
|
99
|
+
let adrContent;
|
|
100
|
+
if (adrReference) {
|
|
101
|
+
adrContent = await this.getADRContent(adrReference);
|
|
102
|
+
}
|
|
103
|
+
// Get git state for context
|
|
104
|
+
const recentCommits = await this.git.log({ maxCount: 10 }).catch(() => ({ all: [] }));
|
|
105
|
+
const branch = await this.git.branchLocal().catch(() => ({ current: 'main' }));
|
|
106
|
+
// Generate phases based on sprint duration
|
|
107
|
+
const phases = this.generatePhases(sprintDays);
|
|
108
|
+
const context = {
|
|
109
|
+
feature: this.feature,
|
|
110
|
+
sprintDays,
|
|
111
|
+
adrReference,
|
|
112
|
+
planId,
|
|
113
|
+
timestamp: new Date().toISOString(),
|
|
114
|
+
phases,
|
|
115
|
+
recentCommits: recentCommits.all,
|
|
116
|
+
currentBranch: branch.current,
|
|
117
|
+
adrContent
|
|
118
|
+
};
|
|
119
|
+
// Store temp context for phase 2
|
|
120
|
+
const tempPath = path.join(this.ginkoDir, '.temp', `${planId}.json`);
|
|
121
|
+
await fs.ensureDir(path.dirname(tempPath));
|
|
122
|
+
await fs.writeJson(tempPath, {
|
|
123
|
+
feature: this.feature,
|
|
124
|
+
sprintDays,
|
|
125
|
+
adrReference,
|
|
126
|
+
planId,
|
|
127
|
+
timestamp: new Date().toISOString()
|
|
128
|
+
});
|
|
129
|
+
this.withContext(context);
|
|
130
|
+
if (this.options.verbose) {
|
|
131
|
+
console.log(chalk.gray(' ✓ Context gathered'));
|
|
132
|
+
}
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Generate the planning prompt for AI
|
|
137
|
+
*/
|
|
138
|
+
generatePrompt() {
|
|
139
|
+
if (this.options.verbose) {
|
|
140
|
+
console.log(chalk.cyan('📝 Generating planning prompt...'));
|
|
141
|
+
}
|
|
142
|
+
const context = this.ctx.context;
|
|
143
|
+
const date = new Date().toISOString().split('T')[0];
|
|
144
|
+
// Build the plan framework
|
|
145
|
+
const framework = this.buildPlanFramework(context, date);
|
|
146
|
+
// Build the instructions for AI
|
|
147
|
+
const instructions = this.buildPlanInstructions(context);
|
|
148
|
+
this.ctx.content = framework + '\n' + instructions;
|
|
149
|
+
this.adjustConfidence(0.9); // High confidence after successful generation
|
|
150
|
+
if (this.options.verbose) {
|
|
151
|
+
console.log(chalk.gray(' ✓ Prompt generated'));
|
|
152
|
+
}
|
|
153
|
+
return this;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Build the plan framework content
|
|
157
|
+
*/
|
|
158
|
+
buildPlanFramework(context, date) {
|
|
159
|
+
const sections = [];
|
|
160
|
+
sections.push(`# Sprint Plan: ${context.feature}`);
|
|
161
|
+
sections.push('');
|
|
162
|
+
sections.push(`## Overview`);
|
|
163
|
+
sections.push(`**Start Date**: ${date}`);
|
|
164
|
+
sections.push(`**Duration**: ${context.sprintDays} days`);
|
|
165
|
+
sections.push(`**ADR Reference**: ${context.adrReference || chalk.yellow('[AI: Link to relevant ADR if applicable]')}`);
|
|
166
|
+
if (context.adrContent) {
|
|
167
|
+
sections.push('');
|
|
168
|
+
sections.push(`### ADR Context`);
|
|
169
|
+
sections.push(chalk.dim('```'));
|
|
170
|
+
sections.push(chalk.dim(context.adrContent.substring(0, 500) + '...'));
|
|
171
|
+
sections.push(chalk.dim('```'));
|
|
172
|
+
}
|
|
173
|
+
sections.push('');
|
|
174
|
+
sections.push(`## Success Criteria`);
|
|
175
|
+
sections.push(chalk.yellow('[AI: What specific, measurable outcomes define success?]'));
|
|
176
|
+
sections.push(`- [ ] ${chalk.yellow('[AI: Acceptance criterion 1]')}`);
|
|
177
|
+
sections.push(`- [ ] ${chalk.yellow('[AI: Acceptance criterion 2]')}`);
|
|
178
|
+
sections.push(`- [ ] ${chalk.yellow('[AI: Acceptance criterion 3]')}`);
|
|
179
|
+
sections.push('');
|
|
180
|
+
sections.push(`## Implementation Phases`);
|
|
181
|
+
sections.push('');
|
|
182
|
+
context.phases.forEach((phase, i) => {
|
|
183
|
+
sections.push(`### ${phase.name}`);
|
|
184
|
+
sections.push(`**Duration**: ${phase.duration}`);
|
|
185
|
+
sections.push(`**Goal**: ${chalk.yellow(`[AI: What will be accomplished in ${phase.name}?]`)}`);
|
|
186
|
+
sections.push('');
|
|
187
|
+
sections.push(`**Tasks**:`);
|
|
188
|
+
sections.push(chalk.yellow('[AI: List specific, actionable tasks]'));
|
|
189
|
+
sections.push(`- [ ] ${chalk.yellow('[AI: Task with ~time estimate]')}`);
|
|
190
|
+
sections.push(`- [ ] ${chalk.yellow('[AI: Task with ~time estimate]')}`);
|
|
191
|
+
sections.push(`- [ ] ${chalk.yellow('[AI: Task with ~time estimate]')}`);
|
|
192
|
+
sections.push('');
|
|
193
|
+
sections.push(`**Deliverables**:`);
|
|
194
|
+
sections.push(chalk.yellow('[AI: What tangible outputs will exist after this phase?]'));
|
|
195
|
+
sections.push('');
|
|
196
|
+
sections.push(`**Risk Factors**:`);
|
|
197
|
+
sections.push(chalk.yellow('[AI: What could block or delay this phase?]'));
|
|
198
|
+
sections.push('');
|
|
199
|
+
});
|
|
200
|
+
sections.push(`## Dependencies`);
|
|
201
|
+
sections.push(chalk.yellow('[AI: What needs to be in place before starting?]'));
|
|
202
|
+
sections.push(`- ${chalk.yellow('[AI: External dependencies]')}`);
|
|
203
|
+
sections.push(`- ${chalk.yellow('[AI: Team dependencies]')}`);
|
|
204
|
+
sections.push(`- ${chalk.yellow('[AI: Technical prerequisites]')}`);
|
|
205
|
+
sections.push('');
|
|
206
|
+
sections.push(`## Testing Strategy`);
|
|
207
|
+
sections.push(chalk.yellow('[AI: How will we verify each phase?]'));
|
|
208
|
+
sections.push(`- **Unit Tests**: ${chalk.yellow('[AI: What will be unit tested?]')}`);
|
|
209
|
+
sections.push(`- **Integration Tests**: ${chalk.yellow('[AI: What integration points need testing?]')}`);
|
|
210
|
+
sections.push(`- **Manual Testing**: ${chalk.yellow('[AI: What requires manual verification?]')}`);
|
|
211
|
+
sections.push('');
|
|
212
|
+
sections.push(`## Rollback Plan`);
|
|
213
|
+
sections.push(chalk.yellow('[AI: If something goes wrong, how do we revert?]'));
|
|
214
|
+
sections.push('');
|
|
215
|
+
sections.push(`## Daily Standup Topics`);
|
|
216
|
+
Array.from({ length: context.sprintDays }, (_, i) => {
|
|
217
|
+
sections.push('');
|
|
218
|
+
sections.push(`**Day ${i + 1}**:`);
|
|
219
|
+
sections.push(`- Focus: ${chalk.yellow(`[AI: Main focus for day ${i + 1}]`)}`);
|
|
220
|
+
sections.push(`- Check: ${chalk.yellow(`[AI: What should be done by end of day ${i + 1}?]`)}`);
|
|
221
|
+
sections.push(`- Risk: ${chalk.yellow(`[AI: What could block day ${i + 2}?]`)}`);
|
|
222
|
+
});
|
|
223
|
+
return sections.join('\n');
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Build the planning instructions for AI
|
|
227
|
+
*/
|
|
228
|
+
buildPlanInstructions(context) {
|
|
229
|
+
return chalk.magenta(`
|
|
230
|
+
Sprint Planning Instructions:
|
|
231
|
+
|
|
232
|
+
This is PLANNING MODE - we're creating a concrete implementation roadmap.
|
|
233
|
+
Be realistic about velocity and include buffer time.
|
|
234
|
+
|
|
235
|
+
1. Break down the work into clear, measurable phases
|
|
236
|
+
2. Each task should be 0.5-4 hours (larger = break down further)
|
|
237
|
+
3. Include specific acceptance criteria
|
|
238
|
+
4. Consider team capacity and dependencies
|
|
239
|
+
5. Build in time for code review and testing
|
|
240
|
+
6. Account for meetings and context switching (~20% overhead)
|
|
241
|
+
|
|
242
|
+
Guidelines:
|
|
243
|
+
- ${context.sprintDays} days = ~${context.sprintDays * 6} hours of focused coding time
|
|
244
|
+
- Include daily checkpoints for progress assessment
|
|
245
|
+
- Front-load risky or blocking work
|
|
246
|
+
- Back-load polish and nice-to-haves
|
|
247
|
+
|
|
248
|
+
After planning is complete, store the sprint plan:
|
|
249
|
+
|
|
250
|
+
ginko plan --store --id=${context.planId} --content="[complete sprint plan]"
|
|
251
|
+
|
|
252
|
+
The plan will be stored in: docs/SPRINTS/SPRINT-${new Date().toISOString().split('T')[0]}-[feature].md
|
|
253
|
+
|
|
254
|
+
This plan will guide daily standups and progress tracking.`);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Validate the generated output
|
|
258
|
+
*/
|
|
259
|
+
validateOutput() {
|
|
260
|
+
if (!this.ctx.content) {
|
|
261
|
+
this.addError('No plan content generated');
|
|
262
|
+
this.adjustConfidence(0.5);
|
|
263
|
+
return this;
|
|
264
|
+
}
|
|
265
|
+
const content = this.ctx.content;
|
|
266
|
+
const context = this.ctx.context;
|
|
267
|
+
// Check for required sections
|
|
268
|
+
const requiredPatterns = [
|
|
269
|
+
{ name: 'Overview', pattern: /## Overview/i },
|
|
270
|
+
{ name: 'Success Criteria', pattern: /## Success Criteria/i },
|
|
271
|
+
{ name: 'Implementation Phases', pattern: /## Implementation Phases/i },
|
|
272
|
+
{ name: 'Dependencies', pattern: /## Dependencies/i },
|
|
273
|
+
{ name: 'Testing Strategy', pattern: /## Testing Strategy/i },
|
|
274
|
+
{ name: 'Rollback Plan', pattern: /## Rollback Plan/i },
|
|
275
|
+
{ name: 'Daily Standup Topics', pattern: /## Daily Standup Topics/i }
|
|
276
|
+
];
|
|
277
|
+
const missing = [];
|
|
278
|
+
for (const section of requiredPatterns) {
|
|
279
|
+
if (!section.pattern.test(content)) {
|
|
280
|
+
missing.push(section.name);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (missing.length > 0) {
|
|
284
|
+
this.addError(`Missing required sections: ${missing.join(', ')}`);
|
|
285
|
+
this.adjustConfidence(0.7);
|
|
286
|
+
}
|
|
287
|
+
// Check for phases
|
|
288
|
+
const phaseCount = (content.match(/### Phase \d+:/g) || []).length;
|
|
289
|
+
if (phaseCount === 0) {
|
|
290
|
+
this.addError('No implementation phases found');
|
|
291
|
+
this.adjustConfidence(0.6);
|
|
292
|
+
}
|
|
293
|
+
if (this.options.verbose) {
|
|
294
|
+
console.log(chalk.gray(' ✓ Output validated'));
|
|
295
|
+
}
|
|
296
|
+
return this;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Display the plan output
|
|
300
|
+
*/
|
|
301
|
+
async display() {
|
|
302
|
+
if (!this.ctx.content) {
|
|
303
|
+
this.addError('No content to display');
|
|
304
|
+
return this;
|
|
305
|
+
}
|
|
306
|
+
const context = this.ctx.context;
|
|
307
|
+
// Output plan framework (to stdout to avoid stderr)
|
|
308
|
+
process.stdout.write(chalk.magenta('\n📋 Sprint Planning Mode') + '\n');
|
|
309
|
+
process.stdout.write(chalk.dim('─'.repeat(60)) + '\n');
|
|
310
|
+
process.stdout.write(this.ctx.content + '\n');
|
|
311
|
+
process.stdout.write(chalk.dim('─'.repeat(60)) + '\n');
|
|
312
|
+
// Ensure stdout is flushed before continuing
|
|
313
|
+
await new Promise(resolve => process.stdout.write('', resolve));
|
|
314
|
+
return this;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Custom validation for plan pipeline
|
|
318
|
+
*/
|
|
319
|
+
customValidate() {
|
|
320
|
+
if (!this.ctx.template) {
|
|
321
|
+
this.addError('Template required for plan');
|
|
322
|
+
this.adjustConfidence(0.7);
|
|
323
|
+
}
|
|
324
|
+
if (!this.feature || this.feature.trim() === '') {
|
|
325
|
+
this.addError('Feature description is required');
|
|
326
|
+
this.adjustConfidence(0.5);
|
|
327
|
+
}
|
|
328
|
+
const context = this.ctx.context;
|
|
329
|
+
if (!context?.sprintDays || context.sprintDays < 1) {
|
|
330
|
+
this.addError('Invalid sprint duration');
|
|
331
|
+
this.adjustConfidence(0.6);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Custom recovery logic
|
|
336
|
+
*/
|
|
337
|
+
customRecover() {
|
|
338
|
+
// If no context, create a basic one
|
|
339
|
+
if (!this.ctx.context) {
|
|
340
|
+
const planId = `plan-${Date.now()}`;
|
|
341
|
+
const sprintDays = this.options.days || 5;
|
|
342
|
+
this.ctx.context = {
|
|
343
|
+
feature: this.feature,
|
|
344
|
+
sprintDays,
|
|
345
|
+
planId,
|
|
346
|
+
timestamp: new Date().toISOString(),
|
|
347
|
+
phases: this.generatePhases(sprintDays)
|
|
348
|
+
};
|
|
349
|
+
this.removeError('No context available');
|
|
350
|
+
this.adjustConfidence(1.1); // Slight boost after recovery
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Custom execution logic
|
|
355
|
+
*/
|
|
356
|
+
async customExecute() {
|
|
357
|
+
// Ensure we have content
|
|
358
|
+
if (!this.ctx.content) {
|
|
359
|
+
this.generatePrompt();
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Generate phases based on sprint duration
|
|
364
|
+
*/
|
|
365
|
+
generatePhases(days) {
|
|
366
|
+
if (days <= 2) {
|
|
367
|
+
return [
|
|
368
|
+
{ name: 'Phase 1: Implementation', duration: '1 day' },
|
|
369
|
+
{ name: 'Phase 2: Testing & Polish', duration: '1 day' }
|
|
370
|
+
];
|
|
371
|
+
}
|
|
372
|
+
else if (days <= 5) {
|
|
373
|
+
return [
|
|
374
|
+
{ name: 'Phase 1: Foundation', duration: `${Math.floor(days * 0.3)} day(s)` },
|
|
375
|
+
{ name: 'Phase 2: Core Implementation', duration: `${Math.floor(days * 0.4)} day(s)` },
|
|
376
|
+
{ name: 'Phase 3: Testing & Refinement', duration: `${Math.ceil(days * 0.3)} day(s)` }
|
|
377
|
+
];
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
return [
|
|
381
|
+
{ name: 'Phase 1: Architecture & Setup', duration: `${Math.floor(days * 0.2)} day(s)` },
|
|
382
|
+
{ name: 'Phase 2: Core Features', duration: `${Math.floor(days * 0.3)} day(s)` },
|
|
383
|
+
{ name: 'Phase 3: Integration', duration: `${Math.floor(days * 0.2)} day(s)` },
|
|
384
|
+
{ name: 'Phase 4: Testing & Documentation', duration: `${Math.floor(days * 0.2)} day(s)` },
|
|
385
|
+
{ name: 'Phase 5: Polish & Deploy', duration: `${Math.ceil(days * 0.1)} day(s)` }
|
|
386
|
+
];
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Find ADR reference from feature description
|
|
391
|
+
*/
|
|
392
|
+
async findADRReference(feature) {
|
|
393
|
+
// Check if feature mentions an ADR
|
|
394
|
+
const adrMatch = feature.match(/ADR-(\d+)/i);
|
|
395
|
+
if (adrMatch) {
|
|
396
|
+
return adrMatch[0].toUpperCase();
|
|
397
|
+
}
|
|
398
|
+
// Check if feature matches recent ADR titles
|
|
399
|
+
const adrDir = path.join(this.projectRoot, 'docs', 'reference', 'architecture');
|
|
400
|
+
if (await fs.pathExists(adrDir)) {
|
|
401
|
+
const files = await fs.readdir(adrDir);
|
|
402
|
+
const recentADRs = files
|
|
403
|
+
.filter(f => f.startsWith('ADR-'))
|
|
404
|
+
.sort()
|
|
405
|
+
.reverse()
|
|
406
|
+
.slice(0, 5); // Check last 5 ADRs
|
|
407
|
+
for (const adrFile of recentADRs) {
|
|
408
|
+
const content = await fs.readFile(path.join(adrDir, adrFile), 'utf8');
|
|
409
|
+
const titleMatch = content.match(/^#\s+ADR-\d+:\s+(.+)$/m);
|
|
410
|
+
if (titleMatch) {
|
|
411
|
+
const title = titleMatch[1].toLowerCase();
|
|
412
|
+
if (feature.toLowerCase().includes(title) || title.includes(feature.toLowerCase())) {
|
|
413
|
+
return adrFile.match(/ADR-\d+/)[0];
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return undefined;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Get ADR content for context
|
|
422
|
+
*/
|
|
423
|
+
async getADRContent(adrReference) {
|
|
424
|
+
const adrDir = path.join(this.projectRoot, 'docs', 'reference', 'architecture');
|
|
425
|
+
const adrFiles = await fs.readdir(adrDir).catch(() => []);
|
|
426
|
+
const adrFile = adrFiles.find(f => f.includes(adrReference));
|
|
427
|
+
if (adrFile) {
|
|
428
|
+
const content = await fs.readFile(path.join(adrDir, adrFile), 'utf8');
|
|
429
|
+
return content;
|
|
430
|
+
}
|
|
431
|
+
return undefined;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Main build method using fluent interface
|
|
435
|
+
*/
|
|
436
|
+
async build() {
|
|
437
|
+
try {
|
|
438
|
+
if (this.options.verbose) {
|
|
439
|
+
console.log(chalk.bold.cyan('\n🚀 Building plan with Simple Pipeline Pattern\n'));
|
|
440
|
+
}
|
|
441
|
+
await this
|
|
442
|
+
.initialize()
|
|
443
|
+
.then(p => p.loadTemplate())
|
|
444
|
+
.then(p => p.gatherContext())
|
|
445
|
+
.then(p => {
|
|
446
|
+
p.generatePrompt();
|
|
447
|
+
p.validateOutput();
|
|
448
|
+
return p;
|
|
449
|
+
})
|
|
450
|
+
.then(p => p.validate())
|
|
451
|
+
.then(p => {
|
|
452
|
+
p.recover();
|
|
453
|
+
return p;
|
|
454
|
+
})
|
|
455
|
+
.then(p => p.display())
|
|
456
|
+
.then(p => p.execute());
|
|
457
|
+
if (this.options.verbose) {
|
|
458
|
+
console.log(chalk.bold.green('\n✨ Plan pipeline completed successfully!\n'));
|
|
459
|
+
}
|
|
460
|
+
return this.ctx.content || '';
|
|
461
|
+
}
|
|
462
|
+
catch (error) {
|
|
463
|
+
console.error(chalk.red(`\n❌ Pipeline failed: ${error}`));
|
|
464
|
+
throw error;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Store sprint plan to filesystem
|
|
470
|
+
*/
|
|
471
|
+
export async function storeSprintPlan(planId, content, verbose = false) {
|
|
472
|
+
const ginkoDir = await getGinkoDir();
|
|
473
|
+
const projectRoot = path.dirname(ginkoDir);
|
|
474
|
+
// Extract title from content
|
|
475
|
+
const titleMatch = content.match(/^#\s+Sprint Plan:\s+(.+)$/m);
|
|
476
|
+
const title = titleMatch ? titleMatch[1] : 'Untitled Sprint';
|
|
477
|
+
const date = new Date().toISOString().split('T')[0];
|
|
478
|
+
const filename = `SPRINT-${date}-${title.toLowerCase().replace(/[^a-z0-9]+/g, '-')}.md`;
|
|
479
|
+
// Store sprint plan
|
|
480
|
+
const sprintDir = path.join(projectRoot, 'docs', 'SPRINTS');
|
|
481
|
+
await fs.ensureDir(sprintDir);
|
|
482
|
+
const sprintPath = path.join(sprintDir, filename);
|
|
483
|
+
await fs.writeFile(sprintPath, content);
|
|
484
|
+
// Also update current sprint symlink
|
|
485
|
+
const currentPath = path.join(sprintDir, 'CURRENT-SPRINT.md');
|
|
486
|
+
if (await fs.pathExists(currentPath)) {
|
|
487
|
+
await fs.remove(currentPath);
|
|
488
|
+
}
|
|
489
|
+
// Create symlink to current sprint
|
|
490
|
+
await fs.symlink(sprintPath, currentPath).catch(() => {
|
|
491
|
+
// If symlink fails (Windows), copy instead
|
|
492
|
+
fs.copyFile(sprintPath, currentPath);
|
|
493
|
+
});
|
|
494
|
+
if (verbose) {
|
|
495
|
+
console.log(chalk.green(`✅ Sprint plan created: ${path.relative(projectRoot, sprintPath)}`));
|
|
496
|
+
console.log(chalk.dim(` Current sprint: ${path.relative(projectRoot, currentPath)}`));
|
|
497
|
+
}
|
|
498
|
+
else {
|
|
499
|
+
console.log('done');
|
|
500
|
+
}
|
|
501
|
+
// Provide phase transition options
|
|
502
|
+
if (verbose) {
|
|
503
|
+
console.log();
|
|
504
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
505
|
+
console.log(chalk.bold('Planning phase complete. Next steps:'));
|
|
506
|
+
console.log();
|
|
507
|
+
console.log(chalk.cyan(' ginko start') + chalk.dim(' - Begin implementation'));
|
|
508
|
+
console.log(chalk.cyan(' ginko capture') + chalk.dim(' - Document implementation decisions'));
|
|
509
|
+
console.log(chalk.cyan(' ginko ship') + chalk.dim(' - Commit and push your work'));
|
|
510
|
+
console.log();
|
|
511
|
+
console.log(chalk.dim('Note: Sprint plan is now active and ready for execution.'));
|
|
512
|
+
}
|
|
513
|
+
// Clean up temp file
|
|
514
|
+
const tempPath = path.join(ginkoDir, '.temp', `${planId}.json`);
|
|
515
|
+
await fs.remove(tempPath).catch(() => { });
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Adapter for CLI command usage
|
|
519
|
+
* Maintains backward compatibility with existing command structure
|
|
520
|
+
*/
|
|
521
|
+
export class PlanReflectionCommand {
|
|
522
|
+
pipeline = null;
|
|
523
|
+
/**
|
|
524
|
+
* Execute the plan command
|
|
525
|
+
*/
|
|
526
|
+
async execute(feature, options = {}) {
|
|
527
|
+
try {
|
|
528
|
+
// Phase 2: Store AI-generated sprint plan
|
|
529
|
+
if (options.store && options.id) {
|
|
530
|
+
await storeSprintPlan(options.id, options.content || '', options.verbose);
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
// Phase 1 requires feature/ADR reference
|
|
534
|
+
if (!feature) {
|
|
535
|
+
process.stdout.write(chalk.red('error: feature or ADR reference required') + '\n');
|
|
536
|
+
process.stdout.write(chalk.dim('usage: ginko plan "implement ADR-023" --days 5') + '\n');
|
|
537
|
+
process.exit(1);
|
|
538
|
+
}
|
|
539
|
+
// Create and execute pipeline
|
|
540
|
+
this.pipeline = new PlanReflectionPipeline(feature, options);
|
|
541
|
+
await this.pipeline.build();
|
|
542
|
+
// Exit with code 0 to avoid stderr interpretation
|
|
543
|
+
// The AI prompt is expected behavior, not an error
|
|
544
|
+
process.exit(0);
|
|
545
|
+
}
|
|
546
|
+
catch (error) {
|
|
547
|
+
process.stdout.write(chalk.red('error: ') + (error instanceof Error ? error.message : String(error)) + '\n');
|
|
548
|
+
process.exit(1);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
// Export for CLI use
|
|
553
|
+
export default PlanReflectionCommand;
|
|
554
|
+
//# sourceMappingURL=plan-reflection-pipeline.js.map
|