proagents 1.6.20 → 1.6.22
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/.claude/settings.local.json +3 -1
- package/.proagents/.cursorrules +1 -1
- package/.proagents/.windsurfrules +1 -1
- package/.proagents/AGENTS.md +1 -1
- package/.proagents/AI_INSTRUCTIONS.md +29 -1
- package/.proagents/BOLT.md +1 -1
- package/.proagents/CLAUDE.md +1 -1
- package/.proagents/GEMINI.md +1 -1
- package/.proagents/KIRO.md +1 -1
- package/.proagents/LOVABLE.md +1 -1
- package/.proagents/REPLIT.md +1 -1
- package/.proagents/custom-commands.yaml +1 -2
- package/.proagents/docs/command-details.md +1 -2
- package/.proagents/getting-started/ai-training-setup.md +0 -1
- package/.proagents/performance/README.md +59 -0
- package/.proagents/performance/bundle-analysis.md +375 -0
- package/.proagents/performance/load-testing.md +563 -0
- package/.proagents/performance/runtime-metrics.md +489 -0
- package/.proagents/performance/web-vitals.md +425 -0
- package/.proagents/proagents.config.yaml +55 -1
- package/.proagents/prompts/11-session-tracking.md +100 -0
- package/.proagents/prompts/13-commit.md +426 -0
- package/.proagents/workflow-modes/entry-modes.md +1 -6
- package/COMMANDS.md +19 -0
- package/lib/commands/init.js +62 -11
- package/package.json +1 -1
- package/.proagents/api-versioning/README.md +0 -257
- package/.proagents/api-versioning/changelog-template.md +0 -225
- package/.proagents/api-versioning/deprecation-workflow.md +0 -470
- package/.proagents/api-versioning/versioning-strategy.md +0 -291
- package/.proagents/automation/README.md +0 -38
- package/.proagents/automation/ai-behavior-rules.md +0 -339
- package/.proagents/automation/ai-prompt-injection.md +0 -331
- package/.proagents/automation/auto-decisions.md +0 -535
- package/.proagents/automation/decision-defaults.yaml +0 -317
- package/.proagents/cache/README.md +0 -110
- package/.proagents/cache/analysis-metadata.json +0 -76
- package/.proagents/cache/conventions.json +0 -125
- package/.proagents/cache/dependencies.json +0 -85
- package/.proagents/cache/features.json +0 -115
- package/.proagents/cache/patterns.json +0 -105
- package/.proagents/cache/schemas/conventions-schema.json +0 -138
- package/.proagents/cache/schemas/dependencies-schema.json +0 -95
- package/.proagents/cache/schemas/features-schema.json +0 -104
- package/.proagents/cache/schemas/metadata-schema.json +0 -83
- package/.proagents/cache/schemas/patterns-schema.json +0 -136
- package/.proagents/cache/schemas/structure-schema.json +0 -72
- package/.proagents/cache/structure.json +0 -109
- package/.proagents/checklists/README.md +0 -261
- package/.proagents/checklists/code-quality.md +0 -137
- package/.proagents/checklists/code-review.md +0 -148
- package/.proagents/checklists/pr-checklist.md +0 -78
- package/.proagents/checklists/pre-deployment.md +0 -132
- package/.proagents/checklists/pre-implementation.md +0 -80
- package/.proagents/checklists/testing.md +0 -120
- package/.proagents/checkpoints.json +0 -13
- package/.proagents/cicd/README.md +0 -338
- package/.proagents/cicd/azure-devops.md +0 -267
- package/.proagents/cicd/github-actions.md +0 -375
- package/.proagents/cicd/gitlab-ci.md +0 -278
- package/.proagents/cicd/jenkins.md +0 -317
- package/.proagents/collaboration/README.md +0 -143
- package/.proagents/collaboration/roles.md +0 -248
- package/.proagents/collaboration/sessions.md +0 -390
- package/.proagents/collaboration/sync.md +0 -358
- package/.proagents/cost/README.md +0 -48
- package/.proagents/cost/cost-template.md +0 -283
- package/.proagents/cost/estimation-framework.md +0 -287
- package/.proagents/database/README.md +0 -72
- package/.proagents/database/examples/001-create-users.sql +0 -129
- package/.proagents/database/examples/002-add-preferences.sql +0 -94
- package/.proagents/database/examples/003-add-index.sql +0 -105
- package/.proagents/database/examples/004-rename-column.sql +0 -122
- package/.proagents/database/examples/005-add-foreign-key.sql +0 -142
- package/.proagents/database/examples/006-data-migration.sql +0 -196
- package/.proagents/database/examples/007-drop-column.sql +0 -163
- package/.proagents/database/examples/README.md +0 -89
- package/.proagents/database/migration-workflow.md +0 -478
- package/.proagents/database/rollback-scripts.md +0 -487
- package/.proagents/database/safety-checks.md +0 -447
- package/.proagents/git/README.md +0 -68
- package/.proagents/git/branch-strategy.md +0 -164
- package/.proagents/git/commit-conventions.md +0 -241
- package/.proagents/git/pr-workflow.md +0 -286
- package/.proagents/git/rollback-procedures.md +0 -416
- package/.proagents/ide-integration/README.md +0 -124
- package/.proagents/ide-integration/cline-config.md +0 -429
- package/.proagents/ide-integration/continue-config.md +0 -380
- package/.proagents/ide-integration/cursor-rules.md +0 -280
- package/.proagents/ide-integration/github-copilot.md +0 -384
- package/.proagents/ide-integration/windsurf-rules.md +0 -314
- package/.proagents/integrations/README.md +0 -97
- package/.proagents/integrations/pm/README.md +0 -344
- package/.proagents/learning/README.md +0 -136
- package/.proagents/learning/adaptation.md +0 -305
- package/.proagents/learning/data-collection.md +0 -283
- package/.proagents/learning/implementation-guide.md +0 -865
- package/.proagents/learning/reports.md +0 -306
- package/.proagents/mcp/README.md +0 -133
- package/.proagents/mcp/context-providers.md +0 -442
- package/.proagents/mcp/server-config.md +0 -306
- package/.proagents/mcp/tools-definition.md +0 -513
- package/.proagents/pm-integration/README.md +0 -151
- package/.proagents/pm-integration/asana.md +0 -346
- package/.proagents/pm-integration/github-issues.md +0 -308
- package/.proagents/pm-integration/gitlab-issues.md +0 -482
- package/.proagents/pm-integration/jira.md +0 -364
- package/.proagents/pm-integration/linear.md +0 -409
- package/.proagents/pm-integration/notion.md +0 -275
- package/.proagents/pm-integration/sync-config.md +0 -533
- package/.proagents/pm-integration/trello.md +0 -159
- package/.proagents/rules/README.md +0 -179
- package/.proagents/rules/custom-rules-template.yaml +0 -286
- package/.proagents/rules/custom-rules.md +0 -754
- package/.proagents/rules/validation-rules-template.yaml +0 -517
- package/.proagents/runbooks/README.md +0 -219
- package/.proagents/runbooks/dependency-vulnerability.md +0 -505
- package/.proagents/runbooks/incident-response.md +0 -451
- package/.proagents/runbooks/performance-degradation.md +0 -584
- package/.proagents/runbooks/production-debugging.md +0 -489
- package/.proagents/sessions/README.md +0 -5
- package/.proagents/sprints/README.md +0 -58
- package/.proagents/team/README.md +0 -256
- package/.proagents/team/code-ownership.md +0 -306
- package/.proagents/team/communication-templates.md +0 -441
- package/.proagents/team/handoff-protocol.md +0 -380
- package/.proagents/team/ide-setup/README.md +0 -103
- package/.proagents/team/ide-setup/cursor.md +0 -276
- package/.proagents/team/ide-setup/jetbrains.md +0 -330
- package/.proagents/team/ide-setup/neovim.md +0 -640
- package/.proagents/team/ide-setup/vscode.md +0 -348
- package/.proagents/team/onboarding.md +0 -278
- package/.proagents/time-tracking.json +0 -19
- package/.proagents/troubleshooting/README.md +0 -730
- package/.proagents/troubleshooting/ai-issues.md +0 -601
- package/.proagents/troubleshooting/workflow-issues.md +0 -571
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
# Smart Commit Workflow
|
|
2
|
+
|
|
3
|
+
Interactive commit with file selection, safety checks, and smart message generation.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## CRITICAL RULES - READ FIRST
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
11
|
+
!! !!
|
|
12
|
+
!! THIS IS AN INTERACTIVE COMMAND !!
|
|
13
|
+
!! !!
|
|
14
|
+
!! YOU MUST ASK USER AND WAIT FOR RESPONSE AT EACH STEP !!
|
|
15
|
+
!! !!
|
|
16
|
+
!! DO NOT: !!
|
|
17
|
+
!! - Skip steps !!
|
|
18
|
+
!! - Assume user choices !!
|
|
19
|
+
!! - Commit without explicit user confirmation !!
|
|
20
|
+
!! - Modify config without user selection !!
|
|
21
|
+
!! !!
|
|
22
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Commands
|
|
28
|
+
|
|
29
|
+
| Command | Alias | Description |
|
|
30
|
+
|---------|-------|-------------|
|
|
31
|
+
| `pa:commit` | `pa:c` | Smart commit workflow |
|
|
32
|
+
| `pa:commit-config` | - | Configure pre-commit checks |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
# pa:commit Workflow
|
|
37
|
+
|
|
38
|
+
## Step 1: Show Current State and ASK
|
|
39
|
+
|
|
40
|
+
First, run these commands silently:
|
|
41
|
+
```bash
|
|
42
|
+
git status --porcelain
|
|
43
|
+
git diff --stat
|
|
44
|
+
git diff --cached --stat
|
|
45
|
+
git branch --show-current
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Then DISPLAY this to user and WAIT for their choice:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
═══════════════════════════════════════
|
|
52
|
+
SMART COMMIT
|
|
53
|
+
|
|
54
|
+
Current Branch: [branch name]
|
|
55
|
+
|
|
56
|
+
Staged Files:
|
|
57
|
+
[list staged files with +/- lines]
|
|
58
|
+
|
|
59
|
+
Unstaged Files:
|
|
60
|
+
[list unstaged files with +/- lines]
|
|
61
|
+
|
|
62
|
+
Untracked Files:
|
|
63
|
+
[list new files]
|
|
64
|
+
|
|
65
|
+
Which files do you want to commit?
|
|
66
|
+
|
|
67
|
+
1. Staged only
|
|
68
|
+
2. Unstaged only
|
|
69
|
+
3. All changes
|
|
70
|
+
4. Let me select specific files
|
|
71
|
+
|
|
72
|
+
Enter choice (1-4):
|
|
73
|
+
═══════════════════════════════════════
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Step 1b: Handle "Select Specific Files" (Option 4)
|
|
81
|
+
|
|
82
|
+
**ONLY if user chose option 4**, show numbered list of ALL files:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
═══════════════════════════════════════
|
|
86
|
+
SELECT FILES TO COMMIT
|
|
87
|
+
|
|
88
|
+
1. AGENTS.md (+1, -1)
|
|
89
|
+
2. CLAUDE.md (+1, -1)
|
|
90
|
+
3. docs/releases/v0.0.1.md (+4, -1)
|
|
91
|
+
4. ios/IQAuditor.xcodeproj/project.pbxproj (+16, -10)
|
|
92
|
+
5. android/app/release/app-release.aab (new, 97MB)
|
|
93
|
+
|
|
94
|
+
Enter file numbers to INCLUDE (comma-separated):
|
|
95
|
+
Example: 1,2,3 or 1-3 or all
|
|
96
|
+
|
|
97
|
+
═══════════════════════════════════════
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
101
|
+
|
|
102
|
+
After user provides numbers, those are the ONLY files to commit.
|
|
103
|
+
**SKIP Step 2** (exclusions) since user already selected specific files.
|
|
104
|
+
Proceed directly to Step 3 (Safety Checks).
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Step 2: Ask About Exclusions
|
|
109
|
+
|
|
110
|
+
**SKIP this step if user chose option 4 in Step 1.**
|
|
111
|
+
|
|
112
|
+
Only for options 1, 2, or 3, ASK:
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
Any files to EXCLUDE from this commit?
|
|
116
|
+
|
|
117
|
+
Enter file paths (comma-separated) or "none":
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Step 3: Safety Checks
|
|
125
|
+
|
|
126
|
+
### 3a. Branch Check
|
|
127
|
+
|
|
128
|
+
If current branch is `main` or `master`, STOP and ASK:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
WARNING: You are committing to 'main' branch!
|
|
132
|
+
|
|
133
|
+
What do you want to do?
|
|
134
|
+
|
|
135
|
+
1. Create a new branch first
|
|
136
|
+
2. Continue on main anyway
|
|
137
|
+
3. Cancel
|
|
138
|
+
|
|
139
|
+
Enter choice (1-3):
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
143
|
+
|
|
144
|
+
If user chose 1, ASK for branch name:
|
|
145
|
+
```
|
|
146
|
+
Enter new branch name (e.g., fix/bug-name):
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
150
|
+
|
|
151
|
+
### 3b. Sensitive File Check
|
|
152
|
+
|
|
153
|
+
Check if any selected file matches:
|
|
154
|
+
- `.env*`
|
|
155
|
+
- `credentials*`, `secrets*`
|
|
156
|
+
- `*.pem`, `*.key`, `id_rsa*`
|
|
157
|
+
|
|
158
|
+
If found, STOP and ASK:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
WARNING: Sensitive file(s) detected!
|
|
162
|
+
|
|
163
|
+
- .env.local
|
|
164
|
+
- config/secrets.json
|
|
165
|
+
|
|
166
|
+
These files may contain secrets. What do you want to do?
|
|
167
|
+
|
|
168
|
+
1. Exclude these files and continue
|
|
169
|
+
2. Commit anyway (not recommended)
|
|
170
|
+
3. Cancel
|
|
171
|
+
|
|
172
|
+
Enter choice (1-3):
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
176
|
+
|
|
177
|
+
### 3c. Large File Check
|
|
178
|
+
|
|
179
|
+
Check if any file > 1MB. If found, STOP and ASK:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
WARNING: Large file detected!
|
|
183
|
+
|
|
184
|
+
- assets/video.mp4 (15.2 MB)
|
|
185
|
+
|
|
186
|
+
Large files can slow down your repository.
|
|
187
|
+
|
|
188
|
+
1. Exclude this file
|
|
189
|
+
2. Commit anyway
|
|
190
|
+
3. Cancel
|
|
191
|
+
|
|
192
|
+
Enter choice (1-3):
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Step 4: Generate Message and ASK
|
|
200
|
+
|
|
201
|
+
Analyze the diff and generate a commit message. Then SHOW and ASK:
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
═══════════════════════════════════════
|
|
205
|
+
SUGGESTED COMMIT MESSAGE
|
|
206
|
+
|
|
207
|
+
[type]([scope]): [description]
|
|
208
|
+
|
|
209
|
+
- [bullet point 1]
|
|
210
|
+
- [bullet point 2]
|
|
211
|
+
|
|
212
|
+
═══════════════════════════════════════
|
|
213
|
+
|
|
214
|
+
What do you want to do?
|
|
215
|
+
|
|
216
|
+
1. Use this message
|
|
217
|
+
2. Edit this message (tell me what to change)
|
|
218
|
+
3. I'll write my own message
|
|
219
|
+
4. Cancel
|
|
220
|
+
|
|
221
|
+
Enter choice (1-4):
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
225
|
+
|
|
226
|
+
If user chose 2:
|
|
227
|
+
```
|
|
228
|
+
What would you like to change in the message?
|
|
229
|
+
```
|
|
230
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
231
|
+
|
|
232
|
+
If user chose 3:
|
|
233
|
+
```
|
|
234
|
+
Enter your commit message:
|
|
235
|
+
```
|
|
236
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Step 5: Confirm Before Commit
|
|
241
|
+
|
|
242
|
+
Before executing, show summary and ASK:
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
═══════════════════════════════════════
|
|
246
|
+
COMMIT SUMMARY
|
|
247
|
+
|
|
248
|
+
Files to commit:
|
|
249
|
+
- file1.ts
|
|
250
|
+
- file2.ts
|
|
251
|
+
|
|
252
|
+
Message:
|
|
253
|
+
feat(auth): Add password validation
|
|
254
|
+
|
|
255
|
+
Proceed with commit?
|
|
256
|
+
|
|
257
|
+
1. Yes, commit now
|
|
258
|
+
2. No, cancel
|
|
259
|
+
|
|
260
|
+
Enter choice (1-2):
|
|
261
|
+
═══════════════════════════════════════
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Step 6: Execute and Ask About Push
|
|
269
|
+
|
|
270
|
+
Only after user confirms, execute:
|
|
271
|
+
```bash
|
|
272
|
+
git add [selected files]
|
|
273
|
+
git commit -m "[message]"
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Then show result and ASK:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
Commit successful! [commit hash]
|
|
280
|
+
|
|
281
|
+
[commit message]
|
|
282
|
+
|
|
283
|
+
[X] files changed, [+] insertions, [-] deletions
|
|
284
|
+
|
|
285
|
+
Do you want to push now?
|
|
286
|
+
|
|
287
|
+
1. Yes, push to remote
|
|
288
|
+
2. No, I'll push later
|
|
289
|
+
|
|
290
|
+
Enter choice (1-2):
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
# pa:commit-config Workflow
|
|
298
|
+
|
|
299
|
+
## CRITICAL: This is INTERACTIVE
|
|
300
|
+
|
|
301
|
+
```
|
|
302
|
+
DO NOT modify config without asking user!
|
|
303
|
+
DO NOT assume which settings to change!
|
|
304
|
+
SHOW current settings and ASK what to toggle!
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## Step 1: Read and Display Current Config
|
|
308
|
+
|
|
309
|
+
Read `proagents.config.yaml` and DISPLAY:
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
═══════════════════════════════════════
|
|
313
|
+
COMMIT CONFIGURATION
|
|
314
|
+
|
|
315
|
+
Current Settings:
|
|
316
|
+
|
|
317
|
+
Pre-commit Checks:
|
|
318
|
+
1. [ON/OFF] Lint check
|
|
319
|
+
2. [ON/OFF] Type check
|
|
320
|
+
3. [ON/OFF] Test affected files
|
|
321
|
+
|
|
322
|
+
Safety Warnings:
|
|
323
|
+
4. [ON/OFF] Warn on main/master branch
|
|
324
|
+
5. [ON/OFF] Warn on sensitive files
|
|
325
|
+
6. [ON/OFF] Warn on large files (>1MB)
|
|
326
|
+
|
|
327
|
+
7. Save and exit
|
|
328
|
+
|
|
329
|
+
Which setting do you want to toggle? (1-7):
|
|
330
|
+
═══════════════════════════════════════
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**>>> STOP HERE. WAIT FOR USER TO RESPOND. <<<**
|
|
334
|
+
|
|
335
|
+
## Step 2: Toggle and Show Updated
|
|
336
|
+
|
|
337
|
+
After user selects a number (1-6), toggle that setting and show updated list again.
|
|
338
|
+
|
|
339
|
+
Repeat until user selects 7 (Save and exit).
|
|
340
|
+
|
|
341
|
+
## Step 3: Save and Confirm
|
|
342
|
+
|
|
343
|
+
When user selects 7:
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
Saving configuration...
|
|
347
|
+
|
|
348
|
+
Updated settings:
|
|
349
|
+
- lint: true -> false
|
|
350
|
+
- type_check: true (unchanged)
|
|
351
|
+
|
|
352
|
+
Configuration saved to proagents.config.yaml
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
# Commit Message Rules
|
|
358
|
+
|
|
359
|
+
## Types
|
|
360
|
+
|
|
361
|
+
| Type | When to use |
|
|
362
|
+
|------|-------------|
|
|
363
|
+
| feat | New feature or functionality |
|
|
364
|
+
| fix | Bug fix |
|
|
365
|
+
| refactor | Code restructuring (no new feature) |
|
|
366
|
+
| docs | Documentation only |
|
|
367
|
+
| test | Adding or updating tests |
|
|
368
|
+
| chore | Maintenance, dependencies |
|
|
369
|
+
| style | Formatting, whitespace |
|
|
370
|
+
|
|
371
|
+
## Scope Detection
|
|
372
|
+
|
|
373
|
+
| File Path | Scope |
|
|
374
|
+
|-----------|-------|
|
|
375
|
+
| src/auth/* | auth |
|
|
376
|
+
| src/api/*, routes/* | api |
|
|
377
|
+
| src/components/* | ui |
|
|
378
|
+
| src/services/* | services |
|
|
379
|
+
| src/utils/*, lib/* | utils |
|
|
380
|
+
| tests/* | test |
|
|
381
|
+
|
|
382
|
+
## Format
|
|
383
|
+
|
|
384
|
+
```
|
|
385
|
+
type(scope): Short description (max 72 chars)
|
|
386
|
+
|
|
387
|
+
- Bullet point for each change
|
|
388
|
+
- Keep it concise
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
# Config Reference
|
|
394
|
+
|
|
395
|
+
```yaml
|
|
396
|
+
git:
|
|
397
|
+
pre_commit:
|
|
398
|
+
enabled: true
|
|
399
|
+
lint: true
|
|
400
|
+
type_check: true
|
|
401
|
+
test_affected: false
|
|
402
|
+
safety:
|
|
403
|
+
warn_main_branch: true
|
|
404
|
+
warn_sensitive_files: true
|
|
405
|
+
warn_large_files: true
|
|
406
|
+
large_file_threshold: 1048576
|
|
407
|
+
sensitive_patterns:
|
|
408
|
+
- ".env*"
|
|
409
|
+
- "credentials*"
|
|
410
|
+
- "secrets*"
|
|
411
|
+
- "*.pem"
|
|
412
|
+
- "*.key"
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
# Summary
|
|
418
|
+
|
|
419
|
+
| Step | Action | Requires User Input? |
|
|
420
|
+
|------|--------|---------------------|
|
|
421
|
+
| 1 | Show files | YES - which files |
|
|
422
|
+
| 2 | Exclusions | YES - any to exclude |
|
|
423
|
+
| 3 | Safety checks | YES - if warnings |
|
|
424
|
+
| 4 | Commit message | YES - use/edit/custom |
|
|
425
|
+
| 5 | Confirm | YES - proceed? |
|
|
426
|
+
| 6 | Push option | YES - push now? |
|
|
@@ -127,8 +127,7 @@ Streamlined workflow for fixing bugs quickly without skipping quality.
|
|
|
127
127
|
│ Phase 1: Context Scan (2-5 min) │
|
|
128
128
|
│ ├── Identify affected files from bug description │
|
|
129
129
|
│ ├── Scan recent changes (git history) │
|
|
130
|
-
│
|
|
131
|
-
│ └── Load cached analysis if available │
|
|
130
|
+
│ └── Check related components │
|
|
132
131
|
│ │
|
|
133
132
|
│ Phase 2: Root Cause Analysis │
|
|
134
133
|
│ ├── Identify the bug source │
|
|
@@ -186,10 +185,6 @@ auto_context:
|
|
|
186
185
|
components: true
|
|
187
186
|
services: true
|
|
188
187
|
tests: true
|
|
189
|
-
|
|
190
|
-
load_cached:
|
|
191
|
-
analysis: true
|
|
192
|
-
patterns: true
|
|
193
188
|
```
|
|
194
189
|
|
|
195
190
|
### Guardrails
|
package/COMMANDS.md
CHANGED
|
@@ -27,6 +27,7 @@ Complete reference for CLI and AI (`pa:`) commands. For quick start, see [README
|
|
|
27
27
|
- [Documentation](#documentation)
|
|
28
28
|
- [Quality & Testing](#quality--testing)
|
|
29
29
|
- [Cross-AI Continuity](#cross-ai-continuity)
|
|
30
|
+
- [Worktree Management](#worktree-management)
|
|
30
31
|
- [Learning & Tracking](#learning--tracking)
|
|
31
32
|
- [Navigation & Flow](#navigation--flow)
|
|
32
33
|
- [Context & History](#context--history)
|
|
@@ -327,6 +328,21 @@ Type these in any AI assistant (Claude, ChatGPT, Gemini, Cursor, etc.)
|
|
|
327
328
|
|
|
328
329
|
---
|
|
329
330
|
|
|
331
|
+
## Worktree Management
|
|
332
|
+
|
|
333
|
+
| Command | Description |
|
|
334
|
+
|---------|-------------|
|
|
335
|
+
| `pa:worktree-create "name"` | Create worktree for large task |
|
|
336
|
+
| `pa:worktree-list` | List all active worktrees |
|
|
337
|
+
| `pa:worktree-remove "name"` | Remove worktree after merge |
|
|
338
|
+
|
|
339
|
+
**When to use worktrees:**
|
|
340
|
+
- Large features (days/weeks of work)
|
|
341
|
+
- Parallel work (multiple AIs or developers)
|
|
342
|
+
- Need to run/test multiple versions simultaneously
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
330
346
|
## Learning & Tracking
|
|
331
347
|
|
|
332
348
|
| Command | Description |
|
|
@@ -487,6 +503,9 @@ Type these in any AI assistant (Claude, ChatGPT, Gemini, Cursor, etc.)
|
|
|
487
503
|
|
|
488
504
|
| Command | Description |
|
|
489
505
|
|---------|-------------|
|
|
506
|
+
| `pa:commit` | Smart commit with file selection and message generation |
|
|
507
|
+
| `pa:c` | Alias for pa:commit |
|
|
508
|
+
| `pa:commit-config` | Configure pre-commit checks (lint, type-check, tests) |
|
|
490
509
|
| `pa:branch` | Branch management |
|
|
491
510
|
| `pa:merge` | Smart merge with conflict preview |
|
|
492
511
|
| `pa:conflict` | Resolve merge conflicts with AI |
|
package/lib/commands/init.js
CHANGED
|
@@ -13,10 +13,8 @@ const __dirname = dirname(__filename);
|
|
|
13
13
|
const PRESERVE_PATHS = [
|
|
14
14
|
'active-features', // User's work in progress
|
|
15
15
|
'.learning', // Learned patterns
|
|
16
|
-
'cache', // Cached analysis
|
|
17
16
|
'changelog', // Change history (user data)
|
|
18
17
|
'worklog', // Work context (user data)
|
|
19
|
-
'sessions', // Session data
|
|
20
18
|
'backups', // User backups
|
|
21
19
|
];
|
|
22
20
|
|
|
@@ -148,10 +146,9 @@ const CONFIG_FILE = 'proagents.config.yaml';
|
|
|
148
146
|
const FRAMEWORK_FOLDERS = [
|
|
149
147
|
'prompts',
|
|
150
148
|
'templates',
|
|
151
|
-
'checklists',
|
|
152
149
|
'standards',
|
|
153
150
|
'examples',
|
|
154
|
-
'
|
|
151
|
+
'docs',
|
|
155
152
|
'ui-integration',
|
|
156
153
|
'workflow-modes',
|
|
157
154
|
'security',
|
|
@@ -161,25 +158,32 @@ const FRAMEWORK_FOLDERS = [
|
|
|
161
158
|
'scaffolding',
|
|
162
159
|
'cli',
|
|
163
160
|
'adr',
|
|
161
|
+
'config',
|
|
162
|
+
'existing-projects',
|
|
163
|
+
'getting-started',
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
// Deprecated folders to remove during update (no longer part of framework)
|
|
167
|
+
const DEPRECATED_FOLDERS = [
|
|
164
168
|
'ai-models',
|
|
165
169
|
'ai-training',
|
|
166
170
|
'api-versioning',
|
|
167
171
|
'approval-workflows',
|
|
168
172
|
'automation',
|
|
173
|
+
'cache',
|
|
174
|
+
'checklists',
|
|
169
175
|
'cicd',
|
|
170
176
|
'collaboration',
|
|
171
177
|
'compliance',
|
|
172
178
|
'config-versioning',
|
|
173
|
-
'config',
|
|
174
179
|
'contract-testing',
|
|
175
180
|
'cost',
|
|
176
181
|
'database',
|
|
177
182
|
'dependency-management',
|
|
178
183
|
'disaster-recovery',
|
|
179
184
|
'environments',
|
|
180
|
-
'existing-projects',
|
|
181
185
|
'feature-flags',
|
|
182
|
-
'
|
|
186
|
+
'git',
|
|
183
187
|
'i18n',
|
|
184
188
|
'ide-integration',
|
|
185
189
|
'integrations',
|
|
@@ -200,11 +204,19 @@ const FRAMEWORK_FOLDERS = [
|
|
|
200
204
|
'rules',
|
|
201
205
|
'runbooks',
|
|
202
206
|
'secrets',
|
|
207
|
+
'sprints',
|
|
203
208
|
'team',
|
|
204
209
|
'troubleshooting',
|
|
205
210
|
'webhooks',
|
|
206
211
|
];
|
|
207
212
|
|
|
213
|
+
// Deprecated files to remove during update
|
|
214
|
+
const DEPRECATED_FILES = [
|
|
215
|
+
'checkpoints.json',
|
|
216
|
+
'history.log',
|
|
217
|
+
'time-tracking.json',
|
|
218
|
+
];
|
|
219
|
+
|
|
208
220
|
// Root files to always update (AI files handled separately via platform selection)
|
|
209
221
|
const FRAMEWORK_FILES = [
|
|
210
222
|
'README.md',
|
|
@@ -214,6 +226,16 @@ const FRAMEWORK_FILES = [
|
|
|
214
226
|
'slash-commands.json',
|
|
215
227
|
'AI_INSTRUCTIONS.md', // Universal instructions kept for reference
|
|
216
228
|
'platforms.yaml', // Single source of truth for AI platforms
|
|
229
|
+
// Platform instruction files (updated during init)
|
|
230
|
+
'AGENTS.md',
|
|
231
|
+
'CLAUDE.md',
|
|
232
|
+
'.cursorrules',
|
|
233
|
+
'.windsurfrules',
|
|
234
|
+
'GEMINI.md',
|
|
235
|
+
'BOLT.md',
|
|
236
|
+
'REPLIT.md',
|
|
237
|
+
'LOVABLE.md',
|
|
238
|
+
'KIRO.md',
|
|
217
239
|
];
|
|
218
240
|
|
|
219
241
|
// Universal AI file - always copied to project root (not selectable)
|
|
@@ -1019,7 +1041,8 @@ export async function initCommand(options = {}) {
|
|
|
1019
1041
|
console.log(chalk.gray(' • active-features/ (your work in progress)'));
|
|
1020
1042
|
console.log(chalk.gray(' • proagents.config.yaml (your values + new options merged)'));
|
|
1021
1043
|
console.log(chalk.gray(' • .learning/ (learned patterns)'));
|
|
1022
|
-
console.log(chalk.gray(' •
|
|
1044
|
+
console.log(chalk.gray(' • changelog/ (change history)'));
|
|
1045
|
+
console.log(chalk.gray(' • worklog/ (work context)\n'));
|
|
1023
1046
|
return;
|
|
1024
1047
|
} catch (error) {
|
|
1025
1048
|
console.error(chalk.red('\n✗ Error updating ProAgents:'));
|
|
@@ -1114,7 +1137,6 @@ Generated by [ProAgents](https://github.com/prakashpro3/proAgents)
|
|
|
1114
1137
|
// Default: Ignore only local data
|
|
1115
1138
|
gitignoreEntries = [
|
|
1116
1139
|
'# ProAgents - Local data only (workflow config shared with team)',
|
|
1117
|
-
'.proagents/cache/',
|
|
1118
1140
|
'.proagents/.learning/',
|
|
1119
1141
|
'.proagents/sessions/',
|
|
1120
1142
|
'.proagents/active-features/',
|
|
@@ -1299,6 +1321,9 @@ For detailed commands, see \`./.proagents/PROAGENTS.md\`
|
|
|
1299
1321
|
* Smart update - preserves user files, updates framework files
|
|
1300
1322
|
*/
|
|
1301
1323
|
async function smartUpdate(sourceDir, targetDir) {
|
|
1324
|
+
// Project root is parent of .proagents folder
|
|
1325
|
+
const projectRoot = join(targetDir, '..');
|
|
1326
|
+
|
|
1302
1327
|
// Backup preserved paths
|
|
1303
1328
|
const backups = {};
|
|
1304
1329
|
for (const path of PRESERVE_PATHS) {
|
|
@@ -1340,6 +1365,32 @@ async function smartUpdate(sourceDir, targetDir) {
|
|
|
1340
1365
|
}
|
|
1341
1366
|
console.log(chalk.green(`✓ Updated ${updatedCount} framework folders`));
|
|
1342
1367
|
|
|
1368
|
+
// Remove deprecated folders
|
|
1369
|
+
let removedFolders = 0;
|
|
1370
|
+
for (const folder of DEPRECATED_FOLDERS) {
|
|
1371
|
+
const folderPath = join(targetDir, folder);
|
|
1372
|
+
if (existsSync(folderPath)) {
|
|
1373
|
+
rmSync(folderPath, { recursive: true, force: true });
|
|
1374
|
+
removedFolders++;
|
|
1375
|
+
}
|
|
1376
|
+
}
|
|
1377
|
+
if (removedFolders > 0) {
|
|
1378
|
+
console.log(chalk.green(`✓ Removed ${removedFolders} deprecated folders`));
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1381
|
+
// Remove deprecated files
|
|
1382
|
+
let removedFiles = 0;
|
|
1383
|
+
for (const file of DEPRECATED_FILES) {
|
|
1384
|
+
const filePath = join(targetDir, file);
|
|
1385
|
+
if (existsSync(filePath)) {
|
|
1386
|
+
rmSync(filePath, { force: true });
|
|
1387
|
+
removedFiles++;
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
if (removedFiles > 0) {
|
|
1391
|
+
console.log(chalk.green(`✓ Removed ${removedFiles} deprecated files`));
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1343
1394
|
// Restore user files that were migrated (they were saved before folder deletion)
|
|
1344
1395
|
restoreUserFiles(targetDir, migrationResult);
|
|
1345
1396
|
|
|
@@ -1357,7 +1408,8 @@ async function smartUpdate(sourceDir, targetDir) {
|
|
|
1357
1408
|
console.log(chalk.green(`✓ Updated ${filesUpdated} framework files`));
|
|
1358
1409
|
|
|
1359
1410
|
// Merge config file - keep user values, add new options
|
|
1360
|
-
|
|
1411
|
+
// User config is at project root, not inside .proagents
|
|
1412
|
+
const userConfigPath = join(projectRoot, CONFIG_FILE);
|
|
1361
1413
|
const newConfigPath = join(sourceDir, CONFIG_FILE);
|
|
1362
1414
|
|
|
1363
1415
|
if (existsSync(newConfigPath)) {
|
|
@@ -1386,7 +1438,6 @@ async function smartUpdate(sourceDir, targetDir) {
|
|
|
1386
1438
|
}
|
|
1387
1439
|
|
|
1388
1440
|
// Copy AI instruction files for configured platforms (merges with existing files)
|
|
1389
|
-
const projectRoot = join(targetDir, '..');
|
|
1390
1441
|
const configPath = join(projectRoot, 'proagents.config.yaml');
|
|
1391
1442
|
const selectedPlatforms = loadPlatformConfig(configPath);
|
|
1392
1443
|
|