proagents 1.6.19 → 1.6.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/.claude/settings.local.json +13 -1
- package/.proagents/.cursorrules +25 -10
- package/.proagents/.windsurfrules +25 -10
- package/.proagents/AGENTS.md +30 -11
- package/.proagents/AI_INSTRUCTIONS.md +86 -30
- package/.proagents/BOLT.md +25 -10
- package/.proagents/CLAUDE.md +25 -10
- package/.proagents/GEMINI.md +25 -10
- package/.proagents/KIRO.md +25 -10
- package/.proagents/LOVABLE.md +25 -10
- package/.proagents/PROAGENTS.md +96 -343
- package/.proagents/REPLIT.md +25 -10
- package/.proagents/activity.log +1 -0
- package/.proagents/custom-commands.yaml +0 -1
- 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/platforms.yaml +66 -0
- package/.proagents/proagents.config.yaml +0 -1
- package/.proagents/prompts/ai-add.md +80 -0
- package/.proagents/prompts/ai-list.md +41 -0
- package/.proagents/prompts/ai-remove.md +112 -0
- package/.proagents/prompts/ai-sync.md +96 -0
- package/.proagents/workflow-modes/entry-modes.md +1 -6
- package/lib/commands/ai.js +100 -48
- package/lib/commands/init.js +89 -22
- package/package.json +1 -1
- package/.proagents/ANTIGRAVITY.md +0 -61
- package/.proagents/CHATGPT.md +0 -57
- package/.proagents/GROQ.md +0 -57
- 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/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
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
# API Versioning Strategy
|
|
2
|
-
|
|
3
|
-
Manage API versions and maintain backward compatibility.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Versioning Approaches
|
|
8
|
-
|
|
9
|
-
### 1. URL Path Versioning (Recommended)
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
/api/v1/users
|
|
13
|
-
/api/v2/users
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
**Pros:**
|
|
17
|
-
- Clear and explicit
|
|
18
|
-
- Easy to route
|
|
19
|
-
- Works with all clients
|
|
20
|
-
|
|
21
|
-
**Implementation:**
|
|
22
|
-
```typescript
|
|
23
|
-
// routes/index.ts
|
|
24
|
-
import { Router } from 'express';
|
|
25
|
-
import v1Routes from './v1';
|
|
26
|
-
import v2Routes from './v2';
|
|
27
|
-
|
|
28
|
-
const router = Router();
|
|
29
|
-
|
|
30
|
-
router.use('/v1', v1Routes);
|
|
31
|
-
router.use('/v2', v2Routes);
|
|
32
|
-
|
|
33
|
-
export default router;
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
### 2. Header Versioning
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
Accept: application/vnd.api+json;version=2
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Implementation:**
|
|
45
|
-
```typescript
|
|
46
|
-
// middleware/version.middleware.ts
|
|
47
|
-
export function versionMiddleware(req, res, next) {
|
|
48
|
-
const acceptHeader = req.headers.accept || '';
|
|
49
|
-
const versionMatch = acceptHeader.match(/version=(\d+)/);
|
|
50
|
-
req.apiVersion = versionMatch ? parseInt(versionMatch[1]) : 1;
|
|
51
|
-
next();
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
### 3. Query Parameter Versioning
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
/api/users?version=2
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Note:** Generally not recommended, but useful for quick testing.
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Version Lifecycle
|
|
68
|
-
|
|
69
|
-
### Version States
|
|
70
|
-
|
|
71
|
-
| State | Description | Support Level |
|
|
72
|
-
|-------|-------------|---------------|
|
|
73
|
-
| **Current** | Active, recommended version | Full support |
|
|
74
|
-
| **Supported** | Still maintained | Security fixes |
|
|
75
|
-
| **Deprecated** | Marked for removal | Limited support |
|
|
76
|
-
| **Sunset** | No longer available | No support |
|
|
77
|
-
|
|
78
|
-
### Lifecycle Timeline
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
82
|
-
│ Version Lifecycle │
|
|
83
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
84
|
-
│ │
|
|
85
|
-
│ v1 ──────────────┬─────────────┬────────────┬──────────────── │
|
|
86
|
-
│ Current │ Supported │ Deprecated │ Sunset │
|
|
87
|
-
│ (12 months) │ (6 months) │ (6 months) │ │
|
|
88
|
-
│ │ │ │ │
|
|
89
|
-
│ v2 ──────────────┴─────────────┴────────────┴───────────── │
|
|
90
|
-
│ Development → Current → Supported → Deprecated → Sunset │
|
|
91
|
-
│ │
|
|
92
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Breaking vs Non-Breaking Changes
|
|
98
|
-
|
|
99
|
-
### Non-Breaking (Safe in same version)
|
|
100
|
-
|
|
101
|
-
- Adding new endpoints
|
|
102
|
-
- Adding optional fields to responses
|
|
103
|
-
- Adding optional query parameters
|
|
104
|
-
- Adding new enum values (if client ignores unknown)
|
|
105
|
-
- Performance improvements
|
|
106
|
-
- Bug fixes
|
|
107
|
-
|
|
108
|
-
### Breaking (Requires new version)
|
|
109
|
-
|
|
110
|
-
- Removing endpoints
|
|
111
|
-
- Removing response fields
|
|
112
|
-
- Changing field types
|
|
113
|
-
- Renaming fields
|
|
114
|
-
- Changing authentication
|
|
115
|
-
- Changing error formats
|
|
116
|
-
- Making optional fields required
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Version Migration Guide
|
|
121
|
-
|
|
122
|
-
### Creating a New Version
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
# 1. Copy existing version
|
|
126
|
-
cp -r src/api/v1 src/api/v2
|
|
127
|
-
|
|
128
|
-
# 2. Update version routes
|
|
129
|
-
# src/api/v2/index.ts
|
|
130
|
-
|
|
131
|
-
# 3. Implement changes
|
|
132
|
-
# Make breaking changes in v2
|
|
133
|
-
|
|
134
|
-
# 4. Update API docs
|
|
135
|
-
# docs/api/v2.md
|
|
136
|
-
|
|
137
|
-
# 5. Create migration guide
|
|
138
|
-
# docs/migration/v1-to-v2.md
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Migration Guide Template
|
|
142
|
-
|
|
143
|
-
```markdown
|
|
144
|
-
# Migration Guide: v1 to v2
|
|
145
|
-
|
|
146
|
-
## Overview
|
|
147
|
-
Summary of changes in v2.
|
|
148
|
-
|
|
149
|
-
## Breaking Changes
|
|
150
|
-
|
|
151
|
-
### 1. User Response Format
|
|
152
|
-
**Before (v1):**
|
|
153
|
-
```json
|
|
154
|
-
{ "id": 1, "name": "John" }
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
**After (v2):**
|
|
158
|
-
```json
|
|
159
|
-
{ "data": { "id": "uuid", "fullName": "John" } }
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
**Migration:**
|
|
163
|
-
- Update response parsing
|
|
164
|
-
- Change `name` to `fullName`
|
|
165
|
-
- Handle wrapped response
|
|
166
|
-
|
|
167
|
-
### 2. Authentication
|
|
168
|
-
**Before:** API key in query
|
|
169
|
-
**After:** Bearer token in header
|
|
170
|
-
|
|
171
|
-
**Migration:**
|
|
172
|
-
```javascript
|
|
173
|
-
// Before
|
|
174
|
-
fetch('/api/v1/users?apiKey=xxx')
|
|
175
|
-
|
|
176
|
-
// After
|
|
177
|
-
fetch('/api/v2/users', {
|
|
178
|
-
headers: { 'Authorization': 'Bearer xxx' }
|
|
179
|
-
})
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
## Deprecation Timeline
|
|
183
|
-
- v1 deprecated: March 1, 2024
|
|
184
|
-
- v1 sunset: September 1, 2024
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## Deprecation Process
|
|
190
|
-
|
|
191
|
-
### 1. Announce Deprecation
|
|
192
|
-
|
|
193
|
-
```typescript
|
|
194
|
-
// Add deprecation header
|
|
195
|
-
app.use('/api/v1', (req, res, next) => {
|
|
196
|
-
res.set('Deprecation', 'true');
|
|
197
|
-
res.set('Sunset', 'Sat, 01 Sep 2024 00:00:00 GMT');
|
|
198
|
-
res.set('Link', '</api/v2>; rel="successor-version"');
|
|
199
|
-
next();
|
|
200
|
-
});
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### 2. Add Warning to Responses
|
|
204
|
-
|
|
205
|
-
```json
|
|
206
|
-
{
|
|
207
|
-
"data": { ... },
|
|
208
|
-
"_warnings": [
|
|
209
|
-
{
|
|
210
|
-
"code": "DEPRECATED_VERSION",
|
|
211
|
-
"message": "API v1 is deprecated. Please migrate to v2 by September 1, 2024.",
|
|
212
|
-
"documentation": "https://docs.example.com/migration/v1-to-v2"
|
|
213
|
-
}
|
|
214
|
-
]
|
|
215
|
-
}
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### 3. Track Usage
|
|
219
|
-
|
|
220
|
-
```typescript
|
|
221
|
-
// Log v1 usage for migration tracking
|
|
222
|
-
app.use('/api/v1', (req, res, next) => {
|
|
223
|
-
logger.info('v1_api_call', {
|
|
224
|
-
endpoint: req.path,
|
|
225
|
-
client: req.headers['user-agent'],
|
|
226
|
-
timestamp: new Date()
|
|
227
|
-
});
|
|
228
|
-
next();
|
|
229
|
-
});
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### 4. Notify Clients
|
|
233
|
-
|
|
234
|
-
```markdown
|
|
235
|
-
Subject: API v1 Deprecation Notice
|
|
236
|
-
|
|
237
|
-
Dear Developer,
|
|
238
|
-
|
|
239
|
-
API v1 will be deprecated on March 1, 2024, and sunset on September 1, 2024.
|
|
240
|
-
|
|
241
|
-
Action Required:
|
|
242
|
-
- Migrate to API v2 before September 1, 2024
|
|
243
|
-
- See migration guide: [link]
|
|
244
|
-
- Contact support if you need assistance
|
|
245
|
-
|
|
246
|
-
Timeline:
|
|
247
|
-
- March 1: Deprecation warnings added
|
|
248
|
-
- June 1: Rate limits reduced on v1
|
|
249
|
-
- September 1: v1 endpoints return 410 Gone
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## Configuration
|
|
255
|
-
|
|
256
|
-
```yaml
|
|
257
|
-
# proagents.config.yaml
|
|
258
|
-
|
|
259
|
-
api_versioning:
|
|
260
|
-
strategy: "url_path" # url_path | header | query
|
|
261
|
-
prefix: "/api"
|
|
262
|
-
|
|
263
|
-
versions:
|
|
264
|
-
v1:
|
|
265
|
-
status: "deprecated"
|
|
266
|
-
sunset_date: "2024-09-01"
|
|
267
|
-
successor: "v2"
|
|
268
|
-
|
|
269
|
-
v2:
|
|
270
|
-
status: "current"
|
|
271
|
-
|
|
272
|
-
deprecation:
|
|
273
|
-
warning_header: true
|
|
274
|
-
response_warning: true
|
|
275
|
-
log_usage: true
|
|
276
|
-
|
|
277
|
-
documentation:
|
|
278
|
-
auto_generate: true
|
|
279
|
-
format: "openapi"
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
---
|
|
283
|
-
|
|
284
|
-
## Commands
|
|
285
|
-
|
|
286
|
-
| Command | Description |
|
|
287
|
-
|---------|-------------|
|
|
288
|
-
| `pa:api-version new [version]` | Create new API version |
|
|
289
|
-
| `pa:api-version deprecate [version]` | Mark version as deprecated |
|
|
290
|
-
| `pa:api-version status` | Show version status |
|
|
291
|
-
| `pa:api-migration-guide [from] [to]` | Generate migration guide |
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Automation
|
|
2
|
-
|
|
3
|
-
Configure AI behavior and automated decision-making in the workflow.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Control how the AI makes decisions, handles ambiguity, and automates routine tasks.
|
|
10
|
-
|
|
11
|
-
## Documentation
|
|
12
|
-
|
|
13
|
-
| Document | Description |
|
|
14
|
-
|----------|-------------|
|
|
15
|
-
| [Auto Decisions](./auto-decisions.md) | Configure automatic decision-making |
|
|
16
|
-
| [AI Behavior Rules](./ai-behavior-rules.md) | Define AI behavior constraints |
|
|
17
|
-
| [AI Prompt Injection](./ai-prompt-injection.md) | Custom context injection for AI |
|
|
18
|
-
|
|
19
|
-
## Quick Start
|
|
20
|
-
|
|
21
|
-
```yaml
|
|
22
|
-
# proagents.config.yaml
|
|
23
|
-
automation:
|
|
24
|
-
auto_decisions:
|
|
25
|
-
enabled: true
|
|
26
|
-
confidence_threshold: 0.8
|
|
27
|
-
|
|
28
|
-
behavior:
|
|
29
|
-
ask_before_destructive: true
|
|
30
|
-
prefer_existing_patterns: true
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Key Features
|
|
34
|
-
|
|
35
|
-
- **Auto-Decisions**: Let AI make routine decisions automatically
|
|
36
|
-
- **Behavior Rules**: Define constraints for AI actions
|
|
37
|
-
- **Context Injection**: Add project-specific context to AI prompts
|
|
38
|
-
- **Confidence Thresholds**: Control when AI asks vs decides
|
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
# AI Behavior Rules for Automation
|
|
2
|
-
|
|
3
|
-
Instructions for AI to maintain uninterrupted workflow execution.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Core Principle
|
|
8
|
-
|
|
9
|
-
**NEVER ASK QUESTIONS DURING AUTOMATED WORKFLOWS**
|
|
10
|
-
|
|
11
|
-
Instead of asking:
|
|
12
|
-
- Check pre-configured decisions
|
|
13
|
-
- Use inference rules
|
|
14
|
-
- Apply defaults
|
|
15
|
-
- Log the decision
|
|
16
|
-
- Continue working
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Decision Resolution Flow
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
┌─────────────────────────────────────────────────────────┐
|
|
24
|
-
│ AI needs to make a decision │
|
|
25
|
-
├─────────────────────────────────────────────────────────┤
|
|
26
|
-
│ │
|
|
27
|
-
│ 1. Check explicit config │
|
|
28
|
-
│ └─ decisions.yaml has answer? → Use it │
|
|
29
|
-
│ │
|
|
30
|
-
│ 2. Check project type defaults │
|
|
31
|
-
│ └─ Project type defines it? → Use it │
|
|
32
|
-
│ │
|
|
33
|
-
│ 3. Check codebase patterns │
|
|
34
|
-
│ └─ Similar pattern exists? → Follow it │
|
|
35
|
-
│ │
|
|
36
|
-
│ 4. Check inference rules │
|
|
37
|
-
│ └─ Can infer from context? → Use inference │
|
|
38
|
-
│ │
|
|
39
|
-
│ 5. Use global default │
|
|
40
|
-
│ └─ Default exists? → Use it │
|
|
41
|
-
│ │
|
|
42
|
-
│ 6. Use safest option │
|
|
43
|
-
│ └─ Pick most conservative choice │
|
|
44
|
-
│ │
|
|
45
|
-
│ NEVER reach step 7: Ask user │
|
|
46
|
-
│ │
|
|
47
|
-
└─────────────────────────────────────────────────────────┘
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Rules for AI
|
|
53
|
-
|
|
54
|
-
### Rule 1: No Questions in Full Automation
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
❌ WRONG:
|
|
58
|
-
"Should I use REST or GraphQL for this API?"
|
|
59
|
-
|
|
60
|
-
✅ CORRECT:
|
|
61
|
-
[Check config: api_style = "rest"]
|
|
62
|
-
"Creating REST API endpoint as per project configuration."
|
|
63
|
-
[Continue working]
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Rule 2: State Decisions, Don't Ask
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
❌ WRONG:
|
|
70
|
-
"Where should I put this component? Options:
|
|
71
|
-
1. src/components/
|
|
72
|
-
2. src/features/auth/components/"
|
|
73
|
-
|
|
74
|
-
✅ CORRECT:
|
|
75
|
-
"Placing component in src/components/auth/ following existing project structure."
|
|
76
|
-
[Continue working]
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Rule 3: Log Uncertain Decisions
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
❌ WRONG:
|
|
83
|
-
"I'm not sure if this should be a hook or a utility function. What do you think?"
|
|
84
|
-
|
|
85
|
-
✅ CORRECT:
|
|
86
|
-
"Creating as custom hook (useAuth) - matches similar patterns in codebase."
|
|
87
|
-
[Log: decision=hook, confidence=medium, reason=pattern_match]
|
|
88
|
-
[Continue working]
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Rule 4: Use Defaults for Ambiguous Situations
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
❌ WRONG:
|
|
95
|
-
"There are multiple ways to implement this. Which approach do you prefer?"
|
|
96
|
-
|
|
97
|
-
✅ CORRECT:
|
|
98
|
-
"Implementing using [default approach] as per project settings."
|
|
99
|
-
[Continue working]
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Rule 5: Follow Existing Patterns
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
❌ WRONG:
|
|
106
|
-
"I see you have both class and functional components. Which should I use?"
|
|
107
|
-
|
|
108
|
-
✅ CORRECT:
|
|
109
|
-
[Analyze: 90% functional components]
|
|
110
|
-
"Using functional component to match project conventions."
|
|
111
|
-
[Continue working]
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## Decision Templates
|
|
117
|
-
|
|
118
|
-
### When Creating Components
|
|
119
|
-
|
|
120
|
-
```yaml
|
|
121
|
-
auto_decide:
|
|
122
|
-
location: "src/components/[category]/"
|
|
123
|
-
style: "functional"
|
|
124
|
-
naming: "PascalCase"
|
|
125
|
-
test: "colocated"
|
|
126
|
-
export: "named"
|
|
127
|
-
|
|
128
|
-
action:
|
|
129
|
-
1. Create component file
|
|
130
|
-
2. Create test file
|
|
131
|
-
3. Update index exports
|
|
132
|
-
4. Log decision
|
|
133
|
-
5. Continue
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### When Creating API Endpoints
|
|
137
|
-
|
|
138
|
-
```yaml
|
|
139
|
-
auto_decide:
|
|
140
|
-
style: "{{config.api_style}}"
|
|
141
|
-
validation: "zod"
|
|
142
|
-
error_handling: "centralized"
|
|
143
|
-
documentation: "auto_generate"
|
|
144
|
-
|
|
145
|
-
action:
|
|
146
|
-
1. Create route file
|
|
147
|
-
2. Create controller
|
|
148
|
-
3. Create service
|
|
149
|
-
4. Add validation
|
|
150
|
-
5. Generate docs
|
|
151
|
-
6. Log decision
|
|
152
|
-
7. Continue
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### When Choosing Libraries
|
|
156
|
-
|
|
157
|
-
```yaml
|
|
158
|
-
auto_decide:
|
|
159
|
-
rule: "Use already installed, or project default"
|
|
160
|
-
|
|
161
|
-
priority:
|
|
162
|
-
1. Already in package.json
|
|
163
|
-
2. Project type default
|
|
164
|
-
3. Global default
|
|
165
|
-
4. Most popular stable option
|
|
166
|
-
|
|
167
|
-
action:
|
|
168
|
-
1. Check package.json
|
|
169
|
-
2. Use found or default
|
|
170
|
-
3. Log decision
|
|
171
|
-
4. Continue
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### When Naming Things
|
|
175
|
-
|
|
176
|
-
```yaml
|
|
177
|
-
auto_decide:
|
|
178
|
-
components: "PascalCase"
|
|
179
|
-
hooks: "useCamelCase"
|
|
180
|
-
services: "camelCaseService"
|
|
181
|
-
utils: "camelCase"
|
|
182
|
-
constants: "UPPER_SNAKE_CASE"
|
|
183
|
-
files:
|
|
184
|
-
components: "PascalCase.tsx"
|
|
185
|
-
others: "camelCase.ts"
|
|
186
|
-
|
|
187
|
-
action:
|
|
188
|
-
1. Determine type
|
|
189
|
-
2. Apply naming rule
|
|
190
|
-
3. Continue
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## Confidence Levels
|
|
196
|
-
|
|
197
|
-
When making auto-decisions, assess confidence:
|
|
198
|
-
|
|
199
|
-
### High Confidence (Just do it)
|
|
200
|
-
- Explicit config exists
|
|
201
|
-
- Clear project pattern exists
|
|
202
|
-
- Standard best practice
|
|
203
|
-
|
|
204
|
-
```
|
|
205
|
-
"Using Zustand for state management (configured in project settings)."
|
|
206
|
-
[confidence: high]
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Medium Confidence (Do it, flag for review)
|
|
210
|
-
- Inferred from context
|
|
211
|
-
- Multiple valid options
|
|
212
|
-
- Slight uncertainty
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
"Creating separate service file for API calls (inferred from similar features)."
|
|
216
|
-
[confidence: medium, flagged_for_review: true]
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### Low Confidence (Do safest, definitely flag)
|
|
220
|
-
- No clear guidance
|
|
221
|
-
- Novel situation
|
|
222
|
-
- Potential impact
|
|
223
|
-
|
|
224
|
-
```
|
|
225
|
-
"Using default error handling pattern (no specific guidance found)."
|
|
226
|
-
[confidence: low, flagged_for_review: true, requires_post_review: true]
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## Communication Style
|
|
232
|
-
|
|
233
|
-
### During Execution
|
|
234
|
-
|
|
235
|
-
```
|
|
236
|
-
✅ DO:
|
|
237
|
-
"Creating UserProfile component in src/components/user/..."
|
|
238
|
-
"Adding Zod validation schema..."
|
|
239
|
-
"Generating tests with 85% coverage target..."
|
|
240
|
-
|
|
241
|
-
❌ DON'T:
|
|
242
|
-
"Should I create this in components or features?"
|
|
243
|
-
"Do you want me to add validation?"
|
|
244
|
-
"What coverage target should I aim for?"
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### Decision Announcements
|
|
248
|
-
|
|
249
|
-
```
|
|
250
|
-
Format:
|
|
251
|
-
"[Action] [what] [where/how] [reason if non-obvious]"
|
|
252
|
-
|
|
253
|
-
Examples:
|
|
254
|
-
"Creating AuthService in src/services/ following existing service pattern."
|
|
255
|
-
"Using React Query for server state as configured."
|
|
256
|
-
"Adding error boundary wrapper (standard for page components)."
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### Uncertainty Handling
|
|
260
|
-
|
|
261
|
-
```
|
|
262
|
-
Format:
|
|
263
|
-
"[Action] using [choice] ([brief reason]). Flagged for review."
|
|
264
|
-
|
|
265
|
-
Examples:
|
|
266
|
-
"Implementing pagination using cursor-based approach (better for large datasets). Flagged for review."
|
|
267
|
-
"Splitting into micro-components (file was getting large). Flagged for review."
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## Post-Workflow Summary
|
|
273
|
-
|
|
274
|
-
After completing automated workflow, provide:
|
|
275
|
-
|
|
276
|
-
```markdown
|
|
277
|
-
## Workflow Complete
|
|
278
|
-
|
|
279
|
-
### Summary
|
|
280
|
-
- Feature: User Authentication
|
|
281
|
-
- Files created: 12
|
|
282
|
-
- Files modified: 3
|
|
283
|
-
- Tests added: 8
|
|
284
|
-
|
|
285
|
-
### Decisions Made
|
|
286
|
-
| Decision | Choice | Confidence | Rule Applied |
|
|
287
|
-
|----------|--------|------------|--------------|
|
|
288
|
-
| State management | Zustand | High | Explicit config |
|
|
289
|
-
| Component location | src/components/auth | High | Pattern match |
|
|
290
|
-
| API style | REST | High | Explicit config |
|
|
291
|
-
| Error handling | Error boundary | Medium | Inference |
|
|
292
|
-
|
|
293
|
-
### Flagged for Review (2)
|
|
294
|
-
1. **Token storage**: Used httpOnly cookies (security best practice)
|
|
295
|
-
- Alternative: localStorage (faster but less secure)
|
|
296
|
-
|
|
297
|
-
2. **Session duration**: Set to 7 days
|
|
298
|
-
- Based on: Default config
|
|
299
|
-
- Consider: Shorter for sensitive apps
|
|
300
|
-
|
|
301
|
-
### No Issues Found
|
|
302
|
-
✅ All decisions within confidence thresholds
|
|
303
|
-
✅ No blocking questions needed
|
|
304
|
-
✅ Automation completed successfully
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
## Emergency Override
|
|
310
|
-
|
|
311
|
-
If AI truly cannot proceed without input:
|
|
312
|
-
|
|
313
|
-
```yaml
|
|
314
|
-
emergency_protocol:
|
|
315
|
-
condition: "Truly ambiguous AND high-impact decision"
|
|
316
|
-
|
|
317
|
-
actions:
|
|
318
|
-
1. Try harder to find a default
|
|
319
|
-
2. Use safest/most conservative option
|
|
320
|
-
3. Mark as "CRITICAL_REVIEW_NEEDED"
|
|
321
|
-
4. Continue with safest option
|
|
322
|
-
5. Do NOT block workflow
|
|
323
|
-
|
|
324
|
-
example:
|
|
325
|
-
situation: "Delete user data permanently vs soft delete"
|
|
326
|
-
action: "Use soft delete (safer), flag as CRITICAL_REVIEW_NEEDED"
|
|
327
|
-
reason: "Data deletion is irreversible, chose conservative option"
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
## Commands for AI
|
|
333
|
-
|
|
334
|
-
| Command | Description |
|
|
335
|
-
|---------|-------------|
|
|
336
|
-
| `[AUTO-DECIDE]` | Marker in logs for auto-decisions |
|
|
337
|
-
| `[FLAGGED]` | Decision flagged for review |
|
|
338
|
-
| `[CONFIDENCE:HIGH/MEDIUM/LOW]` | Decision confidence level |
|
|
339
|
-
| `[RULE:rule_name]` | Which rule was applied |
|