fraim-framework 2.0.56 → 2.0.58
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/CHANGELOG.md +10 -0
- package/bin/fraim-mcp.js +14 -0
- package/bin/fraim.js +23 -0
- package/dist/src/cli/commands/init-project.js +10 -4
- package/dist/src/cli/commands/mcp.js +65 -0
- package/dist/src/cli/setup/mcp-config-generator.js +19 -16
- package/dist/src/fraim/issue-tracking/ado-provider.js +304 -0
- package/dist/src/fraim/issue-tracking/factory.js +63 -0
- package/dist/src/fraim/issue-tracking/github-provider.js +200 -0
- package/dist/src/fraim/issue-tracking/types.js +7 -0
- package/dist/src/fraim/issue-tracking-config.js +83 -0
- package/dist/src/local-mcp-server/stdio-server.js +207 -0
- package/dist/src/utils/workflow-parser.js +81 -0
- package/package.json +17 -12
- package/registry/scripts/pdf-styles.css +172 -0
- package/registry/scripts/prep-issue.sh +46 -4
- package/registry/scripts/profile-server.ts +131 -130
- package/registry/stubs/workflows/customer-development/user-survey-dispatch.md +1 -1
- package/registry/stubs/workflows/customer-development/users-to-target.md +1 -1
- package/registry/stubs/workflows/product-building/design.md +1 -1
- package/registry/stubs/workflows/product-building/implement.md +1 -1
- package/Claude.md +0 -1
- package/dist/registry/ai-manager-rules/customer-development-phases/phase1-customer-profiling.md +0 -101
- package/dist/registry/ai-manager-rules/customer-development-phases/phase2-platform-discovery.md +0 -235
- package/dist/registry/ai-manager-rules/customer-development-phases/phase3-prospect-qualification.md +0 -243
- package/dist/registry/ai-manager-rules/customer-development-phases/phase4-inventory-compilation.md +0 -206
- package/dist/registry/ai-manager-rules/design-phases/design-completeness-review.md +0 -73
- package/dist/registry/ai-manager-rules/design-phases/design-design.md +0 -145
- package/dist/registry/ai-manager-rules/implement-phases/implement-code.md +0 -283
- package/dist/registry/ai-manager-rules/implement-phases/implement-completeness-review.md +0 -120
- package/dist/registry/ai-manager-rules/implement-phases/implement-regression.md +0 -173
- package/dist/registry/ai-manager-rules/implement-phases/implement-repro.md +0 -104
- package/dist/registry/ai-manager-rules/implement-phases/implement-scoping.md +0 -100
- package/dist/registry/ai-manager-rules/implement-phases/implement-smoke.md +0 -237
- package/dist/registry/ai-manager-rules/implement-phases/implement-spike.md +0 -121
- package/dist/registry/ai-manager-rules/implement-phases/implement-validate.md +0 -375
- package/dist/registry/ai-manager-rules/retrospective.md +0 -116
- package/dist/registry/ai-manager-rules/shared-phases/address-pr-feedback.md +0 -188
- package/dist/registry/ai-manager-rules/shared-phases/submit-pr.md +0 -202
- package/dist/registry/ai-manager-rules/shared-phases/wait-for-pr-review.md +0 -170
- package/dist/registry/ai-manager-rules/spec-phases/spec-competitor-analysis.md +0 -105
- package/dist/registry/ai-manager-rules/spec-phases/spec-completeness-review.md +0 -66
- package/dist/registry/ai-manager-rules/spec-phases/spec-spec.md +0 -139
- package/dist/registry/ai-manager-rules/user-survey-phases/phase1-survey-scoping.md +0 -60
- package/dist/registry/ai-manager-rules/user-survey-phases/phase2-survey-build-linkedin.md +0 -23
- package/dist/registry/ai-manager-rules/user-survey-phases/phase3-survey-build-reddit.md +0 -22
- package/dist/registry/ai-manager-rules/user-survey-phases/phase4-survey-build-x.md +0 -21
- package/dist/registry/ai-manager-rules/user-survey-phases/phase5-survey-build-facebook.md +0 -19
- package/dist/registry/ai-manager-rules/user-survey-phases/phase6-survey-build-custom.md +0 -15
- package/dist/registry/ai-manager-rules/user-survey-phases/phase7-survey-dispatch.md +0 -45
- package/dist/registry/providers/ado.json +0 -19
- package/dist/registry/providers/github.json +0 -19
- package/dist/registry/scripts/cleanup-branch.js +0 -287
- package/dist/registry/scripts/evaluate-code-quality.js +0 -66
- package/dist/registry/scripts/exec-with-timeout.js +0 -142
- package/dist/registry/scripts/generate-engagement-emails.js +0 -705
- package/dist/registry/scripts/newsletter-helpers.js +0 -671
- package/dist/registry/scripts/profile-server.js +0 -388
- package/dist/registry/scripts/run-thank-you-workflow.js +0 -92
- package/dist/registry/scripts/send-newsletter-simple.js +0 -85
- package/dist/registry/scripts/send-thank-you-emails.js +0 -54
- package/dist/registry/scripts/validate-openapi-limits.js +0 -311
- package/dist/registry/scripts/validate-test-coverage.js +0 -262
- package/dist/registry/scripts/verify-test-coverage.js +0 -66
- package/dist/registry/templates/bootstrap/ARCHITECTURE-TEMPLATE.md +0 -53
- package/dist/registry/templates/bootstrap/CODE-QUALITY-REPORT-TEMPLATE.md +0 -37
- package/dist/registry/templates/bootstrap/TEST-COVERAGE-REPORT-TEMPLATE.md +0 -35
- package/dist/registry/templates/business-development/IDEATION-REPORT-TEMPLATE.md +0 -29
- package/dist/registry/templates/business-development/PRICING-STRATEGY-TEMPLATE.md +0 -126
- package/dist/registry/templates/customer-development/customer-interview-template.md +0 -99
- package/dist/registry/templates/customer-development/customer-persona-template.md +0 -69
- package/dist/registry/templates/customer-development/follow-up-email-templates.md +0 -132
- package/dist/registry/templates/customer-development/insight-analysis-template.md +0 -74
- package/dist/registry/templates/customer-development/prospect-inventory-template.csv +0 -3
- package/dist/registry/templates/customer-development/search-strategy-template.md +0 -123
- package/dist/registry/templates/customer-development/strategic-recommendations-template.md +0 -53
- package/dist/registry/templates/customer-development/thank-you-email-template.html +0 -124
- package/dist/registry/templates/customer-development/thank-you-note-template.md +0 -16
- package/dist/registry/templates/customer-development/triage-log-template.md +0 -278
- package/dist/registry/templates/customer-development/weekly-newsletter-template.html +0 -204
- package/dist/registry/templates/evidence/Design-Evidence.md +0 -30
- package/dist/registry/templates/evidence/Implementation-BugEvidence.md +0 -94
- package/dist/registry/templates/evidence/Implementation-FeatureEvidence.md +0 -129
- package/dist/registry/templates/evidence/Spec-Evidence.md +0 -19
- package/dist/registry/templates/help/HelpNeeded.md +0 -14
- package/dist/registry/templates/legal/NDA-TEMPLATE.md +0 -170
- package/dist/registry/templates/legal/PATENT-TEMPLATE.md +0 -372
- package/dist/registry/templates/legal/TRADEMARK-TEMPLATE.md +0 -339
- package/dist/registry/templates/legal/contract-review-checklist.md +0 -193
- package/dist/registry/templates/legal/review-report-template.md +0 -198
- package/dist/registry/templates/legal/saas-terms-template.md +0 -174
- package/dist/registry/templates/legal/sow-template.md +0 -117
- package/dist/registry/templates/legal/template-variables.md +0 -131
- package/dist/registry/templates/marketing/DOMAIN-REGISTRATION-TEMPLATE.md +0 -194
- package/dist/registry/templates/marketing/HBR-ARTICLE-TEMPLATE.md +0 -66
- package/dist/registry/templates/marketing/STORYTELLING-TEMPLATE.md +0 -130
- package/dist/registry/templates/marketing/WEBSITE-TEMPLATE.md +0 -262
- package/dist/registry/templates/marketing/github-pages-workflow.yml +0 -64
- package/dist/registry/templates/replicate/implementation-checklist.md +0 -39
- package/dist/registry/templates/replicate/use-cases-template.md +0 -88
- package/dist/registry/templates/retrospective/RETROSPECTIVE-TEMPLATE.md +0 -55
- package/dist/registry/templates/specs/BUGSPEC-TEMPLATE.md +0 -37
- package/dist/registry/templates/specs/FEATURESPEC-TEMPLATE.md +0 -66
- package/dist/registry/templates/specs/TECHSPEC-TEMPLATE.md +0 -39
- package/dist/registry/workflows/bootstrap/create-architecture.md +0 -38
- package/dist/registry/workflows/bootstrap/detect-broken-windows.md +0 -300
- package/dist/registry/workflows/bootstrap/evaluate-code-quality.md +0 -35
- package/dist/registry/workflows/bootstrap/verify-test-coverage.md +0 -36
- package/dist/registry/workflows/brainstorming/blue-sky-brainstorming.md +0 -211
- package/dist/registry/workflows/brainstorming/codebase-brainstorming.md +0 -165
- package/dist/registry/workflows/business-development/create-business-plan.md +0 -737
- package/dist/registry/workflows/business-development/ideate-business-opportunity.md +0 -55
- package/dist/registry/workflows/business-development/price-product.md +0 -325
- package/dist/registry/workflows/compliance/detect-compliance-requirements.md +0 -78
- package/dist/registry/workflows/compliance/generate-audit-evidence.md +0 -75
- package/dist/registry/workflows/compliance/soc2-evidence-generator.md +0 -332
- package/dist/registry/workflows/customer-development/insight-analysis.md +0 -156
- package/dist/registry/workflows/customer-development/insight-triage.md +0 -938
- package/dist/registry/workflows/customer-development/interview-preparation.md +0 -452
- package/dist/registry/workflows/customer-development/linkedin-outreach.md +0 -593
- package/dist/registry/workflows/customer-development/strategic-brainstorming.md +0 -146
- package/dist/registry/workflows/customer-development/thank-customers.md +0 -203
- package/dist/registry/workflows/customer-development/user-survey-dispatch.md +0 -60
- package/dist/registry/workflows/customer-development/users-to-target.md +0 -112
- package/dist/registry/workflows/customer-development/weekly-newsletter.md +0 -366
- package/dist/registry/workflows/deploy/cloud-deployment.md +0 -310
- package/dist/registry/workflows/improve-fraim/contribute.md +0 -32
- package/dist/registry/workflows/improve-fraim/file-issue.md +0 -32
- package/dist/registry/workflows/learning/build-skillset.md +0 -212
- package/dist/registry/workflows/learning/synthesize-learnings.md +0 -284
- package/dist/registry/workflows/legal/contract-review-analysis.md +0 -382
- package/dist/registry/workflows/legal/nda.md +0 -69
- package/dist/registry/workflows/legal/patent-filing.md +0 -76
- package/dist/registry/workflows/legal/saas-contract-development.md +0 -213
- package/dist/registry/workflows/legal/trademark-filing.md +0 -77
- package/dist/registry/workflows/marketing/content-creation.md +0 -37
- package/dist/registry/workflows/marketing/convert-to-pdf.md +0 -235
- package/dist/registry/workflows/marketing/create-modern-website.md +0 -456
- package/dist/registry/workflows/marketing/domain-registration.md +0 -323
- package/dist/registry/workflows/marketing/hbr-article.md +0 -73
- package/dist/registry/workflows/marketing/launch-checklist.md +0 -37
- package/dist/registry/workflows/marketing/marketing-strategy.md +0 -45
- package/dist/registry/workflows/marketing/storytelling.md +0 -65
- package/dist/registry/workflows/performance/analyze-performance.md +0 -65
- package/dist/registry/workflows/product-building/design.md +0 -103
- package/dist/registry/workflows/product-building/implement.md +0 -74
- package/dist/registry/workflows/product-building/iterate-on-pr-comments.md +0 -70
- package/dist/registry/workflows/product-building/prep-issue.md +0 -41
- package/dist/registry/workflows/product-building/prototype.md +0 -65
- package/dist/registry/workflows/product-building/resolve.md +0 -168
- package/dist/registry/workflows/product-building/retrospect.md +0 -86
- package/dist/registry/workflows/product-building/spec.md +0 -181
- package/dist/registry/workflows/product-building/test.md +0 -125
- package/dist/registry/workflows/productivity-report/productivity-report.md +0 -263
- package/dist/registry/workflows/quality-assurance/browser-validation.md +0 -221
- package/dist/registry/workflows/quality-assurance/iterative-improvement-cycle.md +0 -562
- package/dist/registry/workflows/replicate/replicate-discovery.md +0 -336
- package/dist/registry/workflows/replicate/replicate-to-issues.md +0 -324
- package/dist/registry/workflows/reviewer/review-implementation-vs-design-spec.md +0 -638
- package/dist/registry/workflows/reviewer/review-implementation-vs-feature-spec.md +0 -675
- package/dist/registry/workflows/startup-credits/aws-activate-application.md +0 -535
- package/dist/registry/workflows/startup-credits/google-cloud-application.md +0 -647
- package/dist/registry/workflows/startup-credits/microsoft-azure-application.md +0 -538
- package/dist/scripts/build-stub-registry.js +0 -108
- package/dist/src/ai-manager/ai-manager.js +0 -480
- package/dist/src/ai-manager/phase-flow.js +0 -357
- package/dist/src/ai-manager/types.js +0 -5
- package/dist/src/fraim-mcp-server.js +0 -1885
- package/dist/tests/debug-tools.js +0 -80
- package/dist/tests/shared-server-utils.js +0 -57
- package/dist/tests/test-add-ide.js +0 -283
- package/dist/tests/test-ai-coach-edge-cases.js +0 -420
- package/dist/tests/test-ai-coach-mcp-integration.js +0 -450
- package/dist/tests/test-ai-coach-performance.js +0 -328
- package/dist/tests/test-ai-coach-phase-content.js +0 -264
- package/dist/tests/test-ai-coach-workflows.js +0 -514
- package/dist/tests/test-cli.js +0 -228
- package/dist/tests/test-client-scripts-validation.js +0 -167
- package/dist/tests/test-complete-setup-flow.js +0 -110
- package/dist/tests/test-config-system.js +0 -279
- package/dist/tests/test-debug-session.js +0 -134
- package/dist/tests/test-end-to-end-hybrid-validation.js +0 -328
- package/dist/tests/test-enhanced-session-init.js +0 -188
- package/dist/tests/test-first-run-journey.js +0 -368
- package/dist/tests/test-fraim-issues.js +0 -59
- package/dist/tests/test-genericization.js +0 -44
- package/dist/tests/test-hybrid-script-execution.js +0 -340
- package/dist/tests/test-ide-detector.js +0 -46
- package/dist/tests/test-improved-setup.js +0 -121
- package/dist/tests/test-mcp-config-generator.js +0 -99
- package/dist/tests/test-mcp-connection.js +0 -107
- package/dist/tests/test-mcp-issue-integration.js +0 -156
- package/dist/tests/test-mcp-lifecycle-methods.js +0 -240
- package/dist/tests/test-mcp-shared-server.js +0 -308
- package/dist/tests/test-mcp-template-processing.js +0 -160
- package/dist/tests/test-modular-issue-tracking.js +0 -165
- package/dist/tests/test-node-compatibility.js +0 -95
- package/dist/tests/test-npm-install.js +0 -68
- package/dist/tests/test-package-size.js +0 -108
- package/dist/tests/test-pr-review-workflow.js +0 -307
- package/dist/tests/test-prep-issue.js +0 -129
- package/dist/tests/test-productivity-integration.js +0 -157
- package/dist/tests/test-script-location-independence.js +0 -198
- package/dist/tests/test-script-sync.js +0 -557
- package/dist/tests/test-server-utils.js +0 -32
- package/dist/tests/test-session-rehydration.js +0 -148
- package/dist/tests/test-setup-integration.js +0 -98
- package/dist/tests/test-setup-scenarios.js +0 -322
- package/dist/tests/test-standalone.js +0 -143
- package/dist/tests/test-stub-registry.js +0 -136
- package/dist/tests/test-sync-stubs.js +0 -143
- package/dist/tests/test-sync-version-update.js +0 -93
- package/dist/tests/test-telemetry.js +0 -193
- package/dist/tests/test-token-validator.js +0 -30
- package/dist/tests/test-user-journey.js +0 -236
- package/dist/tests/test-users-to-target-workflow.js +0 -253
- package/dist/tests/test-utils.js +0 -109
- package/dist/tests/test-wizard.js +0 -71
- package/dist/tests/test-workflow-discovery.js +0 -242
- package/labels.json +0 -52
- package/registry/agent-guardrails.md +0 -63
- package/registry/fraim.md +0 -48
- package/setup.js +0 -171
- package/tsconfig.json +0 -23
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Phase flow logic for AI Manager workflows
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getNextPhase = getNextPhase;
|
|
7
|
-
exports.isPhaseValidForWorkflow = isPhaseValidForWorkflow;
|
|
8
|
-
exports.getPhaseOnFailure = getPhaseOnFailure;
|
|
9
|
-
exports.getPhasesForWorkflow = getPhasesForWorkflow;
|
|
10
|
-
exports.getNextPhaseForImplement = getNextPhaseForImplement;
|
|
11
|
-
exports.isPhaseValidForIssueType = isPhaseValidForIssueType;
|
|
12
|
-
exports.getPhasesForIssueType = getPhasesForIssueType;
|
|
13
|
-
exports.getPhaseOnImplementFailure = getPhaseOnImplementFailure;
|
|
14
|
-
/**
|
|
15
|
-
* Phase flows for different workflow types
|
|
16
|
-
*/
|
|
17
|
-
const BUG_PHASE_FLOW = [
|
|
18
|
-
'implement-scoping',
|
|
19
|
-
'implement-repro',
|
|
20
|
-
'implement-code',
|
|
21
|
-
'implement-validate',
|
|
22
|
-
'implement-regression',
|
|
23
|
-
'implement-completeness-review',
|
|
24
|
-
'submit-pr',
|
|
25
|
-
'wait-for-pr-review',
|
|
26
|
-
'retrospective',
|
|
27
|
-
];
|
|
28
|
-
const FEATURE_PHASE_FLOW = [
|
|
29
|
-
'implement-scoping',
|
|
30
|
-
'implement-spike',
|
|
31
|
-
'implement-code',
|
|
32
|
-
'implement-validate',
|
|
33
|
-
'implement-smoke',
|
|
34
|
-
'implement-regression',
|
|
35
|
-
'implement-completeness-review',
|
|
36
|
-
'submit-pr',
|
|
37
|
-
'wait-for-pr-review',
|
|
38
|
-
'retrospective',
|
|
39
|
-
];
|
|
40
|
-
const SPEC_PHASE_FLOW = [
|
|
41
|
-
'spec-spec',
|
|
42
|
-
'spec-competitor-analysis',
|
|
43
|
-
'spec-completeness-review',
|
|
44
|
-
'submit-pr',
|
|
45
|
-
'wait-for-pr-review',
|
|
46
|
-
'retrospective',
|
|
47
|
-
];
|
|
48
|
-
const DESIGN_PHASE_FLOW = [
|
|
49
|
-
'design-design',
|
|
50
|
-
'design-completeness-review',
|
|
51
|
-
'submit-pr',
|
|
52
|
-
'wait-for-pr-review',
|
|
53
|
-
'retrospective',
|
|
54
|
-
];
|
|
55
|
-
const TEST_PHASE_FLOW = [
|
|
56
|
-
'test-test',
|
|
57
|
-
'test-validate',
|
|
58
|
-
'submit-pr',
|
|
59
|
-
'wait-for-pr-review',
|
|
60
|
-
'retrospective',
|
|
61
|
-
];
|
|
62
|
-
const CUSTOMER_DEVELOPMENT_PHASE_FLOW = [
|
|
63
|
-
'customer-profiling',
|
|
64
|
-
'platform-discovery',
|
|
65
|
-
'prospect-qualification',
|
|
66
|
-
'inventory-compilation',
|
|
67
|
-
];
|
|
68
|
-
const USER_SURVEY_PHASE_FLOW = [
|
|
69
|
-
'survey-scoping',
|
|
70
|
-
'survey-build-linkedin',
|
|
71
|
-
'survey-build-reddit',
|
|
72
|
-
'survey-build-x',
|
|
73
|
-
'survey-build-facebook',
|
|
74
|
-
'survey-build-custom',
|
|
75
|
-
'survey-dispatch',
|
|
76
|
-
];
|
|
77
|
-
/**
|
|
78
|
-
* Get the next phase in the workflow
|
|
79
|
-
* @param currentPhase - Current phase
|
|
80
|
-
* @param workflowType - Type of workflow
|
|
81
|
-
* @param issueType - Type of issue (only used for implement workflow)
|
|
82
|
-
* @returns Next phase or null if at end of workflow
|
|
83
|
-
*/
|
|
84
|
-
function getNextPhase(currentPhase, workflowType, issueType) {
|
|
85
|
-
// Special handling for address-pr-feedback phase
|
|
86
|
-
if (currentPhase === 'address-pr-feedback') {
|
|
87
|
-
// Success path: After addressing feedback, go back to appropriate validation phase
|
|
88
|
-
if (workflowType === 'implement') {
|
|
89
|
-
return 'implement-validate';
|
|
90
|
-
}
|
|
91
|
-
else if (workflowType === 'spec') {
|
|
92
|
-
return 'spec-completeness-review';
|
|
93
|
-
}
|
|
94
|
-
else if (workflowType === 'design') {
|
|
95
|
-
return 'design-completeness-review';
|
|
96
|
-
}
|
|
97
|
-
else if (workflowType === 'test') {
|
|
98
|
-
return 'test-validate';
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
throw new Error(`Unknown workflow type: ${workflowType}`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
let flow;
|
|
105
|
-
if (workflowType === 'implement') {
|
|
106
|
-
if (!issueType) {
|
|
107
|
-
throw new Error('Issue type is required for implement workflow');
|
|
108
|
-
}
|
|
109
|
-
flow = issueType === 'bug' ? BUG_PHASE_FLOW : FEATURE_PHASE_FLOW;
|
|
110
|
-
}
|
|
111
|
-
else if (workflowType === 'spec') {
|
|
112
|
-
flow = SPEC_PHASE_FLOW;
|
|
113
|
-
}
|
|
114
|
-
else if (workflowType === 'design') {
|
|
115
|
-
flow = DESIGN_PHASE_FLOW;
|
|
116
|
-
}
|
|
117
|
-
else if (workflowType === 'test') {
|
|
118
|
-
flow = TEST_PHASE_FLOW;
|
|
119
|
-
}
|
|
120
|
-
else if (workflowType === 'customer-development') {
|
|
121
|
-
flow = CUSTOMER_DEVELOPMENT_PHASE_FLOW;
|
|
122
|
-
}
|
|
123
|
-
else if (workflowType === 'user-survey') {
|
|
124
|
-
flow = USER_SURVEY_PHASE_FLOW;
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
throw new Error(`Unknown workflow type: ${workflowType}`);
|
|
128
|
-
}
|
|
129
|
-
const currentIndex = flow.indexOf(currentPhase);
|
|
130
|
-
if (currentIndex === -1) {
|
|
131
|
-
throw new Error(`Invalid phase "${currentPhase}" for workflow type "${workflowType}"`);
|
|
132
|
-
}
|
|
133
|
-
if (currentIndex >= flow.length - 1) {
|
|
134
|
-
return null; // At end of workflow
|
|
135
|
-
}
|
|
136
|
-
return flow[currentIndex + 1];
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Check if a phase is valid for the given workflow type
|
|
140
|
-
* @param phase - Phase to check
|
|
141
|
-
* @param workflowType - Type of workflow
|
|
142
|
-
* @param issueType - Type of issue (only used for implement workflow)
|
|
143
|
-
* @returns True if phase is valid for workflow type
|
|
144
|
-
*/
|
|
145
|
-
function isPhaseValidForWorkflow(phase, workflowType, issueType) {
|
|
146
|
-
let flow;
|
|
147
|
-
if (workflowType === 'implement') {
|
|
148
|
-
if (!issueType)
|
|
149
|
-
return false;
|
|
150
|
-
flow = issueType === 'bug' ? BUG_PHASE_FLOW : FEATURE_PHASE_FLOW;
|
|
151
|
-
}
|
|
152
|
-
else if (workflowType === 'spec') {
|
|
153
|
-
flow = SPEC_PHASE_FLOW;
|
|
154
|
-
}
|
|
155
|
-
else if (workflowType === 'design') {
|
|
156
|
-
flow = DESIGN_PHASE_FLOW;
|
|
157
|
-
}
|
|
158
|
-
else if (workflowType === 'test') {
|
|
159
|
-
flow = TEST_PHASE_FLOW;
|
|
160
|
-
}
|
|
161
|
-
else if (workflowType === 'customer-development') {
|
|
162
|
-
flow = CUSTOMER_DEVELOPMENT_PHASE_FLOW;
|
|
163
|
-
}
|
|
164
|
-
else if (workflowType === 'user-survey') {
|
|
165
|
-
flow = USER_SURVEY_PHASE_FLOW;
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
if (phase === 'address-pr-feedback') {
|
|
171
|
-
return ['implement', 'spec', 'design', 'test'].includes(workflowType);
|
|
172
|
-
}
|
|
173
|
-
return flow.includes(phase);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Get the phase to return to when a phase fails
|
|
177
|
-
* @param failedPhase - The phase that failed
|
|
178
|
-
* @param workflowType - Type of workflow
|
|
179
|
-
* @param issueType - Type of issue (currently unused - failure handling is the same for bug/feature)
|
|
180
|
-
* @returns Phase to return to
|
|
181
|
-
*/
|
|
182
|
-
function getPhaseOnFailure(failedPhase, workflowType, issueType // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
183
|
-
) {
|
|
184
|
-
if (workflowType === 'implement') {
|
|
185
|
-
// Implement workflow failure handling
|
|
186
|
-
switch (failedPhase) {
|
|
187
|
-
case 'implement-scoping':
|
|
188
|
-
return 'implement-scoping'; // Start over at scoping
|
|
189
|
-
case 'implement-repro':
|
|
190
|
-
return 'implement-scoping'; // Go back to understand the issue better
|
|
191
|
-
case 'implement-spike':
|
|
192
|
-
return 'implement-scoping'; // Go back to understand requirements better
|
|
193
|
-
case 'implement-code':
|
|
194
|
-
return 'implement-scoping'; // Go back to re-understand requirements
|
|
195
|
-
case 'implement-validate':
|
|
196
|
-
return 'implement-code'; // Implementation doesn't work, fix the code
|
|
197
|
-
case 'implement-smoke':
|
|
198
|
-
return 'implement-code'; // Broke existing functionality, fix the implementation
|
|
199
|
-
case 'implement-regression':
|
|
200
|
-
return 'implement-code'; // Test issues likely indicate implementation problems
|
|
201
|
-
case 'implement-completeness-review':
|
|
202
|
-
return 'implement-validate'; // Missing validation, go back to validate properly
|
|
203
|
-
case 'submit-pr':
|
|
204
|
-
return 'implement-completeness-review'; // PR submission issues, review completeness
|
|
205
|
-
case 'wait-for-pr-review':
|
|
206
|
-
// PR feedback should go to address-pr-feedback phase
|
|
207
|
-
return 'address-pr-feedback';
|
|
208
|
-
case 'retrospective':
|
|
209
|
-
// If retrospective fails, retry the same phase
|
|
210
|
-
return 'retrospective';
|
|
211
|
-
case 'address-pr-feedback':
|
|
212
|
-
// If addressing PR feedback fails, retry the same phase
|
|
213
|
-
return 'address-pr-feedback';
|
|
214
|
-
default:
|
|
215
|
-
return 'implement-code'; // Default fallback
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
else if (workflowType === 'spec') {
|
|
219
|
-
// Spec workflow failure handling
|
|
220
|
-
switch (failedPhase) {
|
|
221
|
-
case 'spec-spec':
|
|
222
|
-
return 'spec-spec'; // Start over at spec
|
|
223
|
-
case 'spec-competitor-analysis':
|
|
224
|
-
return 'spec-spec'; // Go back to improve spec if competitive analysis fails
|
|
225
|
-
case 'spec-completeness-review':
|
|
226
|
-
return 'spec-spec'; // Go back to improve competitive analysis
|
|
227
|
-
case 'submit-pr':
|
|
228
|
-
return 'spec-completeness-review';
|
|
229
|
-
case 'wait-for-pr-review':
|
|
230
|
-
return 'address-pr-feedback'; // PR feedback goes to address phase
|
|
231
|
-
case 'retrospective':
|
|
232
|
-
return 'retrospective'; // Retry retrospective if it fails
|
|
233
|
-
case 'address-pr-feedback':
|
|
234
|
-
return 'address-pr-feedback'; // Retry addressing feedback
|
|
235
|
-
default:
|
|
236
|
-
return 'spec-spec';
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
else if (workflowType === 'design') {
|
|
240
|
-
// Design workflow failure handling
|
|
241
|
-
switch (failedPhase) {
|
|
242
|
-
case 'design-design':
|
|
243
|
-
return 'design-design'; // Start over at design
|
|
244
|
-
case 'design-completeness-review':
|
|
245
|
-
return 'design-design'; // Go back to improve design
|
|
246
|
-
case 'submit-pr':
|
|
247
|
-
return 'design-completeness-review';
|
|
248
|
-
case 'wait-for-pr-review':
|
|
249
|
-
return 'address-pr-feedback'; // PR feedback goes to address phase
|
|
250
|
-
case 'retrospective':
|
|
251
|
-
return 'retrospective'; // Retry retrospective if it fails
|
|
252
|
-
case 'address-pr-feedback':
|
|
253
|
-
return 'address-pr-feedback'; // Retry addressing feedback
|
|
254
|
-
default:
|
|
255
|
-
return 'design-design';
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
else if (workflowType === 'test') {
|
|
259
|
-
// Test workflow failure handling
|
|
260
|
-
switch (failedPhase) {
|
|
261
|
-
case 'test-test':
|
|
262
|
-
return 'test-test'; // Start over at test
|
|
263
|
-
case 'test-validate':
|
|
264
|
-
return 'test-test'; // Go back to fix tests
|
|
265
|
-
case 'submit-pr':
|
|
266
|
-
return 'test-validate';
|
|
267
|
-
case 'wait-for-pr-review':
|
|
268
|
-
return 'address-pr-feedback'; // PR feedback goes to address phase
|
|
269
|
-
case 'retrospective':
|
|
270
|
-
return 'retrospective'; // Retry retrospective if it fails
|
|
271
|
-
case 'address-pr-feedback':
|
|
272
|
-
return 'address-pr-feedback'; // Retry addressing feedback
|
|
273
|
-
default:
|
|
274
|
-
return 'test-test';
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
else if (workflowType === 'customer-development') {
|
|
278
|
-
// Customer development workflow failure handling
|
|
279
|
-
switch (failedPhase) {
|
|
280
|
-
case 'customer-profiling':
|
|
281
|
-
return 'customer-profiling'; // Start over at profiling
|
|
282
|
-
case 'platform-discovery':
|
|
283
|
-
return 'customer-profiling'; // Go back to refine customer profile
|
|
284
|
-
case 'prospect-qualification':
|
|
285
|
-
return 'platform-discovery'; // Go back to find more prospects
|
|
286
|
-
case 'inventory-compilation':
|
|
287
|
-
return 'prospect-qualification'; // Go back to improve qualification
|
|
288
|
-
default:
|
|
289
|
-
return 'customer-profiling';
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
else if (workflowType === 'user-survey') {
|
|
293
|
-
// User survey workflow failure handling
|
|
294
|
-
switch (failedPhase) {
|
|
295
|
-
case 'survey-scoping':
|
|
296
|
-
return 'survey-scoping';
|
|
297
|
-
case 'survey-build-linkedin':
|
|
298
|
-
case 'survey-build-reddit':
|
|
299
|
-
case 'survey-build-x':
|
|
300
|
-
case 'survey-build-facebook':
|
|
301
|
-
case 'survey-build-custom':
|
|
302
|
-
return 'survey-scoping'; // Go back to revise questions
|
|
303
|
-
case 'survey-dispatch':
|
|
304
|
-
return 'survey-build-linkedin'; // Go back to check builds
|
|
305
|
-
default:
|
|
306
|
-
return 'survey-scoping';
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
// Unknown workflow, return first phase of implement as fallback
|
|
310
|
-
return 'implement-scoping';
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Get all phases for a workflow type
|
|
314
|
-
* @param workflowType - Type of workflow
|
|
315
|
-
* @param issueType - Type of issue (only used for implement workflow)
|
|
316
|
-
* @returns Array of phases
|
|
317
|
-
*/
|
|
318
|
-
function getPhasesForWorkflow(workflowType, issueType) {
|
|
319
|
-
if (workflowType === 'implement') {
|
|
320
|
-
if (!issueType) {
|
|
321
|
-
throw new Error('Issue type is required for implement workflow');
|
|
322
|
-
}
|
|
323
|
-
return issueType === 'bug' ? [...BUG_PHASE_FLOW] : [...FEATURE_PHASE_FLOW];
|
|
324
|
-
}
|
|
325
|
-
else if (workflowType === 'spec') {
|
|
326
|
-
return [...SPEC_PHASE_FLOW];
|
|
327
|
-
}
|
|
328
|
-
else if (workflowType === 'design') {
|
|
329
|
-
return [...DESIGN_PHASE_FLOW];
|
|
330
|
-
}
|
|
331
|
-
else if (workflowType === 'test') {
|
|
332
|
-
return [...TEST_PHASE_FLOW];
|
|
333
|
-
}
|
|
334
|
-
else if (workflowType === 'customer-development') {
|
|
335
|
-
return [...CUSTOMER_DEVELOPMENT_PHASE_FLOW];
|
|
336
|
-
}
|
|
337
|
-
else if (workflowType === 'user-survey') {
|
|
338
|
-
return [...USER_SURVEY_PHASE_FLOW];
|
|
339
|
-
}
|
|
340
|
-
else {
|
|
341
|
-
throw new Error(`Unknown workflow type: ${workflowType}`);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
// Legacy functions for backward compatibility
|
|
345
|
-
function getNextPhaseForImplement(currentPhase, issueType) {
|
|
346
|
-
return getNextPhase(currentPhase, 'implement', issueType);
|
|
347
|
-
}
|
|
348
|
-
function isPhaseValidForIssueType(phase, issueType) {
|
|
349
|
-
return isPhaseValidForWorkflow(phase, 'implement', issueType);
|
|
350
|
-
}
|
|
351
|
-
function getPhasesForIssueType(issueType) {
|
|
352
|
-
return getPhasesForWorkflow('implement', issueType);
|
|
353
|
-
}
|
|
354
|
-
// Legacy function for backward compatibility
|
|
355
|
-
function getPhaseOnImplementFailure(failedPhase, issueType) {
|
|
356
|
-
return getPhaseOnFailure(failedPhase, 'implement', issueType);
|
|
357
|
-
}
|