fraim-framework 1.0.7 → 1.0.8
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/package.json +1 -1
- package/setup.js +93 -9
- package/docs/guides/getting-started.md +0 -175
package/package.json
CHANGED
package/setup.js
CHANGED
|
@@ -94,6 +94,79 @@ function askQuestion(question, defaultValue = 'y') {
|
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
function createProjectStructure() {
|
|
98
|
+
// Create retrospectives folder
|
|
99
|
+
ensureDirectory('retrospectives');
|
|
100
|
+
logSuccess('Created retrospectives folder');
|
|
101
|
+
|
|
102
|
+
// Create docs/rfcs folder
|
|
103
|
+
ensureDirectory('docs/rfcs');
|
|
104
|
+
logSuccess('Created docs/rfcs folder');
|
|
105
|
+
|
|
106
|
+
// Create BUGFIX template
|
|
107
|
+
const bugfixTemplate = `Issue: #<issue>
|
|
108
|
+
|
|
109
|
+
## Impact of the Bug
|
|
110
|
+
|
|
111
|
+
## Repro Steps
|
|
112
|
+
|
|
113
|
+
## Root Cause
|
|
114
|
+
|
|
115
|
+
## Fix
|
|
116
|
+
|
|
117
|
+
## Tests
|
|
118
|
+
- Could be existing tests that are failing and need to be fixed
|
|
119
|
+
- Could be new tests that need to be added into an existing test suite
|
|
120
|
+
- Could be a new test suite
|
|
121
|
+
`;
|
|
122
|
+
writeFile('docs/rfcs/BUGFIX-TEMPLATE.md', bugfixTemplate);
|
|
123
|
+
logSuccess('Created BUGFIX-TEMPLATE.md');
|
|
124
|
+
|
|
125
|
+
// Create RFC template
|
|
126
|
+
const rfcTemplate = `# RFC: <Title>
|
|
127
|
+
|
|
128
|
+
Issue: #<issue>
|
|
129
|
+
Owner: <agent>
|
|
130
|
+
|
|
131
|
+
## Customer
|
|
132
|
+
|
|
133
|
+
## Customer Outcome
|
|
134
|
+
|
|
135
|
+
## Customer Problem being solved
|
|
136
|
+
|
|
137
|
+
## Solution
|
|
138
|
+
|
|
139
|
+
## Alternatives
|
|
140
|
+
|
|
141
|
+
## Design Details
|
|
142
|
+
- User Experience changes (incl. all modalities currently supported: see codebase to know which ones)
|
|
143
|
+
- API surface (OpenAPI) changes
|
|
144
|
+
- Data model / schema changes
|
|
145
|
+
- Failure modes & timeouts
|
|
146
|
+
- Telemetry & analytics
|
|
147
|
+
|
|
148
|
+
## Test Matrix
|
|
149
|
+
- Unit: modules & edge cases
|
|
150
|
+
- Integration: API <-> DB <-> external
|
|
151
|
+
- E2E: user flows (happy/sad)
|
|
152
|
+
|
|
153
|
+
## Risks & Mitigations
|
|
154
|
+
|
|
155
|
+
## Observability (logs, metrics, alerts)
|
|
156
|
+
|
|
157
|
+
## Phased Delivery Plan
|
|
158
|
+
- Do not incude timelines
|
|
159
|
+
- Do include the following for each phase:
|
|
160
|
+
- Deliverable
|
|
161
|
+
- Value delivered by deliverable
|
|
162
|
+
- What will be tested
|
|
163
|
+
`;
|
|
164
|
+
writeFile('docs/rfcs/RFC-TEMPLATE.md', rfcTemplate);
|
|
165
|
+
logSuccess('Created RFC-TEMPLATE.md');
|
|
166
|
+
|
|
167
|
+
logSuccess('Project structure created');
|
|
168
|
+
}
|
|
169
|
+
|
|
97
170
|
function createGitHubLabels() {
|
|
98
171
|
const labels = [
|
|
99
172
|
{ name: 'phase:design', color: '0e8a16', description: 'Design phase - RFC creation and review' },
|
|
@@ -311,8 +384,18 @@ async function runWizard() {
|
|
|
311
384
|
return;
|
|
312
385
|
}
|
|
313
386
|
|
|
314
|
-
// Step 2:
|
|
315
|
-
logStep('Step 2:
|
|
387
|
+
// Step 2: Project Structure
|
|
388
|
+
logStep('Step 2: Project Structure');
|
|
389
|
+
const setupStructure = await askQuestion('Would you like to create project structure (retrospectives, docs/rfcs with templates)?', 'y');
|
|
390
|
+
|
|
391
|
+
if (setupStructure === 'y' || setupStructure === 'yes') {
|
|
392
|
+
createProjectStructure();
|
|
393
|
+
} else {
|
|
394
|
+
logInfo('Skipping project structure setup');
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// Step 3: AI Agent Setup
|
|
398
|
+
logStep('Step 3: AI Agent Configuration');
|
|
316
399
|
const setupAgents = await askQuestion('Would you like to set up AI agent configurations (.cursor, .windsurf, CLAUDE.md)?', 'y');
|
|
317
400
|
|
|
318
401
|
if (setupAgents === 'y' || setupAgents === 'yes') {
|
|
@@ -321,8 +404,8 @@ async function runWizard() {
|
|
|
321
404
|
logInfo('Skipping AI agent setup');
|
|
322
405
|
}
|
|
323
406
|
|
|
324
|
-
// Step
|
|
325
|
-
logStep('Step
|
|
407
|
+
// Step 4: GitHub Workflows
|
|
408
|
+
logStep('Step 4: GitHub Workflows');
|
|
326
409
|
const setupWorkflows = await askQuestion('Would you like to set up GitHub workflows for automation?', 'y');
|
|
327
410
|
|
|
328
411
|
if (setupWorkflows === 'y' || setupWorkflows === 'yes') {
|
|
@@ -332,8 +415,8 @@ async function runWizard() {
|
|
|
332
415
|
logInfo('Skipping GitHub workflow setup');
|
|
333
416
|
}
|
|
334
417
|
|
|
335
|
-
// Step
|
|
336
|
-
logStep('Step
|
|
418
|
+
// Step 5: GitHub Labels
|
|
419
|
+
logStep('Step 5: GitHub Labels');
|
|
337
420
|
if (ghAvailable) {
|
|
338
421
|
const setupLabels = await askQuestion('Would you like to create GitHub labels for FRAIM?', 'y');
|
|
339
422
|
|
|
@@ -347,8 +430,8 @@ async function runWizard() {
|
|
|
347
430
|
createLabelsConfigFile();
|
|
348
431
|
}
|
|
349
432
|
|
|
350
|
-
// Step
|
|
351
|
-
logStep('Step
|
|
433
|
+
// Step 6: Summary
|
|
434
|
+
logStep('Step 6: Setup Summary');
|
|
352
435
|
logHeader('🎉 Setup Complete!');
|
|
353
436
|
logSuccess('FRAIM has been successfully set up in your repository!');
|
|
354
437
|
logInfo('Next steps:');
|
|
@@ -398,6 +481,7 @@ function runSetup() {
|
|
|
398
481
|
}
|
|
399
482
|
|
|
400
483
|
// Create everything at once
|
|
484
|
+
createProjectStructure();
|
|
401
485
|
ensureDirectory('.github/workflows');
|
|
402
486
|
createAgentFolders();
|
|
403
487
|
createGitHubWorkflows();
|
|
@@ -428,4 +512,4 @@ if (require.main === module) {
|
|
|
428
512
|
runSetup();
|
|
429
513
|
}
|
|
430
514
|
|
|
431
|
-
module.exports = { runSetup, runWizard };
|
|
515
|
+
module.exports = { runSetup, runWizard, createProjectStructure };
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
# 🚀 Getting Started with FRAIM
|
|
2
|
-
|
|
3
|
-
**Framework for Rigor-based AI Management**
|
|
4
|
-
|
|
5
|
-
Welcome to FRAIM! This guide will transform you from a developer into an AI manager in under 30 seconds.
|
|
6
|
-
|
|
7
|
-
## 🚀 Quick Start (30 seconds)
|
|
8
|
-
|
|
9
|
-
### 1. Navigate to Your Repository
|
|
10
|
-
```bash
|
|
11
|
-
cd your-project
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
### 2. Setup FRAIM
|
|
15
|
-
```bash
|
|
16
|
-
npx @fraim/framework init
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### 3. Create Your First AI-Managed Issue
|
|
20
|
-
```bash
|
|
21
|
-
gh issue create --title "Add user authentication" --label "phase:design,ai-agent:claude"
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### 4. Watch the Magic Happen! 🎉
|
|
25
|
-
|
|
26
|
-
GitHub automatically:
|
|
27
|
-
- 🔄 Creates branch: `feature/1-add-user-authentication`
|
|
28
|
-
- 🔄 Creates draft PR
|
|
29
|
-
- 🔄 Sets status: `status:wip`
|
|
30
|
-
- 🤖 Claude starts working on RFC
|
|
31
|
-
|
|
32
|
-
## 🤖 AI Agent Coordination
|
|
33
|
-
|
|
34
|
-
FRAIM coordinates three types of AI agents, each with specific roles:
|
|
35
|
-
|
|
36
|
-
### Cursor (IDE Development)
|
|
37
|
-
- **Role**: Implementation and testing
|
|
38
|
-
- **Strengths**: Code generation, testing, IDE integration
|
|
39
|
-
- **Best For**: `phase:impl` tasks
|
|
40
|
-
|
|
41
|
-
### Claude (Conversational AI)
|
|
42
|
-
- **Role**: Design and RFC creation
|
|
43
|
-
- **Strengths**: Natural language, documentation, architecture
|
|
44
|
-
- **Best For**: `phase:design` tasks
|
|
45
|
-
|
|
46
|
-
### Windsurf (Code Understanding)
|
|
47
|
-
- **Role**: Performance and integration
|
|
48
|
-
- **Strengths**: Code analysis, optimization, system integration
|
|
49
|
-
- **Best For**: `phase:tests` and optimization tasks
|
|
50
|
-
|
|
51
|
-
## 📋 Workflow Phases
|
|
52
|
-
|
|
53
|
-
### Phase 1: Design (`phase:design`)
|
|
54
|
-
1. **Create Issue**: Describe the feature or bug
|
|
55
|
-
2. **Add Labels**: `phase:design` + `ai-agent:claude`
|
|
56
|
-
3. **AI Action**: Claude creates RFC and architecture docs
|
|
57
|
-
4. **Review**: Stakeholders review and approve design
|
|
58
|
-
5. **Transition**: Change to `phase:impl` + `ai-agent:cursor`
|
|
59
|
-
|
|
60
|
-
### Phase 2: Implementation (`phase:impl`)
|
|
61
|
-
1. **AI Action**: Cursor implements the feature
|
|
62
|
-
2. **Testing**: Comprehensive test coverage
|
|
63
|
-
3. **Documentation**: Code comments and updates
|
|
64
|
-
4. **Review**: Code review and validation
|
|
65
|
-
5. **Transition**: Change to `phase:tests` + `ai-agent:windsurf`
|
|
66
|
-
|
|
67
|
-
### Phase 3: Testing (`phase:tests`)
|
|
68
|
-
1. **AI Action**: Windsurf validates implementation
|
|
69
|
-
2. **Performance**: Performance testing and optimization
|
|
70
|
-
3. **Integration**: System integration testing
|
|
71
|
-
4. **Validation**: Final validation against requirements
|
|
72
|
-
5. **Completion**: Mark as `status:complete`
|
|
73
|
-
|
|
74
|
-
## 🏷️ Label System
|
|
75
|
-
|
|
76
|
-
### Phase Labels
|
|
77
|
-
- `phase:design` - Design and RFC creation
|
|
78
|
-
- `phase:impl` - Implementation and development
|
|
79
|
-
- `phase:tests` - Testing and validation
|
|
80
|
-
|
|
81
|
-
### Status Labels
|
|
82
|
-
- `status:wip` - Work in progress
|
|
83
|
-
- `status:needs-review` - Ready for review
|
|
84
|
-
- `status:complete` - Work completed
|
|
85
|
-
|
|
86
|
-
### Agent Labels
|
|
87
|
-
- `ai-agent:cursor` - Assigned to Cursor
|
|
88
|
-
- `ai-agent:claude` - Assigned to Claude
|
|
89
|
-
- `ai-agent:windsurf` - Assigned to Windsurf
|
|
90
|
-
|
|
91
|
-
### Priority Labels (Optional)
|
|
92
|
-
- `priority:critical` - Critical priority
|
|
93
|
-
- `priority:high` - High priority
|
|
94
|
-
- `priority:medium` - Medium priority
|
|
95
|
-
- `priority:low` - Low priority
|
|
96
|
-
|
|
97
|
-
## 🔧 Advanced Setup
|
|
98
|
-
|
|
99
|
-
### Interactive Wizard
|
|
100
|
-
```bash
|
|
101
|
-
npx @fraim/framework wizard
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
The wizard will ask you:
|
|
105
|
-
- Which AI agents to enable
|
|
106
|
-
- Whether to enable deployment workflows
|
|
107
|
-
- Whether to run in dry-run mode first
|
|
108
|
-
|
|
109
|
-
### Custom Configuration
|
|
110
|
-
```bash
|
|
111
|
-
npx @fraim/framework setup owner/repository --config custom-config.json
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Partial Setup
|
|
115
|
-
```bash
|
|
116
|
-
# Only create labels
|
|
117
|
-
npx @fraim/framework setup owner/repository --labels-only
|
|
118
|
-
|
|
119
|
-
# Only setup workflows
|
|
120
|
-
npx @fraim/framework setup owner/repository --workflows-only
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## 📚 Next Steps
|
|
124
|
-
|
|
125
|
-
### 1. Explore Documentation
|
|
126
|
-
- [🧠 RIGOR Methodology](../../README.md#-the-rigor-methodology)
|
|
127
|
-
- [🤖 AI Agent Rules](../../agents/)
|
|
128
|
-
- [🏗️ Framework Overview](../../README.md#-framework-structure)
|
|
129
|
-
|
|
130
|
-
### 2. Try Different Workflows
|
|
131
|
-
- Create issues with different phase/agent combinations
|
|
132
|
-
- Experiment with the label system
|
|
133
|
-
- Practice phase transitions
|
|
134
|
-
|
|
135
|
-
### 3. Customize for Your Team
|
|
136
|
-
- Adjust agent assignments based on team strengths
|
|
137
|
-
- Customize workflows for your development process
|
|
138
|
-
- Add team-specific labels and processes
|
|
139
|
-
|
|
140
|
-
### 4. Scale Up
|
|
141
|
-
- Apply FRAIM to multiple repositories
|
|
142
|
-
- Train your team on the methodology
|
|
143
|
-
- Integrate with existing CI/CD pipelines
|
|
144
|
-
|
|
145
|
-
## 🎯 Success Metrics
|
|
146
|
-
|
|
147
|
-
### Individual Level
|
|
148
|
-
- **Setup Time**: < 30 seconds to get started
|
|
149
|
-
- **Issue Resolution**: Faster development cycles
|
|
150
|
-
- **Code Quality**: Higher quality through AI coordination
|
|
151
|
-
- **Learning**: Better understanding of AI capabilities
|
|
152
|
-
|
|
153
|
-
### Team Level
|
|
154
|
-
- **Coordination**: Seamless AI agent collaboration
|
|
155
|
-
- **Consistency**: Standardized development processes
|
|
156
|
-
- **Visibility**: Clear progress tracking and status
|
|
157
|
-
- **Efficiency**: Reduced manual coordination overhead
|
|
158
|
-
|
|
159
|
-
### Organization Level
|
|
160
|
-
- **Scalability**: Framework grows with your organization
|
|
161
|
-
- **Compliance**: Audit trails and process documentation
|
|
162
|
-
- **Innovation**: Faster adoption of new AI capabilities
|
|
163
|
-
- **Competitive Advantage**: Professional AI management capabilities
|
|
164
|
-
|
|
165
|
-
## 🚀 Ready to Become an AI Manager?
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
npx @fraim/framework init
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**FRAIM: Where humans become AI managers through rigorous methodology**
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
*Need help? Check the [main README](../../README.md) or [contact the team](https://github.com/mathursrus/Ashley-Calendar-AI/issues).*
|