@cleocode/core 2026.3.57 → 2026.3.59
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/dist/agents/agent-registry.d.ts +206 -0
- package/dist/agents/agent-registry.d.ts.map +1 -0
- package/dist/agents/agent-schema.d.ts.map +1 -1
- package/dist/agents/execution-learning.d.ts +223 -0
- package/dist/agents/execution-learning.d.ts.map +1 -0
- package/dist/agents/health-monitor.d.ts +161 -0
- package/dist/agents/health-monitor.d.ts.map +1 -0
- package/dist/agents/index.d.ts +4 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/retry.d.ts +57 -4
- package/dist/agents/retry.d.ts.map +1 -1
- package/dist/backfill/index.d.ts +83 -0
- package/dist/backfill/index.d.ts.map +1 -0
- package/dist/bootstrap.d.ts +1 -1
- package/dist/config.d.ts +47 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6985 -5068
- package/dist/index.js.map +4 -4
- package/dist/intelligence/adaptive-validation.d.ts +151 -0
- package/dist/intelligence/adaptive-validation.d.ts.map +1 -0
- package/dist/intelligence/impact.d.ts +34 -1
- package/dist/intelligence/impact.d.ts.map +1 -1
- package/dist/intelligence/index.d.ts +7 -2
- package/dist/intelligence/index.d.ts.map +1 -1
- package/dist/intelligence/types.d.ts +60 -0
- package/dist/intelligence/types.d.ts.map +1 -1
- package/dist/internal.d.ts +8 -4
- package/dist/internal.d.ts.map +1 -1
- package/dist/lib/index.d.ts +10 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/retry.d.ts +128 -0
- package/dist/lib/retry.d.ts.map +1 -0
- package/dist/nexus/sharing/index.d.ts +48 -2
- package/dist/nexus/sharing/index.d.ts.map +1 -1
- package/dist/sessions/session-enforcement.d.ts.map +1 -1
- package/dist/stats/index.d.ts +1 -0
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/workflow-telemetry.d.ts +89 -0
- package/dist/stats/workflow-telemetry.d.ts.map +1 -0
- package/dist/store/brain-schema.d.ts.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/cross-db-cleanup.d.ts +93 -0
- package/dist/store/cross-db-cleanup.d.ts.map +1 -0
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/migration-sqlite.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/task-store.d.ts.map +1 -1
- package/dist/store/tasks-schema.d.ts +18 -3
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/validation-schemas.d.ts +32 -0
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/tasks/add.d.ts +10 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/enforcement.d.ts +22 -0
- package/dist/tasks/enforcement.d.ts.map +1 -0
- package/dist/tasks/epic-enforcement.d.ts +199 -0
- package/dist/tasks/epic-enforcement.d.ts.map +1 -0
- package/dist/tasks/index.d.ts +1 -1
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/pipeline-stage.d.ts +181 -0
- package/dist/tasks/pipeline-stage.d.ts.map +1 -0
- package/dist/tasks/update.d.ts +2 -0
- package/dist/tasks/update.d.ts.map +1 -1
- package/migrations/drizzle-brain/20260321000001_t033-brain-indexes/migration.sql +12 -0
- package/migrations/drizzle-brain/20260321000001_t033-brain-indexes/snapshot.json +1232 -0
- package/migrations/drizzle-tasks/20260321000000_t033-connection-health/migration.sql +518 -0
- package/migrations/drizzle-tasks/20260321000000_t033-connection-health/snapshot.json +4312 -0
- package/migrations/drizzle-tasks/20260321000002_t060-pipeline-stage-binding/migration.sql +82 -0
- package/migrations/drizzle-tasks/20260321000002_t060-pipeline-stage-binding/snapshot.json +9 -0
- package/package.json +5 -5
- package/schemas/config.schema.json +37 -1547
- package/src/__tests__/sharing.test.ts +24 -0
- package/src/agents/__tests__/agent-registry.test.ts +351 -0
- package/src/agents/__tests__/execution-learning.test.ts +684 -0
- package/src/agents/__tests__/health-monitor.test.ts +332 -0
- package/src/agents/__tests__/registry.test.ts +30 -2
- package/src/agents/agent-registry.ts +394 -0
- package/src/agents/agent-schema.ts +5 -0
- package/src/agents/execution-learning.ts +675 -0
- package/src/agents/health-monitor.ts +279 -0
- package/src/agents/index.ts +37 -1
- package/src/agents/retry.ts +57 -4
- package/src/backfill/index.ts +309 -0
- package/src/bootstrap.ts +1 -1
- package/src/config.ts +126 -0
- package/src/index.ts +8 -1
- package/src/intelligence/__tests__/adaptive-validation.test.ts +694 -0
- package/src/intelligence/__tests__/impact.test.ts +165 -1
- package/src/intelligence/adaptive-validation.ts +764 -0
- package/src/intelligence/impact.ts +203 -0
- package/src/intelligence/index.ts +19 -0
- package/src/intelligence/types.ts +76 -0
- package/src/internal.ts +39 -0
- package/src/lib/__tests__/retry.test.ts +321 -0
- package/src/lib/index.ts +16 -0
- package/src/lib/retry.ts +224 -0
- package/src/lifecycle/__tests__/chain-store.test.ts +7 -0
- package/src/lifecycle/__tests__/tessera-engine.test.ts +52 -0
- package/src/nexus/sharing/index.ts +142 -2
- package/src/sessions/__tests__/session-edge-cases.test.ts +24 -1
- package/src/sessions/session-enforcement.ts +13 -2
- package/src/stats/index.ts +7 -0
- package/src/stats/workflow-telemetry.ts +502 -0
- package/src/store/__tests__/migration-safety.test.ts +3 -0
- package/src/store/__tests__/session-store.test.ts +132 -1
- package/src/store/__tests__/task-store.test.ts +22 -1
- package/src/store/__tests__/test-db-helper.ts +29 -2
- package/src/store/brain-schema.ts +4 -1
- package/src/store/converters.ts +2 -0
- package/src/store/cross-db-cleanup.ts +192 -0
- package/src/store/db-helpers.ts +2 -0
- package/src/store/migration-sqlite.ts +6 -0
- package/src/store/sqlite-data-accessor.ts +20 -28
- package/src/store/sqlite.ts +14 -2
- package/src/store/task-store.ts +6 -0
- package/src/store/tasks-schema.ts +59 -20
- package/src/tasks/__tests__/add.test.ts +16 -0
- package/src/tasks/__tests__/complete-unblocks.test.ts +10 -1
- package/src/tasks/__tests__/complete.test.ts +11 -2
- package/src/tasks/__tests__/epic-enforcement.test.ts +909 -0
- package/src/tasks/__tests__/minimal-test.test.ts +28 -0
- package/src/tasks/__tests__/pipeline-stage.test.ts +403 -0
- package/src/tasks/__tests__/update.test.ts +40 -6
- package/src/tasks/add.ts +128 -2
- package/src/tasks/complete.ts +29 -17
- package/src/tasks/enforcement.ts +127 -0
- package/src/tasks/epic-enforcement.ts +364 -0
- package/src/tasks/index.ts +1 -0
- package/src/tasks/pipeline-stage.ts +293 -0
- package/src/tasks/update.ts +62 -0
- package/templates/config.template.json +34 -111
- package/templates/global-config.template.json +24 -40
|
@@ -61,91 +61,15 @@
|
|
|
61
61
|
},
|
|
62
62
|
"directories": {
|
|
63
63
|
"type": "object",
|
|
64
|
-
"description": "Directory path configuration.
|
|
64
|
+
"description": "Directory path configuration. Only agentOutputs is consumed; all other sub-fields were vaporware (T109).",
|
|
65
65
|
"additionalProperties": false,
|
|
66
66
|
"properties": {
|
|
67
|
-
"data": {
|
|
68
|
-
"type": "string",
|
|
69
|
-
"default": ".cleo",
|
|
70
|
-
"description": "CLEO data directory (contains todo.json, config.json)"
|
|
71
|
-
},
|
|
72
|
-
"schemas": {
|
|
73
|
-
"type": "string",
|
|
74
|
-
"default": "schemas",
|
|
75
|
-
"description": "JSON Schema definitions"
|
|
76
|
-
},
|
|
77
|
-
"backups": {
|
|
78
|
-
"type": "object",
|
|
79
|
-
"description": "Backup storage configuration.",
|
|
80
|
-
"additionalProperties": false,
|
|
81
|
-
"properties": {
|
|
82
|
-
"root": {
|
|
83
|
-
"type": "string",
|
|
84
|
-
"default": "backups",
|
|
85
|
-
"description": "Backup storage root"
|
|
86
|
-
},
|
|
87
|
-
"types": {
|
|
88
|
-
"type": "array",
|
|
89
|
-
"items": {
|
|
90
|
-
"type": "string"
|
|
91
|
-
},
|
|
92
|
-
"default": [
|
|
93
|
-
"snapshot",
|
|
94
|
-
"safety",
|
|
95
|
-
"incremental",
|
|
96
|
-
"archive",
|
|
97
|
-
"migration"
|
|
98
|
-
],
|
|
99
|
-
"description": "Backup type subdirectories"
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
"templates": {
|
|
104
|
-
"type": "string",
|
|
105
|
-
"default": "templates",
|
|
106
|
-
"description": "Template storage"
|
|
107
|
-
},
|
|
108
|
-
"research": {
|
|
109
|
-
"type": "object",
|
|
110
|
-
"description": "Research output configuration.",
|
|
111
|
-
"additionalProperties": false,
|
|
112
|
-
"properties": {
|
|
113
|
-
"output": {
|
|
114
|
-
"type": "string",
|
|
115
|
-
"default": "research",
|
|
116
|
-
"description": "Research output directory"
|
|
117
|
-
},
|
|
118
|
-
"archive": {
|
|
119
|
-
"type": "string",
|
|
120
|
-
"default": "research/archive",
|
|
121
|
-
"description": "Archived research"
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
67
|
"agentOutputs": {
|
|
126
68
|
"type": "string",
|
|
127
69
|
"default": ".cleo/agent-outputs",
|
|
128
|
-
"description": "Agent manifest outputs (MANIFEST.jsonl location)"
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
"type": "string",
|
|
132
|
-
"default": "claudedocs/metrics",
|
|
133
|
-
"description": "Metrics collection"
|
|
134
|
-
},
|
|
135
|
-
"documentation": {
|
|
136
|
-
"type": "string",
|
|
137
|
-
"default": "docs",
|
|
138
|
-
"description": "User-facing documentation"
|
|
139
|
-
},
|
|
140
|
-
"skills": {
|
|
141
|
-
"type": "string",
|
|
142
|
-
"default": "skills",
|
|
143
|
-
"description": "CLEO skill definitions"
|
|
144
|
-
},
|
|
145
|
-
"sync": {
|
|
146
|
-
"type": "string",
|
|
147
|
-
"default": "sync",
|
|
148
|
-
"description": "TodoWrite sync directory"
|
|
70
|
+
"description": "DEPRECATED: Use agentOutputs.directory instead. Agent manifest outputs (MANIFEST.jsonl location). Retained as Priority 3 fallback in paths.ts.",
|
|
71
|
+
"x-deprecated": true,
|
|
72
|
+
"x-deprecated-by": "agentOutputs.directory"
|
|
149
73
|
}
|
|
150
74
|
}
|
|
151
75
|
},
|
|
@@ -290,40 +214,6 @@
|
|
|
290
214
|
}
|
|
291
215
|
}
|
|
292
216
|
},
|
|
293
|
-
"logging": {
|
|
294
|
-
"type": "object",
|
|
295
|
-
"description": "Legacy JSONL change history settings. Audit logs are now stored in SQLite audit_log table (T4837). This section is retained for backward compatibility but is no longer actively used by the SQLite engine.",
|
|
296
|
-
"additionalProperties": false,
|
|
297
|
-
"properties": {
|
|
298
|
-
"enabled": {
|
|
299
|
-
"type": "boolean",
|
|
300
|
-
"default": true,
|
|
301
|
-
"description": "Enable logging to todo-log.jsonl."
|
|
302
|
-
},
|
|
303
|
-
"retentionDays": {
|
|
304
|
-
"type": "integer",
|
|
305
|
-
"minimum": 1,
|
|
306
|
-
"maximum": 365,
|
|
307
|
-
"default": 30,
|
|
308
|
-
"description": "Days to retain log entries."
|
|
309
|
-
},
|
|
310
|
-
"level": {
|
|
311
|
-
"type": "string",
|
|
312
|
-
"enum": [
|
|
313
|
-
"minimal",
|
|
314
|
-
"standard",
|
|
315
|
-
"verbose"
|
|
316
|
-
],
|
|
317
|
-
"default": "standard",
|
|
318
|
-
"description": "minimal=status changes, standard=+notes, verbose=+all fields."
|
|
319
|
-
},
|
|
320
|
-
"logSessionEvents": {
|
|
321
|
-
"type": "boolean",
|
|
322
|
-
"default": true,
|
|
323
|
-
"description": "Log session start/end events."
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
},
|
|
327
217
|
"pinoLogging": {
|
|
328
218
|
"type": "object",
|
|
329
219
|
"description": "Application diagnostic logging (pino). Writes to .cleo/logs/cleo.log.",
|
|
@@ -358,91 +248,20 @@
|
|
|
358
248
|
},
|
|
359
249
|
"validation": {
|
|
360
250
|
"type": "object",
|
|
361
|
-
"description": "
|
|
251
|
+
"description": "Legacy validation settings. Most fields have been superseded by dedicated enforcement sections. Only deprecated fields retained for backward compatibility with existing config files.",
|
|
362
252
|
"additionalProperties": false,
|
|
363
253
|
"properties": {
|
|
364
|
-
"strictMode": {
|
|
365
|
-
"type": "boolean",
|
|
366
|
-
"default": false,
|
|
367
|
-
"description": "Treat warnings as errors."
|
|
368
|
-
},
|
|
369
|
-
"checksumEnabled": {
|
|
370
|
-
"type": "boolean",
|
|
371
|
-
"default": true,
|
|
372
|
-
"description": "Enable checksum verification. CRITICAL for anti-hallucination."
|
|
373
|
-
},
|
|
374
|
-
"enforceAcceptance": {
|
|
375
|
-
"type": "boolean",
|
|
376
|
-
"default": true,
|
|
377
|
-
"description": "Require acceptance criteria for high/critical tasks."
|
|
378
|
-
},
|
|
379
|
-
"requireDescription": {
|
|
380
|
-
"type": "boolean",
|
|
381
|
-
"default": false,
|
|
382
|
-
"description": "Require description field for all tasks."
|
|
383
|
-
},
|
|
384
|
-
"maxActiveTasks": {
|
|
385
|
-
"type": "integer",
|
|
386
|
-
"minimum": 1,
|
|
387
|
-
"maximum": 1,
|
|
388
|
-
"default": 1,
|
|
389
|
-
"description": "Maximum active tasks. Default 1. DO NOT CHANGE without good reason."
|
|
390
|
-
},
|
|
391
254
|
"validateDependencies": {
|
|
392
255
|
"type": "boolean",
|
|
393
256
|
"default": true,
|
|
394
|
-
"
|
|
257
|
+
"x-deprecated": true,
|
|
258
|
+
"description": "DEPRECATED: dependency validation always runs unconditionally. This flag is never read by the engine. Retained for backward compatibility only."
|
|
395
259
|
},
|
|
396
260
|
"detectCircularDeps": {
|
|
397
261
|
"type": "boolean",
|
|
398
262
|
"default": true,
|
|
399
|
-
"
|
|
400
|
-
|
|
401
|
-
"phaseValidation": {
|
|
402
|
-
"type": "object",
|
|
403
|
-
"description": "Phase validation and enforcement settings.",
|
|
404
|
-
"additionalProperties": false,
|
|
405
|
-
"properties": {
|
|
406
|
-
"enforcePhaseOrder": {
|
|
407
|
-
"type": "boolean",
|
|
408
|
-
"default": false,
|
|
409
|
-
"description": "Warn when activating tasks outside current project phase."
|
|
410
|
-
},
|
|
411
|
-
"phaseAdvanceThreshold": {
|
|
412
|
-
"type": "integer",
|
|
413
|
-
"minimum": 0,
|
|
414
|
-
"maximum": 100,
|
|
415
|
-
"default": 90,
|
|
416
|
-
"description": "Percentage of tasks that must be completed to advance phase."
|
|
417
|
-
},
|
|
418
|
-
"blockOnCriticalTasks": {
|
|
419
|
-
"type": "boolean",
|
|
420
|
-
"default": true,
|
|
421
|
-
"description": "Prevent phase advancement if critical tasks remain incomplete."
|
|
422
|
-
},
|
|
423
|
-
"warnPhaseContext": {
|
|
424
|
-
"type": "boolean",
|
|
425
|
-
"default": true,
|
|
426
|
-
"description": "Show warning when task phase differs from project phase."
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
},
|
|
430
|
-
"claudedocs": {
|
|
431
|
-
"type": "object",
|
|
432
|
-
"description": "Claudedocs YAML frontmatter validation settings.",
|
|
433
|
-
"additionalProperties": false,
|
|
434
|
-
"properties": {
|
|
435
|
-
"enabled": {
|
|
436
|
-
"type": "boolean",
|
|
437
|
-
"default": true,
|
|
438
|
-
"description": "Enable YAML frontmatter validation for claudedocs/ files."
|
|
439
|
-
},
|
|
440
|
-
"strictMode": {
|
|
441
|
-
"type": "boolean",
|
|
442
|
-
"default": false,
|
|
443
|
-
"description": "Strict mode: require frontmatter on all claudedocs/ files. When false, legacy files without frontmatter are allowed with warning."
|
|
444
|
-
}
|
|
445
|
-
}
|
|
263
|
+
"x-deprecated": true,
|
|
264
|
+
"description": "DEPRECATED: circular dependency detection always runs unconditionally. This flag is never read by the engine. Retained for backward compatibility only."
|
|
446
265
|
},
|
|
447
266
|
"releaseGates": {
|
|
448
267
|
"type": "array",
|
|
@@ -479,70 +298,6 @@
|
|
|
479
298
|
}
|
|
480
299
|
},
|
|
481
300
|
"default": []
|
|
482
|
-
},
|
|
483
|
-
"testing": {
|
|
484
|
-
"type": "object",
|
|
485
|
-
"description": "Test validation configuration. Enable project-agnostic test framework support.",
|
|
486
|
-
"additionalProperties": false,
|
|
487
|
-
"properties": {
|
|
488
|
-
"enabled": {
|
|
489
|
-
"type": "boolean",
|
|
490
|
-
"default": true,
|
|
491
|
-
"description": "Enable test validation"
|
|
492
|
-
},
|
|
493
|
-
"framework": {
|
|
494
|
-
"type": "string",
|
|
495
|
-
"enum": [
|
|
496
|
-
"bats",
|
|
497
|
-
"jest",
|
|
498
|
-
"vitest",
|
|
499
|
-
"playwright",
|
|
500
|
-
"cypress",
|
|
501
|
-
"mocha",
|
|
502
|
-
"ava",
|
|
503
|
-
"uvu",
|
|
504
|
-
"tap",
|
|
505
|
-
"node:test",
|
|
506
|
-
"deno",
|
|
507
|
-
"bun",
|
|
508
|
-
"pytest",
|
|
509
|
-
"go",
|
|
510
|
-
"cargo",
|
|
511
|
-
"custom"
|
|
512
|
-
],
|
|
513
|
-
"default": "bats",
|
|
514
|
-
"description": "Testing framework identifier"
|
|
515
|
-
},
|
|
516
|
-
"command": {
|
|
517
|
-
"type": "string",
|
|
518
|
-
"description": "Test execution command"
|
|
519
|
-
},
|
|
520
|
-
"directory": {
|
|
521
|
-
"type": "string",
|
|
522
|
-
"default": "tests",
|
|
523
|
-
"description": "Test directory relative to project root"
|
|
524
|
-
},
|
|
525
|
-
"requirePassingTests": {
|
|
526
|
-
"type": "boolean",
|
|
527
|
-
"default": false,
|
|
528
|
-
"description": "Block operations on test failure"
|
|
529
|
-
},
|
|
530
|
-
"runOnComplete": {
|
|
531
|
-
"type": "boolean",
|
|
532
|
-
"default": false,
|
|
533
|
-
"description": "Auto-run tests on task completion"
|
|
534
|
-
},
|
|
535
|
-
"testFilePatterns": {
|
|
536
|
-
"type": "array",
|
|
537
|
-
"items": {
|
|
538
|
-
"type": "string"
|
|
539
|
-
},
|
|
540
|
-
"default": [
|
|
541
|
-
"**/*.bats"
|
|
542
|
-
],
|
|
543
|
-
"description": "Glob patterns for test files"
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
301
|
}
|
|
547
302
|
}
|
|
548
303
|
},
|
|
@@ -617,7 +372,7 @@
|
|
|
617
372
|
},
|
|
618
373
|
"defaults": {
|
|
619
374
|
"type": "object",
|
|
620
|
-
"description": "Default values for new tasks.",
|
|
375
|
+
"description": "Default values for new tasks. Only priority is consumed (T109).",
|
|
621
376
|
"additionalProperties": false,
|
|
622
377
|
"properties": {
|
|
623
378
|
"priority": {
|
|
@@ -629,73 +384,14 @@
|
|
|
629
384
|
"low"
|
|
630
385
|
],
|
|
631
386
|
"default": "medium"
|
|
632
|
-
},
|
|
633
|
-
"phase": {
|
|
634
|
-
"type": "string",
|
|
635
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
636
|
-
"default": "core"
|
|
637
|
-
},
|
|
638
|
-
"labels": {
|
|
639
|
-
"type": "array",
|
|
640
|
-
"items": {
|
|
641
|
-
"type": "string"
|
|
642
|
-
},
|
|
643
|
-
"default": []
|
|
644
387
|
}
|
|
645
388
|
}
|
|
646
389
|
},
|
|
647
390
|
"session": {
|
|
648
391
|
"type": "object",
|
|
649
|
-
"description": "Session behavior settings.",
|
|
392
|
+
"description": "Session behavior settings. Only enforcement is consumed from config; other fields were vaporware (T109). Core session behavior uses enforcement.session.requiredForMutate.",
|
|
650
393
|
"additionalProperties": false,
|
|
651
394
|
"properties": {
|
|
652
|
-
"requireSession": {
|
|
653
|
-
"type": "boolean",
|
|
654
|
-
"default": true,
|
|
655
|
-
"description": "Require an active session for task operations."
|
|
656
|
-
},
|
|
657
|
-
"requireSessionNote": {
|
|
658
|
-
"type": "boolean",
|
|
659
|
-
"default": true,
|
|
660
|
-
"description": "Warn if session ends without updating sessionNote."
|
|
661
|
-
},
|
|
662
|
-
"requireNotesOnComplete": {
|
|
663
|
-
"type": "boolean",
|
|
664
|
-
"default": true,
|
|
665
|
-
"description": "Require notes when completing tasks."
|
|
666
|
-
},
|
|
667
|
-
"warnOnNoFocus": {
|
|
668
|
-
"type": "boolean",
|
|
669
|
-
"default": true,
|
|
670
|
-
"description": "Warn if no task is active at session start."
|
|
671
|
-
},
|
|
672
|
-
"allowNestedSessions": {
|
|
673
|
-
"type": "boolean",
|
|
674
|
-
"default": true,
|
|
675
|
-
"description": "Allow nested session scopes."
|
|
676
|
-
},
|
|
677
|
-
"allowParallelAgents": {
|
|
678
|
-
"type": "boolean",
|
|
679
|
-
"default": true,
|
|
680
|
-
"description": "Allow multiple agents to work concurrently."
|
|
681
|
-
},
|
|
682
|
-
"autoStartSession": {
|
|
683
|
-
"type": "boolean",
|
|
684
|
-
"default": true,
|
|
685
|
-
"description": "Automatically log session_start on first read."
|
|
686
|
-
},
|
|
687
|
-
"autoDiscoveryOnStart": {
|
|
688
|
-
"type": "boolean",
|
|
689
|
-
"default": true,
|
|
690
|
-
"description": "Auto-discover existing sessions on start."
|
|
691
|
-
},
|
|
692
|
-
"sessionTimeoutHours": {
|
|
693
|
-
"type": "integer",
|
|
694
|
-
"minimum": 1,
|
|
695
|
-
"maximum": 168,
|
|
696
|
-
"default": 72,
|
|
697
|
-
"description": "Hours before orphaned session warning."
|
|
698
|
-
},
|
|
699
395
|
"enforcement": {
|
|
700
396
|
"type": "string",
|
|
701
397
|
"enum": [
|
|
@@ -707,42 +403,12 @@
|
|
|
707
403
|
],
|
|
708
404
|
"default": "strict",
|
|
709
405
|
"description": "Session enforcement mode for write operations. strict=block without session, warn/advisory=warn but allow, none/off=no enforcement."
|
|
710
|
-
},
|
|
711
|
-
"maxConcurrent": {
|
|
712
|
-
"type": "integer",
|
|
713
|
-
"minimum": 1,
|
|
714
|
-
"maximum": 100,
|
|
715
|
-
"default": 10,
|
|
716
|
-
"description": "Maximum number of concurrent sessions allowed."
|
|
717
|
-
}
|
|
718
|
-
}
|
|
719
|
-
},
|
|
720
|
-
"display": {
|
|
721
|
-
"type": "object",
|
|
722
|
-
"description": "Display and notification settings.",
|
|
723
|
-
"additionalProperties": false,
|
|
724
|
-
"properties": {
|
|
725
|
-
"showArchiveCount": {
|
|
726
|
-
"type": "boolean",
|
|
727
|
-
"default": true,
|
|
728
|
-
"description": "Show archived task count in status output."
|
|
729
|
-
},
|
|
730
|
-
"showLogSummary": {
|
|
731
|
-
"type": "boolean",
|
|
732
|
-
"default": true,
|
|
733
|
-
"description": "Show recent log summary."
|
|
734
|
-
},
|
|
735
|
-
"warnStaleDays": {
|
|
736
|
-
"type": "integer",
|
|
737
|
-
"minimum": 1,
|
|
738
|
-
"default": 30,
|
|
739
|
-
"description": "Warn about tasks pending longer than this."
|
|
740
406
|
}
|
|
741
407
|
}
|
|
742
408
|
},
|
|
743
409
|
"output": {
|
|
744
410
|
"type": "object",
|
|
745
|
-
"description": "Output formatting and display preferences.",
|
|
411
|
+
"description": "Output formatting and display preferences. Fields are ENV-mapped (CLEO_FORMAT, CLEO_OUTPUT_*) but not consumed by the rendering layer at runtime — format is determined by CLI flags. Fields retained for ENV_MAP wiring only.",
|
|
746
412
|
"additionalProperties": false,
|
|
747
413
|
"properties": {
|
|
748
414
|
"defaultFormat": {
|
|
@@ -757,28 +423,22 @@
|
|
|
757
423
|
"table"
|
|
758
424
|
],
|
|
759
425
|
"default": "text",
|
|
760
|
-
"description": "Default output format for list and export commands."
|
|
426
|
+
"description": "Default output format for list and export commands. Mapped from CLEO_FORMAT env var."
|
|
761
427
|
},
|
|
762
428
|
"showColor": {
|
|
763
429
|
"type": "boolean",
|
|
764
430
|
"default": true,
|
|
765
|
-
"description": "Enable ANSI color output. Respects NO_COLOR env var."
|
|
431
|
+
"description": "Enable ANSI color output. Respects NO_COLOR env var. Mapped from CLEO_OUTPUT_SHOW_COLOR."
|
|
766
432
|
},
|
|
767
433
|
"showUnicode": {
|
|
768
434
|
"type": "boolean",
|
|
769
435
|
"default": true,
|
|
770
|
-
"description": "Use Unicode symbols and box-drawing characters."
|
|
436
|
+
"description": "Use Unicode symbols and box-drawing characters. Mapped from CLEO_OUTPUT_SHOW_UNICODE."
|
|
771
437
|
},
|
|
772
438
|
"showProgressBars": {
|
|
773
439
|
"type": "boolean",
|
|
774
440
|
"default": true,
|
|
775
|
-
"description": "Show progress bars in dashboard and phase views."
|
|
776
|
-
},
|
|
777
|
-
"csvDelimiter": {
|
|
778
|
-
"type": "string",
|
|
779
|
-
"maxLength": 1,
|
|
780
|
-
"default": ",",
|
|
781
|
-
"description": "Delimiter for CSV export (comma, tab, semicolon)."
|
|
441
|
+
"description": "Show progress bars in dashboard and phase views. Mapped from CLEO_OUTPUT_SHOW_PROGRESS_BARS."
|
|
782
442
|
},
|
|
783
443
|
"dateFormat": {
|
|
784
444
|
"type": "string",
|
|
@@ -789,97 +449,7 @@
|
|
|
789
449
|
"locale"
|
|
790
450
|
],
|
|
791
451
|
"default": "iso8601",
|
|
792
|
-
"description": "Date/time display format:
|
|
793
|
-
},
|
|
794
|
-
"showCompactTitles": {
|
|
795
|
-
"type": "boolean",
|
|
796
|
-
"default": false,
|
|
797
|
-
"description": "Truncate long task titles in list view."
|
|
798
|
-
},
|
|
799
|
-
"maxTitleLength": {
|
|
800
|
-
"type": "integer",
|
|
801
|
-
"minimum": 20,
|
|
802
|
-
"maximum": 200,
|
|
803
|
-
"default": 80,
|
|
804
|
-
"description": "Maximum title length when showCompactTitles is enabled."
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
},
|
|
808
|
-
"cli": {
|
|
809
|
-
"type": "object",
|
|
810
|
-
"description": "CLI behavior, aliases, and plugin settings.",
|
|
811
|
-
"additionalProperties": false,
|
|
812
|
-
"properties": {
|
|
813
|
-
"aliases": {
|
|
814
|
-
"type": "object",
|
|
815
|
-
"description": "Command aliases mapping short names to commands.",
|
|
816
|
-
"additionalProperties": {
|
|
817
|
-
"type": "string",
|
|
818
|
-
"description": "Target command name."
|
|
819
|
-
},
|
|
820
|
-
"default": {
|
|
821
|
-
"ls": "list",
|
|
822
|
-
"done": "complete",
|
|
823
|
-
"new": "add",
|
|
824
|
-
"edit": "update",
|
|
825
|
-
"rm": "archive",
|
|
826
|
-
"check": "validate"
|
|
827
|
-
}
|
|
828
|
-
},
|
|
829
|
-
"plugins": {
|
|
830
|
-
"type": "object",
|
|
831
|
-
"description": "Plugin system configuration.",
|
|
832
|
-
"additionalProperties": false,
|
|
833
|
-
"properties": {
|
|
834
|
-
"enabled": {
|
|
835
|
-
"type": "boolean",
|
|
836
|
-
"default": true,
|
|
837
|
-
"description": "Enable plugin discovery and loading."
|
|
838
|
-
},
|
|
839
|
-
"directories": {
|
|
840
|
-
"type": "array",
|
|
841
|
-
"items": {
|
|
842
|
-
"type": "string"
|
|
843
|
-
},
|
|
844
|
-
"default": [
|
|
845
|
-
"~/.cleo/plugins",
|
|
846
|
-
"./.claude/plugins"
|
|
847
|
-
],
|
|
848
|
-
"description": "Directories to scan for plugins (in order of priority)."
|
|
849
|
-
},
|
|
850
|
-
"autoDiscover": {
|
|
851
|
-
"type": "boolean",
|
|
852
|
-
"default": true,
|
|
853
|
-
"description": "Auto-discover plugins from directories."
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
},
|
|
857
|
-
"debug": {
|
|
858
|
-
"type": "object",
|
|
859
|
-
"description": "Debug and validation settings for CLI.",
|
|
860
|
-
"additionalProperties": false,
|
|
861
|
-
"properties": {
|
|
862
|
-
"enabled": {
|
|
863
|
-
"type": "boolean",
|
|
864
|
-
"default": false,
|
|
865
|
-
"description": "Enable debug mode (verbose output, validation checks)."
|
|
866
|
-
},
|
|
867
|
-
"validateMappings": {
|
|
868
|
-
"type": "boolean",
|
|
869
|
-
"default": true,
|
|
870
|
-
"description": "Validate command-to-script mappings exist."
|
|
871
|
-
},
|
|
872
|
-
"checksumVerify": {
|
|
873
|
-
"type": "boolean",
|
|
874
|
-
"default": true,
|
|
875
|
-
"description": "Verify script checksums for integrity."
|
|
876
|
-
},
|
|
877
|
-
"showTimings": {
|
|
878
|
-
"type": "boolean",
|
|
879
|
-
"default": false,
|
|
880
|
-
"description": "Show command execution timings."
|
|
881
|
-
}
|
|
882
|
-
}
|
|
452
|
+
"description": "Date/time display format. Mapped from CLEO_OUTPUT_DATE_FORMAT. NOTE: enum differs from contracts/config.ts DateFormat type — reconcile in follow-up."
|
|
883
453
|
}
|
|
884
454
|
}
|
|
885
455
|
},
|
|
@@ -966,7 +536,8 @@
|
|
|
966
536
|
},
|
|
967
537
|
"cancellation": {
|
|
968
538
|
"type": "object",
|
|
969
|
-
"description": "
|
|
539
|
+
"description": "DEPRECATED: cancellation behavior is controlled by CLI flags (--children, --reason, --force). None of these fields are read by the engine. Retained for backward compatibility only.",
|
|
540
|
+
"x-deprecated": true,
|
|
970
541
|
"additionalProperties": false,
|
|
971
542
|
"properties": {
|
|
972
543
|
"cascadeConfirmThreshold": {
|
|
@@ -974,24 +545,28 @@
|
|
|
974
545
|
"minimum": 1,
|
|
975
546
|
"maximum": 100,
|
|
976
547
|
"default": 10,
|
|
977
|
-
"
|
|
548
|
+
"x-deprecated": true,
|
|
549
|
+
"description": "DEPRECATED: not enforced by the engine. Use --force CLI flag to bypass confirmation."
|
|
978
550
|
},
|
|
979
551
|
"requireReason": {
|
|
980
552
|
"type": "boolean",
|
|
981
553
|
"default": true,
|
|
982
|
-
"
|
|
554
|
+
"x-deprecated": true,
|
|
555
|
+
"description": "DEPRECATED: not enforced by the engine. Cancellation reason is optional and passed via --reason CLI flag."
|
|
983
556
|
},
|
|
984
557
|
"daysUntilArchive": {
|
|
985
558
|
"type": "integer",
|
|
986
559
|
"minimum": 0,
|
|
987
560
|
"maximum": 365,
|
|
988
561
|
"default": 3,
|
|
989
|
-
"
|
|
562
|
+
"x-deprecated": true,
|
|
563
|
+
"description": "DEPRECATED: not enforced by the engine. Cancelled task archiving is handled by the archive section."
|
|
990
564
|
},
|
|
991
565
|
"allowCascade": {
|
|
992
566
|
"type": "boolean",
|
|
993
567
|
"default": true,
|
|
994
|
-
"
|
|
568
|
+
"x-deprecated": true,
|
|
569
|
+
"description": "DEPRECATED: not enforced by the engine. Cascade behavior is controlled by the --children CLI flag."
|
|
995
570
|
},
|
|
996
571
|
"defaultChildStrategy": {
|
|
997
572
|
"type": "string",
|
|
@@ -1002,7 +577,8 @@
|
|
|
1002
577
|
"fail"
|
|
1003
578
|
],
|
|
1004
579
|
"default": "block",
|
|
1005
|
-
"
|
|
580
|
+
"x-deprecated": true,
|
|
581
|
+
"description": "DEPRECATED: not enforced by the engine. Default child strategy is always 'block'; override with --children CLI flag."
|
|
1006
582
|
}
|
|
1007
583
|
}
|
|
1008
584
|
},
|
|
@@ -1036,27 +612,12 @@
|
|
|
1036
612
|
"maximum": 100,
|
|
1037
613
|
"default": 8,
|
|
1038
614
|
"description": "Maximum active (non-done) children per parent. Aligns with TodoWrite sync limit for context management."
|
|
1039
|
-
},
|
|
1040
|
-
"autoCompleteParent": {
|
|
1041
|
-
"type": "boolean",
|
|
1042
|
-
"default": false,
|
|
1043
|
-
"description": "Automatically complete parent tasks when all children are done."
|
|
1044
|
-
},
|
|
1045
|
-
"autoCompleteMode": {
|
|
1046
|
-
"type": "string",
|
|
1047
|
-
"enum": [
|
|
1048
|
-
"auto",
|
|
1049
|
-
"suggest",
|
|
1050
|
-
"off"
|
|
1051
|
-
],
|
|
1052
|
-
"default": "off",
|
|
1053
|
-
"description": "Auto-complete behavior: auto=silent completion, suggest=prompt user, off=disabled."
|
|
1054
615
|
}
|
|
1055
616
|
}
|
|
1056
617
|
},
|
|
1057
618
|
"storage": {
|
|
1058
619
|
"type": "object",
|
|
1059
|
-
"description": "Storage engine configuration.
|
|
620
|
+
"description": "Storage engine configuration. SQLite is always used unconditionally — this field is declarative intent only and has no behavioral effect (T109).",
|
|
1060
621
|
"additionalProperties": false,
|
|
1061
622
|
"properties": {
|
|
1062
623
|
"engine": {
|
|
@@ -1067,121 +628,16 @@
|
|
|
1067
628
|
"dual"
|
|
1068
629
|
],
|
|
1069
630
|
"default": "sqlite",
|
|
1070
|
-
"description": "Storage engine:
|
|
631
|
+
"description": "Storage engine declaration. NOTE: SQLite is always used; this field is not read at runtime to select the engine. Declarative only.",
|
|
632
|
+
"x-deprecated": true
|
|
1071
633
|
}
|
|
1072
634
|
}
|
|
1073
635
|
},
|
|
1074
636
|
"analyze": {
|
|
1075
637
|
"type": "object",
|
|
1076
|
-
"description": "Configuration for the analyze command
|
|
638
|
+
"description": "Configuration for the analyze command. Only lockAwareness.{enabled,warnOnly} are consumed (T109).",
|
|
1077
639
|
"additionalProperties": false,
|
|
1078
640
|
"properties": {
|
|
1079
|
-
"phaseBoost": {
|
|
1080
|
-
"type": "object",
|
|
1081
|
-
"description": "Phase alignment boost multipliers for task prioritization. Tasks in the current project phase get higher priority.",
|
|
1082
|
-
"additionalProperties": false,
|
|
1083
|
-
"properties": {
|
|
1084
|
-
"current": {
|
|
1085
|
-
"type": "number",
|
|
1086
|
-
"default": 1.5,
|
|
1087
|
-
"minimum": 1.0,
|
|
1088
|
-
"maximum": 3.0,
|
|
1089
|
-
"description": "Boost multiplier for tasks in current project phase."
|
|
1090
|
-
},
|
|
1091
|
-
"adjacent": {
|
|
1092
|
-
"type": "number",
|
|
1093
|
-
"default": 1.25,
|
|
1094
|
-
"minimum": 1.0,
|
|
1095
|
-
"maximum": 2.0,
|
|
1096
|
-
"description": "Boost multiplier for tasks in adjacent phases (order +/- 1)."
|
|
1097
|
-
},
|
|
1098
|
-
"distant": {
|
|
1099
|
-
"type": "number",
|
|
1100
|
-
"default": 1.0,
|
|
1101
|
-
"minimum": 1.0,
|
|
1102
|
-
"maximum": 1.5,
|
|
1103
|
-
"description": "Boost multiplier for tasks in distant phases (order diff > 1)."
|
|
1104
|
-
}
|
|
1105
|
-
}
|
|
1106
|
-
},
|
|
1107
|
-
"sizeStrategy": {
|
|
1108
|
-
"type": "string",
|
|
1109
|
-
"enum": [
|
|
1110
|
-
"quick-wins",
|
|
1111
|
-
"big-impact",
|
|
1112
|
-
"balanced"
|
|
1113
|
-
],
|
|
1114
|
-
"default": "balanced",
|
|
1115
|
-
"description": "Strategy for weighting tasks by size. quick-wins=favor small tasks, big-impact=favor large tasks, balanced=neutral."
|
|
1116
|
-
},
|
|
1117
|
-
"sizeWeights": {
|
|
1118
|
-
"type": "object",
|
|
1119
|
-
"description": "Custom weight multipliers by task size. Used when sizeStrategy is set to custom behavior or for fine-tuning.",
|
|
1120
|
-
"additionalProperties": false,
|
|
1121
|
-
"properties": {
|
|
1122
|
-
"small": {
|
|
1123
|
-
"type": "number",
|
|
1124
|
-
"default": 1.0,
|
|
1125
|
-
"minimum": 0.1,
|
|
1126
|
-
"maximum": 3.0,
|
|
1127
|
-
"description": "Weight multiplier for small tasks."
|
|
1128
|
-
},
|
|
1129
|
-
"medium": {
|
|
1130
|
-
"type": "number",
|
|
1131
|
-
"default": 1.0,
|
|
1132
|
-
"minimum": 0.1,
|
|
1133
|
-
"maximum": 3.0,
|
|
1134
|
-
"description": "Weight multiplier for medium tasks."
|
|
1135
|
-
},
|
|
1136
|
-
"large": {
|
|
1137
|
-
"type": "number",
|
|
1138
|
-
"default": 1.0,
|
|
1139
|
-
"minimum": 0.1,
|
|
1140
|
-
"maximum": 3.0,
|
|
1141
|
-
"description": "Weight multiplier for large tasks."
|
|
1142
|
-
}
|
|
1143
|
-
}
|
|
1144
|
-
},
|
|
1145
|
-
"staleDetection": {
|
|
1146
|
-
"type": "object",
|
|
1147
|
-
"description": "Stale task detection settings for analyze command.",
|
|
1148
|
-
"additionalProperties": false,
|
|
1149
|
-
"properties": {
|
|
1150
|
-
"enabled": {
|
|
1151
|
-
"type": "boolean",
|
|
1152
|
-
"default": true,
|
|
1153
|
-
"description": "Enable stale task detection in analyze output."
|
|
1154
|
-
},
|
|
1155
|
-
"pendingDays": {
|
|
1156
|
-
"type": "integer",
|
|
1157
|
-
"minimum": 1,
|
|
1158
|
-
"maximum": 365,
|
|
1159
|
-
"default": 30,
|
|
1160
|
-
"description": "Days before pending task is considered stale."
|
|
1161
|
-
},
|
|
1162
|
-
"noUpdateDays": {
|
|
1163
|
-
"type": "integer",
|
|
1164
|
-
"minimum": 1,
|
|
1165
|
-
"maximum": 365,
|
|
1166
|
-
"default": 14,
|
|
1167
|
-
"description": "Days without notes/updates before task is stale."
|
|
1168
|
-
},
|
|
1169
|
-
"blockedDays": {
|
|
1170
|
-
"type": "integer",
|
|
1171
|
-
"minimum": 1,
|
|
1172
|
-
"maximum": 365,
|
|
1173
|
-
"default": 7,
|
|
1174
|
-
"description": "Days blocked without progress before stale warning."
|
|
1175
|
-
},
|
|
1176
|
-
"urgentNeglectedDays": {
|
|
1177
|
-
"type": "integer",
|
|
1178
|
-
"minimum": 1,
|
|
1179
|
-
"maximum": 30,
|
|
1180
|
-
"default": 7,
|
|
1181
|
-
"description": "Days high/critical priority task untouched before warning."
|
|
1182
|
-
}
|
|
1183
|
-
}
|
|
1184
|
-
},
|
|
1185
641
|
"lockAwareness": {
|
|
1186
642
|
"type": "object",
|
|
1187
643
|
"description": "Lock file detection and concurrent operation awareness settings.",
|
|
@@ -1192,13 +648,6 @@
|
|
|
1192
648
|
"default": true,
|
|
1193
649
|
"description": "Enable lock detection in analyze output."
|
|
1194
650
|
},
|
|
1195
|
-
"staleThreshold": {
|
|
1196
|
-
"type": "integer",
|
|
1197
|
-
"minimum": 60,
|
|
1198
|
-
"maximum": 3600,
|
|
1199
|
-
"default": 300,
|
|
1200
|
-
"description": "Seconds before a lock file is considered stale (default: 5 minutes)."
|
|
1201
|
-
},
|
|
1202
651
|
"warnOnly": {
|
|
1203
652
|
"type": "boolean",
|
|
1204
653
|
"default": true,
|
|
@@ -1208,91 +657,6 @@
|
|
|
1208
657
|
}
|
|
1209
658
|
}
|
|
1210
659
|
},
|
|
1211
|
-
"multiSession": {
|
|
1212
|
-
"type": "object",
|
|
1213
|
-
"description": "Multi-session concurrent agent configuration. Enables multiple LLM agents to work on different task groups simultaneously with isolated focus and scope boundaries.",
|
|
1214
|
-
"additionalProperties": false,
|
|
1215
|
-
"properties": {
|
|
1216
|
-
"enabled": {
|
|
1217
|
-
"type": "boolean",
|
|
1218
|
-
"default": true,
|
|
1219
|
-
"description": "Enable multi-session mode. When false, classic single-session behavior. When true, sessions.json is created and used."
|
|
1220
|
-
},
|
|
1221
|
-
"maxConcurrentSessions": {
|
|
1222
|
-
"type": "integer",
|
|
1223
|
-
"minimum": 1,
|
|
1224
|
-
"maximum": 10,
|
|
1225
|
-
"default": 5,
|
|
1226
|
-
"description": "Maximum active sessions allowed simultaneously."
|
|
1227
|
-
},
|
|
1228
|
-
"maxActiveTasksPerScope": {
|
|
1229
|
-
"type": "integer",
|
|
1230
|
-
"minimum": 1,
|
|
1231
|
-
"maximum": 3,
|
|
1232
|
-
"default": 1,
|
|
1233
|
-
"description": "Maximum active tasks within a single session scope. Replaces global validation.maxActiveTasks."
|
|
1234
|
-
},
|
|
1235
|
-
"scopeValidation": {
|
|
1236
|
-
"type": "string",
|
|
1237
|
-
"enum": [
|
|
1238
|
-
"strict",
|
|
1239
|
-
"warn",
|
|
1240
|
-
"none"
|
|
1241
|
-
],
|
|
1242
|
-
"default": "strict",
|
|
1243
|
-
"description": "strict=error on scope overlap, warn=allow with warning, none=no validation."
|
|
1244
|
-
},
|
|
1245
|
-
"allowNestedScopes": {
|
|
1246
|
-
"type": "boolean",
|
|
1247
|
-
"default": true,
|
|
1248
|
-
"description": "Allow session scopes that are subsets of other session scopes (e.g., taskGroup within epic)."
|
|
1249
|
-
},
|
|
1250
|
-
"allowScopeOverlap": {
|
|
1251
|
-
"type": "boolean",
|
|
1252
|
-
"default": false,
|
|
1253
|
-
"description": "Allow sessions with partially overlapping scopes. Risky but sometimes needed for collaborative work."
|
|
1254
|
-
},
|
|
1255
|
-
"requireScopeOnStart": {
|
|
1256
|
-
"type": "boolean",
|
|
1257
|
-
"default": true,
|
|
1258
|
-
"description": "Require explicit scope when starting session. If false, defaults to full-project scope."
|
|
1259
|
-
},
|
|
1260
|
-
"sessionTimeoutHours": {
|
|
1261
|
-
"type": "integer",
|
|
1262
|
-
"minimum": 1,
|
|
1263
|
-
"maximum": 168,
|
|
1264
|
-
"default": 72,
|
|
1265
|
-
"description": "Hours before a session is considered orphaned/stale."
|
|
1266
|
-
},
|
|
1267
|
-
"autoSuspendOnTimeout": {
|
|
1268
|
-
"type": "boolean",
|
|
1269
|
-
"default": true,
|
|
1270
|
-
"description": "Automatically suspend sessions that exceed timeout instead of ending them."
|
|
1271
|
-
},
|
|
1272
|
-
"historyRetentionDays": {
|
|
1273
|
-
"type": "integer",
|
|
1274
|
-
"minimum": 1,
|
|
1275
|
-
"maximum": 365,
|
|
1276
|
-
"default": 30,
|
|
1277
|
-
"description": "Days to retain ended sessions in sessionHistory before cleanup."
|
|
1278
|
-
},
|
|
1279
|
-
"autoResumeLastSession": {
|
|
1280
|
-
"type": "boolean",
|
|
1281
|
-
"default": false,
|
|
1282
|
-
"description": "When starting without explicit session, auto-resume most recent suspended session for the scope."
|
|
1283
|
-
},
|
|
1284
|
-
"trackSessionStats": {
|
|
1285
|
-
"type": "boolean",
|
|
1286
|
-
"default": true,
|
|
1287
|
-
"description": "Track session statistics (tasks completed, focus changes, active time)."
|
|
1288
|
-
},
|
|
1289
|
-
"backupOnSessionEvents": {
|
|
1290
|
-
"type": "boolean",
|
|
1291
|
-
"default": true,
|
|
1292
|
-
"description": "Create safety backup on session start/end/suspend events."
|
|
1293
|
-
}
|
|
1294
|
-
}
|
|
1295
|
-
},
|
|
1296
660
|
"contextAlerts": {
|
|
1297
661
|
"type": "object",
|
|
1298
662
|
"description": "Context window alert configuration. Controls when and how users are alerted about context window usage approaching thresholds.",
|
|
@@ -1303,17 +667,6 @@
|
|
|
1303
667
|
"default": true,
|
|
1304
668
|
"description": "Enable context window threshold alerts. When false, no alerts are shown."
|
|
1305
669
|
},
|
|
1306
|
-
"minThreshold": {
|
|
1307
|
-
"type": "string",
|
|
1308
|
-
"enum": [
|
|
1309
|
-
"warning",
|
|
1310
|
-
"caution",
|
|
1311
|
-
"critical",
|
|
1312
|
-
"emergency"
|
|
1313
|
-
],
|
|
1314
|
-
"default": "warning",
|
|
1315
|
-
"description": "Minimum threshold level to trigger alerts. warning=70%, caution=85%, critical=90%, emergency=95%."
|
|
1316
|
-
},
|
|
1317
670
|
"triggerCommands": {
|
|
1318
671
|
"type": "array",
|
|
1319
672
|
"items": {
|
|
@@ -1338,7 +691,7 @@
|
|
|
1338
691
|
},
|
|
1339
692
|
"agentOutputs": {
|
|
1340
693
|
"type": "object",
|
|
1341
|
-
"description": "Cross-agent output configuration.
|
|
694
|
+
"description": "Cross-agent output configuration. Only directory and manifestFile are consumed (T109).",
|
|
1342
695
|
"additionalProperties": false,
|
|
1343
696
|
"properties": {
|
|
1344
697
|
"directory": {
|
|
@@ -1351,55 +704,12 @@
|
|
|
1351
704
|
"type": "string",
|
|
1352
705
|
"default": "MANIFEST.jsonl",
|
|
1353
706
|
"description": "Manifest filename (JSONL format) within directory."
|
|
1354
|
-
},
|
|
1355
|
-
"archiveDir": {
|
|
1356
|
-
"type": "string",
|
|
1357
|
-
"default": "archive",
|
|
1358
|
-
"description": "Subdirectory within directory for archived outputs."
|
|
1359
|
-
},
|
|
1360
|
-
"archiveDays": {
|
|
1361
|
-
"type": "integer",
|
|
1362
|
-
"default": 30,
|
|
1363
|
-
"minimum": 1,
|
|
1364
|
-
"description": "Days until non-actionable outputs are archived."
|
|
1365
|
-
},
|
|
1366
|
-
"manifest": {
|
|
1367
|
-
"type": "object",
|
|
1368
|
-
"description": "Manifest rotation and archival configuration.",
|
|
1369
|
-
"additionalProperties": false,
|
|
1370
|
-
"properties": {
|
|
1371
|
-
"maxEntries": {
|
|
1372
|
-
"type": "integer",
|
|
1373
|
-
"default": 100,
|
|
1374
|
-
"minimum": 10,
|
|
1375
|
-
"maximum": 1000,
|
|
1376
|
-
"description": "Maximum number of entries to keep in active manifest before rotation."
|
|
1377
|
-
},
|
|
1378
|
-
"thresholdBytes": {
|
|
1379
|
-
"type": "integer",
|
|
1380
|
-
"default": 200000,
|
|
1381
|
-
"minimum": 10000,
|
|
1382
|
-
"description": "Size threshold in bytes (~50K tokens at 200KB) before suggesting archival."
|
|
1383
|
-
},
|
|
1384
|
-
"archivePercent": {
|
|
1385
|
-
"type": "integer",
|
|
1386
|
-
"default": 50,
|
|
1387
|
-
"minimum": 10,
|
|
1388
|
-
"maximum": 90,
|
|
1389
|
-
"description": "Percentage of oldest entries to archive when threshold is exceeded."
|
|
1390
|
-
},
|
|
1391
|
-
"autoRotate": {
|
|
1392
|
-
"type": "boolean",
|
|
1393
|
-
"default": false,
|
|
1394
|
-
"description": "Automatically rotate manifest when threshold is exceeded during operations."
|
|
1395
|
-
}
|
|
1396
|
-
}
|
|
1397
707
|
}
|
|
1398
708
|
}
|
|
1399
709
|
},
|
|
1400
710
|
"research": {
|
|
1401
711
|
"type": "object",
|
|
1402
|
-
"description": "DEPRECATED: Use agentOutputs instead.
|
|
712
|
+
"description": "DEPRECATED: Use agentOutputs instead. Only outputDir and manifestFile are consumed (T109).",
|
|
1403
713
|
"x-deprecated": true,
|
|
1404
714
|
"x-deprecated-by": "agentOutputs",
|
|
1405
715
|
"additionalProperties": false,
|
|
@@ -1417,228 +727,6 @@
|
|
|
1417
727
|
"description": "DEPRECATED: Use agentOutputs.manifestFile instead.",
|
|
1418
728
|
"x-deprecated": true,
|
|
1419
729
|
"x-deprecated-by": "agentOutputs.manifestFile"
|
|
1420
|
-
},
|
|
1421
|
-
"archiveDir": {
|
|
1422
|
-
"type": "string",
|
|
1423
|
-
"default": "archive",
|
|
1424
|
-
"description": "DEPRECATED: Use agentOutputs.archiveDir instead.",
|
|
1425
|
-
"x-deprecated": true,
|
|
1426
|
-
"x-deprecated-by": "agentOutputs.archiveDir"
|
|
1427
|
-
},
|
|
1428
|
-
"archiveDays": {
|
|
1429
|
-
"type": "integer",
|
|
1430
|
-
"default": 30,
|
|
1431
|
-
"minimum": 1,
|
|
1432
|
-
"description": "DEPRECATED: Use agentOutputs.archiveDays instead.",
|
|
1433
|
-
"x-deprecated": true,
|
|
1434
|
-
"x-deprecated-by": "agentOutputs.archiveDays"
|
|
1435
|
-
},
|
|
1436
|
-
"manifest": {
|
|
1437
|
-
"type": "object",
|
|
1438
|
-
"description": "DEPRECATED: Use agentOutputs.manifest instead.",
|
|
1439
|
-
"x-deprecated": true,
|
|
1440
|
-
"x-deprecated-by": "agentOutputs.manifest",
|
|
1441
|
-
"additionalProperties": false,
|
|
1442
|
-
"properties": {
|
|
1443
|
-
"maxEntries": {
|
|
1444
|
-
"type": "integer",
|
|
1445
|
-
"default": 100,
|
|
1446
|
-
"minimum": 10,
|
|
1447
|
-
"maximum": 1000,
|
|
1448
|
-
"description": "Maximum number of entries to keep in active manifest before rotation."
|
|
1449
|
-
},
|
|
1450
|
-
"thresholdBytes": {
|
|
1451
|
-
"type": "integer",
|
|
1452
|
-
"default": 200000,
|
|
1453
|
-
"minimum": 10000,
|
|
1454
|
-
"description": "Size threshold in bytes (~50K tokens at 200KB) before suggesting archival."
|
|
1455
|
-
},
|
|
1456
|
-
"archivePercent": {
|
|
1457
|
-
"type": "integer",
|
|
1458
|
-
"default": 50,
|
|
1459
|
-
"minimum": 10,
|
|
1460
|
-
"maximum": 90,
|
|
1461
|
-
"description": "Percentage of oldest entries to archive when threshold is exceeded."
|
|
1462
|
-
},
|
|
1463
|
-
"autoRotate": {
|
|
1464
|
-
"type": "boolean",
|
|
1465
|
-
"default": false,
|
|
1466
|
-
"description": "Automatically rotate manifest when threshold is exceeded during operations."
|
|
1467
|
-
}
|
|
1468
|
-
}
|
|
1469
|
-
}
|
|
1470
|
-
}
|
|
1471
|
-
},
|
|
1472
|
-
"project": {
|
|
1473
|
-
"type": "object",
|
|
1474
|
-
"description": "Project-level metadata and status tracking for doctor command and health monitoring.",
|
|
1475
|
-
"additionalProperties": false,
|
|
1476
|
-
"properties": {
|
|
1477
|
-
"status": {
|
|
1478
|
-
"type": "object",
|
|
1479
|
-
"description": "Current project health status and diagnostic information.",
|
|
1480
|
-
"additionalProperties": false,
|
|
1481
|
-
"properties": {
|
|
1482
|
-
"health": {
|
|
1483
|
-
"type": "string",
|
|
1484
|
-
"enum": [
|
|
1485
|
-
"healthy",
|
|
1486
|
-
"warning",
|
|
1487
|
-
"error",
|
|
1488
|
-
"unknown"
|
|
1489
|
-
],
|
|
1490
|
-
"default": "unknown",
|
|
1491
|
-
"description": "Overall project health: healthy=no issues, warning=minor issues, error=critical issues, unknown=not yet checked."
|
|
1492
|
-
},
|
|
1493
|
-
"lastCheck": {
|
|
1494
|
-
"type": [
|
|
1495
|
-
"string",
|
|
1496
|
-
"null"
|
|
1497
|
-
],
|
|
1498
|
-
"format": "date-time",
|
|
1499
|
-
"default": null,
|
|
1500
|
-
"description": "ISO 8601 timestamp of last health check (doctor command). Null if never checked."
|
|
1501
|
-
},
|
|
1502
|
-
"schemaVersions": {
|
|
1503
|
-
"type": "object",
|
|
1504
|
-
"description": "Schema versions for core CLEO data files in this project.",
|
|
1505
|
-
"additionalProperties": false,
|
|
1506
|
-
"properties": {
|
|
1507
|
-
"todo": {
|
|
1508
|
-
"type": "string",
|
|
1509
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
1510
|
-
"description": "Schema version for todo.json (semver)."
|
|
1511
|
-
},
|
|
1512
|
-
"config": {
|
|
1513
|
-
"type": "string",
|
|
1514
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
1515
|
-
"description": "Schema version for config.json (semver)."
|
|
1516
|
-
},
|
|
1517
|
-
"archive": {
|
|
1518
|
-
"type": "string",
|
|
1519
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
1520
|
-
"description": "Schema version for todo-archive.json (semver)."
|
|
1521
|
-
},
|
|
1522
|
-
"log": {
|
|
1523
|
-
"type": "string",
|
|
1524
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
1525
|
-
"description": "Schema version for todo-log.jsonl (semver)."
|
|
1526
|
-
}
|
|
1527
|
-
}
|
|
1528
|
-
},
|
|
1529
|
-
"validation": {
|
|
1530
|
-
"type": "object",
|
|
1531
|
-
"description": "Validation status and results.",
|
|
1532
|
-
"additionalProperties": false,
|
|
1533
|
-
"properties": {
|
|
1534
|
-
"lastValidated": {
|
|
1535
|
-
"type": [
|
|
1536
|
-
"string",
|
|
1537
|
-
"null"
|
|
1538
|
-
],
|
|
1539
|
-
"format": "date-time",
|
|
1540
|
-
"default": null,
|
|
1541
|
-
"description": "ISO 8601 timestamp of last validation run."
|
|
1542
|
-
},
|
|
1543
|
-
"passed": {
|
|
1544
|
-
"type": "boolean",
|
|
1545
|
-
"default": false,
|
|
1546
|
-
"description": "Whether last validation passed."
|
|
1547
|
-
},
|
|
1548
|
-
"errors": {
|
|
1549
|
-
"type": "array",
|
|
1550
|
-
"items": {
|
|
1551
|
-
"type": "object",
|
|
1552
|
-
"required": [
|
|
1553
|
-
"code",
|
|
1554
|
-
"message"
|
|
1555
|
-
],
|
|
1556
|
-
"additionalProperties": false,
|
|
1557
|
-
"properties": {
|
|
1558
|
-
"code": {
|
|
1559
|
-
"type": "string",
|
|
1560
|
-
"description": "Machine-readable error code."
|
|
1561
|
-
},
|
|
1562
|
-
"message": {
|
|
1563
|
-
"type": "string",
|
|
1564
|
-
"description": "Human-readable error description."
|
|
1565
|
-
},
|
|
1566
|
-
"file": {
|
|
1567
|
-
"type": "string",
|
|
1568
|
-
"description": "File path related to the error."
|
|
1569
|
-
}
|
|
1570
|
-
}
|
|
1571
|
-
},
|
|
1572
|
-
"default": [],
|
|
1573
|
-
"description": "Validation errors from last check."
|
|
1574
|
-
},
|
|
1575
|
-
"warnings": {
|
|
1576
|
-
"type": "array",
|
|
1577
|
-
"items": {
|
|
1578
|
-
"type": "object",
|
|
1579
|
-
"required": [
|
|
1580
|
-
"code",
|
|
1581
|
-
"message"
|
|
1582
|
-
],
|
|
1583
|
-
"additionalProperties": false,
|
|
1584
|
-
"properties": {
|
|
1585
|
-
"code": {
|
|
1586
|
-
"type": "string",
|
|
1587
|
-
"description": "Machine-readable warning code."
|
|
1588
|
-
},
|
|
1589
|
-
"message": {
|
|
1590
|
-
"type": "string",
|
|
1591
|
-
"description": "Human-readable warning description."
|
|
1592
|
-
},
|
|
1593
|
-
"file": {
|
|
1594
|
-
"type": "string",
|
|
1595
|
-
"description": "File path related to the warning."
|
|
1596
|
-
}
|
|
1597
|
-
}
|
|
1598
|
-
},
|
|
1599
|
-
"default": [],
|
|
1600
|
-
"description": "Validation warnings from last check."
|
|
1601
|
-
}
|
|
1602
|
-
}
|
|
1603
|
-
},
|
|
1604
|
-
"injection": {
|
|
1605
|
-
"type": "object",
|
|
1606
|
-
"description": "Agent documentation injection status.",
|
|
1607
|
-
"additionalProperties": false,
|
|
1608
|
-
"properties": {
|
|
1609
|
-
"CLAUDE.md": {
|
|
1610
|
-
"type": "string",
|
|
1611
|
-
"enum": [
|
|
1612
|
-
"injected",
|
|
1613
|
-
"missing",
|
|
1614
|
-
"outdated",
|
|
1615
|
-
"not_found"
|
|
1616
|
-
],
|
|
1617
|
-
"description": "Injection status for CLAUDE.md."
|
|
1618
|
-
},
|
|
1619
|
-
"AGENTS.md": {
|
|
1620
|
-
"type": "string",
|
|
1621
|
-
"enum": [
|
|
1622
|
-
"injected",
|
|
1623
|
-
"missing",
|
|
1624
|
-
"outdated",
|
|
1625
|
-
"not_found"
|
|
1626
|
-
],
|
|
1627
|
-
"description": "Injection status for AGENTS.md."
|
|
1628
|
-
},
|
|
1629
|
-
"GEMINI.md": {
|
|
1630
|
-
"type": "string",
|
|
1631
|
-
"enum": [
|
|
1632
|
-
"injected",
|
|
1633
|
-
"missing",
|
|
1634
|
-
"outdated",
|
|
1635
|
-
"not_found"
|
|
1636
|
-
],
|
|
1637
|
-
"description": "Injection status for GEMINI.md."
|
|
1638
|
-
}
|
|
1639
|
-
}
|
|
1640
|
-
}
|
|
1641
|
-
}
|
|
1642
730
|
}
|
|
1643
731
|
}
|
|
1644
732
|
},
|
|
@@ -1822,54 +910,9 @@
|
|
|
1822
910
|
},
|
|
1823
911
|
"retention": {
|
|
1824
912
|
"type": "object",
|
|
1825
|
-
"description": "Retention policies for session
|
|
913
|
+
"description": "Retention policies for session lifecycle management. Only autoEndActiveAfterDays is consumed (T109).",
|
|
1826
914
|
"additionalProperties": false,
|
|
1827
915
|
"properties": {
|
|
1828
|
-
"maxArchivedSessions": {
|
|
1829
|
-
"type": "integer",
|
|
1830
|
-
"minimum": 10,
|
|
1831
|
-
"maximum": 1000,
|
|
1832
|
-
"default": 100,
|
|
1833
|
-
"description": "Maximum number of archived sessions to retain. Oldest archived sessions are permanently deleted when limit is exceeded."
|
|
1834
|
-
},
|
|
1835
|
-
"autoArchiveEndedAfterDays": {
|
|
1836
|
-
"type": "integer",
|
|
1837
|
-
"minimum": 1,
|
|
1838
|
-
"maximum": 365,
|
|
1839
|
-
"default": 30,
|
|
1840
|
-
"description": "Days after which ended sessions are automatically archived. Set to high value to disable auto-archiving."
|
|
1841
|
-
},
|
|
1842
|
-
"autoDeleteArchivedAfterDays": {
|
|
1843
|
-
"type": "integer",
|
|
1844
|
-
"minimum": 0,
|
|
1845
|
-
"maximum": 730,
|
|
1846
|
-
"default": 90,
|
|
1847
|
-
"description": "Days after archival before sessions are permanently deleted. 0 disables automatic deletion."
|
|
1848
|
-
},
|
|
1849
|
-
"contextStateRetentionDays": {
|
|
1850
|
-
"type": "integer",
|
|
1851
|
-
"minimum": 1,
|
|
1852
|
-
"maximum": 90,
|
|
1853
|
-
"default": 7,
|
|
1854
|
-
"description": "Days to retain orphaned context state files. Files for non-existent or archived sessions are cleaned up."
|
|
1855
|
-
},
|
|
1856
|
-
"cleanupOnSessionEnd": {
|
|
1857
|
-
"type": "boolean",
|
|
1858
|
-
"default": true,
|
|
1859
|
-
"description": "Run retention cleanup automatically when sessions end. Set false for manual cleanup only."
|
|
1860
|
-
},
|
|
1861
|
-
"dryRunByDefault": {
|
|
1862
|
-
"type": "boolean",
|
|
1863
|
-
"default": true,
|
|
1864
|
-
"description": "Default to dry-run mode for cleanup operations. Prevents accidental data loss."
|
|
1865
|
-
},
|
|
1866
|
-
"maxSessionsInMemory": {
|
|
1867
|
-
"type": "integer",
|
|
1868
|
-
"minimum": 10,
|
|
1869
|
-
"maximum": 1000,
|
|
1870
|
-
"default": 100,
|
|
1871
|
-
"description": "Maximum sessions to keep in sessions.json before triggering garbage collection. When exceeded, session gc will auto-archive oldest ended sessions."
|
|
1872
|
-
},
|
|
1873
916
|
"autoEndActiveAfterDays": {
|
|
1874
917
|
"type": "integer",
|
|
1875
918
|
"minimum": 1,
|
|
@@ -1879,48 +922,9 @@
|
|
|
1879
922
|
}
|
|
1880
923
|
}
|
|
1881
924
|
},
|
|
1882
|
-
"contextStates": {
|
|
1883
|
-
"type": "object",
|
|
1884
|
-
"description": "Context state file management configuration. Context state files track per-session context window usage.",
|
|
1885
|
-
"additionalProperties": false,
|
|
1886
|
-
"properties": {
|
|
1887
|
-
"directory": {
|
|
1888
|
-
"type": "string",
|
|
1889
|
-
"default": ".cleo/context-states",
|
|
1890
|
-
"description": "Directory for per-session context state files. Relative to project root."
|
|
1891
|
-
},
|
|
1892
|
-
"filenamePattern": {
|
|
1893
|
-
"type": "string",
|
|
1894
|
-
"default": "context-state-{sessionId}.json",
|
|
1895
|
-
"description": "Filename pattern for context state files. {sessionId} is replaced with session ID."
|
|
1896
|
-
},
|
|
1897
|
-
"cleanupOnSessionEnd": {
|
|
1898
|
-
"type": "boolean",
|
|
1899
|
-
"default": true,
|
|
1900
|
-
"description": "Remove context state file when session ends. Set false to retain for debugging."
|
|
1901
|
-
},
|
|
1902
|
-
"cleanupOnSessionClose": {
|
|
1903
|
-
"type": "boolean",
|
|
1904
|
-
"default": true,
|
|
1905
|
-
"description": "Remove context state file when session is permanently closed."
|
|
1906
|
-
},
|
|
1907
|
-
"cleanupOnSessionArchive": {
|
|
1908
|
-
"type": "boolean",
|
|
1909
|
-
"default": true,
|
|
1910
|
-
"description": "Remove context state file when session is archived."
|
|
1911
|
-
},
|
|
1912
|
-
"maxOrphanedFiles": {
|
|
1913
|
-
"type": "integer",
|
|
1914
|
-
"minimum": 0,
|
|
1915
|
-
"maximum": 100,
|
|
1916
|
-
"default": 10,
|
|
1917
|
-
"description": "Maximum orphaned context state files to retain. Oldest are deleted first. 0 = delete immediately."
|
|
1918
|
-
}
|
|
1919
|
-
}
|
|
1920
|
-
},
|
|
1921
925
|
"orchestrator": {
|
|
1922
926
|
"type": "object",
|
|
1923
|
-
"description": "Orchestrator agent configuration.
|
|
927
|
+
"description": "Orchestrator agent configuration. Only contextThresholds.{warning,critical} are consumed (T109).",
|
|
1924
928
|
"additionalProperties": false,
|
|
1925
929
|
"properties": {
|
|
1926
930
|
"contextThresholds": {
|
|
@@ -1943,86 +947,6 @@
|
|
|
1943
947
|
"description": "Critical threshold (%). At this level, orchestrator must STOP immediately, pause session, and generate HITL summary for human handoff."
|
|
1944
948
|
}
|
|
1945
949
|
}
|
|
1946
|
-
},
|
|
1947
|
-
"autoStopOnCritical": {
|
|
1948
|
-
"type": "boolean",
|
|
1949
|
-
"default": true,
|
|
1950
|
-
"description": "Automatically trigger session pause when context usage reaches critical threshold. When false, orchestrator continues but emits warnings."
|
|
1951
|
-
},
|
|
1952
|
-
"hitlSummaryOnPause": {
|
|
1953
|
-
"type": "boolean",
|
|
1954
|
-
"default": true,
|
|
1955
|
-
"description": "Generate a human-in-the-loop summary document when session is paused due to context limits. Summary includes progress, remaining work, and handoff notes."
|
|
1956
|
-
},
|
|
1957
|
-
"validation": {
|
|
1958
|
-
"type": "object",
|
|
1959
|
-
"description": "Project-agnostic validation configuration for orchestrator spawn gates. See AUTONOMOUS-ORCHESTRATION-SPEC.md Part 6.",
|
|
1960
|
-
"additionalProperties": false,
|
|
1961
|
-
"properties": {
|
|
1962
|
-
"customGates": {
|
|
1963
|
-
"type": "array",
|
|
1964
|
-
"description": "DEPRECATED: Use release.gates instead. Custom validation gates executed before spawning next subagent. Empty array uses only core gates (manifest, file, task status).",
|
|
1965
|
-
"x-deprecated": true,
|
|
1966
|
-
"x-deprecated-by": "release.gates",
|
|
1967
|
-
"items": {
|
|
1968
|
-
"type": "object",
|
|
1969
|
-
"additionalProperties": false,
|
|
1970
|
-
"required": [
|
|
1971
|
-
"name",
|
|
1972
|
-
"command"
|
|
1973
|
-
],
|
|
1974
|
-
"properties": {
|
|
1975
|
-
"name": {
|
|
1976
|
-
"type": "string",
|
|
1977
|
-
"pattern": "^[a-z][a-z0-9_-]*$",
|
|
1978
|
-
"description": "Unique gate identifier (snake_case or kebab-case)."
|
|
1979
|
-
},
|
|
1980
|
-
"command": {
|
|
1981
|
-
"type": "string",
|
|
1982
|
-
"minLength": 1,
|
|
1983
|
-
"description": "Shell command to execute. Exit 0 = pass, non-zero = fail."
|
|
1984
|
-
},
|
|
1985
|
-
"required": {
|
|
1986
|
-
"type": "boolean",
|
|
1987
|
-
"default": false,
|
|
1988
|
-
"description": "If true, gate failure blocks spawn. If false, failure is logged as warning."
|
|
1989
|
-
},
|
|
1990
|
-
"description": {
|
|
1991
|
-
"type": "string",
|
|
1992
|
-
"description": "Human-readable description of what this gate validates."
|
|
1993
|
-
}
|
|
1994
|
-
}
|
|
1995
|
-
},
|
|
1996
|
-
"default": []
|
|
1997
|
-
},
|
|
1998
|
-
"requireManifestEntry": {
|
|
1999
|
-
"type": "boolean",
|
|
2000
|
-
"default": true,
|
|
2001
|
-
"description": "Require manifest entry from previous agent before spawning next (AUTO-004)."
|
|
2002
|
-
},
|
|
2003
|
-
"requireWaveOrder": {
|
|
2004
|
-
"type": "boolean",
|
|
2005
|
-
"default": true,
|
|
2006
|
-
"description": "Require spawning in dependency wave order (AUTO-005)."
|
|
2007
|
-
}
|
|
2008
|
-
}
|
|
2009
|
-
},
|
|
2010
|
-
"handoff": {
|
|
2011
|
-
"type": "object",
|
|
2012
|
-
"description": "Handoff protocol configuration. See AUTONOMOUS-ORCHESTRATION-SPEC.md Part 3.",
|
|
2013
|
-
"additionalProperties": false,
|
|
2014
|
-
"properties": {
|
|
2015
|
-
"preferWaveBoundaries": {
|
|
2016
|
-
"type": "boolean",
|
|
2017
|
-
"default": true,
|
|
2018
|
-
"description": "Prefer stopping at clean wave boundaries when generating handoff (HNDOFF-006)."
|
|
2019
|
-
},
|
|
2020
|
-
"includeKeyFindings": {
|
|
2021
|
-
"type": "boolean",
|
|
2022
|
-
"default": true,
|
|
2023
|
-
"description": "Include key_findings summary in handoff document."
|
|
2024
|
-
}
|
|
2025
|
-
}
|
|
2026
950
|
}
|
|
2027
951
|
}
|
|
2028
952
|
},
|
|
@@ -2128,49 +1052,6 @@
|
|
|
2128
1052
|
}
|
|
2129
1053
|
}
|
|
2130
1054
|
},
|
|
2131
|
-
"files": {
|
|
2132
|
-
"type": "object",
|
|
2133
|
-
"description": "File path extraction settings.",
|
|
2134
|
-
"additionalProperties": false,
|
|
2135
|
-
"properties": {
|
|
2136
|
-
"autoExtract": {
|
|
2137
|
-
"type": "boolean",
|
|
2138
|
-
"default": true,
|
|
2139
|
-
"description": "Automatically extract file paths from task notes and add to files array."
|
|
2140
|
-
},
|
|
2141
|
-
"patterns": {
|
|
2142
|
-
"type": "array",
|
|
2143
|
-
"items": {
|
|
2144
|
-
"type": "string"
|
|
2145
|
-
},
|
|
2146
|
-
"default": [
|
|
2147
|
-
"*.ts",
|
|
2148
|
-
"*.js",
|
|
2149
|
-
"*.sh",
|
|
2150
|
-
"*.json",
|
|
2151
|
-
"*.md"
|
|
2152
|
-
],
|
|
2153
|
-
"description": "File patterns to recognize during extraction. Uses glob-style patterns."
|
|
2154
|
-
}
|
|
2155
|
-
}
|
|
2156
|
-
},
|
|
2157
|
-
"relates": {
|
|
2158
|
-
"type": "object",
|
|
2159
|
-
"description": "Task cross-reference extraction settings.",
|
|
2160
|
-
"additionalProperties": false,
|
|
2161
|
-
"properties": {
|
|
2162
|
-
"autoExtract": {
|
|
2163
|
-
"type": "boolean",
|
|
2164
|
-
"default": true,
|
|
2165
|
-
"description": "Automatically extract task cross-references (T####) from notes and add to relates array."
|
|
2166
|
-
},
|
|
2167
|
-
"bidirectional": {
|
|
2168
|
-
"type": "boolean",
|
|
2169
|
-
"default": false,
|
|
2170
|
-
"description": "When adding a reference, also add reverse reference to the target task."
|
|
2171
|
-
}
|
|
2172
|
-
}
|
|
2173
|
-
},
|
|
2174
1055
|
"verification": {
|
|
2175
1056
|
"type": "object",
|
|
2176
1057
|
"description": "Verification gate auto-set settings.",
|
|
@@ -2185,84 +1066,6 @@
|
|
|
2185
1066
|
}
|
|
2186
1067
|
}
|
|
2187
1068
|
},
|
|
2188
|
-
"graphRag": {
|
|
2189
|
-
"type": "object",
|
|
2190
|
-
"description": "Graph-RAG semantic relationship discovery configuration.",
|
|
2191
|
-
"additionalProperties": false,
|
|
2192
|
-
"properties": {
|
|
2193
|
-
"hierarchyBoost": {
|
|
2194
|
-
"type": "object",
|
|
2195
|
-
"description": "Hierarchy-based similarity boost for related task discovery.",
|
|
2196
|
-
"additionalProperties": false,
|
|
2197
|
-
"properties": {
|
|
2198
|
-
"enabled": {
|
|
2199
|
-
"type": "boolean",
|
|
2200
|
-
"default": true,
|
|
2201
|
-
"description": "Enable hierarchy boosting in 'auto' discovery method."
|
|
2202
|
-
},
|
|
2203
|
-
"sibling": {
|
|
2204
|
-
"type": "number",
|
|
2205
|
-
"default": 0.15,
|
|
2206
|
-
"minimum": 0,
|
|
2207
|
-
"maximum": 0.5,
|
|
2208
|
-
"description": "Boost for tasks sharing the same parent."
|
|
2209
|
-
},
|
|
2210
|
-
"cousin": {
|
|
2211
|
-
"type": "number",
|
|
2212
|
-
"default": 0.08,
|
|
2213
|
-
"minimum": 0,
|
|
2214
|
-
"maximum": 0.3,
|
|
2215
|
-
"description": "Boost for tasks sharing the same grandparent."
|
|
2216
|
-
},
|
|
2217
|
-
"ancestor": {
|
|
2218
|
-
"type": "number",
|
|
2219
|
-
"default": 0.04,
|
|
2220
|
-
"minimum": 0,
|
|
2221
|
-
"maximum": 0.2,
|
|
2222
|
-
"description": "Boost for tasks sharing any common ancestor."
|
|
2223
|
-
},
|
|
2224
|
-
"requireContentMatch": {
|
|
2225
|
-
"type": "boolean",
|
|
2226
|
-
"default": true,
|
|
2227
|
-
"description": "Only apply boost if base similarity > 0."
|
|
2228
|
-
}
|
|
2229
|
-
}
|
|
2230
|
-
},
|
|
2231
|
-
"contextPropagation": {
|
|
2232
|
-
"type": "object",
|
|
2233
|
-
"description": "Parent context propagation for description similarity.",
|
|
2234
|
-
"additionalProperties": false,
|
|
2235
|
-
"properties": {
|
|
2236
|
-
"enabled": {
|
|
2237
|
-
"type": "boolean",
|
|
2238
|
-
"default": true,
|
|
2239
|
-
"description": "Include parent context in description comparison."
|
|
2240
|
-
},
|
|
2241
|
-
"maxDepth": {
|
|
2242
|
-
"type": "integer",
|
|
2243
|
-
"default": 2,
|
|
2244
|
-
"minimum": 0,
|
|
2245
|
-
"maximum": 3,
|
|
2246
|
-
"description": "Maximum ancestor depth to include (0=self only)."
|
|
2247
|
-
},
|
|
2248
|
-
"decayFactor": {
|
|
2249
|
-
"type": "number",
|
|
2250
|
-
"default": 0.5,
|
|
2251
|
-
"minimum": 0.1,
|
|
2252
|
-
"maximum": 1.0,
|
|
2253
|
-
"description": "Exponential decay per level (0.5 = halve each level)."
|
|
2254
|
-
}
|
|
2255
|
-
}
|
|
2256
|
-
},
|
|
2257
|
-
"minScore": {
|
|
2258
|
-
"type": "number",
|
|
2259
|
-
"default": 0.1,
|
|
2260
|
-
"minimum": 0,
|
|
2261
|
-
"maximum": 1.0,
|
|
2262
|
-
"description": "Minimum score threshold for including in results."
|
|
2263
|
-
}
|
|
2264
|
-
}
|
|
2265
|
-
},
|
|
2266
1069
|
"gitCheckpoint": {
|
|
2267
1070
|
"type": "object",
|
|
2268
1071
|
"description": "Automatic git checkpointing of .cleo/ state files at semantic boundaries. Opt-in feature that commits state files (todo.json, sessions.json, etc.) to git history with debounce to prevent commit noise.",
|
|
@@ -2317,191 +1120,6 @@
|
|
|
2317
1120
|
"mode": "strict"
|
|
2318
1121
|
}
|
|
2319
1122
|
},
|
|
2320
|
-
"testing": {
|
|
2321
|
-
"type": "object",
|
|
2322
|
-
"description": "Comprehensive testing configuration beyond validation gates.",
|
|
2323
|
-
"additionalProperties": false,
|
|
2324
|
-
"properties": {
|
|
2325
|
-
"framework": {
|
|
2326
|
-
"type": "object",
|
|
2327
|
-
"description": "Test framework configuration.",
|
|
2328
|
-
"additionalProperties": false,
|
|
2329
|
-
"properties": {
|
|
2330
|
-
"name": {
|
|
2331
|
-
"type": "string",
|
|
2332
|
-
"enum": [
|
|
2333
|
-
"bats",
|
|
2334
|
-
"jest",
|
|
2335
|
-
"vitest",
|
|
2336
|
-
"playwright",
|
|
2337
|
-
"cypress",
|
|
2338
|
-
"mocha",
|
|
2339
|
-
"ava",
|
|
2340
|
-
"uvu",
|
|
2341
|
-
"tap",
|
|
2342
|
-
"node:test",
|
|
2343
|
-
"deno",
|
|
2344
|
-
"bun",
|
|
2345
|
-
"pytest",
|
|
2346
|
-
"go",
|
|
2347
|
-
"cargo",
|
|
2348
|
-
"custom"
|
|
2349
|
-
],
|
|
2350
|
-
"default": "bats",
|
|
2351
|
-
"description": "Framework identifier (same enum as validation.testing.framework)"
|
|
2352
|
-
},
|
|
2353
|
-
"fileExtension": {
|
|
2354
|
-
"type": "string",
|
|
2355
|
-
"default": ".bats",
|
|
2356
|
-
"description": "Test file extension (e.g., .bats, .test.ts)"
|
|
2357
|
-
},
|
|
2358
|
-
"installCommand": {
|
|
2359
|
-
"type": [
|
|
2360
|
-
"string",
|
|
2361
|
-
"null"
|
|
2362
|
-
],
|
|
2363
|
-
"default": null,
|
|
2364
|
-
"description": "Command to install framework"
|
|
2365
|
-
},
|
|
2366
|
-
"runCommand": {
|
|
2367
|
-
"type": "string",
|
|
2368
|
-
"default": "./tests/run-all-tests.sh",
|
|
2369
|
-
"description": "Command to execute tests"
|
|
2370
|
-
},
|
|
2371
|
-
"watchCommand": {
|
|
2372
|
-
"type": [
|
|
2373
|
-
"string",
|
|
2374
|
-
"null"
|
|
2375
|
-
],
|
|
2376
|
-
"default": null,
|
|
2377
|
-
"description": "Command for watch mode (null if unsupported)"
|
|
2378
|
-
},
|
|
2379
|
-
"coverageCommand": {
|
|
2380
|
-
"type": [
|
|
2381
|
-
"string",
|
|
2382
|
-
"null"
|
|
2383
|
-
],
|
|
2384
|
-
"default": null,
|
|
2385
|
-
"description": "Command for coverage reports (null if unsupported)"
|
|
2386
|
-
},
|
|
2387
|
-
"configFile": {
|
|
2388
|
-
"type": [
|
|
2389
|
-
"string",
|
|
2390
|
-
"null"
|
|
2391
|
-
],
|
|
2392
|
-
"default": null,
|
|
2393
|
-
"description": "Framework config file path (null if none)"
|
|
2394
|
-
}
|
|
2395
|
-
}
|
|
2396
|
-
},
|
|
2397
|
-
"directories": {
|
|
2398
|
-
"type": "object",
|
|
2399
|
-
"description": "Test directory structure.",
|
|
2400
|
-
"additionalProperties": false,
|
|
2401
|
-
"properties": {
|
|
2402
|
-
"unit": {
|
|
2403
|
-
"type": "string",
|
|
2404
|
-
"default": "tests/unit/",
|
|
2405
|
-
"description": "Unit test directory"
|
|
2406
|
-
},
|
|
2407
|
-
"integration": {
|
|
2408
|
-
"type": "string",
|
|
2409
|
-
"default": "tests/integration/",
|
|
2410
|
-
"description": "Integration test directory"
|
|
2411
|
-
},
|
|
2412
|
-
"golden": {
|
|
2413
|
-
"type": "string",
|
|
2414
|
-
"default": "tests/golden/",
|
|
2415
|
-
"description": "Golden test directory"
|
|
2416
|
-
},
|
|
2417
|
-
"fixtures": {
|
|
2418
|
-
"type": "string",
|
|
2419
|
-
"default": "tests/fixtures/",
|
|
2420
|
-
"description": "Test fixtures directory"
|
|
2421
|
-
}
|
|
2422
|
-
}
|
|
2423
|
-
},
|
|
2424
|
-
"skillName": {
|
|
2425
|
-
"type": [
|
|
2426
|
-
"string",
|
|
2427
|
-
"null"
|
|
2428
|
-
],
|
|
2429
|
-
"default": "ct-test-writer-bats",
|
|
2430
|
-
"description": "CLEO skill for test generation"
|
|
2431
|
-
},
|
|
2432
|
-
"dispatchKeywords": {
|
|
2433
|
-
"type": "array",
|
|
2434
|
-
"items": {
|
|
2435
|
-
"type": "string"
|
|
2436
|
-
},
|
|
2437
|
-
"default": [
|
|
2438
|
-
"test",
|
|
2439
|
-
"bats",
|
|
2440
|
-
"coverage",
|
|
2441
|
-
"testing"
|
|
2442
|
-
],
|
|
2443
|
-
"description": "Keywords for skill auto-dispatch"
|
|
2444
|
-
},
|
|
2445
|
-
"tempPathPattern": {
|
|
2446
|
-
"type": [
|
|
2447
|
-
"string",
|
|
2448
|
-
"null"
|
|
2449
|
-
],
|
|
2450
|
-
"default": "/bats-run-|/test/.*test-",
|
|
2451
|
-
"description": "Regex pattern for temp test files (context window management)"
|
|
2452
|
-
}
|
|
2453
|
-
}
|
|
2454
|
-
},
|
|
2455
|
-
"documentation": {
|
|
2456
|
-
"type": "object",
|
|
2457
|
-
"description": "Documentation synchronization and drift detection configuration.",
|
|
2458
|
-
"additionalProperties": false,
|
|
2459
|
-
"properties": {
|
|
2460
|
-
"driftDetection": {
|
|
2461
|
-
"type": "object",
|
|
2462
|
-
"description": "Drift detection settings for documentation vs implementation.",
|
|
2463
|
-
"additionalProperties": false,
|
|
2464
|
-
"properties": {
|
|
2465
|
-
"enabled": {
|
|
2466
|
-
"type": "boolean",
|
|
2467
|
-
"default": true,
|
|
2468
|
-
"description": "Enable drift detection system."
|
|
2469
|
-
},
|
|
2470
|
-
"autoCheck": {
|
|
2471
|
-
"type": "boolean",
|
|
2472
|
-
"default": false,
|
|
2473
|
-
"description": "Automatically run drift detection after critical operations."
|
|
2474
|
-
},
|
|
2475
|
-
"criticalCommands": {
|
|
2476
|
-
"type": "array",
|
|
2477
|
-
"items": {
|
|
2478
|
-
"type": "string"
|
|
2479
|
-
},
|
|
2480
|
-
"default": [
|
|
2481
|
-
"add",
|
|
2482
|
-
"complete",
|
|
2483
|
-
"update",
|
|
2484
|
-
"delete",
|
|
2485
|
-
"reparent"
|
|
2486
|
-
],
|
|
2487
|
-
"description": "Commands that trigger auto-drift detection when autoCheck is enabled."
|
|
2488
|
-
}
|
|
2489
|
-
}
|
|
2490
|
-
},
|
|
2491
|
-
"gapValidation": {
|
|
2492
|
-
"type": "object",
|
|
2493
|
-
"description": "Knowledge transfer gap validation settings (future use).",
|
|
2494
|
-
"additionalProperties": false,
|
|
2495
|
-
"properties": {
|
|
2496
|
-
"enabled": {
|
|
2497
|
-
"type": "boolean",
|
|
2498
|
-
"default": false,
|
|
2499
|
-
"description": "Enable knowledge gap validation. Reserved for T2530 implementation."
|
|
2500
|
-
}
|
|
2501
|
-
}
|
|
2502
|
-
}
|
|
2503
|
-
}
|
|
2504
|
-
},
|
|
2505
1123
|
"contributor": {
|
|
2506
1124
|
"type": "object",
|
|
2507
1125
|
"description": "Contributor/dev-mode settings. Auto-populated when CLEO detects it is running inside its own source repository (ADR-016 §2.3, ADR-029).",
|
|
@@ -2516,134 +1134,6 @@
|
|
|
2516
1134
|
"type": "string",
|
|
2517
1135
|
"default": "cleo-dev",
|
|
2518
1136
|
"description": "The CLI command for the local dev build (ADR-016 §2.3). Injected into agent context when isContributorProject is true."
|
|
2519
|
-
},
|
|
2520
|
-
"verifiedAt": {
|
|
2521
|
-
"type": ["string", "null"],
|
|
2522
|
-
"format": "date-time",
|
|
2523
|
-
"default": null,
|
|
2524
|
-
"description": "ISO 8601 timestamp when contributor status was last auto-verified."
|
|
2525
|
-
}
|
|
2526
|
-
}
|
|
2527
|
-
},
|
|
2528
|
-
"tools": {
|
|
2529
|
-
"type": "object",
|
|
2530
|
-
"description": "External tool dependencies and installation commands. Replaces hardcoded tool assumptions.",
|
|
2531
|
-
"additionalProperties": false,
|
|
2532
|
-
"properties": {
|
|
2533
|
-
"jsonProcessor": {
|
|
2534
|
-
"type": "object",
|
|
2535
|
-
"description": "JSON manipulation tool configuration.",
|
|
2536
|
-
"additionalProperties": false,
|
|
2537
|
-
"properties": {
|
|
2538
|
-
"name": {
|
|
2539
|
-
"type": "string",
|
|
2540
|
-
"default": "jq",
|
|
2541
|
-
"description": "Human-readable tool name"
|
|
2542
|
-
},
|
|
2543
|
-
"command": {
|
|
2544
|
-
"type": "string",
|
|
2545
|
-
"default": "jq",
|
|
2546
|
-
"description": "Command name for execution"
|
|
2547
|
-
},
|
|
2548
|
-
"installCommand": {
|
|
2549
|
-
"type": "string",
|
|
2550
|
-
"default": "brew install jq",
|
|
2551
|
-
"description": "Installation command (platform-specific)"
|
|
2552
|
-
},
|
|
2553
|
-
"required": {
|
|
2554
|
-
"type": "boolean",
|
|
2555
|
-
"default": true,
|
|
2556
|
-
"description": "Whether tool is required for CLEO operation"
|
|
2557
|
-
}
|
|
2558
|
-
}
|
|
2559
|
-
},
|
|
2560
|
-
"schemaValidator": {
|
|
2561
|
-
"type": "object",
|
|
2562
|
-
"description": "JSON Schema validation tool configuration.",
|
|
2563
|
-
"additionalProperties": false,
|
|
2564
|
-
"properties": {
|
|
2565
|
-
"name": {
|
|
2566
|
-
"type": "string",
|
|
2567
|
-
"default": "ajv-cli",
|
|
2568
|
-
"description": "Human-readable tool name"
|
|
2569
|
-
},
|
|
2570
|
-
"command": {
|
|
2571
|
-
"type": "string",
|
|
2572
|
-
"default": "ajv",
|
|
2573
|
-
"description": "Command name for execution"
|
|
2574
|
-
},
|
|
2575
|
-
"installCommand": {
|
|
2576
|
-
"type": "string",
|
|
2577
|
-
"default": "npm install -g ajv-cli",
|
|
2578
|
-
"description": "Installation command"
|
|
2579
|
-
},
|
|
2580
|
-
"required": {
|
|
2581
|
-
"type": "boolean",
|
|
2582
|
-
"default": false,
|
|
2583
|
-
"description": "Whether tool is required for CLEO operation"
|
|
2584
|
-
}
|
|
2585
|
-
}
|
|
2586
|
-
},
|
|
2587
|
-
"testRunner": {
|
|
2588
|
-
"type": "object",
|
|
2589
|
-
"description": "Test execution tool configuration.",
|
|
2590
|
-
"additionalProperties": false,
|
|
2591
|
-
"properties": {
|
|
2592
|
-
"name": {
|
|
2593
|
-
"type": "string",
|
|
2594
|
-
"default": "bats",
|
|
2595
|
-
"description": "Human-readable tool name"
|
|
2596
|
-
},
|
|
2597
|
-
"command": {
|
|
2598
|
-
"type": "string",
|
|
2599
|
-
"default": "bats",
|
|
2600
|
-
"description": "Command name for execution"
|
|
2601
|
-
},
|
|
2602
|
-
"installCommand": {
|
|
2603
|
-
"type": "string",
|
|
2604
|
-
"default": "npm install -g bats",
|
|
2605
|
-
"description": "Installation command"
|
|
2606
|
-
},
|
|
2607
|
-
"required": {
|
|
2608
|
-
"type": "boolean",
|
|
2609
|
-
"default": true,
|
|
2610
|
-
"description": "Whether tool is required for CLEO operation"
|
|
2611
|
-
}
|
|
2612
|
-
}
|
|
2613
|
-
},
|
|
2614
|
-
"linter": {
|
|
2615
|
-
"type": "object",
|
|
2616
|
-
"description": "Language-specific linting tools.",
|
|
2617
|
-
"additionalProperties": false,
|
|
2618
|
-
"properties": {
|
|
2619
|
-
"bash": {
|
|
2620
|
-
"type": "object",
|
|
2621
|
-
"description": "Bash/shell linter configuration.",
|
|
2622
|
-
"additionalProperties": false,
|
|
2623
|
-
"properties": {
|
|
2624
|
-
"name": {
|
|
2625
|
-
"type": "string",
|
|
2626
|
-
"default": "shellcheck",
|
|
2627
|
-
"description": "Human-readable tool name"
|
|
2628
|
-
},
|
|
2629
|
-
"command": {
|
|
2630
|
-
"type": "string",
|
|
2631
|
-
"default": "shellcheck",
|
|
2632
|
-
"description": "Command name for execution"
|
|
2633
|
-
},
|
|
2634
|
-
"installCommand": {
|
|
2635
|
-
"type": "string",
|
|
2636
|
-
"default": "brew install shellcheck",
|
|
2637
|
-
"description": "Installation command"
|
|
2638
|
-
},
|
|
2639
|
-
"required": {
|
|
2640
|
-
"type": "boolean",
|
|
2641
|
-
"default": false,
|
|
2642
|
-
"description": "Whether tool is required"
|
|
2643
|
-
}
|
|
2644
|
-
}
|
|
2645
|
-
}
|
|
2646
|
-
}
|
|
2647
1137
|
}
|
|
2648
1138
|
}
|
|
2649
1139
|
}
|