aiwf 0.3.17 → 0.3.19

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.
Files changed (99) hide show
  1. package/README.ko.md +84 -0
  2. package/README.md +87 -0
  3. package/ai-tools/README.md +105 -0
  4. package/ai-tools/augment/README.md +371 -0
  5. package/ai-tools/augment/config.json +30 -0
  6. package/ai-tools/augment/template/.augment/aiwf-integration.md +387 -0
  7. package/ai-tools/augment/template/.augment/augment.yaml +347 -0
  8. package/ai-tools/augment/template/augment.config.json +64 -0
  9. package/ai-tools/claude-code/README.md +151 -0
  10. package/ai-tools/claude-code/config.json +28 -0
  11. package/ai-tools/claude-code/template/CLAUDE.md +91 -0
  12. package/ai-tools/cursor/README.md +314 -0
  13. package/ai-tools/cursor/config.json +29 -0
  14. package/ai-tools/cursor/template/.cursorrules +362 -0
  15. package/ai-tools/github-copilot/README.md +195 -0
  16. package/ai-tools/github-copilot/config.json +24 -0
  17. package/ai-tools/github-copilot/template/.github/copilot-instructions.md +202 -0
  18. package/ai-tools/windsurf/README.md +355 -0
  19. package/ai-tools/windsurf/config.json +29 -0
  20. package/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +260 -0
  21. package/ai-tools/windsurf/template/.windsurf/windsurf.config.js +312 -0
  22. package/ai-tools/windsurf/template/windsurf.config.json +63 -0
  23. package/docs/CODE_CLEANUP_GUIDE.ko.md +415 -0
  24. package/docs/CODE_CLEANUP_GUIDE.md +415 -0
  25. package/docs/VALIDATOR_API.ko.md +324 -0
  26. package/docs/VALIDATOR_API.md +324 -0
  27. package/package.json +3 -2
  28. package/src/cli/index.js +338 -0
  29. package/src/config/file-lists.js +5 -5
  30. package/src/lib/backup-manager.js +4 -3
  31. package/src/lib/installer.js +126 -3
  32. package/src/lib/validator.js +78 -313
  33. package/src/utils/messages.js +16 -2
  34. package/src/utils/paths.js +1 -20
  35. package/templates/README.md +0 -78
  36. package/templates/api-server/config.json +0 -64
  37. package/templates/api-server/template/.aiwf/config.json +0 -56
  38. package/templates/api-server/template/.aiwf/feature-ledger.json +0 -42
  39. package/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -40
  40. package/templates/api-server/template/.aiwf/scripts/cli.js +0 -111
  41. package/templates/api-server/template/.env.example +0 -29
  42. package/templates/api-server/template/.eslintrc.json +0 -23
  43. package/templates/api-server/template/README.md +0 -171
  44. package/templates/api-server/template/jest.config.js +0 -26
  45. package/templates/api-server/template/nodemon.json +0 -9
  46. package/templates/api-server/template/package.json +0 -61
  47. package/templates/api-server/template/src/app.ts +0 -60
  48. package/templates/api-server/template/src/config/swagger.ts +0 -38
  49. package/templates/api-server/template/src/controllers/aiwfController.ts +0 -54
  50. package/templates/api-server/template/src/controllers/authController.ts +0 -128
  51. package/templates/api-server/template/src/controllers/statusController.ts +0 -28
  52. package/templates/api-server/template/src/index.ts +0 -28
  53. package/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -50
  54. package/templates/api-server/template/src/middleware/authMiddleware.ts +0 -41
  55. package/templates/api-server/template/src/middleware/errorHandler.ts +0 -42
  56. package/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -14
  57. package/templates/api-server/template/src/middleware/requestLogger.ts +0 -20
  58. package/templates/api-server/template/src/routes/aiwf.ts +0 -31
  59. package/templates/api-server/template/src/routes/index.ts +0 -13
  60. package/templates/api-server/template/src/routes/v1/index.ts +0 -67
  61. package/templates/api-server/template/src/utils/logger.ts +0 -37
  62. package/templates/api-server/template/tests/app.test.ts +0 -40
  63. package/templates/api-server/template/tsconfig.json +0 -43
  64. package/templates/npm-library/config.json +0 -61
  65. package/templates/npm-library/template/LICENSE +0 -21
  66. package/templates/npm-library/template/README.md +0 -201
  67. package/templates/npm-library/template/package.json +0 -78
  68. package/templates/web-app/config.json +0 -53
  69. package/templates/web-app/template/.aiwf/config.json +0 -54
  70. package/templates/web-app/template/.aiwf/feature-ledger.json +0 -37
  71. package/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -40
  72. package/templates/web-app/template/.aiwf/scripts/cli.js +0 -110
  73. package/templates/web-app/template/.eslintrc.cjs +0 -20
  74. package/templates/web-app/template/README.md +0 -151
  75. package/templates/web-app/template/index.html +0 -14
  76. package/templates/web-app/template/package.json +0 -44
  77. package/templates/web-app/template/postcss.config.js +0 -6
  78. package/templates/web-app/template/public/vite.svg +0 -1
  79. package/templates/web-app/template/src/App.tsx +0 -21
  80. package/templates/web-app/template/src/components/Layout.tsx +0 -57
  81. package/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -107
  82. package/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -71
  83. package/templates/web-app/template/src/index.css +0 -60
  84. package/templates/web-app/template/src/main.tsx +0 -10
  85. package/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -57
  86. package/templates/web-app/template/src/pages/HomePage.tsx +0 -89
  87. package/templates/web-app/template/src/pages/NotFound.tsx +0 -25
  88. package/templates/web-app/template/src/stores/aiwfStore.ts +0 -126
  89. package/templates/web-app/template/src/types/global.d.ts +0 -9
  90. package/templates/web-app/template/src/vite-env.d.ts +0 -1
  91. package/templates/web-app/template/tailwind.config.js +0 -30
  92. package/templates/web-app/template/tsconfig.json +0 -37
  93. package/templates/web-app/template/tsconfig.node.json +0 -10
  94. package/templates/web-app/template/vite.config.ts +0 -23
  95. /package/rules/global/{code-style-guide.md → aiwf-code-style-guide.md} +0 -0
  96. /package/rules/global/{coding-principles.md → aiwf-coding-principles.md} +0 -0
  97. /package/rules/global/{development-process.md → aiwf-development-process.md} +0 -0
  98. /package/rules/global/{global-rules.md → aiwf-global-rules.md} +0 -0
  99. /package/rules/manual/{generate-plan-docs.md → aiwf-generate-plan-docs.md} +0 -0
@@ -0,0 +1,312 @@
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
+ };
@@ -0,0 +1,63 @@
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
+ }