ctx-cc 3.0.0 → 3.3.0

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://ctx.dev/schemas/config.json",
3
- "version": "3.0",
3
+ "version": "3.3",
4
4
 
5
5
  "models": {
6
6
  "architect": {
@@ -28,12 +28,16 @@
28
28
  "debugging": "default",
29
29
  "verification": "fast",
30
30
  "mapping": "fast",
31
- "quick": "fast"
31
+ "quick": "fast",
32
+ "review": "default",
33
+ "parallelizer": "fast",
34
+ "criteria": "default",
35
+ "handoff": "fast"
32
36
  },
33
37
 
34
38
  "profiles": {
35
39
  "quality": {
36
- "description": "Best results, higher cost",
40
+ "description": "Best results, higher cost (~3x)",
37
41
  "routing": {
38
42
  "research": "architect",
39
43
  "discussion": "architect",
@@ -42,7 +46,11 @@
42
46
  "debugging": "architect",
43
47
  "verification": "default",
44
48
  "mapping": "default",
45
- "quick": "default"
49
+ "quick": "default",
50
+ "review": "architect",
51
+ "parallelizer": "default",
52
+ "criteria": "architect",
53
+ "handoff": "default"
46
54
  }
47
55
  },
48
56
  "balanced": {
@@ -55,11 +63,15 @@
55
63
  "debugging": "default",
56
64
  "verification": "fast",
57
65
  "mapping": "fast",
58
- "quick": "fast"
66
+ "quick": "fast",
67
+ "review": "default",
68
+ "parallelizer": "fast",
69
+ "criteria": "default",
70
+ "handoff": "fast"
59
71
  }
60
72
  },
61
73
  "budget": {
62
- "description": "Acceptable results, lowest cost",
74
+ "description": "Acceptable results, lowest cost (~0.4x)",
63
75
  "routing": {
64
76
  "research": "default",
65
77
  "discussion": "default",
@@ -68,7 +80,11 @@
68
80
  "debugging": "default",
69
81
  "verification": "fast",
70
82
  "mapping": "fast",
71
- "quick": "fast"
83
+ "quick": "fast",
84
+ "review": "fast",
85
+ "parallelizer": "fast",
86
+ "criteria": "fast",
87
+ "handoff": "fast"
72
88
  }
73
89
  }
74
90
  },
@@ -80,21 +96,56 @@
80
96
  "commitPerTask": true,
81
97
  "commitMessageFormat": "[CTX] {title}\n\nStory: {storyId} - {storyTitle}\nCriterion: {criterion}\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
82
98
  "signOff": false,
83
- "gpgSign": false
99
+ "gpgSign": false,
100
+ "pushOnComplete": false
84
101
  },
85
102
 
86
103
  "context": {
87
104
  "mapTokenBudget": 2000,
88
105
  "mapTokenBudgetExpanded": 8000,
106
+ "prepareHandoffThreshold": 0.4,
89
107
  "checkpointThreshold": 0.5,
90
- "forceCheckpointThreshold": 0.7,
91
- "handoffThreshold": 0.4
108
+ "spawnFreshThreshold": 0.6,
109
+ "forceCheckpointThreshold": 0.7
110
+ },
111
+
112
+ "parallelization": {
113
+ "enabled": true,
114
+ "maxParallelTasks": 3,
115
+ "requireDependencyAnalysis": true,
116
+ "fileLocking": true
117
+ },
118
+
119
+ "review": {
120
+ "enabled": true,
121
+ "beforeCommit": true,
122
+ "blockOnCritical": true,
123
+ "blockOnHigh": true,
124
+ "warnOnMedium": true,
125
+ "autoFix": false,
126
+ "checks": {
127
+ "typeErrors": true,
128
+ "importResolution": true,
129
+ "circularDeps": true,
130
+ "security": true,
131
+ "bestPractices": true,
132
+ "consoleLogs": true,
133
+ "emptyBlocks": true
134
+ }
135
+ },
136
+
137
+ "criteria": {
138
+ "autoSuggest": true,
139
+ "minCriteria": 5,
140
+ "maxCriteria": 15,
141
+ "categories": ["happy_path", "validation", "error_states", "security", "performance"]
92
142
  },
93
143
 
94
144
  "debug": {
95
- "maxAttempts": 5,
145
+ "maxAttempts": 10,
96
146
  "persistSessions": true,
97
- "screenshotOnFailure": true
147
+ "screenshotOnFailure": true,
148
+ "autoResume": true
98
149
  },
99
150
 
100
151
  "integrations": {
@@ -102,23 +153,209 @@
102
153
  "enabled": false,
103
154
  "apiKey": "env:LINEAR_API_KEY",
104
155
  "teamId": null,
105
- "syncStories": true
156
+ "projectId": null,
157
+ "syncOnCreate": true,
158
+ "syncOnVerify": true,
159
+ "closeOnComplete": true,
160
+ "statusMapping": {
161
+ "pending": "Todo",
162
+ "executing": "In Progress",
163
+ "verifying": "In Review",
164
+ "complete": "Done"
165
+ }
166
+ },
167
+ "jira": {
168
+ "enabled": false,
169
+ "baseUrl": null,
170
+ "email": "env:JIRA_EMAIL",
171
+ "apiToken": "env:JIRA_API_TOKEN",
172
+ "projectKey": null,
173
+ "issueType": "Story",
174
+ "syncOnCreate": true,
175
+ "syncOnVerify": true,
176
+ "transitionMapping": {
177
+ "executing": "In Progress",
178
+ "verifying": "In Review",
179
+ "complete": "Done"
180
+ }
106
181
  },
107
182
  "github": {
108
183
  "enabled": false,
109
- "syncIssues": false,
110
- "createPROnComplete": false
184
+ "repository": null,
185
+ "token": "env:GITHUB_TOKEN",
186
+ "syncIssues": true,
187
+ "closeOnComplete": true,
188
+ "createPROnComplete": false,
189
+ "labels": {
190
+ "feature": "enhancement",
191
+ "bug": "bug",
192
+ "design": "design"
193
+ }
111
194
  },
112
195
  "slack": {
113
196
  "enabled": false,
114
197
  "webhookUrl": "env:SLACK_WEBHOOK_URL",
115
- "notifyOnPhaseComplete": false
198
+ "notifyOnPhaseComplete": false,
199
+ "notifyOnVerifyFail": true,
200
+ "notifyOnHandoff": false
116
201
  }
117
202
  },
118
203
 
119
204
  "ui": {
120
205
  "showTokenUsage": true,
121
206
  "showModelInfo": true,
207
+ "showWaveProgress": true,
122
208
  "verboseOutput": false
209
+ },
210
+
211
+ "team": {
212
+ "enabled": false,
213
+ "members": [],
214
+ "fileLocking": {
215
+ "enabled": true,
216
+ "expiryMinutes": 60,
217
+ "autoRelease": true
218
+ },
219
+ "notifications": {
220
+ "onPhaseStart": false,
221
+ "onPhaseComplete": true,
222
+ "onVerifyFail": true,
223
+ "onConflict": true,
224
+ "onMilestoneComplete": true
225
+ },
226
+ "branching": {
227
+ "strategy": "feature",
228
+ "prefix": "ctx"
229
+ }
230
+ },
231
+
232
+ "audit": {
233
+ "enabled": true,
234
+ "retention": {
235
+ "daily": "90d",
236
+ "weekly": "1y",
237
+ "monthly": "3y"
238
+ },
239
+ "logging": {
240
+ "tokens": true,
241
+ "costs": true,
242
+ "decisions": true,
243
+ "fileAccess": true,
244
+ "externalCalls": true
245
+ },
246
+ "compliance": {
247
+ "soc2": false,
248
+ "hipaa": false,
249
+ "gdpr": false
250
+ },
251
+ "reports": {
252
+ "dailySummary": true,
253
+ "weeklySummary": true,
254
+ "exportFormat": "json"
255
+ }
256
+ },
257
+
258
+ "metrics": {
259
+ "enabled": true,
260
+ "collection": {
261
+ "tokens": true,
262
+ "costs": true,
263
+ "timing": true,
264
+ "quality": true
265
+ },
266
+ "aggregation": {
267
+ "daily": true,
268
+ "weekly": true,
269
+ "monthly": true
270
+ },
271
+ "costRates": {
272
+ "opus": {"input": 0.015, "output": 0.075},
273
+ "sonnet": {"input": 0.003, "output": 0.015},
274
+ "haiku": {"input": 0.00025, "output": 0.00125}
275
+ },
276
+ "roi": {
277
+ "developerHourlyRate": 150,
278
+ "hoursPerStoryManual": 4
279
+ },
280
+ "alerts": {
281
+ "dailyCostThreshold": 10,
282
+ "weeklyStoriesTarget": 10
283
+ }
284
+ },
285
+
286
+ "milestone": {
287
+ "autoTag": true,
288
+ "tagFormat": "v{version}",
289
+ "archiveOnComplete": true,
290
+ "requireAudit": true,
291
+ "gapPhasesEnabled": true
292
+ },
293
+
294
+ "learning": {
295
+ "enabled": true,
296
+ "observePatterns": true,
297
+ "observeDecisions": true,
298
+ "observeFailures": true,
299
+ "minConfidence": 0.7,
300
+ "applyPatterns": true,
301
+ "enforceConventions": true,
302
+ "memoryPath": ".ctx/memory/"
303
+ },
304
+
305
+ "predict": {
306
+ "enabled": true,
307
+ "autoSuggest": {
308
+ "onMilestoneComplete": true,
309
+ "onAllStoriesPass": true,
310
+ "weeklyDigest": false
311
+ },
312
+ "categories": ["revenue", "engagement", "retention", "operations", "performance", "security"],
313
+ "maxSuggestions": 10,
314
+ "minROI": 5,
315
+ "includeQuickWins": true,
316
+ "researchDepth": "balanced"
317
+ },
318
+
319
+ "monitor": {
320
+ "enabled": false,
321
+ "pollInterval": "5m",
322
+ "autoFix": {
323
+ "enabled": false,
324
+ "safePatterns": ["null-check", "import-missing", "type-mismatch"],
325
+ "requireReview": true,
326
+ "createPR": true
327
+ },
328
+ "sentry": {
329
+ "enabled": false,
330
+ "token": "env:SENTRY_AUTH_TOKEN",
331
+ "organization": null,
332
+ "project": null,
333
+ "environment": "production"
334
+ },
335
+ "logrocket": {
336
+ "enabled": false,
337
+ "appId": null,
338
+ "apiKey": "env:LOGROCKET_API_KEY"
339
+ },
340
+ "alerts": {
341
+ "errorSpike": {
342
+ "threshold": 50,
343
+ "window": "5m"
344
+ },
345
+ "slack": true,
346
+ "pagerduty": false
347
+ }
348
+ },
349
+
350
+ "voice": {
351
+ "enabled": false,
352
+ "engine": "auto",
353
+ "language": "en-US",
354
+ "wakeWord": "Hey CTX",
355
+ "confirmCommands": true,
356
+ "dictationEndPhrase": "done",
357
+ "dictationPauseSeconds": 3,
358
+ "noiseReduction": true,
359
+ "minConfidence": 0.7
123
360
  }
124
361
  }