aiwf 0.3.19 → 0.3.21
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 +3 -5
- package/src/cli/index.js +7 -546
- package/src/lib/installer.js +2 -2
- package/src/lib/validator.js +56 -6
- package/ai-tools/README.md +0 -105
- package/ai-tools/augment/README.md +0 -371
- package/ai-tools/augment/config.json +0 -30
- package/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
- package/ai-tools/augment/template/.augment/augment.yaml +0 -347
- package/ai-tools/augment/template/augment.config.json +0 -64
- package/ai-tools/claude-code/README.md +0 -151
- package/ai-tools/claude-code/config.json +0 -28
- package/ai-tools/claude-code/template/CLAUDE.md +0 -91
- package/ai-tools/cursor/README.md +0 -314
- package/ai-tools/cursor/config.json +0 -29
- package/ai-tools/cursor/template/.cursorrules +0 -362
- package/ai-tools/github-copilot/README.md +0 -195
- package/ai-tools/github-copilot/config.json +0 -24
- package/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
- package/ai-tools/windsurf/README.md +0 -355
- package/ai-tools/windsurf/config.json +0 -29
- package/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
- package/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
- package/ai-tools/windsurf/template/windsurf.config.json +0 -63
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
# Windsurf AIWF Integration Rules
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
These rules configure Windsurf IDE to work seamlessly with the AI Workflow Framework (AIWF), leveraging Windsurf's Cascade AI and flow-based development features.
|
|
6
|
-
|
|
7
|
-
## Core Integration Principles
|
|
8
|
-
|
|
9
|
-
### 1. Feature-Driven Flow
|
|
10
|
-
|
|
11
|
-
Every development flow in Windsurf should:
|
|
12
|
-
- Start with Feature Ledger validation
|
|
13
|
-
- Reference feature IDs throughout the flow
|
|
14
|
-
- Update feature status upon completion
|
|
15
|
-
- Maintain feature dependency tracking
|
|
16
|
-
|
|
17
|
-
### 2. Cascade + AIWF Synergy
|
|
18
|
-
|
|
19
|
-
Leverage Cascade AI with AIWF context:
|
|
20
|
-
- Cascade understands Feature Ledger structure
|
|
21
|
-
- AI suggestions align with current sprint tasks
|
|
22
|
-
- Persona-based responses for different contexts
|
|
23
|
-
- Automatic context compression for large files
|
|
24
|
-
|
|
25
|
-
### 3. Sprint Task Flow
|
|
26
|
-
|
|
27
|
-
Windsurf flows are aligned with sprint tasks:
|
|
28
|
-
- Each flow corresponds to a sprint task
|
|
29
|
-
- Task status updates automatically
|
|
30
|
-
- Acceptance criteria guide the flow
|
|
31
|
-
- Progress tracked in real-time
|
|
32
|
-
|
|
33
|
-
## Windsurf-Specific Features
|
|
34
|
-
|
|
35
|
-
### 1. Cascade Prompts with AIWF Context
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
@cascade implement feature FL-001 following the ledger specification
|
|
39
|
-
|
|
40
|
-
@cascade using architect persona, design the system architecture
|
|
41
|
-
|
|
42
|
-
@cascade check current sprint tasks and suggest next steps
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### 2. Flow Templates
|
|
46
|
-
|
|
47
|
-
**Feature Implementation Flow**:
|
|
48
|
-
1. Check Feature Ledger
|
|
49
|
-
2. Verify dependencies
|
|
50
|
-
3. Implement with tests
|
|
51
|
-
4. Update documentation
|
|
52
|
-
5. Complete task status
|
|
53
|
-
|
|
54
|
-
**Sprint Task Flow**:
|
|
55
|
-
1. Load task details
|
|
56
|
-
2. Review acceptance criteria
|
|
57
|
-
3. Implement solution
|
|
58
|
-
4. Run tests
|
|
59
|
-
5. Update task log
|
|
60
|
-
|
|
61
|
-
### 3. Multi-Agent Collaboration
|
|
62
|
-
|
|
63
|
-
Different Cascade agents for different personas:
|
|
64
|
-
- **Architect Agent**: System design and patterns
|
|
65
|
-
- **Developer Agent**: Implementation and optimization
|
|
66
|
-
- **Reviewer Agent**: Code quality and security
|
|
67
|
-
- **Tester Agent**: Test scenarios and validation
|
|
68
|
-
|
|
69
|
-
## Code Generation Rules
|
|
70
|
-
|
|
71
|
-
### Feature Reference Pattern
|
|
72
|
-
|
|
73
|
-
```javascript
|
|
74
|
-
/**
|
|
75
|
-
* @flow Feature Implementation
|
|
76
|
-
* @feature FL-XXX - Feature Name
|
|
77
|
-
* @sprint S##
|
|
78
|
-
* @task T##_S##
|
|
79
|
-
* @cascade-model cascade-large
|
|
80
|
-
*/
|
|
81
|
-
|
|
82
|
-
import { FeatureLedger } from '@aiwf/core';
|
|
83
|
-
|
|
84
|
-
class FeatureImplementation {
|
|
85
|
-
featureId = 'FL-XXX';
|
|
86
|
-
|
|
87
|
-
constructor() {
|
|
88
|
-
this.validateWithLedger();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
async validateWithLedger() {
|
|
92
|
-
const ledger = new FeatureLedger();
|
|
93
|
-
const feature = await ledger.getFeature(this.featureId);
|
|
94
|
-
// Validate implementation against specification
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Flow Metadata
|
|
100
|
-
|
|
101
|
-
```javascript
|
|
102
|
-
// @flow-start Task Implementation
|
|
103
|
-
// @windsurf-flow-id: T##_S##
|
|
104
|
-
// @aiwf-context: {
|
|
105
|
-
// "feature": "FL-XXX",
|
|
106
|
-
// "sprint": "S##",
|
|
107
|
-
// "persona": "developer"
|
|
108
|
-
// }
|
|
109
|
-
|
|
110
|
-
// Implementation follows...
|
|
111
|
-
|
|
112
|
-
// @flow-end Update task status to completed
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Cascade Configuration
|
|
116
|
-
|
|
117
|
-
### Model Selection by Task Type
|
|
118
|
-
|
|
119
|
-
```javascript
|
|
120
|
-
// @cascade-config
|
|
121
|
-
{
|
|
122
|
-
"feature_design": {
|
|
123
|
-
"model": "cascade-architect",
|
|
124
|
-
"persona": "architect",
|
|
125
|
-
"context": ["feature-ledger", "adrs"]
|
|
126
|
-
},
|
|
127
|
-
"implementation": {
|
|
128
|
-
"model": "cascade-large",
|
|
129
|
-
"persona": "developer",
|
|
130
|
-
"context": ["current-task", "related-features"]
|
|
131
|
-
},
|
|
132
|
-
"review": {
|
|
133
|
-
"model": "cascade-reviewer",
|
|
134
|
-
"persona": "reviewer",
|
|
135
|
-
"context": ["code-changes", "test-results"]
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Context Management
|
|
141
|
-
|
|
142
|
-
### Automatic Compression
|
|
143
|
-
|
|
144
|
-
Files over 1000 lines are automatically compressed:
|
|
145
|
-
|
|
146
|
-
```javascript
|
|
147
|
-
// @windsurf-compress auto
|
|
148
|
-
// Large file will be compressed for context efficiency
|
|
149
|
-
// Original: 5000 lines -> Compressed: 500 tokens
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Feature Context Loading
|
|
153
|
-
|
|
154
|
-
```javascript
|
|
155
|
-
// @load-feature FL-001
|
|
156
|
-
// Automatically loads feature specification into context
|
|
157
|
-
|
|
158
|
-
// @load-sprint-context
|
|
159
|
-
// Loads current sprint and active tasks
|
|
160
|
-
|
|
161
|
-
// @load-persona architect
|
|
162
|
-
// Switches to architect persona context
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
## Workflow Automation
|
|
166
|
-
|
|
167
|
-
### Task Status Updates
|
|
168
|
-
|
|
169
|
-
```javascript
|
|
170
|
-
// @auto-task-status
|
|
171
|
-
// Windsurf automatically updates task status based on:
|
|
172
|
-
// - File saves (in_progress)
|
|
173
|
-
// - Test completion (testing)
|
|
174
|
-
// - All tests passing (review)
|
|
175
|
-
// - PR merged (done)
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### Documentation Sync
|
|
179
|
-
|
|
180
|
-
```javascript
|
|
181
|
-
// @auto-doc-sync
|
|
182
|
-
// Changes to implementation automatically update:
|
|
183
|
-
// - Feature documentation
|
|
184
|
-
// - API documentation
|
|
185
|
-
// - README files
|
|
186
|
-
// - ADRs if architectural changes
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Best Practices
|
|
190
|
-
|
|
191
|
-
### 1. Flow Initialization
|
|
192
|
-
|
|
193
|
-
Always start flows with:
|
|
194
|
-
```
|
|
195
|
-
@cascade init-aiwf-flow --task T##_S## --feature FL-XXX
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### 2. Context Optimization
|
|
199
|
-
|
|
200
|
-
Keep context focused:
|
|
201
|
-
- Load only relevant features
|
|
202
|
-
- Use compressed versions of large files
|
|
203
|
-
- Reference by ID when possible
|
|
204
|
-
- Clear context between major tasks
|
|
205
|
-
|
|
206
|
-
### 3. Persona Switching
|
|
207
|
-
|
|
208
|
-
Use appropriate personas:
|
|
209
|
-
```
|
|
210
|
-
@cascade switch-persona architect
|
|
211
|
-
// For design decisions
|
|
212
|
-
|
|
213
|
-
@cascade switch-persona developer
|
|
214
|
-
// For implementation
|
|
215
|
-
|
|
216
|
-
@cascade switch-persona reviewer
|
|
217
|
-
// For code review
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### 4. Progress Tracking
|
|
221
|
-
|
|
222
|
-
Maintain flow progress:
|
|
223
|
-
```
|
|
224
|
-
@cascade flow-progress
|
|
225
|
-
// Shows current task progress and remaining steps
|
|
226
|
-
|
|
227
|
-
@cascade flow-checkpoint
|
|
228
|
-
// Saves current state for later continuation
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
## Integration Commands
|
|
232
|
-
|
|
233
|
-
Quick commands for Windsurf command palette:
|
|
234
|
-
|
|
235
|
-
- `AIWF: Check Feature` - Validate against Feature Ledger
|
|
236
|
-
- `AIWF: Update Task` - Update current task status
|
|
237
|
-
- `AIWF: Switch Persona` - Change active AI persona
|
|
238
|
-
- `AIWF: Compress Context` - Compress current file
|
|
239
|
-
- `AIWF: Load Sprint` - Load current sprint context
|
|
240
|
-
- `AIWF: Flow Status` - Show current flow progress
|
|
241
|
-
|
|
242
|
-
## Prohibited Actions
|
|
243
|
-
|
|
244
|
-
- NO skipping Feature Ledger validation
|
|
245
|
-
- NO implementing without task assignment
|
|
246
|
-
- NO merging without updating task status
|
|
247
|
-
- NO ignoring sprint boundaries
|
|
248
|
-
- NO bypassing test requirements
|
|
249
|
-
|
|
250
|
-
## Windsurf + AIWF Advantages
|
|
251
|
-
|
|
252
|
-
1. **Flow-Based Development**: Natural alignment with AIWF's structured approach
|
|
253
|
-
2. **Multi-Agent Support**: Different AI agents for different personas
|
|
254
|
-
3. **Visual Progress**: See task progress in Windsurf's flow view
|
|
255
|
-
4. **Automatic Context**: Smart context loading based on current work
|
|
256
|
-
5. **Integrated Testing**: Test flows integrated with task completion
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
*Windsurf AIWF Integration Rules v1.0.0*
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Windsurf AI Configuration for AIWF Projects
|
|
3
|
-
*
|
|
4
|
-
* This configuration enables Windsurf to understand and work with
|
|
5
|
-
* the AI Workflow Framework (AIWF) structure and conventions.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
module.exports = {
|
|
9
|
-
// Project context
|
|
10
|
-
projectType: 'aiwf',
|
|
11
|
-
frameworkVersion: '1.0.0',
|
|
12
|
-
|
|
13
|
-
// AIWF structure recognition
|
|
14
|
-
projectStructure: {
|
|
15
|
-
root: '.aiwf',
|
|
16
|
-
features: '.aiwf/06_FEATURE_LEDGERS',
|
|
17
|
-
sprints: '.aiwf/03_SPRINTS',
|
|
18
|
-
personas: '.aiwf/personas',
|
|
19
|
-
templates: '.aiwf/99_TEMPLATES'
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
// Code generation patterns
|
|
23
|
-
patterns: {
|
|
24
|
-
// Feature-based patterns
|
|
25
|
-
feature: {
|
|
26
|
-
template: 'aiwf-feature',
|
|
27
|
-
metadata: ['featureId', 'taskId', 'sprintId', 'persona'],
|
|
28
|
-
validation: 'always',
|
|
29
|
-
documentation: 'required'
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
// Service patterns
|
|
33
|
-
service: {
|
|
34
|
-
template: 'aiwf-service',
|
|
35
|
-
includes: ['feature-validation', 'error-handling', 'logging'],
|
|
36
|
-
baseClass: 'AiwfService'
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
// Component patterns
|
|
40
|
-
component: {
|
|
41
|
-
template: 'aiwf-component',
|
|
42
|
-
style: 'functional',
|
|
43
|
-
hooks: ['useFeature', 'useTask', 'usePersona']
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
// Context providers
|
|
48
|
-
contextProviders: [
|
|
49
|
-
{
|
|
50
|
-
name: 'featureLedger',
|
|
51
|
-
path: '.aiwf/06_FEATURE_LEDGERS',
|
|
52
|
-
parser: 'markdown',
|
|
53
|
-
cache: true
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
name: 'currentSprint',
|
|
57
|
-
path: '.aiwf/03_SPRINTS',
|
|
58
|
-
parser: 'aiwf-sprint',
|
|
59
|
-
watch: true
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: 'activePersona',
|
|
63
|
-
path: '.aiwf/current_persona.json',
|
|
64
|
-
parser: 'json',
|
|
65
|
-
watch: true
|
|
66
|
-
}
|
|
67
|
-
],
|
|
68
|
-
|
|
69
|
-
// Code suggestions behavior
|
|
70
|
-
suggestions: {
|
|
71
|
-
// Prioritize AIWF patterns
|
|
72
|
-
priorityPatterns: [
|
|
73
|
-
'feature-reference',
|
|
74
|
-
'task-implementation',
|
|
75
|
-
'sprint-alignment',
|
|
76
|
-
'persona-specific'
|
|
77
|
-
],
|
|
78
|
-
|
|
79
|
-
// Auto-include metadata
|
|
80
|
-
autoInclude: {
|
|
81
|
-
featureId: true,
|
|
82
|
-
taskId: true,
|
|
83
|
-
persona: true,
|
|
84
|
-
timestamp: false
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
// Validation rules
|
|
88
|
-
validation: {
|
|
89
|
-
requireFeatureId: true,
|
|
90
|
-
checkFeatureStatus: true,
|
|
91
|
-
validateTaskAlignment: true
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
// Persona-specific configurations
|
|
96
|
-
personas: {
|
|
97
|
-
architect: {
|
|
98
|
-
focus: ['design-patterns', 'architecture', 'scalability'],
|
|
99
|
-
suggestions: ['interfaces', 'abstractions', 'patterns'],
|
|
100
|
-
documentation: 'extensive'
|
|
101
|
-
},
|
|
102
|
-
security: {
|
|
103
|
-
focus: ['validation', 'sanitization', 'authentication'],
|
|
104
|
-
suggestions: ['security-checks', 'audit-logging', 'encryption'],
|
|
105
|
-
warnings: 'aggressive'
|
|
106
|
-
},
|
|
107
|
-
frontend: {
|
|
108
|
-
focus: ['ui-components', 'user-experience', 'performance'],
|
|
109
|
-
suggestions: ['react-patterns', 'optimization', 'accessibility'],
|
|
110
|
-
style: 'modern'
|
|
111
|
-
},
|
|
112
|
-
backend: {
|
|
113
|
-
focus: ['api-design', 'data-flow', 'scalability'],
|
|
114
|
-
suggestions: ['rest-patterns', 'database-optimization', 'caching'],
|
|
115
|
-
testing: 'comprehensive'
|
|
116
|
-
},
|
|
117
|
-
data_analyst: {
|
|
118
|
-
focus: ['data-processing', 'visualization', 'insights'],
|
|
119
|
-
suggestions: ['pandas-patterns', 'chart-types', 'statistics'],
|
|
120
|
-
documentation: 'detailed'
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
|
|
124
|
-
// Integration with AIWF commands
|
|
125
|
-
commands: {
|
|
126
|
-
// Feature operations
|
|
127
|
-
'Create Feature': {
|
|
128
|
-
command: 'aiwf ledger create',
|
|
129
|
-
shortcut: 'ctrl+shift+f',
|
|
130
|
-
context: 'always'
|
|
131
|
-
},
|
|
132
|
-
'Update Task': {
|
|
133
|
-
command: 'aiwf task update',
|
|
134
|
-
shortcut: 'ctrl+shift+t',
|
|
135
|
-
context: 'in-task'
|
|
136
|
-
},
|
|
137
|
-
'Switch Persona': {
|
|
138
|
-
command: 'aiwf persona use',
|
|
139
|
-
shortcut: 'ctrl+shift+p',
|
|
140
|
-
context: 'always'
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
|
|
144
|
-
// Code templates
|
|
145
|
-
templates: {
|
|
146
|
-
// Feature implementation template
|
|
147
|
-
'aiwf-feature': `/**
|
|
148
|
-
* @feature {{featureId}} - {{featureName}}
|
|
149
|
-
* @task {{taskId}} - {{taskName}}
|
|
150
|
-
* @sprint {{sprintId}}
|
|
151
|
-
* @persona {{activePersona}}
|
|
152
|
-
*/
|
|
153
|
-
|
|
154
|
-
import { FeatureLedger, TaskManager } from '@aiwf/core';
|
|
155
|
-
|
|
156
|
-
export class {{className}} {
|
|
157
|
-
constructor(
|
|
158
|
-
private ledger: FeatureLedger,
|
|
159
|
-
private taskManager: TaskManager
|
|
160
|
-
) {
|
|
161
|
-
this.validateFeature();
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
private async validateFeature() {
|
|
165
|
-
const feature = await this.ledger.getFeature('{{featureId}}');
|
|
166
|
-
if (feature.status !== 'active') {
|
|
167
|
-
throw new Error(\`Feature {{featureId}} is not active\`);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// Implementation here
|
|
172
|
-
}`,
|
|
173
|
-
|
|
174
|
-
// Service template
|
|
175
|
-
'aiwf-service': `/**
|
|
176
|
-
* {{serviceName}} Service
|
|
177
|
-
* @feature {{featureId}}
|
|
178
|
-
* @layer service
|
|
179
|
-
*/
|
|
180
|
-
|
|
181
|
-
import { BaseService } from '@aiwf/core';
|
|
182
|
-
import { Logger } from '@aiwf/logging';
|
|
183
|
-
|
|
184
|
-
export class {{serviceName}}Service extends BaseService {
|
|
185
|
-
private logger: Logger;
|
|
186
|
-
|
|
187
|
-
constructor() {
|
|
188
|
-
super('{{featureId}}');
|
|
189
|
-
this.logger = new Logger('{{serviceName}}Service');
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// Service methods
|
|
193
|
-
}`,
|
|
194
|
-
|
|
195
|
-
// Test template
|
|
196
|
-
'aiwf-test': `/**
|
|
197
|
-
* Tests for {{featureName}}
|
|
198
|
-
* @feature {{featureId}}
|
|
199
|
-
* @task {{taskId}}
|
|
200
|
-
*/
|
|
201
|
-
|
|
202
|
-
import { describe, it, expect, beforeEach } from '@jest/globals';
|
|
203
|
-
import { {{className}} } from './{{fileName}}';
|
|
204
|
-
|
|
205
|
-
describe('Feature {{featureId}}: {{featureName}}', () => {
|
|
206
|
-
describe('Task {{taskId}}: {{taskName}}', () => {
|
|
207
|
-
let instance: {{className}};
|
|
208
|
-
|
|
209
|
-
beforeEach(() => {
|
|
210
|
-
instance = new {{className}}();
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
describe('Acceptance Criteria', () => {
|
|
214
|
-
it('should meet criteria 1', async () => {
|
|
215
|
-
// Test implementation
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
});`
|
|
220
|
-
},
|
|
221
|
-
|
|
222
|
-
// Import organization
|
|
223
|
-
importOrganization: {
|
|
224
|
-
order: [
|
|
225
|
-
'external',
|
|
226
|
-
'@aiwf/core',
|
|
227
|
-
'@aiwf/*',
|
|
228
|
-
'project',
|
|
229
|
-
'feature',
|
|
230
|
-
'relative'
|
|
231
|
-
],
|
|
232
|
-
grouping: true,
|
|
233
|
-
sorting: 'alphabetical'
|
|
234
|
-
},
|
|
235
|
-
|
|
236
|
-
// Error handling patterns
|
|
237
|
-
errorHandling: {
|
|
238
|
-
style: 'contextual',
|
|
239
|
-
includeFeatureContext: true,
|
|
240
|
-
standardErrors: {
|
|
241
|
-
'FeatureNotActive': 'Feature {{featureId}} is not active',
|
|
242
|
-
'TaskNotFound': 'Task {{taskId}} not found in sprint {{sprintId}}',
|
|
243
|
-
'PersonaMismatch': 'Current persona {{current}} does not match required {{required}}'
|
|
244
|
-
}
|
|
245
|
-
},
|
|
246
|
-
|
|
247
|
-
// Documentation generation
|
|
248
|
-
documentation: {
|
|
249
|
-
style: 'jsdoc',
|
|
250
|
-
required: ['feature', 'task', 'params', 'returns'],
|
|
251
|
-
autoGenerate: {
|
|
252
|
-
feature: true,
|
|
253
|
-
task: true,
|
|
254
|
-
sprint: true,
|
|
255
|
-
persona: true
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
|
-
|
|
259
|
-
// Performance optimization
|
|
260
|
-
performance: {
|
|
261
|
-
enableProfiling: true,
|
|
262
|
-
featureMetrics: true,
|
|
263
|
-
suggestions: {
|
|
264
|
-
memoization: true,
|
|
265
|
-
lazyLoading: true,
|
|
266
|
-
codeSpitting: true
|
|
267
|
-
}
|
|
268
|
-
},
|
|
269
|
-
|
|
270
|
-
// Security patterns
|
|
271
|
-
security: {
|
|
272
|
-
enableChecks: true,
|
|
273
|
-
patterns: {
|
|
274
|
-
inputValidation: 'always',
|
|
275
|
-
outputSanitization: 'always',
|
|
276
|
-
authentication: 'feature-based',
|
|
277
|
-
authorization: 'role-based'
|
|
278
|
-
}
|
|
279
|
-
},
|
|
280
|
-
|
|
281
|
-
// Git integration
|
|
282
|
-
git: {
|
|
283
|
-
commitFormat: '{{type}}({{featureId}}): {{message}}',
|
|
284
|
-
branchFormat: 'feature/{{featureId}}-{{name}}',
|
|
285
|
-
prTemplate: `## Feature: {{featureId}}
|
|
286
|
-
## Task: {{taskId}}
|
|
287
|
-
## Sprint: {{sprintId}}
|
|
288
|
-
|
|
289
|
-
### Changes
|
|
290
|
-
-
|
|
291
|
-
|
|
292
|
-
### Testing
|
|
293
|
-
- [ ] Unit tests pass
|
|
294
|
-
- [ ] Integration tests pass
|
|
295
|
-
- [ ] Acceptance criteria met
|
|
296
|
-
|
|
297
|
-
### Documentation
|
|
298
|
-
- [ ] Code documented
|
|
299
|
-
- [ ] Feature ledger updated
|
|
300
|
-
- [ ] Sprint log updated`
|
|
301
|
-
},
|
|
302
|
-
|
|
303
|
-
// Project-specific overrides
|
|
304
|
-
projectRules: {
|
|
305
|
-
// Add your project-specific rules here
|
|
306
|
-
},
|
|
307
|
-
|
|
308
|
-
// Disabled features
|
|
309
|
-
disabled: [
|
|
310
|
-
// Add any features to disable
|
|
311
|
-
]
|
|
312
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"windsurf": {
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"aiwf_integration": {
|
|
5
|
-
"enabled": true,
|
|
6
|
-
"feature_ledger": {
|
|
7
|
-
"path": ".aiwf/feature-ledger/",
|
|
8
|
-
"auto_reference": true,
|
|
9
|
-
"validation": true
|
|
10
|
-
},
|
|
11
|
-
"personas": {
|
|
12
|
-
"path": ".aiwf/personas/",
|
|
13
|
-
"default": "developer",
|
|
14
|
-
"auto_switch": true
|
|
15
|
-
},
|
|
16
|
-
"sprints": {
|
|
17
|
-
"path": ".aiwf/03_SPRINTS/",
|
|
18
|
-
"track_progress": true,
|
|
19
|
-
"task_integration": true
|
|
20
|
-
},
|
|
21
|
-
"context": {
|
|
22
|
-
"compression_threshold": 1000,
|
|
23
|
-
"auto_compress": true,
|
|
24
|
-
"cache_compressed": true
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"cascade_settings": {
|
|
28
|
-
"aiwf_aware": true,
|
|
29
|
-
"feature_suggestions": true,
|
|
30
|
-
"task_context": true,
|
|
31
|
-
"persona_based_flow": true
|
|
32
|
-
},
|
|
33
|
-
"workspace": {
|
|
34
|
-
"feature_first": true,
|
|
35
|
-
"sprint_aligned": true,
|
|
36
|
-
"documentation_sync": true
|
|
37
|
-
},
|
|
38
|
-
"ai_settings": {
|
|
39
|
-
"model_preferences": {
|
|
40
|
-
"fast_tasks": "cascade-small",
|
|
41
|
-
"complex_tasks": "cascade-large",
|
|
42
|
-
"architecture": "cascade-architect"
|
|
43
|
-
},
|
|
44
|
-
"context_management": {
|
|
45
|
-
"max_tokens": 100000,
|
|
46
|
-
"compression_enabled": true,
|
|
47
|
-
"feature_context_priority": true
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"shortcuts": {
|
|
51
|
-
"check_feature": "cmd+shift+f",
|
|
52
|
-
"update_task": "cmd+shift+t",
|
|
53
|
-
"switch_persona": "cmd+shift+p",
|
|
54
|
-
"compress_context": "cmd+shift+c"
|
|
55
|
-
},
|
|
56
|
-
"automation": {
|
|
57
|
-
"auto_update_task_status": true,
|
|
58
|
-
"auto_reference_features": true,
|
|
59
|
-
"auto_compress_large_files": true,
|
|
60
|
-
"auto_sync_documentation": true
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|