edsger 0.76.0 → 0.78.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 +95 -210
- package/assets/LICENSE +21 -0
- package/assets/README.md +104 -0
- package/assets/benchmark/base.yaml +286 -0
- package/assets/benchmark/csharp.yaml +68 -0
- package/assets/benchmark/dart.yaml +70 -0
- package/assets/benchmark/go.yaml +71 -0
- package/assets/benchmark/java.yaml +68 -0
- package/assets/benchmark/python.yaml +72 -0
- package/assets/benchmark/typescript.yaml +71 -0
- package/assets/languages.yaml +35 -0
- package/assets/manifest.yaml +39 -0
- package/assets/review/base.yaml +111 -0
- package/assets/review/csharp.yaml +38 -0
- package/assets/review/dart.yaml +40 -0
- package/assets/review/go.yaml +40 -0
- package/assets/review/java.yaml +40 -0
- package/assets/review/python.yaml +41 -0
- package/assets/review/typescript.yaml +40 -0
- package/assets/schema/benchmark.schema.json +87 -0
- package/assets/schema/review.schema.json +73 -0
- package/assets/skills/benchmark/SKILL.md +66 -0
- package/assets/skills/pr-resolve/SKILL.md +58 -0
- package/assets/skills/pr-review/SKILL.md +66 -0
- package/dist/index.js +1339 -1218
- package/dist/index.js.map +1 -0
- package/package.json +58 -53
- package/dist/api/adr.d.ts +0 -48
- package/dist/api/adr.js +0 -139
- package/dist/api/app-store-iap.d.ts +0 -60
- package/dist/api/app-store-iap.js +0 -145
- package/dist/api/app-store.d.ts +0 -93
- package/dist/api/app-store.js +0 -206
- package/dist/api/chat.d.ts +0 -72
- package/dist/api/chat.js +0 -272
- package/dist/api/cross-product.d.ts +0 -33
- package/dist/api/cross-product.js +0 -127
- package/dist/api/financing.d.ts +0 -47
- package/dist/api/financing.js +0 -37
- package/dist/api/github.d.ts +0 -86
- package/dist/api/github.js +0 -203
- package/dist/api/growth.d.ts +0 -81
- package/dist/api/growth.js +0 -75
- package/dist/api/intelligence-normalize.d.ts +0 -25
- package/dist/api/intelligence-normalize.js +0 -103
- package/dist/api/intelligence.d.ts +0 -187
- package/dist/api/intelligence.js +0 -402
- package/dist/api/issues/approval-checker.d.ts +0 -22
- package/dist/api/issues/approval-checker.js +0 -141
- package/dist/api/issues/batch-operations.d.ts +0 -17
- package/dist/api/issues/batch-operations.js +0 -100
- package/dist/api/issues/get-issue.d.ts +0 -5
- package/dist/api/issues/get-issue.js +0 -47
- package/dist/api/issues/index.d.ts +0 -8
- package/dist/api/issues/index.js +0 -10
- package/dist/api/issues/issue-utils.d.ts +0 -25
- package/dist/api/issues/issue-utils.js +0 -133
- package/dist/api/issues/status-updater.d.ts +0 -68
- package/dist/api/issues/status-updater.js +0 -190
- package/dist/api/issues/test-cases.d.ts +0 -29
- package/dist/api/issues/test-cases.js +0 -185
- package/dist/api/issues/update-issue.d.ts +0 -25
- package/dist/api/issues/update-issue.js +0 -127
- package/dist/api/issues/user-stories.d.ts +0 -21
- package/dist/api/issues/user-stories.js +0 -163
- package/dist/api/mcp-client.d.ts +0 -22
- package/dist/api/mcp-client.js +0 -75
- package/dist/api/products/test-cases.d.ts +0 -18
- package/dist/api/products/test-cases.js +0 -51
- package/dist/api/products.d.ts +0 -15
- package/dist/api/products.js +0 -45
- package/dist/api/release-test-cases.d.ts +0 -7
- package/dist/api/release-test-cases.js +0 -59
- package/dist/api/releases.d.ts +0 -41
- package/dist/api/releases.js +0 -117
- package/dist/api/run-sheets.d.ts +0 -22
- package/dist/api/run-sheets.js +0 -13
- package/dist/api/storage.d.ts +0 -13
- package/dist/api/storage.js +0 -29
- package/dist/api/tasks.d.ts +0 -26
- package/dist/api/tasks.js +0 -81
- package/dist/api/test-reports.d.ts +0 -9
- package/dist/api/test-reports.js +0 -43
- package/dist/api/user-psychology.d.ts +0 -101
- package/dist/api/user-psychology.js +0 -143
- package/dist/api/web-deploy.d.ts +0 -67
- package/dist/api/web-deploy.js +0 -199
- package/dist/auth/auth-store.d.ts +0 -98
- package/dist/auth/auth-store.js +0 -194
- package/dist/auth/env-store.d.ts +0 -41
- package/dist/auth/env-store.js +0 -127
- package/dist/auth/login.d.ts +0 -18
- package/dist/auth/login.js +0 -179
- package/dist/commands/adr/index.d.ts +0 -13
- package/dist/commands/adr/index.js +0 -31
- package/dist/commands/agent-workflow/chat-worker.d.ts +0 -16
- package/dist/commands/agent-workflow/chat-worker.js +0 -465
- package/dist/commands/agent-workflow/index.d.ts +0 -13
- package/dist/commands/agent-workflow/index.js +0 -107
- package/dist/commands/agent-workflow/issue-worker.d.ts +0 -14
- package/dist/commands/agent-workflow/issue-worker.js +0 -65
- package/dist/commands/agent-workflow/processor.d.ts +0 -95
- package/dist/commands/agent-workflow/processor.js +0 -519
- package/dist/commands/analyze-logs/index.d.ts +0 -7
- package/dist/commands/analyze-logs/index.js +0 -34
- package/dist/commands/app-store/index.d.ts +0 -12
- package/dist/commands/app-store/index.js +0 -69
- package/dist/commands/architecture-diagram/index.d.ts +0 -8
- package/dist/commands/architecture-diagram/index.js +0 -10
- package/dist/commands/build/detect-project.d.ts +0 -52
- package/dist/commands/build/detect-project.js +0 -277
- package/dist/commands/build/index.d.ts +0 -66
- package/dist/commands/build/index.js +0 -544
- package/dist/commands/chat-serve/chat-server.d.ts +0 -114
- package/dist/commands/chat-serve/chat-server.js +0 -339
- package/dist/commands/chat-serve/index.d.ts +0 -20
- package/dist/commands/chat-serve/index.js +0 -58
- package/dist/commands/checklists/index.d.ts +0 -16
- package/dist/commands/checklists/index.js +0 -187
- package/dist/commands/checklists/tools.d.ts +0 -17
- package/dist/commands/checklists/tools.js +0 -19
- package/dist/commands/class-diagram/index.d.ts +0 -7
- package/dist/commands/class-diagram/index.js +0 -9
- package/dist/commands/code-review/index.d.ts +0 -2
- package/dist/commands/code-review/index.js +0 -37
- package/dist/commands/code-review/reviewer.d.ts +0 -3
- package/dist/commands/code-review/reviewer.js +0 -205
- package/dist/commands/config/index.d.ts +0 -16
- package/dist/commands/config/index.js +0 -60
- package/dist/commands/data-flow/index.d.ts +0 -19
- package/dist/commands/data-flow/index.js +0 -55
- package/dist/commands/diagram-shared/index.d.ts +0 -21
- package/dist/commands/diagram-shared/index.js +0 -37
- package/dist/commands/discover/index.d.ts +0 -14
- package/dist/commands/discover/index.js +0 -29
- package/dist/commands/er-diagram/index.d.ts +0 -19
- package/dist/commands/er-diagram/index.js +0 -55
- package/dist/commands/features/index.d.ts +0 -15
- package/dist/commands/features/index.js +0 -34
- package/dist/commands/financing-deck/index.d.ts +0 -8
- package/dist/commands/financing-deck/index.js +0 -66
- package/dist/commands/find-architecture/index.d.ts +0 -15
- package/dist/commands/find-architecture/index.js +0 -50
- package/dist/commands/find-bugs/index.d.ts +0 -13
- package/dist/commands/find-bugs/index.js +0 -48
- package/dist/commands/find-features/index.d.ts +0 -14
- package/dist/commands/find-features/index.js +0 -42
- package/dist/commands/find-smells/index.d.ts +0 -23
- package/dist/commands/find-smells/index.js +0 -74
- package/dist/commands/flowchart/index.d.ts +0 -8
- package/dist/commands/flowchart/index.js +0 -10
- package/dist/commands/growth-analysis/index.d.ts +0 -7
- package/dist/commands/growth-analysis/index.js +0 -89
- package/dist/commands/init/index.d.ts +0 -5
- package/dist/commands/init/index.js +0 -152
- package/dist/commands/init/prompts.d.ts +0 -9
- package/dist/commands/init/prompts.js +0 -128
- package/dist/commands/init/templates.d.ts +0 -9
- package/dist/commands/init/templates.js +0 -264
- package/dist/commands/intelligence/index.d.ts +0 -15
- package/dist/commands/intelligence/index.js +0 -138
- package/dist/commands/issue-analysis/index.d.ts +0 -5
- package/dist/commands/issue-analysis/index.js +0 -9
- package/dist/commands/pr-resolve/index.d.ts +0 -13
- package/dist/commands/pr-resolve/index.js +0 -50
- package/dist/commands/pr-review/index.d.ts +0 -12
- package/dist/commands/pr-review/index.js +0 -47
- package/dist/commands/product-techniques/index.d.ts +0 -15
- package/dist/commands/product-techniques/index.js +0 -37
- package/dist/commands/product-test-cases/index.d.ts +0 -12
- package/dist/commands/product-test-cases/index.js +0 -40
- package/dist/commands/quality-benchmark/index.d.ts +0 -40
- package/dist/commands/quality-benchmark/index.js +0 -219
- package/dist/commands/recipes/index.d.ts +0 -17
- package/dist/commands/recipes/index.js +0 -40
- package/dist/commands/refactor/refactor.d.ts +0 -2
- package/dist/commands/refactor/refactor.js +0 -134
- package/dist/commands/release-sync/index.d.ts +0 -5
- package/dist/commands/release-sync/index.js +0 -38
- package/dist/commands/run-sheet/index.d.ts +0 -6
- package/dist/commands/run-sheet/index.js +0 -48
- package/dist/commands/screen-flow/index.d.ts +0 -18
- package/dist/commands/screen-flow/index.js +0 -54
- package/dist/commands/sequence-diagram/index.d.ts +0 -19
- package/dist/commands/sequence-diagram/index.js +0 -55
- package/dist/commands/session-serve/index.d.ts +0 -32
- package/dist/commands/session-serve/index.js +0 -100
- package/dist/commands/session-turn/index.d.ts +0 -73
- package/dist/commands/session-turn/index.js +0 -254
- package/dist/commands/smoke-test/index.d.ts +0 -5
- package/dist/commands/smoke-test/index.js +0 -40
- package/dist/commands/state-diagram/index.d.ts +0 -7
- package/dist/commands/state-diagram/index.js +0 -9
- package/dist/commands/sync-aws/index.d.ts +0 -16
- package/dist/commands/sync-aws/index.js +0 -214
- package/dist/commands/sync-datadog/index.d.ts +0 -16
- package/dist/commands/sync-datadog/index.js +0 -236
- package/dist/commands/sync-github-issues/index.d.ts +0 -11
- package/dist/commands/sync-github-issues/index.js +0 -42
- package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
- package/dist/commands/sync-github-pull-requests/index.js +0 -42
- package/dist/commands/sync-org-repos/index.d.ts +0 -12
- package/dist/commands/sync-org-repos/index.js +0 -60
- package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
- package/dist/commands/sync-sentry-issues/index.js +0 -73
- package/dist/commands/sync-terraform/index.d.ts +0 -16
- package/dist/commands/sync-terraform/index.js +0 -248
- package/dist/commands/task-worker/index.d.ts +0 -8
- package/dist/commands/task-worker/index.js +0 -34
- package/dist/commands/task-worker/processor.d.ts +0 -23
- package/dist/commands/task-worker/processor.js +0 -84
- package/dist/commands/technical-design/index.d.ts +0 -5
- package/dist/commands/technical-design/index.js +0 -9
- package/dist/commands/test-cases-analysis/index.d.ts +0 -5
- package/dist/commands/test-cases-analysis/index.js +0 -9
- package/dist/commands/user-psychology/index.d.ts +0 -7
- package/dist/commands/user-psychology/index.js +0 -51
- package/dist/commands/user-stories-analysis/index.d.ts +0 -5
- package/dist/commands/user-stories-analysis/index.js +0 -9
- package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
- package/dist/commands/workflow/config/phase-configs.js +0 -132
- package/dist/commands/workflow/core/index.d.ts +0 -8
- package/dist/commands/workflow/core/index.js +0 -12
- package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
- package/dist/commands/workflow/core/issue-filter.js +0 -47
- package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
- package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
- package/dist/commands/workflow/core/state-manager.d.ts +0 -24
- package/dist/commands/workflow/core/state-manager.js +0 -42
- package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
- package/dist/commands/workflow/core/workflow-logger.js +0 -77
- package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
- package/dist/commands/workflow/executors/phase-executor.js +0 -338
- package/dist/commands/workflow/index.d.ts +0 -2
- package/dist/commands/workflow/index.js +0 -34
- package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
- package/dist/commands/workflow/issue-coordinator.js +0 -161
- package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
- package/dist/commands/workflow/phase-orchestrator.js +0 -699
- package/dist/commands/workflow/processor.d.ts +0 -47
- package/dist/commands/workflow/processor.js +0 -149
- package/dist/config/issue-status.d.ts +0 -29
- package/dist/config/issue-status.js +0 -44
- package/dist/config.d.ts +0 -3
- package/dist/config.js +0 -79
- package/dist/constants.d.ts +0 -10
- package/dist/constants.js +0 -36
- package/dist/errors/index.d.ts +0 -68
- package/dist/errors/index.js +0 -129
- package/dist/index.d.ts +0 -4
- package/dist/phases/adr-generation/agent.d.ts +0 -6
- package/dist/phases/adr-generation/agent.js +0 -69
- package/dist/phases/adr-generation/index.d.ts +0 -15
- package/dist/phases/adr-generation/index.js +0 -66
- package/dist/phases/adr-generation/parse.d.ts +0 -12
- package/dist/phases/adr-generation/parse.js +0 -123
- package/dist/phases/adr-generation/prompts.d.ts +0 -8
- package/dist/phases/adr-generation/prompts.js +0 -35
- package/dist/phases/analyze-logs/agent.d.ts +0 -11
- package/dist/phases/analyze-logs/agent.js +0 -66
- package/dist/phases/analyze-logs/index.d.ts +0 -23
- package/dist/phases/analyze-logs/index.js +0 -152
- package/dist/phases/analyze-logs/prompts.d.ts +0 -3
- package/dist/phases/analyze-logs/prompts.js +0 -27
- package/dist/phases/app-store-generation/agent.d.ts +0 -2
- package/dist/phases/app-store-generation/agent.js +0 -177
- package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
- package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
- package/dist/phases/app-store-generation/context.d.ts +0 -21
- package/dist/phases/app-store-generation/context.js +0 -78
- package/dist/phases/app-store-generation/index.d.ts +0 -20
- package/dist/phases/app-store-generation/index.js +0 -157
- package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
- package/dist/phases/app-store-generation/inter-font.js +0 -49
- package/dist/phases/app-store-generation/prompts.d.ts +0 -43
- package/dist/phases/app-store-generation/prompts.js +0 -73
- package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
- package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
- package/dist/phases/app-store-generation/uploader.d.ts +0 -19
- package/dist/phases/app-store-generation/uploader.js +0 -150
- package/dist/phases/architecture-diagram/index.d.ts +0 -15
- package/dist/phases/architecture-diagram/index.js +0 -51
- package/dist/phases/autonomous/index.d.ts +0 -32
- package/dist/phases/autonomous/index.js +0 -412
- package/dist/phases/autonomous/prompts.d.ts +0 -5
- package/dist/phases/autonomous/prompts.js +0 -31
- package/dist/phases/branch-planning/context.d.ts +0 -14
- package/dist/phases/branch-planning/context.js +0 -43
- package/dist/phases/branch-planning/index.d.ts +0 -25
- package/dist/phases/branch-planning/index.js +0 -404
- package/dist/phases/branch-planning/outcome.d.ts +0 -28
- package/dist/phases/branch-planning/outcome.js +0 -115
- package/dist/phases/branch-planning/prompts.d.ts +0 -41
- package/dist/phases/branch-planning/prompts.js +0 -157
- package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
- package/dist/phases/bug-fixing/analyzer.js +0 -247
- package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
- package/dist/phases/bug-fixing/context-fetcher.js +0 -137
- package/dist/phases/bug-fixing/index.d.ts +0 -7
- package/dist/phases/bug-fixing/index.js +0 -7
- package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
- package/dist/phases/bug-fixing/mcp-server.js +0 -19
- package/dist/phases/bug-fixing/prompts.d.ts +0 -2
- package/dist/phases/bug-fixing/prompts.js +0 -9
- package/dist/phases/chat-processor/context.d.ts +0 -38
- package/dist/phases/chat-processor/context.js +0 -91
- package/dist/phases/chat-processor/index.d.ts +0 -49
- package/dist/phases/chat-processor/index.js +0 -482
- package/dist/phases/chat-processor/product-context.d.ts +0 -36
- package/dist/phases/chat-processor/product-context.js +0 -113
- package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
- package/dist/phases/chat-processor/product-prompts.js +0 -65
- package/dist/phases/chat-processor/product-tools.d.ts +0 -8
- package/dist/phases/chat-processor/product-tools.js +0 -11
- package/dist/phases/chat-processor/prompts.d.ts +0 -35
- package/dist/phases/chat-processor/prompts.js +0 -213
- package/dist/phases/chat-processor/tools.d.ts +0 -8
- package/dist/phases/chat-processor/tools.js +0 -11
- package/dist/phases/class-diagram/index.d.ts +0 -14
- package/dist/phases/class-diagram/index.js +0 -76
- package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
- package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
- package/dist/phases/code-implementation/context.d.ts +0 -17
- package/dist/phases/code-implementation/context.js +0 -88
- package/dist/phases/code-implementation/index.d.ts +0 -33
- package/dist/phases/code-implementation/index.js +0 -926
- package/dist/phases/code-implementation/outcome.d.ts +0 -47
- package/dist/phases/code-implementation/outcome.js +0 -53
- package/dist/phases/code-implementation/prompts.d.ts +0 -8
- package/dist/phases/code-implementation/prompts.js +0 -166
- package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
- package/dist/phases/code-implementation-verification/agent.js +0 -225
- package/dist/phases/code-implementation-verification/index.d.ts +0 -27
- package/dist/phases/code-implementation-verification/index.js +0 -121
- package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
- package/dist/phases/code-implementation-verification/prompts.js +0 -90
- package/dist/phases/code-refine/context.d.ts +0 -99
- package/dist/phases/code-refine/context.js +0 -457
- package/dist/phases/code-refine/index.d.ts +0 -59
- package/dist/phases/code-refine/index.js +0 -348
- package/dist/phases/code-refine/prompts.d.ts +0 -5
- package/dist/phases/code-refine/prompts.js +0 -162
- package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
- package/dist/phases/code-refine/refine-iteration.js +0 -166
- package/dist/phases/code-refine/retry-handler.d.ts +0 -17
- package/dist/phases/code-refine/retry-handler.js +0 -87
- package/dist/phases/code-refine-verification/github.d.ts +0 -54
- package/dist/phases/code-refine-verification/github.js +0 -328
- package/dist/phases/code-refine-verification/index.d.ts +0 -11
- package/dist/phases/code-refine-verification/index.js +0 -260
- package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
- package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
- package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
- package/dist/phases/code-refine-verification/prompts.js +0 -119
- package/dist/phases/code-refine-verification/types.d.ts +0 -74
- package/dist/phases/code-refine-verification/types.js +0 -4
- package/dist/phases/code-review/context.d.ts +0 -96
- package/dist/phases/code-review/context.js +0 -278
- package/dist/phases/code-review/diff-utils.d.ts +0 -36
- package/dist/phases/code-review/diff-utils.js +0 -100
- package/dist/phases/code-review/index.d.ts +0 -40
- package/dist/phases/code-review/index.js +0 -627
- package/dist/phases/code-testing/analyzer.d.ts +0 -19
- package/dist/phases/code-testing/analyzer.js +0 -215
- package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
- package/dist/phases/code-testing/context-fetcher.js +0 -83
- package/dist/phases/code-testing/index.d.ts +0 -2
- package/dist/phases/code-testing/index.js +0 -2
- package/dist/phases/code-testing/prompts.d.ts +0 -3
- package/dist/phases/code-testing/prompts.js +0 -63
- package/dist/phases/data-flow/index.d.ts +0 -28
- package/dist/phases/data-flow/index.js +0 -286
- package/dist/phases/data-flow/mcp-server.d.ts +0 -85
- package/dist/phases/data-flow/mcp-server.js +0 -140
- package/dist/phases/data-flow/prompts.d.ts +0 -14
- package/dist/phases/data-flow/prompts.js +0 -36
- package/dist/phases/data-flow/types.d.ts +0 -71
- package/dist/phases/data-flow/types.js +0 -86
- package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
- package/dist/phases/diagram-shared/clone-repos.js +0 -153
- package/dist/phases/diagram-shared/generate.d.ts +0 -42
- package/dist/phases/diagram-shared/generate.js +0 -162
- package/dist/phases/diagram-shared/graph.d.ts +0 -62
- package/dist/phases/diagram-shared/graph.js +0 -169
- package/dist/phases/diagram-shared/mcp.d.ts +0 -35
- package/dist/phases/diagram-shared/mcp.js +0 -68
- package/dist/phases/diagram-shared/prompts.d.ts +0 -23
- package/dist/phases/diagram-shared/prompts.js +0 -35
- package/dist/phases/discover-services/index.d.ts +0 -29
- package/dist/phases/discover-services/index.js +0 -528
- package/dist/phases/er-diagram/index.d.ts +0 -28
- package/dist/phases/er-diagram/index.js +0 -290
- package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
- package/dist/phases/er-diagram/mcp-server.js +0 -144
- package/dist/phases/er-diagram/prompts.d.ts +0 -14
- package/dist/phases/er-diagram/prompts.js +0 -36
- package/dist/phases/er-diagram/types.d.ts +0 -76
- package/dist/phases/er-diagram/types.js +0 -84
- package/dist/phases/features/index.d.ts +0 -65
- package/dist/phases/features/index.js +0 -292
- package/dist/phases/features/mcp-server.d.ts +0 -61
- package/dist/phases/features/mcp-server.js +0 -165
- package/dist/phases/features/prompts.d.ts +0 -32
- package/dist/phases/features/prompts.js +0 -92
- package/dist/phases/features/types.d.ts +0 -34
- package/dist/phases/features/types.js +0 -15
- package/dist/phases/financing-deck/agent.d.ts +0 -1
- package/dist/phases/financing-deck/agent.js +0 -96
- package/dist/phases/financing-deck/context.d.ts +0 -13
- package/dist/phases/financing-deck/context.js +0 -69
- package/dist/phases/financing-deck/index.d.ts +0 -15
- package/dist/phases/financing-deck/index.js +0 -89
- package/dist/phases/financing-deck/prompts.d.ts +0 -2
- package/dist/phases/financing-deck/prompts.js +0 -94
- package/dist/phases/find-architecture/index.d.ts +0 -47
- package/dist/phases/find-architecture/index.js +0 -261
- package/dist/phases/find-architecture/prompts.d.ts +0 -31
- package/dist/phases/find-architecture/prompts.js +0 -128
- package/dist/phases/find-architecture/state.d.ts +0 -21
- package/dist/phases/find-architecture/state.js +0 -17
- package/dist/phases/find-architecture/types.d.ts +0 -55
- package/dist/phases/find-architecture/types.js +0 -69
- package/dist/phases/find-bugs/index.d.ts +0 -33
- package/dist/phases/find-bugs/index.js +0 -236
- package/dist/phases/find-bugs/prompts.d.ts +0 -22
- package/dist/phases/find-bugs/prompts.js +0 -101
- package/dist/phases/find-bugs/state.d.ts +0 -19
- package/dist/phases/find-bugs/state.js +0 -13
- package/dist/phases/find-bugs/types.d.ts +0 -21
- package/dist/phases/find-bugs/types.js +0 -16
- package/dist/phases/find-features/index.d.ts +0 -40
- package/dist/phases/find-features/index.js +0 -328
- package/dist/phases/find-features/prompts.d.ts +0 -43
- package/dist/phases/find-features/prompts.js +0 -138
- package/dist/phases/find-features/state.d.ts +0 -25
- package/dist/phases/find-features/state.js +0 -22
- package/dist/phases/find-features/types.d.ts +0 -27
- package/dist/phases/find-features/types.js +0 -16
- package/dist/phases/find-shared/git.d.ts +0 -24
- package/dist/phases/find-shared/git.js +0 -60
- package/dist/phases/find-shared/mcp.d.ts +0 -48
- package/dist/phases/find-shared/mcp.js +0 -125
- package/dist/phases/find-shared/scan-state.d.ts +0 -33
- package/dist/phases/find-shared/scan-state.js +0 -112
- package/dist/phases/find-smells/index.d.ts +0 -50
- package/dist/phases/find-smells/index.js +0 -298
- package/dist/phases/find-smells/prompts.d.ts +0 -30
- package/dist/phases/find-smells/prompts.js +0 -129
- package/dist/phases/find-smells/state.d.ts +0 -21
- package/dist/phases/find-smells/state.js +0 -17
- package/dist/phases/find-smells/types.d.ts +0 -51
- package/dist/phases/find-smells/types.js +0 -64
- package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
- package/dist/phases/flow-shared/clone-repos.js +0 -153
- package/dist/phases/flowchart/index.d.ts +0 -15
- package/dist/phases/flowchart/index.js +0 -50
- package/dist/phases/functional-testing/analyzer.d.ts +0 -46
- package/dist/phases/functional-testing/analyzer.js +0 -622
- package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
- package/dist/phases/functional-testing/context-fetcher.js +0 -83
- package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
- package/dist/phases/functional-testing/http-fallback.js +0 -156
- package/dist/phases/functional-testing/index.d.ts +0 -4
- package/dist/phases/functional-testing/index.js +0 -4
- package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
- package/dist/phases/functional-testing/mcp-server.js +0 -13
- package/dist/phases/functional-testing/prompts.d.ts +0 -2
- package/dist/phases/functional-testing/prompts.js +0 -58
- package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
- package/dist/phases/functional-testing/test-report-creator.js +0 -306
- package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
- package/dist/phases/functional-testing/test-retry-handler.js +0 -70
- package/dist/phases/growth-analysis/agent.d.ts +0 -2
- package/dist/phases/growth-analysis/agent.js +0 -107
- package/dist/phases/growth-analysis/context.d.ts +0 -23
- package/dist/phases/growth-analysis/context.js +0 -137
- package/dist/phases/growth-analysis/index.d.ts +0 -32
- package/dist/phases/growth-analysis/index.js +0 -226
- package/dist/phases/growth-analysis/prompts.d.ts +0 -2
- package/dist/phases/growth-analysis/prompts.js +0 -45
- package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
- package/dist/phases/intelligence-analysis/agent.js +0 -338
- package/dist/phases/intelligence-analysis/context.d.ts +0 -23
- package/dist/phases/intelligence-analysis/context.js +0 -142
- package/dist/phases/intelligence-analysis/index.d.ts +0 -58
- package/dist/phases/intelligence-analysis/index.js +0 -244
- package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
- package/dist/phases/intelligence-analysis/prompts.js +0 -62
- package/dist/phases/issue-analysis/agent.d.ts +0 -21
- package/dist/phases/issue-analysis/agent.js +0 -153
- package/dist/phases/issue-analysis/context.d.ts +0 -20
- package/dist/phases/issue-analysis/context.js +0 -93
- package/dist/phases/issue-analysis/index.d.ts +0 -8
- package/dist/phases/issue-analysis/index.js +0 -147
- package/dist/phases/issue-analysis/outcome.d.ts +0 -10
- package/dist/phases/issue-analysis/outcome.js +0 -42
- package/dist/phases/issue-analysis/prompts.d.ts +0 -8
- package/dist/phases/issue-analysis/prompts.js +0 -99
- package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
- package/dist/phases/issue-analysis-verification/agent.js +0 -124
- package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
- package/dist/phases/issue-analysis-verification/index.js +0 -79
- package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
- package/dist/phases/issue-analysis-verification/prompts.js +0 -75
- package/dist/phases/output-contracts.d.ts +0 -7
- package/dist/phases/output-contracts.js +0 -1201
- package/dist/phases/pr-execution/context.d.ts +0 -32
- package/dist/phases/pr-execution/context.js +0 -246
- package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
- package/dist/phases/pr-execution/file-assigner.js +0 -287
- package/dist/phases/pr-execution/index.d.ts +0 -22
- package/dist/phases/pr-execution/index.js +0 -401
- package/dist/phases/pr-execution/outcome.d.ts +0 -24
- package/dist/phases/pr-execution/outcome.js +0 -34
- package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
- package/dist/phases/pr-execution/pr-executor.js +0 -78
- package/dist/phases/pr-execution/prompts.d.ts +0 -27
- package/dist/phases/pr-execution/prompts.js +0 -131
- package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
- package/dist/phases/pr-resolve/checklist-learner.js +0 -153
- package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
- package/dist/phases/pr-resolve/github-reply.js +0 -75
- package/dist/phases/pr-resolve/index.d.ts +0 -33
- package/dist/phases/pr-resolve/index.js +0 -272
- package/dist/phases/pr-resolve/prompts.d.ts +0 -17
- package/dist/phases/pr-resolve/prompts.js +0 -107
- package/dist/phases/pr-resolve/types.d.ts +0 -18
- package/dist/phases/pr-resolve/types.js +0 -14
- package/dist/phases/pr-resolve/workspace.d.ts +0 -45
- package/dist/phases/pr-resolve/workspace.js +0 -174
- package/dist/phases/pr-review/index.d.ts +0 -27
- package/dist/phases/pr-review/index.js +0 -209
- package/dist/phases/pr-review/prompts.d.ts +0 -5
- package/dist/phases/pr-review/prompts.js +0 -87
- package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
- package/dist/phases/pr-shared/agent-utils.js +0 -112
- package/dist/phases/pr-shared/context.d.ts +0 -24
- package/dist/phases/pr-shared/context.js +0 -78
- package/dist/phases/pr-shared/status.d.ts +0 -18
- package/dist/phases/pr-shared/status.js +0 -37
- package/dist/phases/pr-splitting/context.d.ts +0 -28
- package/dist/phases/pr-splitting/context.js +0 -182
- package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
- package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
- package/dist/phases/pr-splitting/index.d.ts +0 -36
- package/dist/phases/pr-splitting/index.js +0 -413
- package/dist/phases/pr-splitting/outcome.d.ts +0 -24
- package/dist/phases/pr-splitting/outcome.js +0 -114
- package/dist/phases/pr-splitting/prompts.d.ts +0 -43
- package/dist/phases/pr-splitting/prompts.js +0 -154
- package/dist/phases/product-techniques/index.d.ts +0 -52
- package/dist/phases/product-techniques/index.js +0 -268
- package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
- package/dist/phases/product-techniques/mcp-server.js +0 -96
- package/dist/phases/product-techniques/prompts.d.ts +0 -19
- package/dist/phases/product-techniques/prompts.js +0 -66
- package/dist/phases/product-techniques/types.d.ts +0 -13
- package/dist/phases/product-techniques/types.js +0 -13
- package/dist/phases/product-test-cases/index.d.ts +0 -25
- package/dist/phases/product-test-cases/index.js +0 -174
- package/dist/phases/product-test-cases/prompts.d.ts +0 -24
- package/dist/phases/product-test-cases/prompts.js +0 -80
- package/dist/phases/product-test-cases/types.d.ts +0 -17
- package/dist/phases/product-test-cases/types.js +0 -27
- package/dist/phases/pull-request/creator.d.ts +0 -30
- package/dist/phases/pull-request/creator.js +0 -319
- package/dist/phases/pull-request/handler.d.ts +0 -15
- package/dist/phases/pull-request/handler.js +0 -92
- package/dist/phases/quality-benchmark/index.d.ts +0 -65
- package/dist/phases/quality-benchmark/index.js +0 -194
- package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
- package/dist/phases/quality-benchmark/mcp-server.js +0 -252
- package/dist/phases/quality-benchmark/parsers.d.ts +0 -22
- package/dist/phases/quality-benchmark/parsers.js +0 -1101
- package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
- package/dist/phases/quality-benchmark/prompts.js +0 -154
- package/dist/phases/quality-benchmark/rubric.md +0 -1174
- package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
- package/dist/phases/quality-benchmark/tool-catalog.js +0 -636
- package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
- package/dist/phases/quality-benchmark/tool-runner.js +0 -399
- package/dist/phases/quality-benchmark/types.d.ts +0 -312
- package/dist/phases/quality-benchmark/types.js +0 -23
- package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
- package/dist/phases/quality-benchmark/workspace.js +0 -110
- package/dist/phases/recipes/index.d.ts +0 -63
- package/dist/phases/recipes/index.js +0 -358
- package/dist/phases/recipes/mcp-server.d.ts +0 -66
- package/dist/phases/recipes/mcp-server.js +0 -229
- package/dist/phases/recipes/prompts.d.ts +0 -35
- package/dist/phases/recipes/prompts.js +0 -105
- package/dist/phases/recipes/types.d.ts +0 -42
- package/dist/phases/recipes/types.js +0 -16
- package/dist/phases/release-sync/github.d.ts +0 -66
- package/dist/phases/release-sync/github.js +0 -140
- package/dist/phases/release-sync/index.d.ts +0 -24
- package/dist/phases/release-sync/index.js +0 -156
- package/dist/phases/release-sync/snapshot.d.ts +0 -27
- package/dist/phases/release-sync/snapshot.js +0 -158
- package/dist/phases/run-sheet/agent.d.ts +0 -49
- package/dist/phases/run-sheet/agent.js +0 -156
- package/dist/phases/run-sheet/index.d.ts +0 -57
- package/dist/phases/run-sheet/index.js +0 -392
- package/dist/phases/screen-flow/index.d.ts +0 -26
- package/dist/phases/screen-flow/index.js +0 -349
- package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
- package/dist/phases/screen-flow/mcp-server.js +0 -272
- package/dist/phases/screen-flow/prompts.d.ts +0 -19
- package/dist/phases/screen-flow/prompts.js +0 -43
- package/dist/phases/screen-flow/theme.d.ts +0 -19
- package/dist/phases/screen-flow/theme.js +0 -193
- package/dist/phases/screen-flow/types.d.ts +0 -137
- package/dist/phases/screen-flow/types.js +0 -81
- package/dist/phases/sequence-diagram/index.d.ts +0 -30
- package/dist/phases/sequence-diagram/index.js +0 -290
- package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
- package/dist/phases/sequence-diagram/mcp-server.js +0 -134
- package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
- package/dist/phases/sequence-diagram/prompts.js +0 -36
- package/dist/phases/sequence-diagram/types.d.ts +0 -52
- package/dist/phases/sequence-diagram/types.js +0 -93
- package/dist/phases/smoke-test/agent.d.ts +0 -12
- package/dist/phases/smoke-test/agent.js +0 -93
- package/dist/phases/smoke-test/index.d.ts +0 -22
- package/dist/phases/smoke-test/index.js +0 -241
- package/dist/phases/smoke-test/prompts.d.ts +0 -15
- package/dist/phases/smoke-test/prompts.js +0 -35
- package/dist/phases/state-diagram/index.d.ts +0 -15
- package/dist/phases/state-diagram/index.js +0 -53
- package/dist/phases/sync-github-issues/index.d.ts +0 -41
- package/dist/phases/sync-github-issues/index.js +0 -187
- package/dist/phases/sync-github-issues/state.d.ts +0 -26
- package/dist/phases/sync-github-issues/state.js +0 -18
- package/dist/phases/sync-github-issues/types.d.ts +0 -35
- package/dist/phases/sync-github-issues/types.js +0 -6
- package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
- package/dist/phases/sync-github-pull-requests/index.js +0 -210
- package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
- package/dist/phases/sync-github-pull-requests/state.js +0 -16
- package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
- package/dist/phases/sync-github-pull-requests/types.js +0 -1
- package/dist/phases/sync-org-repos/index.d.ts +0 -28
- package/dist/phases/sync-org-repos/index.js +0 -133
- package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
- package/dist/phases/sync-sentry-issues/index.js +0 -153
- package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
- package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
- package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
- package/dist/phases/sync-sentry-issues/state.js +0 -18
- package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
- package/dist/phases/sync-sentry-issues/types.js +0 -6
- package/dist/phases/sync-shared/mcp.d.ts +0 -81
- package/dist/phases/sync-shared/mcp.js +0 -111
- package/dist/phases/task/agent.d.ts +0 -10
- package/dist/phases/task/agent.js +0 -83
- package/dist/phases/task/context.d.ts +0 -16
- package/dist/phases/task/context.js +0 -50
- package/dist/phases/task/index.d.ts +0 -17
- package/dist/phases/task/index.js +0 -54
- package/dist/phases/task/prompts.d.ts +0 -9
- package/dist/phases/task/prompts.js +0 -21
- package/dist/phases/technical-design/context.d.ts +0 -12
- package/dist/phases/technical-design/context.js +0 -39
- package/dist/phases/technical-design/index.d.ts +0 -21
- package/dist/phases/technical-design/index.js +0 -456
- package/dist/phases/technical-design/outcome.d.ts +0 -25
- package/dist/phases/technical-design/outcome.js +0 -41
- package/dist/phases/technical-design/prompts.d.ts +0 -8
- package/dist/phases/technical-design/prompts.js +0 -210
- package/dist/phases/technical-design-verification/agent.d.ts +0 -53
- package/dist/phases/technical-design-verification/agent.js +0 -186
- package/dist/phases/technical-design-verification/index.d.ts +0 -38
- package/dist/phases/technical-design-verification/index.js +0 -152
- package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
- package/dist/phases/technical-design-verification/prompts.js +0 -143
- package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
- package/dist/phases/test-cases-analysis/agent.js +0 -105
- package/dist/phases/test-cases-analysis/context.d.ts +0 -15
- package/dist/phases/test-cases-analysis/context.js +0 -86
- package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
- package/dist/phases/test-cases-analysis/formatters.js +0 -35
- package/dist/phases/test-cases-analysis/index.d.ts +0 -9
- package/dist/phases/test-cases-analysis/index.js +0 -175
- package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
- package/dist/phases/test-cases-analysis/outcome.js +0 -146
- package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
- package/dist/phases/test-cases-analysis/prompts.js +0 -171
- package/dist/phases/user-psychology/agent.d.ts +0 -16
- package/dist/phases/user-psychology/agent.js +0 -105
- package/dist/phases/user-psychology/context.d.ts +0 -10
- package/dist/phases/user-psychology/context.js +0 -65
- package/dist/phases/user-psychology/index.d.ts +0 -18
- package/dist/phases/user-psychology/index.js +0 -96
- package/dist/phases/user-psychology/prompts.d.ts +0 -2
- package/dist/phases/user-psychology/prompts.js +0 -41
- package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
- package/dist/phases/user-stories-analysis/agent.js +0 -105
- package/dist/phases/user-stories-analysis/context.d.ts +0 -15
- package/dist/phases/user-stories-analysis/context.js +0 -86
- package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
- package/dist/phases/user-stories-analysis/formatters.js +0 -32
- package/dist/phases/user-stories-analysis/index.d.ts +0 -9
- package/dist/phases/user-stories-analysis/index.js +0 -175
- package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
- package/dist/phases/user-stories-analysis/outcome.js +0 -146
- package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
- package/dist/phases/user-stories-analysis/prompts.js +0 -194
- package/dist/services/audit-logs.d.ts +0 -73
- package/dist/services/audit-logs.js +0 -174
- package/dist/services/branches.d.ts +0 -103
- package/dist/services/branches.js +0 -391
- package/dist/services/checklist.d.ts +0 -100
- package/dist/services/checklist.js +0 -259
- package/dist/services/coaching/coaching-agent.d.ts +0 -39
- package/dist/services/coaching/coaching-agent.js +0 -308
- package/dist/services/coaching/coaching-loop.d.ts +0 -62
- package/dist/services/coaching/coaching-loop.js +0 -265
- package/dist/services/coaching/index.d.ts +0 -8
- package/dist/services/coaching/index.js +0 -8
- package/dist/services/coaching/phase-coaching.d.ts +0 -47
- package/dist/services/coaching/phase-coaching.js +0 -60
- package/dist/services/coaching/self-rating.d.ts +0 -26
- package/dist/services/coaching/self-rating.js +0 -153
- package/dist/services/feedbacks.d.ts +0 -57
- package/dist/services/feedbacks.js +0 -264
- package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
- package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
- package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
- package/dist/services/phase-hooks/hook-executor.js +0 -167
- package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
- package/dist/services/phase-hooks/hook-logging.js +0 -41
- package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
- package/dist/services/phase-hooks/hook-runner.js +0 -83
- package/dist/services/phase-hooks/index.d.ts +0 -10
- package/dist/services/phase-hooks/index.js +0 -9
- package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
- package/dist/services/phase-hooks/plugin-loader.js +0 -207
- package/dist/services/phase-hooks/types.d.ts +0 -69
- package/dist/services/phase-hooks/types.js +0 -8
- package/dist/services/phase-ratings.d.ts +0 -70
- package/dist/services/phase-ratings.js +0 -143
- package/dist/services/product-logs.d.ts +0 -31
- package/dist/services/product-logs.js +0 -94
- package/dist/services/pull-requests.d.ts +0 -57
- package/dist/services/pull-requests.js +0 -186
- package/dist/services/quality-reports.d.ts +0 -45
- package/dist/services/quality-reports.js +0 -93
- package/dist/services/repo-config.d.ts +0 -17
- package/dist/services/repo-config.js +0 -50
- package/dist/services/skill-resolver.d.ts +0 -46
- package/dist/services/skill-resolver.js +0 -123
- package/dist/services/video/device-frames.d.ts +0 -34
- package/dist/services/video/device-frames.js +0 -513
- package/dist/services/video/index.d.ts +0 -66
- package/dist/services/video/index.js +0 -238
- package/dist/services/video/retry.d.ts +0 -20
- package/dist/services/video/retry.js +0 -76
- package/dist/services/video/screenshot-generator.d.ts +0 -69
- package/dist/services/video/screenshot-generator.js +0 -259
- package/dist/services/video/tts-generator.d.ts +0 -40
- package/dist/services/video/tts-generator.js +0 -121
- package/dist/services/video/video-assembler.d.ts +0 -45
- package/dist/services/video/video-assembler.js +0 -351
- package/dist/services/video/video-uploader.d.ts +0 -28
- package/dist/services/video/video-uploader.js +0 -108
- package/dist/skills/phase/adr-generation/SKILL.md +0 -51
- package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
- package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
- package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
- package/dist/skills/phase/autonomous/SKILL.md +0 -52
- package/dist/skills/phase/branch-planning/SKILL.md +0 -55
- package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
- package/dist/skills/phase/class-diagram/SKILL.md +0 -44
- package/dist/skills/phase/code-implementation/SKILL.md +0 -68
- package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
- package/dist/skills/phase/code-refine/SKILL.md +0 -62
- package/dist/skills/phase/code-testing/SKILL.md +0 -78
- package/dist/skills/phase/data-flow/SKILL.md +0 -82
- package/dist/skills/phase/er-diagram/SKILL.md +0 -71
- package/dist/skills/phase/flowchart/SKILL.md +0 -38
- package/dist/skills/phase/functional-testing/SKILL.md +0 -62
- package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
- package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
- package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
- package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
- package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
- package/dist/skills/phase/pr-execution/SKILL.md +0 -69
- package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
- package/dist/skills/phase/screen-flow/SKILL.md +0 -78
- package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
- package/dist/skills/phase/smoke-test/SKILL.md +0 -80
- package/dist/skills/phase/state-diagram/SKILL.md +0 -38
- package/dist/skills/phase/task/SKILL.md +0 -19
- package/dist/skills/phase/technical-design/SKILL.md +0 -75
- package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
- package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
- package/dist/skills/phase/user-psychology/SKILL.md +0 -135
- package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
- package/dist/supabase/client.d.ts +0 -34
- package/dist/supabase/client.js +0 -123
- package/dist/system/session-manager.d.ts +0 -67
- package/dist/system/session-manager.js +0 -300
- package/dist/system/sleep-notification.d.ts +0 -15
- package/dist/system/sleep-notification.js +0 -108
- package/dist/system/sleep-prevention.d.ts +0 -20
- package/dist/system/sleep-prevention.js +0 -112
- package/dist/tools/bootstrap.d.ts +0 -45
- package/dist/tools/bootstrap.js +0 -50
- package/dist/types/external-sources.d.ts +0 -22
- package/dist/types/external-sources.js +0 -23
- package/dist/types/index.d.ts +0 -206
- package/dist/types/index.js +0 -1
- package/dist/types/issues.d.ts +0 -37
- package/dist/types/issues.js +0 -1
- package/dist/types/llm-responses.d.ts +0 -114
- package/dist/types/llm-responses.js +0 -9
- package/dist/types/pipeline.d.ts +0 -28
- package/dist/types/pipeline.js +0 -4
- package/dist/updater/auto-updater.d.ts +0 -39
- package/dist/updater/auto-updater.js +0 -134
- package/dist/utils/conflict-resolver.d.ts +0 -49
- package/dist/utils/conflict-resolver.js +0 -201
- package/dist/utils/formatters.d.ts +0 -42
- package/dist/utils/formatters.js +0 -166
- package/dist/utils/git-branch-manager-async.d.ts +0 -127
- package/dist/utils/git-branch-manager-async.js +0 -425
- package/dist/utils/git-branch-manager.d.ts +0 -160
- package/dist/utils/git-branch-manager.js +0 -613
- package/dist/utils/git-push.d.ts +0 -43
- package/dist/utils/git-push.js +0 -136
- package/dist/utils/github-repo-info.d.ts +0 -26
- package/dist/utils/github-repo-info.js +0 -45
- package/dist/utils/image-downloader.d.ts +0 -32
- package/dist/utils/image-downloader.js +0 -152
- package/dist/utils/issue-phase-cli.d.ts +0 -26
- package/dist/utils/issue-phase-cli.js +0 -44
- package/dist/utils/json-extract.d.ts +0 -6
- package/dist/utils/json-extract.js +0 -44
- package/dist/utils/json-extractor.d.ts +0 -27
- package/dist/utils/json-extractor.js +0 -102
- package/dist/utils/logger.d.ts +0 -35
- package/dist/utils/logger.js +0 -167
- package/dist/utils/pipeline-logger.d.ts +0 -8
- package/dist/utils/pipeline-logger.js +0 -38
- package/dist/utils/validation.d.ts +0 -68
- package/dist/utils/validation.js +0 -229
- package/dist/utils/workflow-utils.d.ts +0 -22
- package/dist/utils/workflow-utils.js +0 -48
- package/dist/workspace/session-workspace.d.ts +0 -43
- package/dist/workspace/session-workspace.js +0 -90
- package/dist/workspace/workspace-manager.d.ts +0 -105
- package/dist/workspace/workspace-manager.js +0 -280
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { processConditionals, resolveSkill, } from '../../services/skill-resolver.js';
|
|
2
|
-
import { OUTPUT_CONTRACTS } from '../output-contracts.js';
|
|
3
|
-
export const createUserPsychologySystemPrompt = async (hasCodebase = false, projectDir) => {
|
|
4
|
-
const skill = await resolveSkill('phase/user-psychology', { projectDir });
|
|
5
|
-
if (!skill) {
|
|
6
|
-
throw new Error('Failed to load skill: phase/user-psychology');
|
|
7
|
-
}
|
|
8
|
-
let { prompt } = skill;
|
|
9
|
-
prompt = processConditionals(prompt, { hasCodebase });
|
|
10
|
-
return `${prompt}
|
|
11
|
-
|
|
12
|
-
${OUTPUT_CONTRACTS['user-psychology']}`;
|
|
13
|
-
};
|
|
14
|
-
export const createUserPsychologyPromptWithContext = (productId, contextInfo, hasCodebase = false) => {
|
|
15
|
-
const codebaseInstructions = hasCodebase
|
|
16
|
-
? `
|
|
17
|
-
**Step 1 - Explore the codebase FIRST**: Before writing any persona or job, use your file reading tools to actually open this project. Look at:
|
|
18
|
-
- README.md, CLAUDE.md, package.json for what the product claims to be
|
|
19
|
-
- Landing pages, marketing copy, documentation
|
|
20
|
-
- The 3-5 highest-leverage source files / features
|
|
21
|
-
- Any UI flows that hint at the user's workflow
|
|
22
|
-
|
|
23
|
-
**Step 2 - Build the profile**: Now, using what you discovered AND the context below:`
|
|
24
|
-
: `
|
|
25
|
-
**Build the profile**: Using the product context below:`;
|
|
26
|
-
return `Please produce a rigorous user psychology profile for product ID: ${productId}
|
|
27
|
-
|
|
28
|
-
${contextInfo}
|
|
29
|
-
|
|
30
|
-
## Analysis Instructions
|
|
31
|
-
${codebaseInstructions}
|
|
32
|
-
1. Apply all 6 frameworks defined in your system prompt (Personas, JTBD, Pain Points, Motivations, Behavior Triggers, Messaging Angles).
|
|
33
|
-
2. Every persona, job, and pain you produce must be traceable to a specific feature, file, or context line — cite the evidence inline.
|
|
34
|
-
3. Cover at least one EMOTIONAL and one SOCIAL job in jobs_to_be_done — not only functional ones.
|
|
35
|
-
4. Pain points must be written in the USER'S voice ("I keep losing track of…"), not yours ("users struggle with…").
|
|
36
|
-
5. Messaging angles must each tie back to a specific persona name and a specific JTBD statement.
|
|
37
|
-
|
|
38
|
-
**CRITICAL**: No placeholders. No "[insert role]". No generic "users want to be productive." Be concrete or be silent.
|
|
39
|
-
|
|
40
|
-
Return ONLY the JSON response as specified in your instructions.`;
|
|
41
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type EdsgerConfig, type WithExecutionSessionId } from '../../types/index.js';
|
|
2
|
-
interface ParsedAnalysisResult {
|
|
3
|
-
analysis?: any;
|
|
4
|
-
error?: string;
|
|
5
|
-
}
|
|
6
|
-
export type AnalysisQueryResult = Record<string, unknown> & WithExecutionSessionId;
|
|
7
|
-
export declare function parseAnalysisResult(responseText: string): ParsedAnalysisResult;
|
|
8
|
-
export declare function executeUserStoriesAnalysisQuery(currentPrompt: string, systemPrompt: string, config: EdsgerConfig, verbose?: boolean): Promise<AnalysisQueryResult | null>;
|
|
9
|
-
export {};
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
-
import { DEFAULT_MODEL } from '../../constants.js';
|
|
3
|
-
import { logDebug, logError, logInfo } from '../../utils/logger.js';
|
|
4
|
-
export function parseAnalysisResult(responseText) {
|
|
5
|
-
try {
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
-
let jsonResult = null;
|
|
8
|
-
const jsonBlockMatch = responseText.match(/```json\s*\n([\s\S]*?)\n\s*```/);
|
|
9
|
-
if (jsonBlockMatch) {
|
|
10
|
-
jsonResult = JSON.parse(jsonBlockMatch[1]);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
jsonResult = JSON.parse(responseText);
|
|
14
|
-
}
|
|
15
|
-
if (jsonResult && jsonResult.analysis) {
|
|
16
|
-
return { analysis: jsonResult.analysis };
|
|
17
|
-
}
|
|
18
|
-
return { error: 'Invalid JSON structure' };
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
return {
|
|
22
|
-
error: `JSON parsing failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function userMessage(content) {
|
|
27
|
-
return {
|
|
28
|
-
type: 'user',
|
|
29
|
-
message: { role: 'user', content },
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/require-await -- async generator required by SDK interface
|
|
33
|
-
async function* prompt(analysisPrompt) {
|
|
34
|
-
yield userMessage(analysisPrompt);
|
|
35
|
-
}
|
|
36
|
-
export async function executeUserStoriesAnalysisQuery(currentPrompt, systemPrompt, config, verbose) {
|
|
37
|
-
let lastAssistantResponse = '';
|
|
38
|
-
let structuredAnalysisResult = null;
|
|
39
|
-
let executionSessionId = '';
|
|
40
|
-
for await (const message of query({
|
|
41
|
-
prompt: prompt(currentPrompt),
|
|
42
|
-
options: {
|
|
43
|
-
systemPrompt: {
|
|
44
|
-
type: 'preset',
|
|
45
|
-
preset: 'claude_code',
|
|
46
|
-
append: systemPrompt,
|
|
47
|
-
},
|
|
48
|
-
model: DEFAULT_MODEL,
|
|
49
|
-
maxTurns: 1000,
|
|
50
|
-
permissionMode: 'bypassPermissions',
|
|
51
|
-
},
|
|
52
|
-
})) {
|
|
53
|
-
if (verbose) {
|
|
54
|
-
logInfo(`Received message type: ${message.type}`);
|
|
55
|
-
}
|
|
56
|
-
if (message.type === 'assistant' && message.message?.content) {
|
|
57
|
-
for (const content of message.message.content) {
|
|
58
|
-
if (content.type === 'text') {
|
|
59
|
-
lastAssistantResponse += `${content.text}\n`;
|
|
60
|
-
logDebug(`🤖 ${content.text}`, verbose);
|
|
61
|
-
}
|
|
62
|
-
else if (content.type === 'tool_use') {
|
|
63
|
-
const input = (content.input ?? {});
|
|
64
|
-
logDebug(`🔧 ${content.name}: ${input.description ?? 'Running...'}`, verbose);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (message.type === 'result') {
|
|
69
|
-
executionSessionId = message.session_id || executionSessionId;
|
|
70
|
-
if (message.subtype === 'success') {
|
|
71
|
-
logInfo('\n📊 User stories analysis completed, parsing results...');
|
|
72
|
-
const responseText = message.result || lastAssistantResponse;
|
|
73
|
-
const parsed = parseAnalysisResult(responseText);
|
|
74
|
-
if (parsed.error) {
|
|
75
|
-
logError(`Failed to parse structured analysis result: ${parsed.error}`);
|
|
76
|
-
structuredAnalysisResult = {
|
|
77
|
-
status: 'error',
|
|
78
|
-
summary: 'Failed to parse analysis results from Claude Code response',
|
|
79
|
-
created_user_stories: [],
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
structuredAnalysisResult = parsed.analysis;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
logError(`\n⚠️ Analysis incomplete: ${message.subtype}`);
|
|
88
|
-
if (message.subtype === 'error_max_turns') {
|
|
89
|
-
logError('💡 Try increasing timeout or reducing complexity');
|
|
90
|
-
}
|
|
91
|
-
if (lastAssistantResponse) {
|
|
92
|
-
const parsed = parseAnalysisResult(lastAssistantResponse);
|
|
93
|
-
if (!parsed.error) {
|
|
94
|
-
structuredAnalysisResult = parsed.analysis;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
if (structuredAnalysisResult) {
|
|
101
|
-
structuredAnalysisResult.execution_session_id =
|
|
102
|
-
executionSessionId || undefined;
|
|
103
|
-
}
|
|
104
|
-
return structuredAnalysisResult;
|
|
105
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type ProductInfo } from '../../api/products.js';
|
|
2
|
-
import { type ChecklistPhaseContext } from '../../services/checklist.js';
|
|
3
|
-
import type { IssueInfo, TestCase, UserStory } from '../../types/issues.js';
|
|
4
|
-
export interface UserStoriesAnalysisContext {
|
|
5
|
-
issue: IssueInfo;
|
|
6
|
-
product: ProductInfo;
|
|
7
|
-
existing_user_stories: UserStory[];
|
|
8
|
-
existing_test_cases: TestCase[];
|
|
9
|
-
}
|
|
10
|
-
export declare function fetchUserStoriesAnalysisContext(issueId: string, verbose?: boolean): Promise<UserStoriesAnalysisContext>;
|
|
11
|
-
export declare function prepareUserStoriesAnalysisContext(issueId: string, checklistContext: ChecklistPhaseContext | null | undefined, verbose?: boolean): Promise<{
|
|
12
|
-
issueContext: UserStoriesAnalysisContext;
|
|
13
|
-
analysisPrompt: string;
|
|
14
|
-
hasFeedbacks: boolean;
|
|
15
|
-
}>;
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { getIssue, getTestCases, getUserStories, } from '../../api/issues/index.js';
|
|
2
|
-
import { getProduct } from '../../api/products.js';
|
|
3
|
-
import { formatChecklistsForContext, } from '../../services/checklist.js';
|
|
4
|
-
import { formatFeedbacksForContext, getFeedbacksForPhase, } from '../../services/feedbacks.js';
|
|
5
|
-
import { logError, logInfo } from '../../utils/logger.js';
|
|
6
|
-
import { formatUserStoriesAnalysisContext } from './formatters.js';
|
|
7
|
-
import { createUserStoriesAnalysisPromptWithContext, createUserStoriesFeedbackFocusedPromptWithContext, } from './prompts.js';
|
|
8
|
-
export async function fetchUserStoriesAnalysisContext(issueId, verbose) {
|
|
9
|
-
try {
|
|
10
|
-
if (verbose) {
|
|
11
|
-
logInfo(`Fetching user stories analysis context for issue: ${issueId}`);
|
|
12
|
-
}
|
|
13
|
-
const [issue, existingUserStories, existingTestCases] = await Promise.all([
|
|
14
|
-
getIssue(issueId, verbose),
|
|
15
|
-
getUserStories(issueId, verbose),
|
|
16
|
-
getTestCases(issueId, verbose),
|
|
17
|
-
]);
|
|
18
|
-
const product = await getProduct(issue.product_id, verbose);
|
|
19
|
-
if (verbose) {
|
|
20
|
-
logInfo(`✅ User stories analysis context fetched successfully:`);
|
|
21
|
-
logInfo(` Issue: ${issue.name}`);
|
|
22
|
-
logInfo(` Product: ${product.name}`);
|
|
23
|
-
logInfo(` Existing User Stories: ${existingUserStories.length}`);
|
|
24
|
-
logInfo(` Existing Test Cases: ${existingTestCases.length}`);
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
issue,
|
|
28
|
-
product,
|
|
29
|
-
existing_user_stories: existingUserStories,
|
|
30
|
-
existing_test_cases: existingTestCases,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
35
|
-
logError(`Failed to fetch user stories analysis context: ${errorMessage}`);
|
|
36
|
-
throw new Error(`Context fetch failed: ${errorMessage}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
export async function prepareUserStoriesAnalysisContext(issueId, checklistContext, verbose) {
|
|
40
|
-
if (verbose) {
|
|
41
|
-
logInfo('Fetching user stories analysis context via MCP endpoints...');
|
|
42
|
-
}
|
|
43
|
-
const issueContext = await fetchUserStoriesAnalysisContext(issueId, verbose);
|
|
44
|
-
const { content: contextInfo, downloadedImages } = await formatUserStoriesAnalysisContext(issueContext);
|
|
45
|
-
if (verbose && downloadedImages.length > 0) {
|
|
46
|
-
logInfo(`Downloaded ${downloadedImages.length} images for Claude Code:`);
|
|
47
|
-
downloadedImages.forEach((img) => {
|
|
48
|
-
logInfo(` - ${img.url} -> ${img.localPath}`);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
let finalContextInfo = contextInfo;
|
|
52
|
-
let hasFeedbacks = false;
|
|
53
|
-
// Add feedbacks context
|
|
54
|
-
try {
|
|
55
|
-
const feedbacksContext = await getFeedbacksForPhase({ issueId, verbose }, 'user-stories-analysis');
|
|
56
|
-
if (feedbacksContext.feedbacks.length > 0) {
|
|
57
|
-
hasFeedbacks = true;
|
|
58
|
-
const feedbacksInfo = await formatFeedbacksForContext(feedbacksContext);
|
|
59
|
-
finalContextInfo = `${finalContextInfo}\n\n${feedbacksInfo}`;
|
|
60
|
-
if (verbose) {
|
|
61
|
-
logInfo(`Added ${feedbacksContext.feedbacks.length} human feedbacks to context`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
if (verbose) {
|
|
67
|
-
logInfo(`Note: Could not fetch feedbacks (${error instanceof Error ? error.message : String(error)})`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// Add checklist context
|
|
71
|
-
if (checklistContext && checklistContext.checklists.length > 0) {
|
|
72
|
-
const checklistInfo = formatChecklistsForContext(checklistContext);
|
|
73
|
-
finalContextInfo = `${finalContextInfo}\n\n${checklistInfo}`;
|
|
74
|
-
if (verbose) {
|
|
75
|
-
logInfo(`Added ${checklistContext.checklists.length} checklists to analysis context`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
const hasExistingArtifacts = issueContext.existing_user_stories.length > 0;
|
|
79
|
-
const analysisPrompt = hasFeedbacks && hasExistingArtifacts
|
|
80
|
-
? createUserStoriesFeedbackFocusedPromptWithContext(issueId, finalContextInfo)
|
|
81
|
-
: createUserStoriesAnalysisPromptWithContext(issueId, finalContextInfo);
|
|
82
|
-
if (verbose && hasFeedbacks && hasExistingArtifacts) {
|
|
83
|
-
logInfo('Using feedback-focused prompt (re-run with human feedbacks detected)');
|
|
84
|
-
}
|
|
85
|
-
return { issueContext, analysisPrompt, hasFeedbacks };
|
|
86
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type DownloadedImage } from '../../utils/image-downloader.js';
|
|
2
|
-
import { type UserStoriesAnalysisContext } from './context.js';
|
|
3
|
-
export declare function formatUserStoriesAnalysisContext(context: UserStoriesAnalysisContext): Promise<{
|
|
4
|
-
content: string;
|
|
5
|
-
downloadedImages: DownloadedImage[];
|
|
6
|
-
}>;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { formatUserStories } from '../../utils/formatters.js';
|
|
2
|
-
import { downloadImagesForClaudeCode, } from '../../utils/image-downloader.js';
|
|
3
|
-
export async function formatUserStoriesAnalysisContext(context) {
|
|
4
|
-
const { processedMarkdown, downloadedImages } = await downloadImagesForClaudeCode(context.issue.description || 'No description provided', context.issue.id);
|
|
5
|
-
const content = `# User Stories Analysis Context
|
|
6
|
-
|
|
7
|
-
## Issue Information
|
|
8
|
-
- **ID**: ${context.issue.id}
|
|
9
|
-
- **Name**: ${context.issue.name}
|
|
10
|
-
- **Description**:
|
|
11
|
-
${processedMarkdown}
|
|
12
|
-
|
|
13
|
-
${downloadedImages.length > 0 ? '**IMPORTANT**: The description contains images that have been downloaded locally. Please use the Read tool to view these images to fully understand the requirements.' : ''}
|
|
14
|
-
|
|
15
|
-
- **Current Status**: ${context.issue.status}
|
|
16
|
-
|
|
17
|
-
## Product Information
|
|
18
|
-
- **Product**: ${context.product.name}
|
|
19
|
-
- **Product ID**: ${context.product.id}
|
|
20
|
-
- **Description**: ${context.product.description || 'No product description'}
|
|
21
|
-
|
|
22
|
-
## Existing User Stories (${context.existing_user_stories.length})
|
|
23
|
-
${formatUserStories(context.existing_user_stories)}
|
|
24
|
-
|
|
25
|
-
## Current Technical Design
|
|
26
|
-
${context.issue.technical_design || 'No technical design available yet'}
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
**Analysis Instructions**: Based on the above issue information and existing user stories, conduct comprehensive business analysis to create professional, detailed user stories that add business value.`;
|
|
31
|
-
return { content, downloadedImages };
|
|
32
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type ChecklistPhaseContext } from '../../services/checklist.js';
|
|
2
|
-
import { type EdsgerConfig } from '../../types/index.js';
|
|
3
|
-
import { type UserStoriesAnalysisResult } from './outcome.js';
|
|
4
|
-
export interface UserStoriesAnalysisOptions {
|
|
5
|
-
issueId: string;
|
|
6
|
-
verbose?: boolean;
|
|
7
|
-
maxVerificationIterations?: number;
|
|
8
|
-
}
|
|
9
|
-
export declare const analyseUserStories: (options: UserStoriesAnalysisOptions, config: EdsgerConfig, checklistContext?: ChecklistPhaseContext | null) => Promise<UserStoriesAnalysisResult>;
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { logIssuePhaseEvent } from '../../services/audit-logs.js';
|
|
2
|
-
import { extractChecklistItems, runPhaseCoaching, } from '../../services/coaching/index.js';
|
|
3
|
-
import { logError, logInfo, logWarning } from '../../utils/logger.js';
|
|
4
|
-
import { performVerificationCycle } from '../issue-analysis-verification/index.js';
|
|
5
|
-
import { executeUserStoriesAnalysisQuery, parseAnalysisResult, } from './agent.js';
|
|
6
|
-
import { prepareUserStoriesAnalysisContext } from './context.js';
|
|
7
|
-
import { buildUserStoriesAnalysisResult, deleteSpecificUserStories, deleteUserStoryArtifacts, getAllDraftUserStoryIds, resetReadyUserStoriesToDraft, saveUserStoriesAsDraft, updateUserStoriesToReady, } from './outcome.js';
|
|
8
|
-
import { createUserStoriesAnalysisSystemPrompt } from './prompts.js';
|
|
9
|
-
export const analyseUserStories = async (options, config, checklistContext) => {
|
|
10
|
-
const { issueId, verbose } = options;
|
|
11
|
-
if (verbose) {
|
|
12
|
-
logInfo(`Starting user stories analysis for issue ID: ${issueId}`);
|
|
13
|
-
}
|
|
14
|
-
try {
|
|
15
|
-
// Reset pending_approval user stories to draft so AI can manage them on re-run
|
|
16
|
-
const resetCount = await resetReadyUserStoriesToDraft(issueId, verbose);
|
|
17
|
-
if (verbose && resetCount > 0) {
|
|
18
|
-
logInfo(`✅ Reset ${resetCount} pending_approval user stories to draft for re-analysis`);
|
|
19
|
-
}
|
|
20
|
-
const context = await prepareUserStoriesAnalysisContext(issueId, checklistContext, verbose);
|
|
21
|
-
const systemPrompt = await createUserStoriesAnalysisSystemPrompt();
|
|
22
|
-
const initialAnalysisPrompt = context.analysisPrompt;
|
|
23
|
-
const maxIterations = options.maxVerificationIterations || 10;
|
|
24
|
-
let currentIteration = 0;
|
|
25
|
-
let currentPrompt = initialAnalysisPrompt;
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
-
let structuredAnalysisResult = null;
|
|
28
|
-
let verificationResult = null;
|
|
29
|
-
if (verbose) {
|
|
30
|
-
logInfo('Starting Claude Code query for user stories analysis...');
|
|
31
|
-
}
|
|
32
|
-
let currentDraftUserStoryIds = [];
|
|
33
|
-
while (currentIteration < maxIterations) {
|
|
34
|
-
currentIteration++;
|
|
35
|
-
if (verbose && currentIteration > 1) {
|
|
36
|
-
logInfo(`\n🔄 Iteration ${currentIteration}/${maxIterations}: Improving user stories based on verification feedback...`);
|
|
37
|
-
}
|
|
38
|
-
if (currentIteration > 1) {
|
|
39
|
-
await logIssuePhaseEvent({
|
|
40
|
-
issueId,
|
|
41
|
-
eventType: 'phase_started',
|
|
42
|
-
phase: 'user_stories_analysis',
|
|
43
|
-
result: 'info',
|
|
44
|
-
metadata: {
|
|
45
|
-
iteration: currentIteration,
|
|
46
|
-
max_iterations: maxIterations,
|
|
47
|
-
re_analysis: true,
|
|
48
|
-
timestamp: new Date().toISOString(),
|
|
49
|
-
},
|
|
50
|
-
}, verbose);
|
|
51
|
-
}
|
|
52
|
-
structuredAnalysisResult = await executeUserStoriesAnalysisQuery(currentPrompt, systemPrompt, config, verbose);
|
|
53
|
-
if (!structuredAnalysisResult) {
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
await logIssuePhaseEvent({
|
|
57
|
-
issueId,
|
|
58
|
-
eventType: 'phase_completed',
|
|
59
|
-
phase: 'user_stories_analysis',
|
|
60
|
-
result: 'success',
|
|
61
|
-
metadata: {
|
|
62
|
-
iteration: currentIteration,
|
|
63
|
-
max_iterations: maxIterations,
|
|
64
|
-
analysis_step: 'completed',
|
|
65
|
-
user_stories_count: structuredAnalysisResult.created_user_stories?.length || 0,
|
|
66
|
-
deleted_user_stories_count: structuredAnalysisResult.deleted_user_story_ids?.length || 0,
|
|
67
|
-
timestamp: new Date().toISOString(),
|
|
68
|
-
},
|
|
69
|
-
}, verbose);
|
|
70
|
-
// Handle deletions identified by AI
|
|
71
|
-
if (structuredAnalysisResult.deleted_user_story_ids?.length > 0) {
|
|
72
|
-
if (verbose) {
|
|
73
|
-
logInfo('🗑️ Processing user story deletions identified by AI...');
|
|
74
|
-
}
|
|
75
|
-
await deleteSpecificUserStories(issueId, structuredAnalysisResult.deleted_user_story_ids || [], structuredAnalysisResult.deletion_reasons || {}, verbose);
|
|
76
|
-
}
|
|
77
|
-
// Save user stories as draft
|
|
78
|
-
const { userStoryIds } = await saveUserStoriesAsDraft(issueId, structuredAnalysisResult.created_user_stories || [], verbose);
|
|
79
|
-
currentDraftUserStoryIds = userStoryIds;
|
|
80
|
-
// Coaching loop between execute and verify
|
|
81
|
-
await runPhaseCoaching({
|
|
82
|
-
issueId,
|
|
83
|
-
phase: 'user_stories_analysis',
|
|
84
|
-
phaseResult: structuredAnalysisResult,
|
|
85
|
-
checklistItems: extractChecklistItems(checklistContext),
|
|
86
|
-
onImproved: async (_sessionId, responseText) => {
|
|
87
|
-
const parsed = parseAnalysisResult(responseText);
|
|
88
|
-
if (parsed.analysis) {
|
|
89
|
-
await deleteUserStoryArtifacts(currentDraftUserStoryIds, verbose);
|
|
90
|
-
const { userStoryIds: newUserStoryIds } = await saveUserStoriesAsDraft(issueId, parsed.analysis.created_user_stories || [], verbose);
|
|
91
|
-
currentDraftUserStoryIds = newUserStoryIds;
|
|
92
|
-
structuredAnalysisResult = parsed.analysis;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
logWarning(`Coaching improvement response could not be parsed for user-stories-analysis. Keeping previous drafts. ${parsed.error || ''}`);
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
verbose,
|
|
99
|
-
});
|
|
100
|
-
// Perform verification cycle
|
|
101
|
-
const verificationCycle = await performVerificationCycle({
|
|
102
|
-
structuredAnalysisResult: {
|
|
103
|
-
...structuredAnalysisResult,
|
|
104
|
-
created_test_cases: [],
|
|
105
|
-
},
|
|
106
|
-
checklistContext: checklistContext || null,
|
|
107
|
-
context: context.issueContext,
|
|
108
|
-
config,
|
|
109
|
-
currentIteration,
|
|
110
|
-
maxIterations,
|
|
111
|
-
issueId,
|
|
112
|
-
verbose,
|
|
113
|
-
});
|
|
114
|
-
({ verificationResult } = verificationCycle);
|
|
115
|
-
if (verificationCycle.passed) {
|
|
116
|
-
if (verbose) {
|
|
117
|
-
logInfo('✅ Verification passed! Updating all draft user stories to pending_approval status...');
|
|
118
|
-
}
|
|
119
|
-
// Update ALL remaining draft stories (both kept old ones and newly created)
|
|
120
|
-
const allDraftIds = await getAllDraftUserStoryIds(issueId, verbose);
|
|
121
|
-
await updateUserStoriesToReady(allDraftIds, verbose);
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
if (currentIteration < maxIterations && verificationCycle.nextPrompt) {
|
|
125
|
-
if (verbose) {
|
|
126
|
-
logInfo('🗑️ Deleting draft user stories for re-analysis...');
|
|
127
|
-
}
|
|
128
|
-
await deleteUserStoryArtifacts(currentDraftUserStoryIds, verbose);
|
|
129
|
-
currentPrompt = verificationCycle.nextPrompt;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
if (verbose) {
|
|
133
|
-
logInfo('⚠️ Max iterations reached. Draft user stories kept for manual review.');
|
|
134
|
-
}
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (!structuredAnalysisResult) {
|
|
139
|
-
throw new Error('No analysis results received');
|
|
140
|
-
}
|
|
141
|
-
// If no checklist was used, update all draft artifacts to pending_approval
|
|
142
|
-
if (!checklistContext ||
|
|
143
|
-
checklistContext.checklists.length === 0 ||
|
|
144
|
-
!verificationResult) {
|
|
145
|
-
const allDraftIds = await getAllDraftUserStoryIds(issueId, verbose);
|
|
146
|
-
if (allDraftIds.length > 0) {
|
|
147
|
-
if (verbose) {
|
|
148
|
-
logInfo('✅ No checklist verification needed. Updating all draft user stories to pending_approval status...');
|
|
149
|
-
}
|
|
150
|
-
await updateUserStoriesToReady(allDraftIds, verbose);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (verificationResult &&
|
|
154
|
-
verificationResult.rejected_count > 0 &&
|
|
155
|
-
checklistContext &&
|
|
156
|
-
checklistContext.checklists.length > 0) {
|
|
157
|
-
logError(`❌ Final result: Checklist verification FAILED after ${currentIteration} iterations`);
|
|
158
|
-
logError(` Draft user stories (${currentDraftUserStoryIds.length}) kept for manual review`);
|
|
159
|
-
throw new Error(`Checklist verification failed after ${currentIteration} iterations`);
|
|
160
|
-
}
|
|
161
|
-
return buildUserStoriesAnalysisResult(issueId, context.issueContext, structuredAnalysisResult, currentIteration);
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
logError(`User stories analysis failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
165
|
-
return {
|
|
166
|
-
issueId,
|
|
167
|
-
productInfo: null,
|
|
168
|
-
issueInfo: null,
|
|
169
|
-
existingUserStories: [],
|
|
170
|
-
createdUserStories: [],
|
|
171
|
-
summary: `Analysis failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
172
|
-
status: 'error',
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type UserStoriesAnalysisContext } from './context.js';
|
|
2
|
-
export declare function resetReadyUserStoriesToDraft(issueId: string, verbose?: boolean): Promise<number>;
|
|
3
|
-
export declare function getAllDraftUserStoryIds(issueId: string, verbose?: boolean): Promise<string[]>;
|
|
4
|
-
export declare function deleteUserStoryArtifacts(userStoryIds: string[], verbose?: boolean): Promise<void>;
|
|
5
|
-
export declare function deleteSpecificUserStories(issueId: string, deletedUserStoryIds: string[], deletionReasons: Record<string, string>, verbose?: boolean): Promise<void>;
|
|
6
|
-
export declare function updateUserStoriesToReady(userStoryIds: string[], verbose?: boolean): Promise<void>;
|
|
7
|
-
export declare function saveUserStoriesAsDraft(issueId: string, createdUserStories: any[], verbose?: boolean): Promise<{
|
|
8
|
-
userStoryIds: string[];
|
|
9
|
-
}>;
|
|
10
|
-
export interface UserStoriesAnalysisResult {
|
|
11
|
-
issueId: string;
|
|
12
|
-
productInfo: unknown;
|
|
13
|
-
issueInfo: unknown;
|
|
14
|
-
existingUserStories: any[];
|
|
15
|
-
createdUserStories: any[];
|
|
16
|
-
summary: string;
|
|
17
|
-
status: 'pending' | 'success' | 'error';
|
|
18
|
-
data?: {
|
|
19
|
-
checklist_results?: any[];
|
|
20
|
-
checklist_item_results?: any[];
|
|
21
|
-
verification_result?: any;
|
|
22
|
-
iterations?: number;
|
|
23
|
-
deleted_user_story_ids?: string[];
|
|
24
|
-
deletion_reasons?: Record<string, string>;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
export declare function buildUserStoriesAnalysisResult(issueId: string, context: UserStoriesAnalysisContext, structuredAnalysisResult: any, currentIteration: number): UserStoriesAnalysisResult;
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { batchDeleteUserStories, batchUpdateUserStoryStatus, getUserStories, } from '../../api/issues/index.js';
|
|
2
|
-
import { callMcpEndpoint } from '../../api/mcp-client.js';
|
|
3
|
-
import { logError, logInfo } from '../../utils/logger.js';
|
|
4
|
-
export async function resetReadyUserStoriesToDraft(issueId, verbose) {
|
|
5
|
-
const stories = await getUserStories(issueId, false);
|
|
6
|
-
const readyStoryIds = stories
|
|
7
|
-
.filter((story) => story.status === 'pending_approval')
|
|
8
|
-
.map((story) => story.id);
|
|
9
|
-
if (readyStoryIds.length === 0) {
|
|
10
|
-
return 0;
|
|
11
|
-
}
|
|
12
|
-
if (verbose) {
|
|
13
|
-
logInfo(`🔄 Resetting ${readyStoryIds.length} ready user stories to draft for re-analysis...`);
|
|
14
|
-
}
|
|
15
|
-
await batchUpdateUserStoryStatus(readyStoryIds, 'draft', verbose);
|
|
16
|
-
return readyStoryIds.length;
|
|
17
|
-
}
|
|
18
|
-
export async function getAllDraftUserStoryIds(issueId, verbose) {
|
|
19
|
-
const stories = await getUserStories(issueId, false);
|
|
20
|
-
const draftIds = stories
|
|
21
|
-
.filter((story) => story.status === 'draft')
|
|
22
|
-
.map((story) => story.id);
|
|
23
|
-
if (verbose) {
|
|
24
|
-
logInfo(`Found ${draftIds.length} draft user stories for issue`);
|
|
25
|
-
}
|
|
26
|
-
return draftIds;
|
|
27
|
-
}
|
|
28
|
-
export async function deleteUserStoryArtifacts(userStoryIds, verbose) {
|
|
29
|
-
if (userStoryIds.length > 0) {
|
|
30
|
-
if (verbose) {
|
|
31
|
-
logInfo(`Deleting ${userStoryIds.length} user stories due to verification failure...`);
|
|
32
|
-
}
|
|
33
|
-
await batchDeleteUserStories(userStoryIds, verbose);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
function isValidUUID(id) {
|
|
37
|
-
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
38
|
-
return uuidRegex.test(id);
|
|
39
|
-
}
|
|
40
|
-
export async function deleteSpecificUserStories(issueId, deletedUserStoryIds, deletionReasons, verbose) {
|
|
41
|
-
const currentUserStories = await getUserStories(issueId, false);
|
|
42
|
-
const userStoryStatusMap = new Map(currentUserStories.map((story) => [story.id, story.status]));
|
|
43
|
-
const validUserStoryIds = deletedUserStoryIds.filter((id) => {
|
|
44
|
-
if (!isValidUUID(id)) {
|
|
45
|
-
logError(`Invalid user story UUID format: ${id}`);
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
const status = userStoryStatusMap.get(id);
|
|
49
|
-
if (!status) {
|
|
50
|
-
logError(`User story not found: ${id}`);
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
if (status !== 'draft') {
|
|
54
|
-
logError(`Cannot delete user story ${id}: status is '${status}', only 'draft' items can be deleted`);
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
58
|
-
});
|
|
59
|
-
if (validUserStoryIds.length > 0) {
|
|
60
|
-
if (verbose) {
|
|
61
|
-
logInfo(`Deleting ${validUserStoryIds.length} draft user stories identified by AI...`);
|
|
62
|
-
validUserStoryIds.forEach((id) => {
|
|
63
|
-
const reason = deletionReasons[id] || 'No reason provided';
|
|
64
|
-
logInfo(` - ${id}: ${reason}`);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
await batchDeleteUserStories(validUserStoryIds, verbose);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
export async function updateUserStoriesToReady(userStoryIds, verbose) {
|
|
71
|
-
if (userStoryIds.length > 0) {
|
|
72
|
-
if (verbose) {
|
|
73
|
-
logInfo(`Updating ${userStoryIds.length} user stories from draft to pending_approval...`);
|
|
74
|
-
}
|
|
75
|
-
await batchUpdateUserStoryStatus(userStoryIds, 'pending_approval', verbose);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
export async function saveUserStoriesAsDraft(issueId,
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
80
|
-
createdUserStories, verbose) {
|
|
81
|
-
const userStoryIds = [];
|
|
82
|
-
if (createdUserStories && createdUserStories.length > 0) {
|
|
83
|
-
if (verbose) {
|
|
84
|
-
logInfo(`Saving ${createdUserStories.length} user stories as draft...`);
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
const result = (await callMcpEndpoint('user_stories/create', {
|
|
88
|
-
issue_id: issueId,
|
|
89
|
-
user_stories: createdUserStories.map((story) => ({
|
|
90
|
-
title: story.title,
|
|
91
|
-
description: story.description,
|
|
92
|
-
status: 'draft',
|
|
93
|
-
})),
|
|
94
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
|
-
}));
|
|
96
|
-
if (result.created_user_stories) {
|
|
97
|
-
userStoryIds.push(
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
-
...result.created_user_stories.map((story) => story.id));
|
|
100
|
-
if (verbose) {
|
|
101
|
-
logInfo(`✅ Saved ${userStoryIds.length} user stories as draft`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
logError(`Failed to save user stories: ${error instanceof Error ? error.message : String(error)}`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return { userStoryIds };
|
|
110
|
-
}
|
|
111
|
-
export function buildUserStoriesAnalysisResult(issueId, context,
|
|
112
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
|
-
structuredAnalysisResult, currentIteration) {
|
|
114
|
-
const { created_user_stories, deleted_user_story_ids, deletion_reasons, checklist_results, checklist_item_results, } = structuredAnalysisResult;
|
|
115
|
-
return {
|
|
116
|
-
issueId,
|
|
117
|
-
productInfo: context.product,
|
|
118
|
-
issueInfo: context.issue,
|
|
119
|
-
existingUserStories: context.existing_user_stories.map((story) => ({
|
|
120
|
-
...story,
|
|
121
|
-
status: story.status === 'pending_approval' ? 'pending_approval' : 'draft',
|
|
122
|
-
created_at: story.created_at || new Date().toISOString(),
|
|
123
|
-
updated_at: story.updated_at || new Date().toISOString(),
|
|
124
|
-
})),
|
|
125
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
-
createdUserStories: (created_user_stories || []).map((story) => ({
|
|
127
|
-
id: '',
|
|
128
|
-
title: story.title,
|
|
129
|
-
description: story.description,
|
|
130
|
-
status: 'draft',
|
|
131
|
-
created_at: new Date().toISOString(),
|
|
132
|
-
updated_at: new Date().toISOString(),
|
|
133
|
-
})),
|
|
134
|
-
summary: structuredAnalysisResult.summary ||
|
|
135
|
-
`User stories analysis completed${currentIteration > 1 ? ` after ${currentIteration} iterations` : ''}`,
|
|
136
|
-
status: structuredAnalysisResult.status === 'success' ? 'success' : 'error',
|
|
137
|
-
data: {
|
|
138
|
-
checklist_results,
|
|
139
|
-
checklist_item_results,
|
|
140
|
-
verification_result: structuredAnalysisResult.verification_result,
|
|
141
|
-
iterations: currentIteration,
|
|
142
|
-
deleted_user_story_ids: deleted_user_story_ids || [],
|
|
143
|
-
deletion_reasons: deletion_reasons || {},
|
|
144
|
-
},
|
|
145
|
-
};
|
|
146
|
-
}
|