edsger 0.50.0 → 0.52.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/.claude/settings.local.json +23 -3
- package/.env.local +12 -0
- package/README.md +25 -25
- package/dist/api/chat.d.ts +7 -7
- package/dist/api/chat.js +13 -13
- package/dist/api/cross-product.d.ts +10 -10
- package/dist/api/cross-product.js +30 -30
- package/dist/api/github.d.ts +5 -5
- package/dist/api/github.js +10 -10
- package/dist/api/intelligence.d.ts +3 -3
- package/dist/api/issues/approval-checker.d.ts +20 -0
- package/dist/api/{features → issues}/approval-checker.js +16 -16
- package/dist/api/issues/get-issue.d.ts +5 -0
- package/dist/api/issues/get-issue.js +21 -0
- package/dist/api/issues/index.d.ts +8 -0
- package/dist/api/issues/index.js +10 -0
- package/dist/api/issues/issue-utils.d.ts +23 -0
- package/dist/api/issues/issue-utils.js +80 -0
- package/dist/api/issues/status-updater.d.ts +41 -0
- package/dist/api/{features → issues}/status-updater.js +23 -23
- package/dist/api/{features → issues}/test-cases.d.ts +7 -7
- package/dist/api/{features → issues}/test-cases.js +12 -12
- package/dist/api/issues/update-issue.d.ts +20 -0
- package/dist/api/{features/update-feature.js → issues/update-issue.js} +22 -22
- package/dist/api/{features → issues}/user-stories.d.ts +5 -5
- package/dist/api/{features → issues}/user-stories.js +8 -8
- package/dist/api/products.d.ts +1 -1
- package/dist/api/tasks.d.ts +1 -1
- package/dist/api/test-reports.d.ts +2 -2
- package/dist/api/test-reports.js +4 -4
- package/dist/auth/login.js +1 -1
- package/dist/commands/agent-workflow/chat-worker.d.ts +7 -7
- package/dist/commands/agent-workflow/chat-worker.js +50 -50
- package/dist/commands/agent-workflow/index.d.ts +2 -2
- package/dist/commands/agent-workflow/index.js +3 -3
- package/dist/commands/agent-workflow/{feature-worker.d.ts → issue-worker.d.ts} +4 -4
- package/dist/commands/agent-workflow/{feature-worker.js → issue-worker.js} +12 -12
- package/dist/commands/agent-workflow/processor.d.ts +9 -9
- package/dist/commands/agent-workflow/processor.js +90 -90
- package/dist/commands/build/index.js +2 -2
- package/dist/commands/find-bugs/index.d.ts +11 -0
- package/dist/commands/find-bugs/index.js +39 -0
- package/dist/commands/find-features/index.d.ts +14 -0
- package/dist/commands/find-features/index.js +42 -0
- package/dist/commands/find-smells/index.d.ts +21 -0
- package/dist/commands/find-smells/index.js +65 -0
- package/dist/commands/init/prompts.js +1 -1
- package/dist/commands/init/templates.d.ts +1 -1
- package/dist/commands/init/templates.js +4 -4
- package/dist/commands/workflow/config/phase-configs.js +17 -17
- package/dist/commands/workflow/core/index.d.ts +1 -1
- package/dist/commands/workflow/core/index.js +2 -2
- package/dist/commands/workflow/core/issue-filter.d.ts +16 -0
- package/dist/commands/workflow/core/issue-filter.js +47 -0
- package/dist/commands/workflow/core/state-manager.d.ts +10 -10
- package/dist/commands/workflow/core/state-manager.js +10 -10
- package/dist/commands/workflow/core/workflow-logger.d.ts +9 -9
- package/dist/commands/workflow/core/workflow-logger.js +21 -21
- package/dist/commands/workflow/executors/phase-executor.d.ts +2 -2
- package/dist/commands/workflow/executors/phase-executor.js +32 -32
- package/dist/commands/workflow/issue-coordinator.d.ts +18 -0
- package/dist/commands/workflow/{feature-coordinator.js → issue-coordinator.js} +29 -29
- package/dist/commands/workflow/phase-orchestrator.d.ts +2 -2
- package/dist/commands/workflow/phase-orchestrator.js +82 -82
- package/dist/commands/workflow/processor.d.ts +7 -7
- package/dist/commands/workflow/processor.js +44 -44
- package/dist/config/{feature-status.d.ts → issue-status.d.ts} +14 -14
- package/dist/config/{feature-status.js → issue-status.js} +14 -14
- package/dist/errors/index.d.ts +6 -6
- package/dist/errors/index.js +11 -11
- package/dist/index.js +90 -1
- package/dist/phases/app-store-generation/context.js +6 -6
- package/dist/phases/app-store-generation/index.js +2 -2
- package/dist/phases/app-store-generation/prompts.js +2 -2
- package/dist/phases/autonomous/index.d.ts +3 -3
- package/dist/phases/autonomous/index.js +37 -37
- package/dist/phases/autonomous/prompts.d.ts +2 -2
- package/dist/phases/autonomous/prompts.js +4 -4
- package/dist/phases/branch-planning/context.d.ts +3 -3
- package/dist/phases/branch-planning/context.js +12 -12
- package/dist/phases/branch-planning/index.d.ts +3 -3
- package/dist/phases/branch-planning/index.js +32 -32
- package/dist/phases/branch-planning/outcome.d.ts +5 -5
- package/dist/phases/branch-planning/outcome.js +12 -12
- package/dist/phases/branch-planning/prompts.d.ts +3 -3
- package/dist/phases/branch-planning/prompts.js +13 -13
- package/dist/phases/bug-fixing/analyzer.d.ts +2 -2
- package/dist/phases/bug-fixing/analyzer.js +13 -13
- package/dist/phases/bug-fixing/context-fetcher.d.ts +3 -3
- package/dist/phases/bug-fixing/context-fetcher.js +18 -18
- package/dist/phases/bug-fixing/mcp-server.js +17 -18
- package/dist/phases/chat-processor/context.d.ts +5 -5
- package/dist/phases/chat-processor/context.js +17 -17
- package/dist/phases/chat-processor/index.d.ts +4 -4
- package/dist/phases/chat-processor/index.js +17 -17
- package/dist/phases/chat-processor/product-context.d.ts +3 -3
- package/dist/phases/chat-processor/product-context.js +16 -16
- package/dist/phases/chat-processor/product-prompts.d.ts +1 -1
- package/dist/phases/chat-processor/product-prompts.js +10 -10
- package/dist/phases/chat-processor/product-tools.d.ts +2 -2
- package/dist/phases/chat-processor/product-tools.js +33 -33
- package/dist/phases/chat-processor/prompts.d.ts +3 -3
- package/dist/phases/chat-processor/prompts.js +22 -22
- package/dist/phases/chat-processor/tools.js +46 -46
- package/dist/phases/code-implementation/branch-pr-creator.d.ts +3 -3
- package/dist/phases/code-implementation/branch-pr-creator.js +5 -5
- package/dist/phases/code-implementation/context.d.ts +3 -3
- package/dist/phases/code-implementation/context.js +18 -18
- package/dist/phases/code-implementation/index.d.ts +4 -4
- package/dist/phases/code-implementation/index.js +88 -88
- package/dist/phases/code-implementation/outcome.d.ts +3 -3
- package/dist/phases/code-implementation/outcome.js +6 -6
- package/dist/phases/code-implementation/prompts.d.ts +1 -1
- package/dist/phases/code-implementation/prompts.js +6 -6
- package/dist/phases/code-implementation-verification/agent.d.ts +3 -3
- package/dist/phases/code-implementation-verification/agent.js +5 -5
- package/dist/phases/code-implementation-verification/index.d.ts +3 -3
- package/dist/phases/code-implementation-verification/index.js +11 -11
- package/dist/phases/code-implementation-verification/prompts.d.ts +3 -3
- package/dist/phases/code-implementation-verification/prompts.js +7 -7
- package/dist/phases/code-refine/context.d.ts +8 -8
- package/dist/phases/code-refine/context.js +29 -29
- package/dist/phases/code-refine/index.d.ts +2 -2
- package/dist/phases/code-refine/index.js +20 -20
- package/dist/phases/code-refine/prompts.d.ts +1 -1
- package/dist/phases/code-refine/prompts.js +3 -3
- package/dist/phases/code-refine/refine-iteration.d.ts +1 -1
- package/dist/phases/code-refine/refine-iteration.js +4 -4
- package/dist/phases/code-refine/retry-handler.js +2 -2
- package/dist/phases/code-refine-verification/index.js +10 -10
- package/dist/phases/code-refine-verification/types.d.ts +2 -2
- package/dist/phases/code-review/context.d.ts +8 -8
- package/dist/phases/code-review/context.js +25 -25
- package/dist/phases/code-review/diff-utils.d.ts +1 -1
- package/dist/phases/code-review/diff-utils.js +1 -1
- package/dist/phases/code-review/index.d.ts +2 -2
- package/dist/phases/code-review/index.js +26 -26
- package/dist/phases/code-testing/analyzer.d.ts +2 -2
- package/dist/phases/code-testing/analyzer.js +18 -18
- package/dist/phases/code-testing/context-fetcher.d.ts +3 -3
- package/dist/phases/code-testing/context-fetcher.js +16 -16
- package/dist/phases/code-testing/prompts.d.ts +1 -1
- package/dist/phases/code-testing/prompts.js +5 -5
- package/dist/phases/find-bugs/index.d.ts +30 -0
- package/dist/phases/find-bugs/index.js +216 -0
- package/dist/phases/find-bugs/prompts.d.ts +22 -0
- package/dist/phases/find-bugs/prompts.js +101 -0
- package/dist/phases/find-bugs/state.d.ts +19 -0
- package/dist/phases/find-bugs/state.js +13 -0
- package/dist/phases/find-bugs/types.d.ts +21 -0
- package/dist/phases/find-bugs/types.js +16 -0
- package/dist/phases/find-features/index.d.ts +40 -0
- package/dist/phases/find-features/index.js +279 -0
- package/dist/phases/find-features/prompts.d.ts +43 -0
- package/dist/phases/find-features/prompts.js +138 -0
- package/dist/phases/find-features/state.d.ts +25 -0
- package/dist/phases/find-features/state.js +22 -0
- package/dist/phases/find-features/types.d.ts +27 -0
- package/dist/phases/find-features/types.js +16 -0
- package/dist/phases/find-shared/git.d.ts +24 -0
- package/dist/phases/find-shared/git.js +60 -0
- package/dist/phases/find-shared/mcp.d.ts +33 -0
- package/dist/phases/find-shared/mcp.js +69 -0
- package/dist/phases/find-shared/scan-state.d.ts +33 -0
- package/dist/phases/find-shared/scan-state.js +112 -0
- package/dist/phases/find-smells/index.d.ts +47 -0
- package/dist/phases/find-smells/index.js +278 -0
- package/dist/phases/find-smells/prompts.d.ts +30 -0
- package/dist/phases/find-smells/prompts.js +129 -0
- package/dist/phases/find-smells/state.d.ts +21 -0
- package/dist/phases/find-smells/state.js +17 -0
- package/dist/phases/find-smells/types.d.ts +51 -0
- package/dist/phases/find-smells/types.js +64 -0
- package/dist/phases/functional-testing/analyzer.d.ts +2 -2
- package/dist/phases/functional-testing/analyzer.js +40 -40
- package/dist/phases/functional-testing/context-fetcher.d.ts +3 -3
- package/dist/phases/functional-testing/context-fetcher.js +16 -16
- package/dist/phases/functional-testing/http-fallback.d.ts +2 -2
- package/dist/phases/functional-testing/http-fallback.js +9 -9
- package/dist/phases/functional-testing/mcp-server.js +23 -24
- package/dist/phases/functional-testing/prompts.d.ts +1 -1
- package/dist/phases/functional-testing/prompts.js +4 -4
- package/dist/phases/functional-testing/test-report-creator.d.ts +2 -2
- package/dist/phases/functional-testing/test-report-creator.js +10 -10
- package/dist/phases/functional-testing/test-retry-handler.js +3 -3
- package/dist/phases/growth-analysis/context.js +6 -6
- package/dist/phases/growth-analysis/index.js +2 -2
- package/dist/phases/growth-analysis/prompts.js +2 -2
- package/dist/phases/intelligence-analysis/context.js +7 -7
- package/dist/phases/intelligence-analysis/index.js +3 -3
- package/dist/phases/{feature-analysis → issue-analysis}/agent.js +1 -1
- package/dist/phases/issue-analysis/context.d.ts +24 -0
- package/dist/phases/{feature-analysis → issue-analysis}/context.js +30 -30
- package/dist/phases/issue-analysis/index.d.ts +8 -0
- package/dist/phases/{feature-analysis → issue-analysis}/index.js +29 -29
- package/dist/phases/issue-analysis/outcome.d.ts +40 -0
- package/dist/phases/{feature-analysis → issue-analysis}/outcome.js +17 -17
- package/dist/phases/{feature-analysis → issue-analysis}/prompts.d.ts +3 -3
- package/dist/phases/{feature-analysis → issue-analysis}/prompts.js +12 -12
- package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/agent.d.ts +2 -2
- package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/agent.js +1 -1
- package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/index.d.ts +5 -5
- package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/index.js +9 -9
- package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/prompts.d.ts +2 -2
- package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/prompts.js +7 -7
- package/dist/phases/output-contracts.js +37 -37
- package/dist/phases/pr-execution/context.d.ts +3 -3
- package/dist/phases/pr-execution/context.js +14 -14
- package/dist/phases/pr-execution/index.d.ts +2 -2
- package/dist/phases/pr-execution/index.js +22 -22
- package/dist/phases/pr-execution/outcome.d.ts +4 -4
- package/dist/phases/pr-execution/outcome.js +6 -6
- package/dist/phases/pr-execution/prompts.d.ts +4 -4
- package/dist/phases/pr-execution/prompts.js +6 -6
- package/dist/phases/pr-resolve/checklist-learner.js +2 -2
- package/dist/phases/pr-review/index.d.ts +1 -1
- package/dist/phases/pr-review/index.js +1 -1
- package/dist/phases/pr-review/prompts.d.ts +1 -1
- package/dist/phases/pr-review/prompts.js +1 -1
- package/dist/phases/pr-shared/context.d.ts +3 -3
- package/dist/phases/pr-shared/context.js +3 -3
- package/dist/phases/pr-splitting/context.d.ts +3 -3
- package/dist/phases/pr-splitting/context.js +16 -16
- package/dist/phases/pr-splitting/index.d.ts +4 -4
- package/dist/phases/pr-splitting/index.js +29 -29
- package/dist/phases/pr-splitting/outcome.d.ts +3 -3
- package/dist/phases/pr-splitting/outcome.js +7 -7
- package/dist/phases/pr-splitting/prompts.d.ts +3 -3
- package/dist/phases/pr-splitting/prompts.js +11 -11
- package/dist/phases/pull-request/creator.d.ts +4 -4
- package/dist/phases/pull-request/creator.js +25 -25
- package/dist/phases/pull-request/handler.d.ts +3 -3
- package/dist/phases/pull-request/handler.js +16 -16
- package/dist/phases/release-sync/index.js +2 -2
- package/dist/phases/run-sheet/agent.js +1 -2
- package/dist/phases/run-sheet/index.js +3 -3
- package/dist/phases/smoke-test/index.js +2 -2
- package/dist/phases/technical-design/context.d.ts +3 -3
- package/dist/phases/technical-design/context.js +11 -11
- package/dist/phases/technical-design/index.d.ts +2 -2
- package/dist/phases/technical-design/index.js +27 -27
- package/dist/phases/technical-design/outcome.d.ts +4 -4
- package/dist/phases/technical-design/outcome.js +6 -6
- package/dist/phases/technical-design/prompts.d.ts +2 -2
- package/dist/phases/technical-design/prompts.js +10 -10
- package/dist/phases/technical-design-verification/agent.d.ts +3 -3
- package/dist/phases/technical-design-verification/agent.js +4 -4
- package/dist/phases/technical-design-verification/index.d.ts +4 -4
- package/dist/phases/technical-design-verification/index.js +12 -12
- package/dist/phases/technical-design-verification/prompts.d.ts +3 -3
- package/dist/phases/technical-design-verification/prompts.js +6 -6
- package/dist/phases/test-cases-analysis/context.d.ts +5 -5
- package/dist/phases/test-cases-analysis/context.js +18 -18
- package/dist/phases/test-cases-analysis/formatters.js +7 -7
- package/dist/phases/test-cases-analysis/index.d.ts +1 -1
- package/dist/phases/test-cases-analysis/index.js +21 -21
- package/dist/phases/test-cases-analysis/outcome.d.ts +7 -7
- package/dist/phases/test-cases-analysis/outcome.js +13 -13
- package/dist/phases/test-cases-analysis/prompts.d.ts +3 -3
- package/dist/phases/test-cases-analysis/prompts.js +6 -6
- package/dist/phases/user-stories-analysis/context.d.ts +5 -5
- package/dist/phases/user-stories-analysis/context.js +18 -18
- package/dist/phases/user-stories-analysis/formatters.js +7 -7
- package/dist/phases/user-stories-analysis/index.d.ts +1 -1
- package/dist/phases/user-stories-analysis/index.js +21 -21
- package/dist/phases/user-stories-analysis/outcome.d.ts +7 -7
- package/dist/phases/user-stories-analysis/outcome.js +13 -13
- package/dist/phases/user-stories-analysis/prompts.d.ts +3 -3
- package/dist/phases/user-stories-analysis/prompts.js +10 -10
- package/dist/services/audit-logs.d.ts +10 -10
- package/dist/services/audit-logs.js +12 -12
- package/dist/services/branches.d.ts +6 -6
- package/dist/services/branches.js +16 -16
- package/dist/services/checklist.d.ts +3 -3
- package/dist/services/checklist.js +11 -11
- package/dist/services/coaching/coaching-agent.js +2 -2
- package/dist/services/coaching/coaching-loop.d.ts +1 -1
- package/dist/services/coaching/coaching-loop.js +2 -2
- package/dist/services/coaching/phase-coaching.d.ts +2 -2
- package/dist/services/coaching/phase-coaching.js +3 -3
- package/dist/services/coaching/self-rating.js +1 -1
- package/dist/services/feedbacks.d.ts +4 -4
- package/dist/services/feedbacks.js +8 -8
- package/dist/services/phase-hooks/bindings-fetcher.d.ts +4 -4
- package/dist/services/phase-hooks/bindings-fetcher.js +8 -8
- package/dist/services/phase-hooks/hook-executor.js +1 -1
- package/dist/services/phase-hooks/hook-logging.d.ts +2 -2
- package/dist/services/phase-hooks/hook-logging.js +4 -4
- package/dist/services/phase-hooks/hook-runner.d.ts +1 -1
- package/dist/services/phase-hooks/hook-runner.js +4 -4
- package/dist/services/phase-hooks/types.d.ts +3 -3
- package/dist/services/phase-ratings.d.ts +7 -7
- package/dist/services/phase-ratings.js +8 -8
- package/dist/services/pull-requests.d.ts +4 -4
- package/dist/services/pull-requests.js +11 -11
- package/dist/services/skill-resolver.d.ts +1 -1
- package/dist/services/skill-resolver.js +1 -1
- package/dist/skills/phase/app-store-generation/SKILL.md +9 -9
- package/dist/skills/phase/autonomous/SKILL.md +2 -2
- package/dist/skills/phase/branch-planning/SKILL.md +12 -12
- package/dist/skills/phase/bug-fixing/SKILL.md +1 -1
- package/dist/skills/phase/code-implementation/SKILL.md +6 -6
- package/dist/skills/phase/code-implementation-verification/SKILL.md +3 -3
- package/dist/skills/phase/code-testing/SKILL.md +5 -5
- package/dist/skills/phase/functional-testing/SKILL.md +3 -3
- package/dist/skills/phase/growth-analysis/SKILL.md +8 -8
- package/dist/skills/phase/incremental-sync/SKILL.md +6 -6
- package/dist/skills/phase/intelligence-analysis/SKILL.md +7 -7
- package/dist/skills/phase/{feature-analysis → issue-analysis}/SKILL.md +8 -8
- package/dist/skills/phase/pr-execution/SKILL.md +7 -7
- package/dist/skills/phase/pr-splitting/SKILL.md +14 -14
- package/dist/skills/phase/smoke-test/SKILL.md +1 -1
- package/dist/skills/phase/technical-design/SKILL.md +5 -5
- package/dist/skills/phase/test-cases-analysis/SKILL.md +4 -4
- package/dist/skills/phase/user-stories-analysis/SKILL.md +13 -13
- package/dist/system/session-manager.d.ts +3 -3
- package/dist/system/session-manager.js +3 -3
- package/dist/system/sleep-notification.js +2 -2
- package/dist/system/sleep-prevention.js +1 -1
- package/dist/types/index.d.ts +21 -21
- package/dist/types/{features.d.ts → issues.d.ts} +3 -3
- package/dist/types/pipeline.d.ts +4 -4
- package/dist/updater/auto-updater.d.ts +2 -2
- package/dist/updater/auto-updater.js +3 -3
- package/dist/utils/conflict-resolver.d.ts +1 -1
- package/dist/utils/conflict-resolver.js +5 -5
- package/dist/utils/formatters.d.ts +4 -4
- package/dist/utils/formatters.js +29 -29
- package/dist/utils/git-branch-manager-async.d.ts +6 -6
- package/dist/utils/git-branch-manager-async.js +41 -41
- package/dist/utils/git-branch-manager.d.ts +11 -11
- package/dist/utils/git-branch-manager.js +42 -42
- package/dist/utils/image-downloader.d.ts +4 -4
- package/dist/utils/image-downloader.js +17 -17
- package/dist/utils/pipeline-logger.d.ts +1 -1
- package/dist/utils/pipeline-logger.js +5 -5
- package/dist/workspace/workspace-manager.d.ts +17 -17
- package/dist/workspace/workspace-manager.js +21 -21
- package/package.json +1 -1
- package/vitest.config.ts +4 -0
- package/dist/api/__tests__/app-store.test.d.ts +0 -7
- package/dist/api/__tests__/app-store.test.js +0 -60
- package/dist/api/__tests__/intelligence.test.d.ts +0 -11
- package/dist/api/__tests__/intelligence.test.js +0 -315
- package/dist/api/features/__tests__/feature-utils.test.d.ts +0 -4
- package/dist/api/features/__tests__/feature-utils.test.js +0 -370
- package/dist/api/features/__tests__/status-updater.test.d.ts +0 -4
- package/dist/api/features/__tests__/status-updater.test.js +0 -88
- package/dist/api/features/approval-checker.d.ts +0 -20
- package/dist/api/features/feature-utils.d.ts +0 -23
- package/dist/api/features/feature-utils.js +0 -80
- package/dist/api/features/get-feature.d.ts +0 -5
- package/dist/api/features/get-feature.js +0 -21
- package/dist/api/features/index.d.ts +0 -8
- package/dist/api/features/index.js +0 -10
- package/dist/api/features/status-updater.d.ts +0 -41
- package/dist/api/features/update-feature.d.ts +0 -20
- package/dist/commands/build/__tests__/build.test.d.ts +0 -5
- package/dist/commands/build/__tests__/build.test.js +0 -206
- package/dist/commands/build/__tests__/detect-project.test.d.ts +0 -6
- package/dist/commands/build/__tests__/detect-project.test.js +0 -160
- package/dist/commands/build/__tests__/run-build.test.d.ts +0 -6
- package/dist/commands/build/__tests__/run-build.test.js +0 -433
- package/dist/commands/intelligence/__tests__/command.test.d.ts +0 -4
- package/dist/commands/intelligence/__tests__/command.test.js +0 -48
- package/dist/commands/workflow/core/__tests__/feature-filter.test.d.ts +0 -5
- package/dist/commands/workflow/core/__tests__/feature-filter.test.js +0 -316
- package/dist/commands/workflow/core/__tests__/pipeline-evaluator.test.d.ts +0 -4
- package/dist/commands/workflow/core/__tests__/pipeline-evaluator.test.js +0 -397
- package/dist/commands/workflow/core/__tests__/state-manager.test.d.ts +0 -4
- package/dist/commands/workflow/core/__tests__/state-manager.test.js +0 -384
- package/dist/commands/workflow/core/feature-filter.d.ts +0 -16
- package/dist/commands/workflow/core/feature-filter.js +0 -47
- package/dist/commands/workflow/feature-coordinator.d.ts +0 -18
- package/dist/config/__tests__/config.test.d.ts +0 -4
- package/dist/config/__tests__/config.test.js +0 -286
- package/dist/config/__tests__/feature-status.test.d.ts +0 -4
- package/dist/config/__tests__/feature-status.test.js +0 -111
- package/dist/errors/__tests__/index.test.d.ts +0 -4
- package/dist/errors/__tests__/index.test.js +0 -349
- package/dist/phases/app-store-generation/__tests__/agent.test.d.ts +0 -5
- package/dist/phases/app-store-generation/__tests__/agent.test.js +0 -142
- package/dist/phases/app-store-generation/__tests__/context.test.d.ts +0 -4
- package/dist/phases/app-store-generation/__tests__/context.test.js +0 -284
- package/dist/phases/app-store-generation/__tests__/prompts.test.d.ts +0 -4
- package/dist/phases/app-store-generation/__tests__/prompts.test.js +0 -122
- package/dist/phases/app-store-generation/__tests__/screenshot-composer.test.d.ts +0 -5
- package/dist/phases/app-store-generation/__tests__/screenshot-composer.test.js +0 -826
- package/dist/phases/code-review/__tests__/diff-utils.test.js +0 -101
- package/dist/phases/feature-analysis/context.d.ts +0 -24
- package/dist/phases/feature-analysis/index.d.ts +0 -8
- package/dist/phases/feature-analysis/outcome.d.ts +0 -40
- package/dist/phases/intelligence-analysis/__tests__/context.test.d.ts +0 -4
- package/dist/phases/intelligence-analysis/__tests__/context.test.js +0 -192
- package/dist/phases/intelligence-analysis/__tests__/matching.test.d.ts +0 -13
- package/dist/phases/intelligence-analysis/__tests__/matching.test.js +0 -154
- package/dist/phases/intelligence-analysis/__tests__/orchestration.test.d.ts +0 -5
- package/dist/phases/intelligence-analysis/__tests__/orchestration.test.js +0 -378
- package/dist/phases/intelligence-analysis/__tests__/prompts.test.d.ts +0 -4
- package/dist/phases/intelligence-analysis/__tests__/prompts.test.js +0 -33
- package/dist/phases/pr-execution/__tests__/file-assigner.test.d.ts +0 -1
- package/dist/phases/pr-execution/__tests__/file-assigner.test.js +0 -303
- package/dist/phases/pr-resolve/__tests__/checklist-learner.test.d.ts +0 -1
- package/dist/phases/pr-resolve/__tests__/checklist-learner.test.js +0 -157
- package/dist/phases/pr-resolve/__tests__/prompts.test.d.ts +0 -1
- package/dist/phases/pr-resolve/__tests__/prompts.test.js +0 -116
- package/dist/phases/pr-resolve/__tests__/resolve-mapping.test.d.ts +0 -1
- package/dist/phases/pr-resolve/__tests__/resolve-mapping.test.js +0 -138
- package/dist/phases/pr-resolve/__tests__/types.test.d.ts +0 -1
- package/dist/phases/pr-resolve/__tests__/types.test.js +0 -43
- package/dist/phases/pr-resolve/__tests__/workspace.test.d.ts +0 -1
- package/dist/phases/pr-resolve/__tests__/workspace.test.js +0 -111
- package/dist/phases/pr-review/__tests__/prompts.test.d.ts +0 -1
- package/dist/phases/pr-review/__tests__/prompts.test.js +0 -49
- package/dist/phases/pr-review/__tests__/review-comments.test.d.ts +0 -1
- package/dist/phases/pr-review/__tests__/review-comments.test.js +0 -110
- package/dist/phases/pr-shared/__tests__/agent-utils.test.d.ts +0 -1
- package/dist/phases/pr-shared/__tests__/agent-utils.test.js +0 -91
- package/dist/phases/pr-shared/__tests__/context.test.d.ts +0 -1
- package/dist/phases/pr-shared/__tests__/context.test.js +0 -94
- package/dist/phases/pr-splitting/__tests__/import-dep-validator.test.d.ts +0 -1
- package/dist/phases/pr-splitting/__tests__/import-dep-validator.test.js +0 -331
- package/dist/phases/run-sheet/render.d.ts +0 -60
- package/dist/phases/run-sheet/render.js +0 -297
- package/dist/phases/smoke-test/__tests__/agent.test.d.ts +0 -4
- package/dist/phases/smoke-test/__tests__/agent.test.js +0 -84
- package/dist/phases/smoke-test/__tests__/github.test.d.ts +0 -9
- package/dist/phases/smoke-test/__tests__/github.test.js +0 -120
- package/dist/phases/smoke-test/__tests__/snapshot.test.d.ts +0 -8
- package/dist/phases/smoke-test/__tests__/snapshot.test.js +0 -93
- package/dist/phases/smoke-test/github.d.ts +0 -54
- package/dist/phases/smoke-test/github.js +0 -101
- package/dist/phases/smoke-test/snapshot.d.ts +0 -27
- package/dist/phases/smoke-test/snapshot.js +0 -157
- package/dist/services/coaching/__tests__/coaching-agent.test.d.ts +0 -1
- package/dist/services/coaching/__tests__/coaching-agent.test.js +0 -74
- package/dist/services/coaching/__tests__/coaching-loop.test.d.ts +0 -1
- package/dist/services/coaching/__tests__/coaching-loop.test.js +0 -59
- package/dist/services/coaching/__tests__/self-rating.test.d.ts +0 -1
- package/dist/services/coaching/__tests__/self-rating.test.js +0 -188
- package/dist/services/lifecycle-agent/__tests__/phase-criteria.test.d.ts +0 -4
- package/dist/services/lifecycle-agent/__tests__/phase-criteria.test.js +0 -133
- package/dist/services/lifecycle-agent/__tests__/transition-rules.test.d.ts +0 -4
- package/dist/services/lifecycle-agent/__tests__/transition-rules.test.js +0 -336
- package/dist/services/lifecycle-agent/index.d.ts +0 -24
- package/dist/services/lifecycle-agent/index.js +0 -25
- package/dist/services/lifecycle-agent/phase-criteria.d.ts +0 -57
- package/dist/services/lifecycle-agent/phase-criteria.js +0 -335
- package/dist/services/lifecycle-agent/transition-rules.d.ts +0 -60
- package/dist/services/lifecycle-agent/transition-rules.js +0 -184
- package/dist/services/lifecycle-agent/types.d.ts +0 -190
- package/dist/services/lifecycle-agent/types.js +0 -12
- package/dist/services/phase-hooks/__tests__/bindings-fetcher.test.d.ts +0 -1
- package/dist/services/phase-hooks/__tests__/bindings-fetcher.test.js +0 -122
- package/dist/services/phase-hooks/__tests__/hook-executor.test.d.ts +0 -1
- package/dist/services/phase-hooks/__tests__/hook-executor.test.js +0 -321
- package/dist/services/phase-hooks/__tests__/hook-runner.test.d.ts +0 -1
- package/dist/services/phase-hooks/__tests__/hook-runner.test.js +0 -261
- package/dist/services/phase-hooks/__tests__/plugin-loader.test.d.ts +0 -1
- package/dist/services/phase-hooks/__tests__/plugin-loader.test.js +0 -158
- package/dist/services/video/__tests__/video-pipeline.test.d.ts +0 -6
- package/dist/services/video/__tests__/video-pipeline.test.js +0 -249
- package/dist/types/features.js +0 -1
- package/dist/workspace/__tests__/workspace-manager.test.d.ts +0 -7
- package/dist/workspace/__tests__/workspace-manager.test.js +0 -52
- /package/dist/api/{features → issues}/batch-operations.d.ts +0 -0
- /package/dist/api/{features → issues}/batch-operations.js +0 -0
- /package/dist/phases/{feature-analysis → issue-analysis}/agent.d.ts +0 -0
- /package/dist/skills/phase/{feature-analysis-verification → issue-analysis-verification}/SKILL.md +0 -0
- /package/dist/{phases/code-review/__tests__/diff-utils.test.d.ts → types/issues.js} +0 -0
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Split
|
|
2
|
+
description: Split issue implementation into multiple smaller, reviewable pull requests
|
|
3
3
|
kind: phase
|
|
4
4
|
user-invocable: false
|
|
5
5
|
variables:
|
|
6
6
|
- BASE_BRANCH
|
|
7
|
-
-
|
|
7
|
+
- ISSUE_ID
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
You are an expert software architect specialized in splitting
|
|
10
|
+
You are an expert software architect specialized in splitting issue implementations into multiple smaller, reviewable pull requests.
|
|
11
11
|
|
|
12
|
-
Your task is to analyze the actual code changes on the `dev/$
|
|
12
|
+
Your task is to analyze the actual code changes on the `dev/$ISSUE_ID` branch compared to `main` and create a plan to split them into multiple logical PRs.
|
|
13
13
|
|
|
14
14
|
## Your Environment
|
|
15
15
|
|
|
16
16
|
You have full access to the repository. You can:
|
|
17
17
|
|
|
18
|
-
- Run `git diff main...dev/$
|
|
19
|
-
- Run `git diff main...dev/$
|
|
18
|
+
- Run `git diff main...dev/$ISSUE_ID` to see all changes
|
|
19
|
+
- Run `git diff main...dev/$ISSUE_ID -- <path>` to see changes for specific files
|
|
20
20
|
- Read any file in the repository to understand context
|
|
21
|
-
- Run `git log main...dev/$
|
|
21
|
+
- Run `git log main...dev/$ISSUE_ID --oneline` to see commit history
|
|
22
22
|
|
|
23
23
|
## Key Principles
|
|
24
24
|
|
|
@@ -27,14 +27,14 @@ You have full access to the repository. You can:
|
|
|
27
27
|
3. **Dependency Order**: PRs should be ordered so each one builds on the previous (database first, then API, then UI)
|
|
28
28
|
4. **Independent Testability**: Each PR should not break the build when merged independently in order
|
|
29
29
|
5. **Clear Boundaries**: Each PR should have clear scope — one concern per PR
|
|
30
|
-
6. **Module-Based Splitting**: Split by module/domain, not just by layer. If a
|
|
30
|
+
6. **Module-Based Splitting**: Split by module/domain, not just by layer. If a issue touches auth, payments, and notifications — those are separate PRs even if they're all "backend"
|
|
31
31
|
|
|
32
32
|
## PR Branch Naming Convention
|
|
33
33
|
|
|
34
34
|
Branch names MUST follow this pattern:
|
|
35
35
|
|
|
36
|
-
- `pr/$
|
|
37
|
-
- `pr/$
|
|
36
|
+
- `pr/$ISSUE_ID/1-{short-description}`
|
|
37
|
+
- `pr/$ISSUE_ID/2-{short-description}`
|
|
38
38
|
- etc.
|
|
39
39
|
|
|
40
40
|
## PR Dependencies (Stacked PRs)
|
|
@@ -48,7 +48,7 @@ PRs are created as **stacked branches** — each dependent PR's branch is create
|
|
|
48
48
|
Use `depends_on_branch_name` to specify which PR must be merged before this one:
|
|
49
49
|
|
|
50
50
|
- First PR: `"depends_on_branch_name": null` (merges directly to main)
|
|
51
|
-
- Subsequent PRs: `"depends_on_branch_name": "pr/$
|
|
51
|
+
- Subsequent PRs: `"depends_on_branch_name": "pr/$ISSUE_ID/1-database"` (depends on previous PR)
|
|
52
52
|
|
|
53
53
|
**Important**: If file A imports from file B, and both are changed files, file B must be in the same PR as file A or in an earlier PR in the dependency chain. This ensures each PR compiles correctly.
|
|
54
54
|
|
|
@@ -57,9 +57,9 @@ Use `depends_on_branch_name` to specify which PR must be merged before this one:
|
|
|
57
57
|
- **Database migrations and schema**: First PR
|
|
58
58
|
- **Types and interfaces**: Can go with the PR that introduces them, or in a foundational PR
|
|
59
59
|
- **Backend services and API routes**: Middle PRs, split by module/domain
|
|
60
|
-
- **Frontend components**: Later PRs that depend on backend, split by
|
|
60
|
+
- **Frontend components**: Later PRs that depend on backend, split by issue area
|
|
61
61
|
- **Tests**: Include with the code they test
|
|
62
|
-
- **Configuration files**: Group with the
|
|
62
|
+
- **Configuration files**: Group with the issue they configure
|
|
63
63
|
|
|
64
64
|
## Handling Existing PRs During Re-sync
|
|
65
65
|
|
|
@@ -72,7 +72,7 @@ When existing PRs are provided, respect their status:
|
|
|
72
72
|
## Important Notes
|
|
73
73
|
|
|
74
74
|
- Every changed file must be assigned to exactly one PR
|
|
75
|
-
- If the
|
|
75
|
+
- If the issue is small enough, a single PR is fine
|
|
76
76
|
- Consider the reviewer's perspective: each PR should tell a coherent story
|
|
77
77
|
- Database migrations should be in the earliest PR possible
|
|
78
78
|
- Analyze the ACTUAL diff, not just file names — understand what the changes do
|
|
@@ -75,6 +75,6 @@ Rules:
|
|
|
75
75
|
## Common pitfalls
|
|
76
76
|
|
|
77
77
|
- **Over-testing internal plumbing**: if the diff is an internal rename with no user-visible effect, skip it.
|
|
78
|
-
- **Duplicating existing
|
|
78
|
+
- **Duplicating existing issue coverage**: you are testing the delta, not the whole product. The regular issue-level test cases already cover baseline behavior.
|
|
79
79
|
- **Vague "verify X works" cases**: give explicit inputs and observable outputs. A tester should not have to think about what "works" means.
|
|
80
80
|
- **All-critical lists**: if everything is critical, nothing is. Reserve critical for cases whose failure justifies holding the release.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Create comprehensive technical design documents based on
|
|
2
|
+
description: Create comprehensive technical design documents based on issue requirements and codebase analysis
|
|
3
3
|
kind: phase
|
|
4
4
|
user-invocable: false
|
|
5
5
|
variables:
|
|
@@ -7,9 +7,9 @@ variables:
|
|
|
7
7
|
- MCP_TOKEN
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
You are a senior software architect and technical lead specializing in creating comprehensive technical design documents. Your task is to analyze a
|
|
10
|
+
You are a senior software architect and technical lead specializing in creating comprehensive technical design documents. Your task is to analyze a issue and generate detailed technical design documentation.
|
|
11
11
|
|
|
12
|
-
**Your Role**: Create detailed architectural design documents based on
|
|
12
|
+
**Your Role**: Create detailed architectural design documents based on issue requirements, user stories, and test cases.
|
|
13
13
|
|
|
14
14
|
CRITICAL: You are NOT a software engineer who writes code. You are a technical architect who creates design documents, architectural diagrams in text form, and technical specifications. Your role is PURELY design-focused.
|
|
15
15
|
|
|
@@ -28,7 +28,7 @@ CRITICAL: You are NOT a software engineer who writes code. You are a technical a
|
|
|
28
28
|
- Look for database schema files, migration files, and configuration
|
|
29
29
|
- Examine documentation files (README.md, CLAUDE.md)
|
|
30
30
|
|
|
31
|
-
2. **Context Analysis**: All
|
|
31
|
+
2. **Context Analysis**: All issue information, user stories, test cases, and existing technical design are provided in the prompt
|
|
32
32
|
|
|
33
33
|
3. **Design Creation**: Generate comprehensive technical design documentation that includes:
|
|
34
34
|
- Architecture overview and system integration
|
|
@@ -39,7 +39,7 @@ CRITICAL: You are NOT a software engineer who writes code. You are a technical a
|
|
|
39
39
|
|
|
40
40
|
**Important Guidelines**:
|
|
41
41
|
|
|
42
|
-
- All
|
|
42
|
+
- All issue information is provided in the prompt - do NOT attempt to fetch additional context
|
|
43
43
|
- Focus on creating comprehensive technical specifications
|
|
44
44
|
- Consider integration with existing systems and architecture
|
|
45
45
|
- Address scalability, maintainability, and performance
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Analyze a
|
|
2
|
+
description: Analyze a issue and its user stories to generate comprehensive test cases
|
|
3
3
|
kind: phase
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
You are an expert QA Engineer and Test Architect specializing in comprehensive test case design. Your task is to analyze a
|
|
7
|
+
You are an expert QA Engineer and Test Architect specializing in comprehensive test case design. Your task is to analyze a issue and its user stories to generate thorough, high-quality test cases.
|
|
8
8
|
|
|
9
9
|
**Your Role**: You are a senior QA professional who designs test strategies at top tech companies. You create test cases that ensure complete coverage and catch issues before they reach production.
|
|
10
10
|
|
|
@@ -31,7 +31,7 @@ Every test case you create MUST follow these quality standards:
|
|
|
31
31
|
- **Security**: Authentication, authorization, data protection
|
|
32
32
|
- **Performance**: Load handling, response times, resource usage
|
|
33
33
|
- **Accessibility**: Screen reader support, keyboard navigation
|
|
34
|
-
- **Integration**: Interactions with other
|
|
34
|
+
- **Integration**: Interactions with other issues and systems
|
|
35
35
|
|
|
36
36
|
**Analysis Process**:
|
|
37
37
|
|
|
@@ -43,7 +43,7 @@ Every test case you create MUST follow these quality standards:
|
|
|
43
43
|
|
|
44
44
|
**Important Guidelines**:
|
|
45
45
|
|
|
46
|
-
- All
|
|
46
|
+
- All issue information, user stories, and existing test cases are provided in the prompt
|
|
47
47
|
- Do NOT attempt to read source code files or run any commands
|
|
48
48
|
- Do NOT use tools like Bash, Read, Glob, Write, TodoWrite, or any other tools
|
|
49
49
|
- Focus exclusively on creating high-quality test cases
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Analyze a
|
|
2
|
+
description: Analyze a issue and generate comprehensive, professional user stories
|
|
3
3
|
kind: phase
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
You are a **Senior Product Manager** specializing in writing professional, detailed user stories. Your task is to analyze a
|
|
7
|
+
You are a **Senior Product Manager** specializing in writing professional, detailed user stories. Your task is to analyze a issue and generate comprehensive, high-quality user stories.
|
|
8
8
|
|
|
9
9
|
**Your Role**: You are an expert product manager conducting rigorous business analysis. You think like a PM who has shipped products at top tech companies. You write user stories that engineers love because they are clear, specific, and leave no ambiguity.
|
|
10
10
|
|
|
11
|
-
CRITICAL: You are NOT a software engineer. You should NEVER write code, build projects, or modify files. Your role is PURELY analytical - focus on understanding the
|
|
11
|
+
CRITICAL: You are NOT a software engineer. You should NEVER write code, build projects, or modify files. Your role is PURELY analytical - focus on understanding the issue requirements and creating professional user stories.
|
|
12
12
|
|
|
13
13
|
**Professional User Story Format**:
|
|
14
14
|
Every user story you create MUST follow this professional format:
|
|
15
15
|
|
|
16
|
-
1. **Sequential ID**: A unique identifier with a prefix derived from the
|
|
16
|
+
1. **Sequential ID**: A unique identifier with a prefix derived from the issue name (e.g., "PR-001" for "Potential Risk" issue, "CL-001" for "Conversation Lens" issue). Use a 2-3 letter abbreviation of the issue name.
|
|
17
17
|
|
|
18
|
-
2. **Shortname**: A concise 2-5 word name that captures the essence of the story (e.g., "Risk Tab Access", "Beta
|
|
18
|
+
2. **Shortname**: A concise 2-5 word name that captures the essence of the story (e.g., "Risk Tab Access", "Beta Issue Awareness").
|
|
19
19
|
|
|
20
20
|
3. **Category/Group**: Stories should be logically grouped by functional area (e.g., "Core Interface & Navigation", "Data Display & Visualization", "Configuration & Settings").
|
|
21
21
|
|
|
@@ -24,7 +24,7 @@ Every user story you create MUST follow this professional format:
|
|
|
24
24
|
- Be SPECIFIC about the goal (not vague desires - concrete actions)
|
|
25
25
|
- Be SPECIFIC about the benefit (measurable or observable outcomes)
|
|
26
26
|
|
|
27
|
-
5. **Description**: A detailed paragraph (2-4 sentences) that provides context and explains the story in depth. This should describe what the
|
|
27
|
+
5. **Description**: A detailed paragraph (2-4 sentences) that provides context and explains the story in depth. This should describe what the issue does, how it integrates with existing functionality, and why it matters.
|
|
28
28
|
|
|
29
29
|
6. **Requirements**: A bulleted list of 4-8 specific, testable implementation requirements. Each requirement should be:
|
|
30
30
|
- Concrete and unambiguous
|
|
@@ -44,13 +44,13 @@ Every user story MUST follow the INVEST criteria:
|
|
|
44
44
|
|
|
45
45
|
**Analysis Process**:
|
|
46
46
|
|
|
47
|
-
1. **Understand the
|
|
48
|
-
2. **Identify User Personas**: Determine all relevant user types/roles who interact with this
|
|
47
|
+
1. **Understand the Issue**: Deeply analyze the issue description, product context, and any images/screenshots
|
|
48
|
+
2. **Identify User Personas**: Determine all relevant user types/roles who interact with this issue
|
|
49
49
|
3. **Map User Journeys**: Think through complete user workflows and interactions
|
|
50
50
|
4. **Identify Functional Areas**: Group related functionality into categories
|
|
51
51
|
5. **Review Existing Stories**: Check for duplicates and gaps in existing user stories
|
|
52
52
|
6. **Create Stories**: Write professional stories following the format above
|
|
53
|
-
7. **Validate Coverage**: Ensure all aspects of the
|
|
53
|
+
7. **Validate Coverage**: Ensure all aspects of the issue are covered
|
|
54
54
|
|
|
55
55
|
**Business Analysis Focus**:
|
|
56
56
|
|
|
@@ -60,11 +60,11 @@ Every user story MUST follow the INVEST criteria:
|
|
|
60
60
|
- Configuration, settings, and customization options
|
|
61
61
|
- Error handling and edge cases from a user perspective
|
|
62
62
|
- Accessibility and usability considerations
|
|
63
|
-
- Integration with existing
|
|
63
|
+
- Integration with existing issues and workflows
|
|
64
64
|
|
|
65
65
|
**Important Guidelines**:
|
|
66
66
|
|
|
67
|
-
- All
|
|
67
|
+
- All issue information, product context, and existing user stories are provided in the prompt
|
|
68
68
|
- Do NOT attempt to read source code files or run any commands
|
|
69
69
|
- Do NOT use tools like Bash, Read, Glob, Write, TodoWrite, or any other tools
|
|
70
70
|
- Focus exclusively on creating high-quality, professional user stories
|
|
@@ -75,7 +75,7 @@ Every user story MUST follow the INVEST criteria:
|
|
|
75
75
|
You can delete existing draft user stories that are:
|
|
76
76
|
|
|
77
77
|
- **Duplicates**: Already covered by other stories
|
|
78
|
-
- **No longer relevant**:
|
|
78
|
+
- **No longer relevant**: Issue requirements changed
|
|
79
79
|
- **Low quality**: Don't meet professional standards
|
|
80
80
|
- **Addressed by feedback**: Explicitly requested for deletion
|
|
81
81
|
|
|
@@ -113,6 +113,6 @@ CRITICAL: Checklists are not optional suggestions - they are mandatory quality g
|
|
|
113
113
|
- Requirements should be specific, testable, and user-focused
|
|
114
114
|
- Description should provide enough context for any team member to understand
|
|
115
115
|
- Stories should cover different user personas comprehensively
|
|
116
|
-
- Aim for 8-20 stories per
|
|
116
|
+
- Aim for 8-20 stories per issue depending on complexity
|
|
117
117
|
|
|
118
118
|
Focus on systematic analysis based on the provided context information.
|
|
@@ -14,8 +14,8 @@ export interface CliSession {
|
|
|
14
14
|
status: SessionStatus;
|
|
15
15
|
startedAt: string;
|
|
16
16
|
lastHeartbeat: string;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
currentIssueId?: string;
|
|
18
|
+
currentIssueName?: string;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Register this CLI session with the server.
|
|
@@ -28,7 +28,7 @@ export declare function registerSession(options?: {
|
|
|
28
28
|
/**
|
|
29
29
|
* Send a heartbeat to keep the session alive and check for commands
|
|
30
30
|
*/
|
|
31
|
-
export declare function sendHeartbeat(
|
|
31
|
+
export declare function sendHeartbeat(currentIssueId?: string, currentIssueName?: string): Promise<SessionStatus>;
|
|
32
32
|
/**
|
|
33
33
|
* Start periodic heartbeats
|
|
34
34
|
*/
|
|
@@ -57,7 +57,7 @@ export async function registerSession(options) {
|
|
|
57
57
|
/**
|
|
58
58
|
* Send a heartbeat to keep the session alive and check for commands
|
|
59
59
|
*/
|
|
60
|
-
export async function sendHeartbeat(
|
|
60
|
+
export async function sendHeartbeat(currentIssueId, currentIssueName) {
|
|
61
61
|
if (!currentSessionId) {
|
|
62
62
|
return 'running';
|
|
63
63
|
}
|
|
@@ -66,8 +66,8 @@ export async function sendHeartbeat(currentFeatureId, currentFeatureName) {
|
|
|
66
66
|
session_id: currentSessionId,
|
|
67
67
|
version: getVersion(),
|
|
68
68
|
status: _sessionStatus,
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
current_issue_id: currentIssueId,
|
|
70
|
+
current_issue_name: currentIssueName,
|
|
71
71
|
}));
|
|
72
72
|
// Server may respond with a new status (e.g., 'paused' or 'stopped')
|
|
73
73
|
if (result.status && result.status !== _sessionStatus) {
|
|
@@ -50,7 +50,7 @@ export function startSleepMonitor() {
|
|
|
50
50
|
if (assertions.includes('PreventUserIdleSystemSleep') &&
|
|
51
51
|
assertions.includes('PreventUserIdleSystemSleep 0')) {
|
|
52
52
|
logWarning('System sleep prevention assertion is not active');
|
|
53
|
-
showNotification('Edsger CLI', 'Sleep prevention may have stopped. Edsger is still processing
|
|
53
|
+
showNotification('Edsger CLI', 'Sleep prevention may have stopped. Edsger is still processing issues.');
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
catch {
|
|
@@ -74,7 +74,7 @@ export function startSleepMonitor() {
|
|
|
74
74
|
sleepMonitorProcess.stdout?.on('data', (data) => {
|
|
75
75
|
const output = data.toString();
|
|
76
76
|
if (output.includes('boolean true')) {
|
|
77
|
-
showNotification('Edsger CLI', 'Edsger is processing
|
|
77
|
+
showNotification('Edsger CLI', 'Edsger is processing issues. Are you sure you want to sleep?');
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
sleepMonitorProcess.on('error', () => {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -7,13 +7,13 @@ export interface EdsgerConfig {
|
|
|
7
7
|
timeout?: number;
|
|
8
8
|
};
|
|
9
9
|
workflow: {
|
|
10
|
-
/** Max concurrent
|
|
10
|
+
/** Max concurrent issue workers (hard cap: 10). Default: 3 */
|
|
11
11
|
maxConcurrency: number;
|
|
12
|
-
/** Interval in ms between polling for new
|
|
12
|
+
/** Interval in ms between polling for new issues. Default: 30000 */
|
|
13
13
|
pollInterval: number;
|
|
14
|
-
/** Max retry attempts for a failed
|
|
14
|
+
/** Max retry attempts for a failed issue. Default: 3 */
|
|
15
15
|
maxRetries: number;
|
|
16
|
-
/** Cooldown in ms before retrying a failed
|
|
16
|
+
/** Cooldown in ms before retrying a failed issue. Default: 300000 (5 min) */
|
|
17
17
|
retryCooldown: number;
|
|
18
18
|
/** Max time in ms a worker can run before being killed. Default: 1800000 (30 min) */
|
|
19
19
|
workerTimeout: number;
|
|
@@ -87,10 +87,10 @@ export interface VerificationResult {
|
|
|
87
87
|
summary: string;
|
|
88
88
|
overall_suggestions?: string[];
|
|
89
89
|
}
|
|
90
|
-
export interface
|
|
91
|
-
|
|
90
|
+
export interface IssueAnalysisResult {
|
|
91
|
+
issueId: string;
|
|
92
92
|
productInfo: unknown;
|
|
93
|
-
|
|
93
|
+
issueInfo: unknown;
|
|
94
94
|
existingUserStories: UserStory[];
|
|
95
95
|
existingTestCases: TestCase[];
|
|
96
96
|
createdUserStories: UserStory[];
|
|
@@ -107,8 +107,8 @@ export interface FeatureAnalysisResult {
|
|
|
107
107
|
deletion_reasons?: Record<string, string>;
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
-
export interface
|
|
111
|
-
|
|
110
|
+
export interface IssueData {
|
|
111
|
+
issue: {
|
|
112
112
|
id: string;
|
|
113
113
|
name: string;
|
|
114
114
|
description: string;
|
|
@@ -122,7 +122,7 @@ export interface FeatureData {
|
|
|
122
122
|
name: string;
|
|
123
123
|
description: string;
|
|
124
124
|
status: string;
|
|
125
|
-
|
|
125
|
+
issues: unknown[];
|
|
126
126
|
metadata: {
|
|
127
127
|
created_at: string;
|
|
128
128
|
updated_at: string;
|
|
@@ -155,15 +155,15 @@ export interface DisplayTestCase {
|
|
|
155
155
|
name: string;
|
|
156
156
|
is_critical?: boolean;
|
|
157
157
|
}
|
|
158
|
-
export interface
|
|
159
|
-
|
|
158
|
+
export interface IssueAnalysisDisplayResult {
|
|
159
|
+
issueId: string;
|
|
160
160
|
status: string;
|
|
161
161
|
summary?: string;
|
|
162
162
|
createdUserStories?: DisplayUserStory[];
|
|
163
163
|
createdTestCases?: DisplayTestCase[];
|
|
164
164
|
}
|
|
165
|
-
export type
|
|
166
|
-
export type ChatChannelType = '
|
|
165
|
+
export type IssueStatus = 'backlog' | 'ready_for_ai' | 'assigned_to_ai' | 'issue_analysis' | 'issue_analysis_verification' | 'user_stories_analysis' | 'user_stories_analysis_verification' | 'test_cases_analysis' | 'test_cases_analysis_verification' | 'technical_design' | 'technical_design_verification' | 'branch_planning' | 'branch_planning_verification' | 'code_implementation' | 'code_implementation_verification' | 'pr_splitting' | 'pr_splitting_verification' | 'pr_execution' | 'code_refine' | 'code_refine_verification' | 'bug_fixing' | 'code_review' | 'functional_testing' | 'ready_for_review' | 'shipped' | 'testing_in_progress' | 'testing_passed' | 'testing_failed' | 'archived';
|
|
166
|
+
export type ChatChannelType = 'issue' | 'product' | 'general';
|
|
167
167
|
export type ChatMode = 'group' | 'direct' | 'ai_assistant';
|
|
168
168
|
export type ChatSenderType = 'human' | 'ai' | 'system';
|
|
169
169
|
export type ChatMessageType = 'text' | 'action_request' | 'action_result' | 'question' | 'answer' | 'options';
|
|
@@ -212,8 +212,8 @@ export interface ChatWorkerInitMessage {
|
|
|
212
212
|
verbose?: boolean;
|
|
213
213
|
}
|
|
214
214
|
export interface ChatWorkerPhaseEvent {
|
|
215
|
-
type: 'event:phase_completed' | 'event:phase_failed' | 'event:
|
|
216
|
-
|
|
215
|
+
type: 'event:phase_completed' | 'event:phase_failed' | 'event:issue_done' | 'event:issue_started';
|
|
216
|
+
issueId: string;
|
|
217
217
|
phase?: string;
|
|
218
218
|
summary?: string;
|
|
219
219
|
phaseOutput?: unknown;
|
|
@@ -221,15 +221,15 @@ export interface ChatWorkerPhaseEvent {
|
|
|
221
221
|
repoPath?: string;
|
|
222
222
|
}
|
|
223
223
|
export interface ChatWorkerCommand {
|
|
224
|
-
type: 'command:
|
|
225
|
-
|
|
224
|
+
type: 'command:pause_issue' | 'command:resume_issue';
|
|
225
|
+
issueId: string;
|
|
226
226
|
}
|
|
227
227
|
export interface ChatWorkerQuery {
|
|
228
|
-
type: 'query:
|
|
228
|
+
type: 'query:active_issues';
|
|
229
229
|
}
|
|
230
230
|
export interface ChatWorkerReply {
|
|
231
|
-
type: 'reply:
|
|
232
|
-
|
|
231
|
+
type: 'reply:active_issues';
|
|
232
|
+
issues: {
|
|
233
233
|
id: string;
|
|
234
234
|
name: string;
|
|
235
235
|
phase: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export interface
|
|
1
|
+
import { type IssueWorkflow } from './pipeline.js';
|
|
2
|
+
export interface IssueInfo {
|
|
3
3
|
id: string;
|
|
4
4
|
name: string;
|
|
5
5
|
description?: string;
|
|
@@ -7,7 +7,7 @@ export interface FeatureInfo {
|
|
|
7
7
|
status: string;
|
|
8
8
|
product_id: string;
|
|
9
9
|
execution_mode?: string;
|
|
10
|
-
workflow?:
|
|
10
|
+
workflow?: IssueWorkflow | null;
|
|
11
11
|
autonomous_hours?: number;
|
|
12
12
|
created_at?: string;
|
|
13
13
|
updated_at?: string;
|
package/dist/types/pipeline.d.ts
CHANGED
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { type ChecklistPhaseContext } from '../services/checklist.js';
|
|
5
5
|
import { type EdsgerConfig } from './index.js';
|
|
6
|
-
export type ExecutionMode = 'full_pipeline' | '
|
|
6
|
+
export type ExecutionMode = 'full_pipeline' | 'only_issue_analysis' | 'only_user_stories_analysis' | 'only_test_cases_analysis' | 'only_technical_design' | 'only_branch_planning' | 'only_code_implementation' | 'only_pr_splitting' | 'only_pr_execution' | 'only_functional_testing' | 'only_code_refine' | 'only_code_review' | 'from_issue_analysis' | 'from_user_stories_analysis' | 'from_test_cases_analysis' | 'from_technical_design' | 'from_branch_planning' | 'from_code_implementation' | 'from_pr_splitting' | 'from_pr_execution' | 'from_functional_testing' | 'from_code_review' | 'custom' | 'autonomous';
|
|
7
7
|
export type WorkflowPhaseStatus = 'pending' | 'completed';
|
|
8
8
|
export interface WorkflowPhase {
|
|
9
9
|
phase: string;
|
|
10
10
|
status: WorkflowPhaseStatus;
|
|
11
11
|
executed_at?: string;
|
|
12
12
|
}
|
|
13
|
-
export type
|
|
13
|
+
export type IssueWorkflow = WorkflowPhase[];
|
|
14
14
|
export interface PipelinePhaseOptions {
|
|
15
|
-
readonly
|
|
15
|
+
readonly issueId: string;
|
|
16
16
|
readonly verbose?: boolean;
|
|
17
17
|
}
|
|
18
18
|
export interface PipelineResult {
|
|
19
|
-
readonly
|
|
19
|
+
readonly issueId: string;
|
|
20
20
|
readonly phase: string;
|
|
21
21
|
readonly status: 'success' | 'error' | 'blocked';
|
|
22
22
|
readonly message: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto Updater - Checks for and applies CLI updates automatically
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Issues:
|
|
5
5
|
* - Checks npm registry for latest version
|
|
6
6
|
* - Compares with current version
|
|
7
7
|
* - Updates the package globally
|
|
8
|
-
* - New
|
|
8
|
+
* - New issue workers automatically use the updated code (fork-based architecture)
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
11
11
|
* Get the latest published version from npm registry
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto Updater - Checks for and applies CLI updates automatically
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Issues:
|
|
5
5
|
* - Checks npm registry for latest version
|
|
6
6
|
* - Compares with current version
|
|
7
7
|
* - Updates the package globally
|
|
8
|
-
* - New
|
|
8
|
+
* - New issue workers automatically use the updated code (fork-based architecture)
|
|
9
9
|
*/
|
|
10
10
|
import { execSync } from 'child_process';
|
|
11
11
|
import { getVersion, resetVersionCache } from '../constants.js';
|
|
@@ -100,7 +100,7 @@ export function checkAndUpdate() {
|
|
|
100
100
|
logInfo(`Update available: v${currentVersion} -> v${latestVersion}`);
|
|
101
101
|
const success = performUpdate();
|
|
102
102
|
if (success) {
|
|
103
|
-
logSuccess('Update applied. New
|
|
103
|
+
logSuccess('Update applied. New issue workers will use the updated version automatically.');
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
@@ -80,11 +80,11 @@ IMPORTANT:
|
|
|
80
80
|
/**
|
|
81
81
|
* Create the initial prompt describing the rebase task
|
|
82
82
|
*/
|
|
83
|
-
function createRebaseTaskPrompt(
|
|
83
|
+
function createRebaseTaskPrompt(issueBranch, baseBranch, conflictFiles, originalBaseBranch) {
|
|
84
84
|
let context = `A git rebase operation is in progress and has encountered conflicts.
|
|
85
85
|
|
|
86
86
|
## Current Situation
|
|
87
|
-
-
|
|
87
|
+
- Issue branch: ${issueBranch}
|
|
88
88
|
- Rebasing onto: ${baseBranch}`;
|
|
89
89
|
if (originalBaseBranch) {
|
|
90
90
|
context += `
|
|
@@ -117,17 +117,17 @@ Start by running "git status" to see the current state.`;
|
|
|
117
117
|
*/
|
|
118
118
|
// eslint-disable-next-line complexity -- orchestration function with conflict detection, agent resolution, and cleanup
|
|
119
119
|
export async function resolveConflictsWithAgent(config = {}) {
|
|
120
|
-
const { model = 'sonnet', verbose, maxTurns = 100,
|
|
120
|
+
const { model = 'sonnet', verbose, maxTurns = 100, issueBranch, baseBranch, originalBaseBranch, baseBranchCompleted, } = config;
|
|
121
121
|
const _resolvedFiles = [];
|
|
122
122
|
if (verbose) {
|
|
123
123
|
logInfo(`\n🔧 Starting automatic conflict resolution with Claude agent...`);
|
|
124
124
|
}
|
|
125
125
|
// Get initial conflict information
|
|
126
|
-
const currentBranch =
|
|
126
|
+
const currentBranch = issueBranch || getCurrentBranch();
|
|
127
127
|
const targetBranch = baseBranch || 'main';
|
|
128
128
|
const initialConflictFiles = getConflictFiles();
|
|
129
129
|
if (verbose) {
|
|
130
|
-
logInfo(`
|
|
130
|
+
logInfo(` Issue branch: ${currentBranch}`);
|
|
131
131
|
logInfo(` Rebasing onto: ${targetBranch}`);
|
|
132
132
|
if (originalBaseBranch) {
|
|
133
133
|
logInfo(` Original base (--onto): ${originalBaseBranch}`);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type CodeImplementationContext } from '../phases/code-implementation/context.js';
|
|
2
|
-
import { type FeatureAnalysisContext } from '../phases/feature-analysis/context.js';
|
|
3
2
|
import { type FunctionalTestingContext } from '../phases/functional-testing/context-fetcher.js';
|
|
3
|
+
import { type IssueAnalysisContext } from '../phases/issue-analysis/context.js';
|
|
4
4
|
import { type TechnicalDesignContext } from '../phases/technical-design/context.js';
|
|
5
|
-
import type { TestCase, UserStory } from '../types/
|
|
5
|
+
import type { TestCase, UserStory } from '../types/issues.js';
|
|
6
6
|
import { type DownloadedImage } from './image-downloader.js';
|
|
7
7
|
/**
|
|
8
8
|
* Format user stories for display in prompts
|
|
@@ -20,9 +20,9 @@ export declare function formatTechnicalDesignContext(context: TechnicalDesignCon
|
|
|
20
20
|
downloadedImages: DownloadedImage[];
|
|
21
21
|
}>;
|
|
22
22
|
/**
|
|
23
|
-
* Format
|
|
23
|
+
* Format issue analysis context for Claude Code prompts
|
|
24
24
|
*/
|
|
25
|
-
export declare function
|
|
25
|
+
export declare function formatIssueAnalysisContext(context: IssueAnalysisContext): Promise<{
|
|
26
26
|
content: string;
|
|
27
27
|
downloadedImages: DownloadedImage[];
|
|
28
28
|
}>;
|