fraim-framework 2.0.55 → 2.0.57
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/dist/src/cli/commands/init-project.js +10 -4
- package/dist/src/cli/setup/mcp-config-generator.js +23 -15
- package/dist/src/local-mcp-server/stdio-server.js +207 -0
- package/dist/src/utils/validate-workflows.js +101 -0
- package/dist/src/utils/workflow-parser.js +81 -0
- package/package.json +16 -11
- 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/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/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/scripts/build-stub-registry.js +0 -108
- package/dist/src/ai-manager/ai-manager.js +0 -482
- 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/registry/stubs/workflows/customer-development/ai-coach-phases/phase1-customer-profiling.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase1-survey-scoping.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase2-platform-discovery.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase2-survey-build-linkedin.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase3-prospect-qualification.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase3-survey-build-reddit.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase4-inventory-compilation.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase4-survey-build-x.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase5-survey-build-facebook.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase6-survey-build-custom.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase7-survey-dispatch.md +0 -11
- package/registry/stubs/workflows/customer-development/templates/customer-persona-template.md +0 -11
- package/registry/stubs/workflows/customer-development/templates/search-strategy-template.md +0 -11
- package/setup.js +0 -171
- package/tsconfig.json +0 -23
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
# Phase: address-pr-feedback
|
|
2
|
-
|
|
3
|
-
## INTENT
|
|
4
|
-
To systematically address all PR feedback items by making targeted changes, replying to comments, and preparing for re-validation.
|
|
5
|
-
|
|
6
|
-
## OUTCOME
|
|
7
|
-
All PR feedback addressed with:
|
|
8
|
-
- Targeted changes made for each feedback item
|
|
9
|
-
- Feedback file updated with resolutions
|
|
10
|
-
- PR comments replied to with explanations
|
|
11
|
-
- Changes validated and ready for re-review
|
|
12
|
-
|
|
13
|
-
## RULES FOR THIS PHASE
|
|
14
|
-
|
|
15
|
-
### Success Criteria
|
|
16
|
-
Read `registry/rules/agent-success-criteria.md` via `get_fraim_file` for the complete framework. Focus especially on:
|
|
17
|
-
- **Integrity** (document all changes made)
|
|
18
|
-
- **Correctness** (address feedback accurately)
|
|
19
|
-
- **Completeness** (address every UNADDRESSED item)
|
|
20
|
-
|
|
21
|
-
### Simplicity Principles
|
|
22
|
-
Read `registry/rules/simplicity.md` via `get_fraim_file` for complete guidelines. Critical for feedback phase:
|
|
23
|
-
- **Targeted Changes**: Make minimal changes to address specific feedback
|
|
24
|
-
- **Manual Validation**: Test changes manually before updating PR
|
|
25
|
-
- **Clear Communication**: Reply to each comment with clear explanations
|
|
26
|
-
|
|
27
|
-
## PRINCIPLES
|
|
28
|
-
- **Feedback-Driven**: Address only the specific issues raised in PR comments
|
|
29
|
-
- **Minimal Changes**: Avoid scope creep or unnecessary refactoring
|
|
30
|
-
- **Clear Communication**: Explain resolutions clearly to reviewers
|
|
31
|
-
- **Validation**: Ensure changes work before updating PR
|
|
32
|
-
|
|
33
|
-
## 📋 WORKFLOW
|
|
34
|
-
|
|
35
|
-
### Step 1: Read PR Feedback File
|
|
36
|
-
|
|
37
|
-
**MANDATORY**: Read the feedback file created by `wait-for-pr-review`:
|
|
38
|
-
- File location: `docs/evidence/{issue_number}-{workflow_type}-feedback.md`
|
|
39
|
-
- Identify all UNADDRESSED feedback items
|
|
40
|
-
- Understand the context and requirements for each item
|
|
41
|
-
|
|
42
|
-
### Step 2: Address Each Feedback Item
|
|
43
|
-
|
|
44
|
-
**For each UNADDRESSED item:**
|
|
45
|
-
|
|
46
|
-
1. **Understand the Feedback**:
|
|
47
|
-
- Read the comment carefully
|
|
48
|
-
- Identify what specific change is requested
|
|
49
|
-
- Determine the scope of the change needed
|
|
50
|
-
|
|
51
|
-
2. **Make Targeted Changes**:
|
|
52
|
-
- Make minimal, focused changes to address the specific feedback
|
|
53
|
-
- Avoid unrelated changes or improvements
|
|
54
|
-
- Keep changes as small as possible while fully addressing the feedback
|
|
55
|
-
|
|
56
|
-
3. **Update Feedback File**:
|
|
57
|
-
- Change status from UNADDRESSED to ADDRESSED
|
|
58
|
-
- Document your resolution approach
|
|
59
|
-
- Include details of what you changed
|
|
60
|
-
|
|
61
|
-
**Feedback File Update Format**:
|
|
62
|
-
```markdown
|
|
63
|
-
### Comment X - ADDRESSED
|
|
64
|
-
- **Author**: reviewer_name
|
|
65
|
-
- **Type**: pr_comment|review_comment|review
|
|
66
|
-
- **File**: file_path (if applicable)
|
|
67
|
-
- **Line**: line_number (if applicable)
|
|
68
|
-
- **Comment**: Original feedback text
|
|
69
|
-
- **Status**: ADDRESSED
|
|
70
|
-
- **Resolution**: Detailed explanation of how you addressed this feedback
|
|
71
|
-
- **Changes Made**: Specific files/lines modified
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Step 3: Validate Changes
|
|
75
|
-
|
|
76
|
-
**Test your changes:**
|
|
77
|
-
- Run compilation check: `npx tsc --noEmit --skipLibCheck`
|
|
78
|
-
- Run relevant tests to ensure no regressions
|
|
79
|
-
- Test manually if the feedback involves UI/API behavior
|
|
80
|
-
- Verify the specific issue mentioned in feedback is resolved
|
|
81
|
-
|
|
82
|
-
### Step 4: Reply to PR Comments
|
|
83
|
-
|
|
84
|
-
**For each addressed comment:**
|
|
85
|
-
- Reply to the original PR comment
|
|
86
|
-
- Explain what you changed and how it addresses their concern
|
|
87
|
-
- Reference specific files/lines if helpful
|
|
88
|
-
- Be clear and professional in your communication
|
|
89
|
-
|
|
90
|
-
**Example reply format**:
|
|
91
|
-
```
|
|
92
|
-
✅ **Addressed**: [Brief description of what you changed]
|
|
93
|
-
|
|
94
|
-
**Changes made**:
|
|
95
|
-
- [Specific change 1]
|
|
96
|
-
- [Specific change 2]
|
|
97
|
-
|
|
98
|
-
**Files modified**: `path/to/file.ts`, `path/to/test.ts`
|
|
99
|
-
|
|
100
|
-
This should resolve the [specific issue mentioned]. Please let me know if you need any clarification!
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Step 5: Commit and Push Changes
|
|
104
|
-
|
|
105
|
-
**Commit your changes:**
|
|
106
|
-
- Use clear commit messages that reference the feedback
|
|
107
|
-
- Example: `Address PR feedback: Fix error handling in auth service`
|
|
108
|
-
- Push changes to the PR branch
|
|
109
|
-
|
|
110
|
-
## 📸 EVIDENCE REQUIREMENTS
|
|
111
|
-
|
|
112
|
-
You MUST provide concrete evidence for all claims:
|
|
113
|
-
|
|
114
|
-
1. **All Feedback Addressed**: Every UNADDRESSED item in feedback file is now ADDRESSED
|
|
115
|
-
2. **Changes Made**: Specific code changes made for each feedback item
|
|
116
|
-
3. **Validation Complete**: Tests pass and changes work as expected
|
|
117
|
-
4. **PR Updated**: Changes committed, pushed, and comments replied to
|
|
118
|
-
|
|
119
|
-
## VALIDATION
|
|
120
|
-
|
|
121
|
-
### Phase Complete When:
|
|
122
|
-
- ✅ All UNADDRESSED items in feedback file are now ADDRESSED
|
|
123
|
-
- ✅ Feedback file updated with resolution details for each item
|
|
124
|
-
- ✅ Targeted changes made to address each specific feedback
|
|
125
|
-
- ✅ Changes validated (compilation, tests, manual testing)
|
|
126
|
-
- ✅ PR comments replied to with clear explanations
|
|
127
|
-
- ✅ Changes committed and pushed to PR branch
|
|
128
|
-
|
|
129
|
-
### Phase Incomplete If:
|
|
130
|
-
- ❌ Any UNADDRESSED items remain in feedback file
|
|
131
|
-
- ❌ Changes don't actually address the feedback given
|
|
132
|
-
- ❌ Tests failing after changes
|
|
133
|
-
- ❌ Compilation errors introduced
|
|
134
|
-
- ❌ PR comments not replied to
|
|
135
|
-
- ❌ Changes not committed/pushed
|
|
136
|
-
|
|
137
|
-
### Report Back:
|
|
138
|
-
When you complete this phase, call:
|
|
139
|
-
|
|
140
|
-
```javascript
|
|
141
|
-
seekCoachingOnNextStep({
|
|
142
|
-
workflowType: "{workflow_type}",
|
|
143
|
-
issueNumber: "{issue_number}",
|
|
144
|
-
currentPhase: "address-pr-feedback",
|
|
145
|
-
status: "complete",
|
|
146
|
-
findings: {
|
|
147
|
-
feedbackItemsAddressed: {total_items_addressed},
|
|
148
|
-
changesValidated: true
|
|
149
|
-
},
|
|
150
|
-
evidence: {
|
|
151
|
-
feedbackFileUpdated: "All UNADDRESSED items now ADDRESSED with resolutions",
|
|
152
|
-
changesMade: "Brief summary of changes made",
|
|
153
|
-
validationResults: "Compilation and tests pass",
|
|
154
|
-
prCommentsReplied: "Replied to all PR comments with explanations"
|
|
155
|
-
}
|
|
156
|
-
})
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
If feedback addressing incomplete, iterate:
|
|
160
|
-
```javascript
|
|
161
|
-
seekCoachingOnNextStep({
|
|
162
|
-
workflowType: "{workflow_type}",
|
|
163
|
-
issueNumber: "{issue_number}",
|
|
164
|
-
currentPhase: "address-pr-feedback",
|
|
165
|
-
status: "incomplete",
|
|
166
|
-
findings: {
|
|
167
|
-
uncertainties: ["Issues encountered", "What needs to be fixed"]
|
|
168
|
-
}
|
|
169
|
-
})
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## SCRIPTS
|
|
173
|
-
|
|
174
|
-
**Compile TypeScript:**
|
|
175
|
-
```bash
|
|
176
|
-
npx tsc --noEmit --skipLibCheck
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Run tests:**
|
|
180
|
-
```bash
|
|
181
|
-
npm test
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**Check git status:**
|
|
185
|
-
```bash
|
|
186
|
-
git status
|
|
187
|
-
git diff
|
|
188
|
-
```
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
# Phase: submit-pr
|
|
2
|
-
|
|
3
|
-
## INTENT
|
|
4
|
-
To submit completed work for review by creating/updating PR, setting proper labels, and documenting evidence.
|
|
5
|
-
|
|
6
|
-
## OUTCOME
|
|
7
|
-
Work is submitted for review with:
|
|
8
|
-
- PR created/updated with work
|
|
9
|
-
- Proper issue labels applied
|
|
10
|
-
- Evidence documented
|
|
11
|
-
- Ready to enter PR review phase
|
|
12
|
-
|
|
13
|
-
## PRINCIPLES
|
|
14
|
-
- **Complete Documentation**: Evidence shows all work done
|
|
15
|
-
- **Proper Labels**: Issue status reflects PR submission
|
|
16
|
-
- **Clear Communication**: PR and evidence are clear
|
|
17
|
-
- **Ready for Review**: No blockers for PR review process
|
|
18
|
-
|
|
19
|
-
## RULES FOR THIS PHASE
|
|
20
|
-
|
|
21
|
-
### Success Criteria
|
|
22
|
-
Read `registry/rules/agent-success-criteria.md` via `get_fraim_file` for the complete framework. Focus on:
|
|
23
|
-
- **Integrity** (honest documentation of all work completed)
|
|
24
|
-
- **Completeness** (all finalization steps completed)
|
|
25
|
-
|
|
26
|
-
### Simplicity Principles
|
|
27
|
-
Read `registry/rules/simplicity.md` via `get_fraim_file` for complete guidelines. Key for finalization:
|
|
28
|
-
- **Focus on the assigned issue only** - document only relevant work
|
|
29
|
-
- **Clear communication** - evidence should be easy to understand
|
|
30
|
-
|
|
31
|
-
### Git Operations (if needed)
|
|
32
|
-
When using git commands directly (if MCP tools unavailable), read `rules/git-safe-commands.md` via `get_fraim_file` to avoid interactive commands that hang agents.
|
|
33
|
-
|
|
34
|
-
## WORKFLOW
|
|
35
|
-
|
|
36
|
-
### Step 1: Create Evidence Document
|
|
37
|
-
|
|
38
|
-
**File location:**
|
|
39
|
-
```
|
|
40
|
-
docs/evidence/{issue_number}-{workflow_type}-evidence.md
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**Evidence document should include:**
|
|
44
|
-
|
|
45
|
-
#### Summary
|
|
46
|
-
- Issue number and title
|
|
47
|
-
- Workflow type (spec, design, implement, test)
|
|
48
|
-
- Brief description of work completed
|
|
49
|
-
|
|
50
|
-
#### Work Completed
|
|
51
|
-
**For Spec Workflow:**
|
|
52
|
-
- Specification document created
|
|
53
|
-
- High-fidelity HTML mocks (if UI changes)
|
|
54
|
-
- Requirements coverage
|
|
55
|
-
|
|
56
|
-
**For Design Workflow:**
|
|
57
|
-
- Technical design document
|
|
58
|
-
- Architecture decisions
|
|
59
|
-
- API specifications
|
|
60
|
-
- Database schema (if applicable)
|
|
61
|
-
|
|
62
|
-
**For Implement Workflow:**
|
|
63
|
-
- Implementation details
|
|
64
|
-
- Key files changed
|
|
65
|
-
- Approach taken
|
|
66
|
-
- Testing completed
|
|
67
|
-
|
|
68
|
-
**For Test Workflow:**
|
|
69
|
-
- Test suite created/enhanced
|
|
70
|
-
- Coverage metrics
|
|
71
|
-
- Test results
|
|
72
|
-
|
|
73
|
-
#### PR Feedback History (if applicable)
|
|
74
|
-
**CRITICAL**: If PR feedback file exists (`docs/evidence/{issue_number}-{workflow_type}-feedback.md`), include its complete contents in the evidence document under this section.
|
|
75
|
-
|
|
76
|
-
This shows reviewers:
|
|
77
|
-
- All previous feedback received
|
|
78
|
-
- How each item was addressed
|
|
79
|
-
- Complete audit trail of review iterations
|
|
80
|
-
|
|
81
|
-
#### Validation
|
|
82
|
-
- How work was validated
|
|
83
|
-
- Validation results
|
|
84
|
-
- Screenshots/output (if applicable)
|
|
85
|
-
|
|
86
|
-
#### Quality Checks
|
|
87
|
-
- All deliverables complete
|
|
88
|
-
- Documentation clear and professional
|
|
89
|
-
- Work ready for next phase or review
|
|
90
|
-
|
|
91
|
-
#### Phase Completion
|
|
92
|
-
- All phases completed for this workflow
|
|
93
|
-
- Evidence from each phase
|
|
94
|
-
- Any iterations or challenges
|
|
95
|
-
|
|
96
|
-
### Step 2: Commit and Sync Work
|
|
97
|
-
|
|
98
|
-
**Commit all changes:**
|
|
99
|
-
- Stage all modified files
|
|
100
|
-
- Create commit with descriptive message
|
|
101
|
-
- Push to feature branch
|
|
102
|
-
|
|
103
|
-
**Commit message format:**
|
|
104
|
-
```
|
|
105
|
-
{workflow_type}({issue_number}): complete {phase_name} phase
|
|
106
|
-
|
|
107
|
-
- Evidence document created
|
|
108
|
-
- All deliverables complete
|
|
109
|
-
- Ready for review
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Step 3: Verify PR Exists
|
|
113
|
-
|
|
114
|
-
**Verify PR:**
|
|
115
|
-
- PR exists for the feature branch
|
|
116
|
-
- PR title reflects the issue and workflow
|
|
117
|
-
- PR description includes context and links to deliverables
|
|
118
|
-
|
|
119
|
-
**If PR doesn't exist:**
|
|
120
|
-
- Create PR manually
|
|
121
|
-
- Link to issue
|
|
122
|
-
- Add evidence document link
|
|
123
|
-
|
|
124
|
-
### Step 4: Add PR Comment
|
|
125
|
-
|
|
126
|
-
Add comment to PR with link to evidence:
|
|
127
|
-
```
|
|
128
|
-
{Workflow_type} workflow complete. Evidence document: docs/evidence/{issue_number}-{workflow_type}-evidence.md
|
|
129
|
-
|
|
130
|
-
All phases completed:
|
|
131
|
-
{workflow_specific_phases_checklist}
|
|
132
|
-
|
|
133
|
-
**PR Feedback History**:
|
|
134
|
-
{If feedback file exists, include: "This submission addresses all feedback from previous review rounds. See evidence document for complete feedback history and resolutions."}
|
|
135
|
-
|
|
136
|
-
Ready for human review.
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Step 5: Update Issue Labels
|
|
140
|
-
|
|
141
|
-
**Remove:**
|
|
142
|
-
- `status:wip`
|
|
143
|
-
|
|
144
|
-
**Add:**
|
|
145
|
-
- `status:needs-review`
|
|
146
|
-
|
|
147
|
-
**Keep:**
|
|
148
|
-
- Current phase label (e.g., `phase:spec`, `phase:design`, `phase:impl`) to indicate which phase is in PR
|
|
149
|
-
|
|
150
|
-
**GitHub Repository Context:**
|
|
151
|
-
Read `.fraim/config.json` for:
|
|
152
|
-
- `git.repoOwner` - GitHub repository owner
|
|
153
|
-
- `git.repoName` - GitHub repository name
|
|
154
|
-
|
|
155
|
-
Use GitHub MCP tools to update labels.
|
|
156
|
-
|
|
157
|
-
### Step 6: Final Verification
|
|
158
|
-
|
|
159
|
-
**Checklist:**
|
|
160
|
-
- ✅ Issue labels updated (kept phase label, added needs-review)
|
|
161
|
-
- ✅ Evidence document created and complete
|
|
162
|
-
- ✅ All work committed and pushed to feature branch
|
|
163
|
-
- ✅ PR exists and is ready
|
|
164
|
-
- ✅ PR comment added with evidence link
|
|
165
|
-
- ✅ All deliverables complete
|
|
166
|
-
- ✅ Git status clean
|
|
167
|
-
|
|
168
|
-
## VALIDATION
|
|
169
|
-
|
|
170
|
-
### Phase Complete When:
|
|
171
|
-
- ✅ Issue has `status:needs-review` label
|
|
172
|
-
- ✅ Issue keeps current phase label to indicate what needs review
|
|
173
|
-
- ✅ Evidence document exists and is complete
|
|
174
|
-
- ✅ All work committed and synced to remote
|
|
175
|
-
- ✅ PR exists and is ready for review
|
|
176
|
-
- ✅ PR has comment linking to evidence
|
|
177
|
-
- ✅ All previous phases complete
|
|
178
|
-
|
|
179
|
-
### Phase Incomplete If:
|
|
180
|
-
- ❌ Labels not updated correctly
|
|
181
|
-
- ❌ Evidence document missing or incomplete
|
|
182
|
-
- ❌ Work not committed and synced
|
|
183
|
-
- ❌ PR not ready
|
|
184
|
-
- ❌ Previous phases not complete
|
|
185
|
-
|
|
186
|
-
### Report Back:
|
|
187
|
-
```javascript
|
|
188
|
-
seekCoachingOnNextStep({
|
|
189
|
-
workflowType: "{workflow_type}",
|
|
190
|
-
issueNumber: "{issue_number}",
|
|
191
|
-
currentPhase: "submit-pr",
|
|
192
|
-
status: "complete",
|
|
193
|
-
evidence: {
|
|
194
|
-
labelsUpdated: "Issue has status:needs-review and keeps phase label",
|
|
195
|
-
evidenceDocument: "docs/evidence/{issue_number}-{workflow_type}-evidence.md created",
|
|
196
|
-
workCommitted: "All changes committed and pushed to feature branch",
|
|
197
|
-
prStatus: "PR ready for review",
|
|
198
|
-
prComment: "PR comment added with evidence link",
|
|
199
|
-
allPhasesComplete: "All {workflow_type} phases completed successfully"
|
|
200
|
-
}
|
|
201
|
-
})
|
|
202
|
-
```
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
# Phase: wait-for-pr-review
|
|
2
|
-
|
|
3
|
-
## INTENT
|
|
4
|
-
Wait for human instruction to check PR status, then evaluate if PR is ready for merge or needs more work.
|
|
5
|
-
|
|
6
|
-
## OUTCOME
|
|
7
|
-
Either:
|
|
8
|
-
- **PR Approved**: Workflow complete, ready for merge
|
|
9
|
-
- **PR Has Comments**: Write feedback file and return to workflow to address feedback
|
|
10
|
-
|
|
11
|
-
## RULES FOR THIS PHASE
|
|
12
|
-
|
|
13
|
-
### Success Criteria
|
|
14
|
-
Read `registry/rules/agent-success-criteria.md` via `get_fraim_file` for the complete framework.
|
|
15
|
-
|
|
16
|
-
## WORKFLOW
|
|
17
|
-
|
|
18
|
-
### Step 1: Wait for Human Instruction
|
|
19
|
-
|
|
20
|
-
**Your task is to wait for human instruction.** Do not automatically poll or check PR status.
|
|
21
|
-
|
|
22
|
-
When human says "check the PR" or "proceed", move to Step 2.
|
|
23
|
-
|
|
24
|
-
### Step 2: Check PR Status and Comments
|
|
25
|
-
|
|
26
|
-
Use GitHub MCP tools to check the PR comprehensively:
|
|
27
|
-
|
|
28
|
-
1. **Get PR Status**: Use `mcp_github_pull_request_read` with method `get` to check if PR is approved
|
|
29
|
-
2. **Get All Comment Types**:
|
|
30
|
-
- **PR-level comments**: Use method `get_comments`
|
|
31
|
-
- **Review comments**: Use method `get_review_comments` (inline/detailed comments)
|
|
32
|
-
- **Review status**: Use method `get_reviews` (approval/changes requested)
|
|
33
|
-
|
|
34
|
-
### Step 3: Evaluate Results and Write Feedback File
|
|
35
|
-
|
|
36
|
-
**If PR status shows "approved" AND no unresolved comments:**
|
|
37
|
-
- PR is ready for merge
|
|
38
|
-
- Report success
|
|
39
|
-
|
|
40
|
-
**If PR has ANY comments OR is not approved:**
|
|
41
|
-
- PR needs more work
|
|
42
|
-
- **CRITICAL**: Write feedback file to `docs/evidence/{issueNumber}-{workflowType}-feedback.md`
|
|
43
|
-
- Use Round X format (check existing file to determine next round number)
|
|
44
|
-
- Report failure with feedback file path
|
|
45
|
-
|
|
46
|
-
## FEEDBACK FILE FORMAT
|
|
47
|
-
|
|
48
|
-
Create or append to `docs/evidence/{issueNumber}-{workflowType}-feedback.md`:
|
|
49
|
-
|
|
50
|
-
```markdown
|
|
51
|
-
# PR Feedback for Issue #{issueNumber} - {WorkflowType} Workflow
|
|
52
|
-
|
|
53
|
-
## Round {X} Feedback
|
|
54
|
-
*Received: {timestamp}*
|
|
55
|
-
|
|
56
|
-
### Comment {N} - UNADDRESSED
|
|
57
|
-
- **Author**: {author}
|
|
58
|
-
- **Type**: {pr_comment|review_comment|review}
|
|
59
|
-
- **File**: {file_path} (if applicable)
|
|
60
|
-
- **Line**: {line_number} (if applicable)
|
|
61
|
-
- **Comment**: {comment_body}
|
|
62
|
-
- **Status**: UNADDRESSED
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**Round Detection Logic**:
|
|
66
|
-
1. If feedback file doesn't exist → Start with "Round 1"
|
|
67
|
-
2. If feedback file exists → Parse to find highest "Round X", use "Round X+1"
|
|
68
|
-
3. Always append new round, never overwrite existing rounds
|
|
69
|
-
|
|
70
|
-
## VALIDATION
|
|
71
|
-
|
|
72
|
-
### Phase Complete When:
|
|
73
|
-
- ✅ PR status is "approved" in GitHub
|
|
74
|
-
- ✅ No unresolved comment threads exist
|
|
75
|
-
- ✅ No pending review comments
|
|
76
|
-
|
|
77
|
-
**Report back with:**
|
|
78
|
-
```javascript
|
|
79
|
-
seekCoachingOnNextStep({
|
|
80
|
-
workflowType: "{workflow_type}",
|
|
81
|
-
issueNumber: "{issue_number}",
|
|
82
|
-
currentPhase: "wait-for-pr-review",
|
|
83
|
-
status: "complete",
|
|
84
|
-
evidence: {
|
|
85
|
-
prStatus: "approved",
|
|
86
|
-
commentsResolved: true,
|
|
87
|
-
readyForMerge: true
|
|
88
|
-
}
|
|
89
|
-
})
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Phase Failed When:
|
|
93
|
-
- ✅ PR has unresolved comments
|
|
94
|
-
- ✅ PR status is not "approved"
|
|
95
|
-
- ✅ Review requests changes
|
|
96
|
-
|
|
97
|
-
### Report Back:
|
|
98
|
-
|
|
99
|
-
**When PR is approved and ready:**
|
|
100
|
-
```javascript
|
|
101
|
-
seekCoachingOnNextStep({
|
|
102
|
-
workflowType: "{workflow_type}",
|
|
103
|
-
issueNumber: "{issue_number}",
|
|
104
|
-
currentPhase: "wait-for-pr-review",
|
|
105
|
-
status: "complete",
|
|
106
|
-
evidence: {
|
|
107
|
-
prStatus: "approved",
|
|
108
|
-
commentsResolved: true,
|
|
109
|
-
readyForMerge: true
|
|
110
|
-
}
|
|
111
|
-
})
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
**When PR has comments (CRITICAL: Write feedback file first):**
|
|
115
|
-
```javascript
|
|
116
|
-
seekCoachingOnNextStep({
|
|
117
|
-
workflowType: "{workflow_type}",
|
|
118
|
-
issueNumber: "{issue_number}",
|
|
119
|
-
currentPhase: "wait-for-pr-review",
|
|
120
|
-
status: "failure",
|
|
121
|
-
findings: {
|
|
122
|
-
feedbackFile: "{issueNumber}-{workflowType}-feedback.md",
|
|
123
|
-
roundNumber: {X},
|
|
124
|
-
commentCount: {total_comments},
|
|
125
|
-
prStatus: "{current_status}"
|
|
126
|
-
}
|
|
127
|
-
})
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## GITHUB MCP TOOLS TO USE
|
|
131
|
-
|
|
132
|
-
1. **Check PR Status**:
|
|
133
|
-
```javascript
|
|
134
|
-
mcp_github_pull_request_read({
|
|
135
|
-
method: "get",
|
|
136
|
-
owner: "{repo_owner}",
|
|
137
|
-
repo: "{repo_name}",
|
|
138
|
-
pullNumber: {pr_number}
|
|
139
|
-
})
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
2. **Get PR Comments**:
|
|
143
|
-
```javascript
|
|
144
|
-
mcp_github_pull_request_read({
|
|
145
|
-
method: "get_comments",
|
|
146
|
-
owner: "{repo_owner}",
|
|
147
|
-
repo: "{repo_name}",
|
|
148
|
-
pullNumber: {pr_number}
|
|
149
|
-
})
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
3. **Get Review Comments**:
|
|
153
|
-
```javascript
|
|
154
|
-
mcp_github_pull_request_read({
|
|
155
|
-
method: "get_review_comments",
|
|
156
|
-
owner: "{repo_owner}",
|
|
157
|
-
repo: "{repo_name}",
|
|
158
|
-
pullNumber: {pr_number}
|
|
159
|
-
})
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
4. **Get Reviews**:
|
|
163
|
-
```javascript
|
|
164
|
-
mcp_github_pull_request_read({
|
|
165
|
-
method: "get_reviews",
|
|
166
|
-
owner: "{repo_owner}",
|
|
167
|
-
repo: "{repo_name}",
|
|
168
|
-
pullNumber: {pr_number}
|
|
169
|
-
})
|
|
170
|
-
```
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# Phase: spec-competitor-analysis
|
|
2
|
-
|
|
3
|
-
## INTENT
|
|
4
|
-
To conduct systematic competitive research and analysis for the feature being specified, ensuring comprehensive understanding of competitive landscape and clear differentiation strategy.
|
|
5
|
-
|
|
6
|
-
## OUTCOME
|
|
7
|
-
A comprehensive competitive analysis that:
|
|
8
|
-
- Documents all configured competitors and their approaches
|
|
9
|
-
- Identifies new competitors through systematic research
|
|
10
|
-
- Proposes configuration updates with user approval
|
|
11
|
-
- Defines clear differentiation strategy and competitive positioning
|
|
12
|
-
- Updates the specification with complete competitive landscape analysis
|
|
13
|
-
|
|
14
|
-
## TRIGGER
|
|
15
|
-
This phase is triggered after `spec-spec` completion and before `spec-completeness-review`.
|
|
16
|
-
|
|
17
|
-
## CONTEXT ADVANTAGES
|
|
18
|
-
- **Full Feature Context**: Complete understanding of proposed feature and requirements
|
|
19
|
-
- **Fresh Research**: Current competitive landscape information
|
|
20
|
-
- **Strategic Positioning**: Ability to influence feature design based on competitive insights
|
|
21
|
-
- **Configuration-Driven**: Systematic analysis of known competitors plus discovery of new ones
|
|
22
|
-
|
|
23
|
-
## WORKFLOW
|
|
24
|
-
|
|
25
|
-
### Step 1: Load Competitor Configuration
|
|
26
|
-
- Read `.fraim/config.json` competitors section
|
|
27
|
-
- Extract configured competitors and their competitive spaces
|
|
28
|
-
- Note any existing competitive intelligence
|
|
29
|
-
|
|
30
|
-
### Step 2: Research Configured Competitors
|
|
31
|
-
For each competitor in config:
|
|
32
|
-
- Research their current solution for this feature area
|
|
33
|
-
- Analyze their strengths and weaknesses in this space
|
|
34
|
-
- Gather customer feedback and reviews
|
|
35
|
-
- Assess market position and pricing approach
|
|
36
|
-
- Document findings in structured format
|
|
37
|
-
|
|
38
|
-
### Step 3: Discover Additional Competitors
|
|
39
|
-
- Use web search to find other competitors in the feature space
|
|
40
|
-
- Research market for competitors not in configuration
|
|
41
|
-
- Identify direct, adjacent, and emerging competitors
|
|
42
|
-
- Focus on competitors specifically relevant to this feature
|
|
43
|
-
|
|
44
|
-
### Step 4: Competitor Configuration Updates
|
|
45
|
-
- **Identify New Competitors**: Present newly discovered competitors to user
|
|
46
|
-
- **Configuration Proposal**: Suggest adding relevant competitors to `.fraim/config.json`
|
|
47
|
-
- **User Approval**: Ask user to approve additions: "Found new competitor 'X' in space 'Y'. Add to config?"
|
|
48
|
-
- **Auto-Update**: If user approves, automatically update configuration file
|
|
49
|
-
- **Documentation**: Note configuration changes in competitive analysis
|
|
50
|
-
|
|
51
|
-
### Step 5: Competitive Analysis
|
|
52
|
-
- Compare competitor approaches to our proposed solution
|
|
53
|
-
- Identify competitive advantages and disadvantages
|
|
54
|
-
- Develop differentiation strategy
|
|
55
|
-
- Plan competitive response strategies
|
|
56
|
-
- Define market positioning approach
|
|
57
|
-
|
|
58
|
-
### Step 6: Update Specification
|
|
59
|
-
- Update Competitive Landscape section with findings
|
|
60
|
-
- Ensure all configured competitors are covered
|
|
61
|
-
- Include newly discovered competitors
|
|
62
|
-
- Add competitive positioning strategy
|
|
63
|
-
- Document research sources and methodology
|
|
64
|
-
- Validate analysis completeness
|
|
65
|
-
|
|
66
|
-
## VALIDATION
|
|
67
|
-
|
|
68
|
-
### Phase Complete When:
|
|
69
|
-
- ✅ All configured competitors analyzed
|
|
70
|
-
- ✅ Additional competitors discovered through research
|
|
71
|
-
- ✅ User consulted on adding new competitors to config
|
|
72
|
-
- ✅ Configuration updated with user-approved competitors
|
|
73
|
-
- ✅ Competitive positioning strategy defined
|
|
74
|
-
- ✅ Differentiation advantages clearly articulated
|
|
75
|
-
- ✅ Research sources documented
|
|
76
|
-
- ✅ Analysis covers both configured and discovered competitors
|
|
77
|
-
- ✅ Specification competitive landscape section updated
|
|
78
|
-
|
|
79
|
-
### Report Back:
|
|
80
|
-
When this phase is complete, call:
|
|
81
|
-
```javascript
|
|
82
|
-
seekCoachingOnNextStep({
|
|
83
|
-
workflowType: "spec",
|
|
84
|
-
issueNumber: "your-issue-number",
|
|
85
|
-
currentPhase: "spec-competitor-analysis",
|
|
86
|
-
status: "complete",
|
|
87
|
-
evidence: {
|
|
88
|
-
competitorsAnalyzed: ["competitor1", "competitor2"],
|
|
89
|
-
newCompetitorsFound: ["new-competitor1"],
|
|
90
|
-
configurationUpdated: true,
|
|
91
|
-
differentiationStrategy: "summary of strategy",
|
|
92
|
-
specificationUpdated: true
|
|
93
|
-
}
|
|
94
|
-
})
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Phase Incomplete If:
|
|
98
|
-
- Configuration competitors not fully researched
|
|
99
|
-
- No additional competitor discovery attempted
|
|
100
|
-
- User not consulted on configuration updates
|
|
101
|
-
- Competitive positioning strategy missing
|
|
102
|
-
- Specification not updated with findings
|
|
103
|
-
|
|
104
|
-
## NEXT PHASE
|
|
105
|
-
After completing competitor-analysis, proceed to `spec-completeness-review` phase.
|