fraim-framework 1.0.1 → 1.0.2
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 +31 -60
package/package.json
CHANGED
package/setup.js
CHANGED
|
@@ -134,8 +134,9 @@ jobs:
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
function createAgentConfigs() {
|
|
137
|
-
// Cursor rules
|
|
138
|
-
|
|
137
|
+
// Cursor rules - only create if it doesn't exist
|
|
138
|
+
if (!fs.existsSync('.cursorrules')) {
|
|
139
|
+
const cursorRules = `# FRAIM Cursor Rules
|
|
139
140
|
|
|
140
141
|
## Core Rules (Always Apply)
|
|
141
142
|
- **ashley-architecture.mdc** - Follow the established architecture patterns
|
|
@@ -178,8 +179,15 @@ function createAgentConfigs() {
|
|
|
178
179
|
- Enable observability through clear documentation
|
|
179
180
|
`;
|
|
180
181
|
|
|
181
|
-
|
|
182
|
-
|
|
182
|
+
writeFile('.cursorrules', cursorRules);
|
|
183
|
+
logSuccess('Cursor rules created');
|
|
184
|
+
} else {
|
|
185
|
+
logInfo('Cursor rules already exist, skipping');
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Claude rules - only create if it doesn't exist
|
|
189
|
+
if (!fs.existsSync('CLAUDE.md')) {
|
|
190
|
+
const claudeRules = `# FRAIM Claude Rules
|
|
183
191
|
|
|
184
192
|
## Always-On Rules
|
|
185
193
|
- **ashley-architecture.mdc** - Follow the established architecture patterns
|
|
@@ -216,8 +224,15 @@ function createAgentConfigs() {
|
|
|
216
224
|
- Enable observability through clear documentation
|
|
217
225
|
`;
|
|
218
226
|
|
|
219
|
-
|
|
220
|
-
|
|
227
|
+
writeFile('CLAUDE.md', claudeRules);
|
|
228
|
+
logSuccess('Claude rules created');
|
|
229
|
+
} else {
|
|
230
|
+
logInfo('Claude rules already exist, skipping');
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Windsurf rules - only create if it doesn't exist
|
|
234
|
+
if (!fs.existsSync('.windsurfrules')) {
|
|
235
|
+
const windsurfRules = `# FRAIM Windsurf Rules
|
|
221
236
|
|
|
222
237
|
## Core Rules (Always Apply)
|
|
223
238
|
- **ashley-architecture.mdc** - Follow the established architecture patterns
|
|
@@ -258,55 +273,14 @@ function createAgentConfigs() {
|
|
|
258
273
|
- Support other agents with technical guidance
|
|
259
274
|
`;
|
|
260
275
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
276
|
+
writeFile('.windsurfrules', windsurfRules);
|
|
277
|
+
logSuccess('Windsurf rules created');
|
|
278
|
+
} else {
|
|
279
|
+
logInfo('Windsurf rules already exist, skipping');
|
|
280
|
+
}
|
|
266
281
|
}
|
|
267
282
|
|
|
268
|
-
function
|
|
269
|
-
const readme = `# FRAIM-Enabled Repository
|
|
270
|
-
|
|
271
|
-
This repository is configured with FRAIM (Framework for Rigor-based AI Management) to enable coordinated AI agent development.
|
|
272
|
-
|
|
273
|
-
## 🚀 Quick Start
|
|
274
|
-
|
|
275
|
-
1. **Create an issue** with appropriate phase labels:
|
|
276
|
-
\`\`\`bash
|
|
277
|
-
gh issue create --title "Add user authentication" --label "phase:design,ai-agent:claude"
|
|
278
|
-
\`\`\`
|
|
279
|
-
|
|
280
|
-
2. **AI agents will automatically coordinate** through GitHub state:
|
|
281
|
-
- Claude creates RFC → Cursor implements → Windsurf optimizes
|
|
282
|
-
|
|
283
|
-
3. **Use phase labels** to manage workflow:
|
|
284
|
-
- \`phase:design\` → \`phase:impl\` → \`phase:tests\`
|
|
285
|
-
|
|
286
|
-
## 🏷️ Available Labels
|
|
287
|
-
|
|
288
|
-
- **Phase Labels**: \`phase:design\`, \`phase:impl\`, \`phase:tests\`
|
|
289
|
-
- **Status Labels**: \`status:wip\`, \`status:needs-review\`, \`status:complete\`
|
|
290
|
-
- **Agent Labels**: \`ai-agent:cursor\`, \`ai-agent:claude\`, \`ai-agent:windsurf\`
|
|
291
|
-
|
|
292
|
-
## 📚 Learn More
|
|
293
|
-
|
|
294
|
-
- [FRAIM Framework](https://github.com/mathursrus/Ashley-Calendar-AI/tree/master/FRAIM)
|
|
295
|
-
- [RIGOR Methodology](https://github.com/mathursrus/Ashley-Calendar-AI/tree/master/FRAIM#the-rigor-methodology)
|
|
296
|
-
- [Getting Started Guide](https://github.com/mathursrus/Ashley-Calendar-AI/tree/master/FRAIM/docs/guides/getting-started.md)
|
|
297
|
-
|
|
298
|
-
## 🤖 AI Agent Rules
|
|
299
|
-
|
|
300
|
-
Each AI agent has specific rules and configurations:
|
|
301
|
-
- **Cursor**: \`.cursorrules\`
|
|
302
|
-
- **Claude**: \`CLAUDE.md\`
|
|
303
|
-
- **Windsurf**: \`.windsurfrules\`
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
*Powered by FRAIM: Where humans become AI managers through rigorous methodology*
|
|
308
|
-
`;
|
|
309
|
-
|
|
283
|
+
function createFRAIMConfig() {
|
|
310
284
|
const fraimConfig = {
|
|
311
285
|
version: "1.0.0",
|
|
312
286
|
framework: "FRAIM",
|
|
@@ -329,10 +303,8 @@ Each AI agent has specific rules and configurations:
|
|
|
329
303
|
]
|
|
330
304
|
};
|
|
331
305
|
|
|
332
|
-
writeFile('README.md', readme);
|
|
333
306
|
writeFile('fraim-config.json', JSON.stringify(fraimConfig, null, 2));
|
|
334
|
-
|
|
335
|
-
logSuccess('Documentation created');
|
|
307
|
+
logSuccess('FRAIM configuration created');
|
|
336
308
|
}
|
|
337
309
|
|
|
338
310
|
function runSetup() {
|
|
@@ -340,15 +312,14 @@ function runSetup() {
|
|
|
340
312
|
log('Setting up FRAIM in current repository...\n');
|
|
341
313
|
|
|
342
314
|
try {
|
|
343
|
-
// Create directory structure
|
|
315
|
+
// Create only essential directory structure
|
|
344
316
|
ensureDirectory('.github/workflows');
|
|
345
|
-
ensureDirectory('examples');
|
|
346
317
|
|
|
347
|
-
// Create
|
|
318
|
+
// Create only essential components
|
|
348
319
|
createGitHubLabels();
|
|
349
320
|
createGitHubWorkflows();
|
|
350
321
|
createAgentConfigs();
|
|
351
|
-
|
|
322
|
+
createFRAIMConfig();
|
|
352
323
|
|
|
353
324
|
logHeader('🎉 Setup Complete!');
|
|
354
325
|
logSuccess('FRAIM has been successfully set up in your repository!');
|