proagents 1.6.16 ā 1.6.17
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/.proagents/examples/README.md +2 -2
- package/README.md +9 -41
- package/bin/proagents.js +0 -2
- package/lib/commands/init.js +4 -174
- package/package.json +1 -1
|
@@ -42,8 +42,8 @@ These show the actual back-and-forth interaction between user and AI.
|
|
|
42
42
|
# View example for your project type
|
|
43
43
|
proagents example show react
|
|
44
44
|
|
|
45
|
-
# Initialize
|
|
46
|
-
proagents init
|
|
45
|
+
# Initialize ProAgents
|
|
46
|
+
npx proagents init
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
## Contributing Examples
|
package/README.md
CHANGED
|
@@ -9,6 +9,12 @@ A portable, universal development workflow framework that works with **any AI pl
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
### š [COMMANDS.md](COMMANDS.md) - Complete Command Reference (100+ Commands)
|
|
13
|
+
|
|
14
|
+
CLI commands, AI commands (pa:), workflow phases, debugging, testing, deployment, and more.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
12
18
|
## Why ProAgents?
|
|
13
19
|
|
|
14
20
|
- **AI-Agnostic**: Works with Claude, ChatGPT, Gemini, Cursor, Copilot - switch AI tools anytime without losing context
|
|
@@ -26,12 +32,6 @@ No install required. Just run:
|
|
|
26
32
|
npx proagents init
|
|
27
33
|
```
|
|
28
34
|
|
|
29
|
-
Or with a template:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
npx proagents init --template nextjs-saas
|
|
33
|
-
```
|
|
34
|
-
|
|
35
35
|
---
|
|
36
36
|
|
|
37
37
|
## Quick Start
|
|
@@ -112,22 +112,6 @@ pa:fix "bug in auth" # AI auto-loads context, then fixes
|
|
|
112
112
|
pa:undo-last # Revert last AI's entire session
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
### Project Templates
|
|
116
|
-
|
|
117
|
-
Pre-configured settings for common stacks:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
npx proagents init --template nextjs-saas # Next.js SaaS
|
|
121
|
-
npx proagents init --template react-spa # React SPA
|
|
122
|
-
npx proagents init --template react-native-app # React Native
|
|
123
|
-
npx proagents init --template express-api # Express API
|
|
124
|
-
npx proagents init --template nestjs-api # NestJS API
|
|
125
|
-
npx proagents init --template vue-spa # Vue.js SPA
|
|
126
|
-
npx proagents init --template python-fastapi # Python FastAPI
|
|
127
|
-
|
|
128
|
-
npx proagents init --list-templates # Show all templates
|
|
129
|
-
```
|
|
130
|
-
|
|
131
115
|
### AI Learning & Feedback
|
|
132
116
|
|
|
133
117
|
- **Feedback Log** - AI learns from corrections, doesn't repeat mistakes
|
|
@@ -163,7 +147,6 @@ ProAgents follows **"ALWAYS DO, NEVER JUST TELL"** principle:
|
|
|
163
147
|
```bash
|
|
164
148
|
# Initialize
|
|
165
149
|
npx proagents init # Initialize or update ProAgents
|
|
166
|
-
npx proagents init --template <name> # Use a project template
|
|
167
150
|
|
|
168
151
|
# Daily Use
|
|
169
152
|
proagents status # Show ProAgents status
|
|
@@ -179,7 +162,7 @@ proagents release # Generate release notes
|
|
|
179
162
|
proagents release --changelog # Update CHANGELOG.md
|
|
180
163
|
```
|
|
181
164
|
|
|
182
|
-
|
|
165
|
+
š **Want more?** See [COMMANDS.md](COMMANDS.md) for 30+ CLI commands (release notes, stats, config, backups, shell completions...)
|
|
183
166
|
|
|
184
167
|
---
|
|
185
168
|
|
|
@@ -202,23 +185,7 @@ Type these in any AI assistant (Claude, ChatGPT, Gemini, Cursor, etc.):
|
|
|
202
185
|
|
|
203
186
|
**Quick aliases:** `pa:f` (feature), `pa:s` (status), `pa:t` (test), `pa:h` (help)
|
|
204
187
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## Key Files
|
|
210
|
-
|
|
211
|
-
After initialization, these files help AI understand your project:
|
|
212
|
-
|
|
213
|
-
| File | Purpose | AI Should |
|
|
214
|
-
|------|---------|-----------|
|
|
215
|
-
| `.proagents/context.md` | Persistent project knowledge | **Read first every session!** |
|
|
216
|
-
| `.proagents/feedback.md` | Past corrections & preferences | Learn from mistakes |
|
|
217
|
-
| `.proagents/watchlist.yaml` | Protected files list | Ask before modifying |
|
|
218
|
-
| `.proagents/activity.log` | AI activity history | Check for conflicts |
|
|
219
|
-
| `.proagents/decisions.md` | Architectural decisions | Understand why choices were made |
|
|
220
|
-
| `.proagents/errors.md` | Past errors & solutions | Find solutions faster |
|
|
221
|
-
| `.proagents/handoff.md` | Handoff notes | Continue where another AI left off |
|
|
188
|
+
š **Want more?** See [COMMANDS.md](COMMANDS.md) for 100+ AI commands (debugging, testing, refactoring, code generation, sprints...)
|
|
222
189
|
|
|
223
190
|
---
|
|
224
191
|
|
|
@@ -248,6 +215,7 @@ ProAgents works with **any AI that has agentic capability** (can read files and
|
|
|
248
215
|
|
|
249
216
|
| Document | Description |
|
|
250
217
|
|----------|-------------|
|
|
218
|
+
| š **[COMMANDS.md](COMMANDS.md)** | **100+ CLI & AI commands** |
|
|
251
219
|
| [Getting Started Story](./.proagents/GETTING-STARTED-STORY.md) | Narrative walkthrough |
|
|
252
220
|
| [Complete Workflow](./.proagents/WORKFLOW.md) | 10-phase workflow guide |
|
|
253
221
|
| [AI Instructions](./.proagents/AI_INSTRUCTIONS.md) | Full AI command reference |
|
package/bin/proagents.js
CHANGED
|
@@ -42,8 +42,6 @@ program
|
|
|
42
42
|
.description('Initialize ProAgents in the current project')
|
|
43
43
|
.option('-f, --force', 'Overwrite existing proagents folder')
|
|
44
44
|
.option('--skip-config', 'Skip creating config file')
|
|
45
|
-
.option('-t, --template <name>', 'Use a project template (e.g., nextjs-saas, react-spa)')
|
|
46
|
-
.option('--list-templates', 'List available project templates')
|
|
47
45
|
.action(initCommand);
|
|
48
46
|
|
|
49
47
|
// Feature commands
|
package/lib/commands/init.js
CHANGED
|
@@ -316,115 +316,6 @@ const PROJECT_TYPES = [
|
|
|
316
316
|
}
|
|
317
317
|
];
|
|
318
318
|
|
|
319
|
-
// Project templates - pre-configured settings for common stacks
|
|
320
|
-
const PROJECT_TEMPLATES = {
|
|
321
|
-
'nextjs-saas': {
|
|
322
|
-
name: 'Next.js SaaS Starter',
|
|
323
|
-
description: 'Full-stack SaaS with authentication, database, and payments',
|
|
324
|
-
project: { type: 'nextjs' },
|
|
325
|
-
techStack: {
|
|
326
|
-
api_style: 'rest',
|
|
327
|
-
state_management: 'zustand',
|
|
328
|
-
styling: 'tailwind',
|
|
329
|
-
database: 'postgresql',
|
|
330
|
-
orm: 'prisma',
|
|
331
|
-
auth_method: 'nextauth',
|
|
332
|
-
test_framework: 'vitest'
|
|
333
|
-
},
|
|
334
|
-
platforms: ['claude', 'cursor', 'copilot']
|
|
335
|
-
},
|
|
336
|
-
'react-spa': {
|
|
337
|
-
name: 'React Single Page App',
|
|
338
|
-
description: 'Frontend-focused React application with modern tooling',
|
|
339
|
-
project: { type: 'react' },
|
|
340
|
-
techStack: {
|
|
341
|
-
api_style: 'rest',
|
|
342
|
-
state_management: 'zustand',
|
|
343
|
-
styling: 'tailwind',
|
|
344
|
-
database: 'none',
|
|
345
|
-
orm: 'none',
|
|
346
|
-
auth_method: 'jwt',
|
|
347
|
-
test_framework: 'vitest'
|
|
348
|
-
},
|
|
349
|
-
platforms: ['claude', 'cursor']
|
|
350
|
-
},
|
|
351
|
-
'react-native-app': {
|
|
352
|
-
name: 'React Native Mobile App',
|
|
353
|
-
description: 'Cross-platform mobile app with Expo',
|
|
354
|
-
project: { type: 'react-native' },
|
|
355
|
-
techStack: {
|
|
356
|
-
api_style: 'rest',
|
|
357
|
-
state_management: 'zustand',
|
|
358
|
-
styling: 'tailwind',
|
|
359
|
-
database: 'supabase',
|
|
360
|
-
orm: 'none',
|
|
361
|
-
auth_method: 'supabase',
|
|
362
|
-
test_framework: 'jest'
|
|
363
|
-
},
|
|
364
|
-
platforms: ['claude', 'cursor']
|
|
365
|
-
},
|
|
366
|
-
'express-api': {
|
|
367
|
-
name: 'Express.js REST API',
|
|
368
|
-
description: 'Backend API with Express, PostgreSQL, and JWT auth',
|
|
369
|
-
project: { type: 'express' },
|
|
370
|
-
techStack: {
|
|
371
|
-
api_style: 'rest',
|
|
372
|
-
state_management: 'none',
|
|
373
|
-
styling: 'none',
|
|
374
|
-
database: 'postgresql',
|
|
375
|
-
orm: 'prisma',
|
|
376
|
-
auth_method: 'jwt',
|
|
377
|
-
test_framework: 'jest'
|
|
378
|
-
},
|
|
379
|
-
platforms: ['claude', 'cursor']
|
|
380
|
-
},
|
|
381
|
-
'nestjs-api': {
|
|
382
|
-
name: 'NestJS Enterprise API',
|
|
383
|
-
description: 'Enterprise-grade API with NestJS and TypeORM',
|
|
384
|
-
project: { type: 'nestjs' },
|
|
385
|
-
techStack: {
|
|
386
|
-
api_style: 'rest',
|
|
387
|
-
state_management: 'none',
|
|
388
|
-
styling: 'none',
|
|
389
|
-
database: 'postgresql',
|
|
390
|
-
orm: 'typeorm',
|
|
391
|
-
auth_method: 'jwt',
|
|
392
|
-
test_framework: 'jest'
|
|
393
|
-
},
|
|
394
|
-
platforms: ['claude', 'cursor']
|
|
395
|
-
},
|
|
396
|
-
'vue-spa': {
|
|
397
|
-
name: 'Vue.js Single Page App',
|
|
398
|
-
description: 'Vue 3 with Composition API and Pinia',
|
|
399
|
-
project: { type: 'vue' },
|
|
400
|
-
techStack: {
|
|
401
|
-
api_style: 'rest',
|
|
402
|
-
state_management: 'none',
|
|
403
|
-
styling: 'tailwind',
|
|
404
|
-
database: 'none',
|
|
405
|
-
orm: 'none',
|
|
406
|
-
auth_method: 'jwt',
|
|
407
|
-
test_framework: 'vitest'
|
|
408
|
-
},
|
|
409
|
-
platforms: ['claude', 'cursor']
|
|
410
|
-
},
|
|
411
|
-
'python-fastapi': {
|
|
412
|
-
name: 'Python FastAPI',
|
|
413
|
-
description: 'Modern Python API with FastAPI and SQLAlchemy',
|
|
414
|
-
project: { type: 'python' },
|
|
415
|
-
techStack: {
|
|
416
|
-
api_style: 'rest',
|
|
417
|
-
state_management: 'none',
|
|
418
|
-
styling: 'none',
|
|
419
|
-
database: 'postgresql',
|
|
420
|
-
orm: 'none',
|
|
421
|
-
auth_method: 'jwt',
|
|
422
|
-
test_framework: 'pytest'
|
|
423
|
-
},
|
|
424
|
-
platforms: ['claude', 'cursor']
|
|
425
|
-
}
|
|
426
|
-
};
|
|
427
|
-
|
|
428
319
|
// Tech stack configuration options
|
|
429
320
|
const TECH_STACK_OPTIONS = {
|
|
430
321
|
api_style: {
|
|
@@ -963,41 +854,6 @@ async function promptProjectConfig(targetDir, existingConfig = {}) {
|
|
|
963
854
|
};
|
|
964
855
|
}
|
|
965
856
|
|
|
966
|
-
/**
|
|
967
|
-
* List available templates
|
|
968
|
-
*/
|
|
969
|
-
export function listTemplates() {
|
|
970
|
-
console.log(chalk.bold('\nAvailable Project Templates'));
|
|
971
|
-
console.log(chalk.gray('ā'.repeat(50)));
|
|
972
|
-
|
|
973
|
-
for (const [id, template] of Object.entries(PROJECT_TEMPLATES)) {
|
|
974
|
-
console.log(`\n ${chalk.cyan(id)}`);
|
|
975
|
-
console.log(` ${template.name}`);
|
|
976
|
-
console.log(chalk.gray(` ${template.description}`));
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
console.log(chalk.gray('\n\nUsage: npx proagents init --template <name>\n'));
|
|
980
|
-
}
|
|
981
|
-
|
|
982
|
-
/**
|
|
983
|
-
* Apply a project template
|
|
984
|
-
*/
|
|
985
|
-
function applyTemplate(templateId, targetDir) {
|
|
986
|
-
const template = PROJECT_TEMPLATES[templateId];
|
|
987
|
-
if (!template) {
|
|
988
|
-
return null;
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
// Return config object that matches what promptProjectConfig returns
|
|
992
|
-
return {
|
|
993
|
-
name: basename(targetDir),
|
|
994
|
-
type: template.project.type,
|
|
995
|
-
typeName: PROJECT_TYPES.find(t => t.id === template.project.type)?.name || template.project.type,
|
|
996
|
-
techStack: template.techStack,
|
|
997
|
-
platforms: template.platforms
|
|
998
|
-
};
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
857
|
/**
|
|
1002
858
|
* Load existing partial config (for resume after interrupted setup)
|
|
1003
859
|
*/
|
|
@@ -1331,27 +1187,8 @@ No releases yet. Use \`pa:release\` to generate release notes.
|
|
|
1331
1187
|
console.log(chalk.green('ā Created RELEASE_NOTES.md'));
|
|
1332
1188
|
}
|
|
1333
1189
|
|
|
1334
|
-
// Project configuration -
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
if (options.listTemplates) {
|
|
1338
|
-
listTemplates();
|
|
1339
|
-
return;
|
|
1340
|
-
}
|
|
1341
|
-
|
|
1342
|
-
if (options.template) {
|
|
1343
|
-
// Use template
|
|
1344
|
-
projectConfig = applyTemplate(options.template, targetDir);
|
|
1345
|
-
if (!projectConfig) {
|
|
1346
|
-
console.log(chalk.red(`\nError: Template "${options.template}" not found.`));
|
|
1347
|
-
listTemplates();
|
|
1348
|
-
return;
|
|
1349
|
-
}
|
|
1350
|
-
console.log(chalk.green(`\nā Using template: ${PROJECT_TEMPLATES[options.template].name}`));
|
|
1351
|
-
} else {
|
|
1352
|
-
// Interactive prompts - pass existing config for pre-filling
|
|
1353
|
-
projectConfig = await promptProjectConfig(targetDir, existingConfig);
|
|
1354
|
-
}
|
|
1190
|
+
// Project configuration - interactive prompts with auto-detection
|
|
1191
|
+
const projectConfig = await promptProjectConfig(targetDir, existingConfig);
|
|
1355
1192
|
|
|
1356
1193
|
// Save progress after project config
|
|
1357
1194
|
savePartialConfig(configPath, {
|
|
@@ -1394,15 +1231,8 @@ For detailed commands, see \`./.proagents/PROAGENTS.md\`
|
|
|
1394
1231
|
console.log(chalk.green('ā Created README.md with ProAgents commands'));
|
|
1395
1232
|
}
|
|
1396
1233
|
|
|
1397
|
-
// AI platform selection -
|
|
1398
|
-
|
|
1399
|
-
if (options.template && projectConfig.platforms) {
|
|
1400
|
-
selectedPlatforms = projectConfig.platforms;
|
|
1401
|
-
console.log(chalk.gray(` Using template platforms: ${selectedPlatforms.join(', ')}`));
|
|
1402
|
-
} else {
|
|
1403
|
-
// Pass existing config for pre-selection
|
|
1404
|
-
selectedPlatforms = await selectPlatforms(existingConfig.ai_platforms);
|
|
1405
|
-
}
|
|
1234
|
+
// AI platform selection - interactive with auto-detection
|
|
1235
|
+
const selectedPlatforms = await selectPlatforms(existingConfig.ai_platforms);
|
|
1406
1236
|
|
|
1407
1237
|
// Save progress after platform selection
|
|
1408
1238
|
savePartialConfig(configPath, {
|