@devtrack-solution/codesdd 1.2.3 → 1.2.4-rc3

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.
Files changed (139) hide show
  1. package/.sdd/skills/curated/devtrack-api/SKILL.md +12 -5
  2. package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +8 -0
  3. package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +8 -0
  4. package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +8 -0
  5. package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +8 -0
  6. package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +8 -0
  7. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +4 -2
  8. package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +10 -0
  9. package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +2 -2
  10. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +55 -0
  11. package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +13 -13
  12. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +2 -3
  13. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +1 -1
  14. package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +41 -0
  15. package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +7 -9
  16. package/README.md +159 -5
  17. package/dist/applications/sdd/index.d.ts +16 -0
  18. package/dist/applications/sdd/index.js +16 -0
  19. package/dist/commands/config.js +171 -10
  20. package/dist/commands/sdd/execution.js +345 -15
  21. package/dist/commands/sdd/plugin.js +5 -0
  22. package/dist/commands/sdd/shared.d.ts +1 -0
  23. package/dist/commands/sdd/shared.js +10 -0
  24. package/dist/commands/sdd.js +38 -3
  25. package/dist/core/cli/command-matrix.js +9 -0
  26. package/dist/core/cli-command-quality.js +9 -0
  27. package/dist/core/completions/command-registry.js +45 -0
  28. package/dist/core/config-schema.d.ts +18 -1
  29. package/dist/core/config-schema.js +48 -5
  30. package/dist/core/global-config.d.ts +16 -0
  31. package/dist/core/sdd/agent-binding.d.ts +10 -10
  32. package/dist/core/sdd/agent-runtime-contract.d.ts +204 -0
  33. package/dist/core/sdd/agent-runtime-contract.js +200 -0
  34. package/dist/core/sdd/check.d.ts +2 -0
  35. package/dist/core/sdd/check.js +40 -2
  36. package/dist/core/sdd/coordination/coordination-adapters.d.ts +15 -8
  37. package/dist/core/sdd/coordination/coordination-adapters.js +43 -15
  38. package/dist/core/sdd/coordination/index.d.ts +1 -0
  39. package/dist/core/sdd/coordination/index.js +1 -0
  40. package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
  41. package/dist/core/sdd/coordination/redis-runtime.js +698 -0
  42. package/dist/core/sdd/deepagent-contracts.d.ts +98 -4
  43. package/dist/core/sdd/deepagent-contracts.js +62 -0
  44. package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
  45. package/dist/core/sdd/default-bootstrap-files.js +14 -8
  46. package/dist/core/sdd/default-skills.js +108 -4
  47. package/dist/core/sdd/devtrack-api-appliance.d.ts +8 -1
  48. package/dist/core/sdd/devtrack-api-appliance.js +46 -23
  49. package/dist/core/sdd/docs-sync.js +21 -15
  50. package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
  51. package/dist/core/sdd/domain/capability-diff.js +200 -0
  52. package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
  53. package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
  54. package/dist/core/sdd/domain/semantic-intent-classifier.d.ts +29 -0
  55. package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -0
  56. package/dist/core/sdd/foundation-artifact-map-validator.d.ts +16 -0
  57. package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
  58. package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
  59. package/dist/core/sdd/foundation-layer-manifest.js +117 -0
  60. package/dist/core/sdd/intent-guard.d.ts +22 -0
  61. package/dist/core/sdd/intent-guard.js +67 -0
  62. package/dist/core/sdd/json-schema.js +9 -1
  63. package/dist/core/sdd/legacy-operations.js +76 -1
  64. package/dist/core/sdd/migrate-workspace.js +39 -0
  65. package/dist/core/sdd/package-security-gates.d.ts +21 -0
  66. package/dist/core/sdd/package-security-gates.js +119 -0
  67. package/dist/core/sdd/package-structure-gate.js +3 -8
  68. package/dist/core/sdd/parallel-feat-automation.d.ts +181 -3
  69. package/dist/core/sdd/parallel-feat-automation.js +212 -0
  70. package/dist/core/sdd/plugin-broker.d.ts +223 -4
  71. package/dist/core/sdd/plugin-broker.js +10 -0
  72. package/dist/core/sdd/plugin-cli.d.ts +30 -0
  73. package/dist/core/sdd/plugin-cli.js +70 -3
  74. package/dist/core/sdd/plugin-evidence.d.ts +73 -0
  75. package/dist/core/sdd/plugin-manifest.d.ts +69 -1
  76. package/dist/core/sdd/plugin-manifest.js +10 -0
  77. package/dist/core/sdd/plugin-policy-pack.d.ts +1 -1
  78. package/dist/core/sdd/plugin-registry.d.ts +141 -5
  79. package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
  80. package/dist/core/sdd/plugin-sdk-contract.js +268 -0
  81. package/dist/core/sdd/plugin-skill-binding.d.ts +1 -1
  82. package/dist/core/sdd/quality-validation.d.ts +84 -11
  83. package/dist/core/sdd/release-readiness.d.ts +19 -0
  84. package/dist/core/sdd/release-readiness.js +472 -0
  85. package/dist/core/sdd/runtime-boundary-contract.d.ts +45 -0
  86. package/dist/core/sdd/runtime-boundary-contract.js +90 -0
  87. package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
  88. package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
  89. package/dist/core/sdd/services/agent-run.service.d.ts +38 -6
  90. package/dist/core/sdd/services/agent-run.service.js +73 -1
  91. package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
  92. package/dist/core/sdd/services/capability-diff.service.js +26 -0
  93. package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
  94. package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
  95. package/dist/core/sdd/services/context.service.d.ts +43 -340
  96. package/dist/core/sdd/services/context.service.js +323 -9
  97. package/dist/core/sdd/services/finalize.service.d.ts +25 -0
  98. package/dist/core/sdd/services/finalize.service.js +178 -16
  99. package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
  100. package/dist/core/sdd/services/semantic-intent-classifier.service.d.ts +6 -0
  101. package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
  102. package/dist/core/sdd/state.d.ts +1 -0
  103. package/dist/core/sdd/state.js +251 -29
  104. package/dist/core/sdd/store/sdd-stores.js +2 -2
  105. package/dist/core/sdd/structural-health.d.ts +13 -13
  106. package/dist/core/sdd/types.d.ts +27 -12
  107. package/dist/core/sdd/types.js +4 -0
  108. package/dist/core/sdd/views.js +17 -0
  109. package/dist/core/sdd/workspace-schemas.d.ts +387 -7
  110. package/dist/core/sdd/workspace-schemas.js +196 -64
  111. package/dist/domains/sdd/index.d.ts +6 -0
  112. package/dist/domains/sdd/index.js +6 -0
  113. package/dist/infrastructures/sdd/index.d.ts +7 -0
  114. package/dist/infrastructures/sdd/index.js +6 -0
  115. package/dist/presentations/cli/sdd/index.d.ts +3 -0
  116. package/dist/presentations/cli/sdd/index.js +3 -0
  117. package/dist/shared/sdd/index.d.ts +3 -0
  118. package/dist/shared/sdd/index.js +2 -0
  119. package/package.json +9 -6
  120. package/schemas/sdd/2-plan.schema.json +207 -2
  121. package/schemas/sdd/5-quality.schema.json +281 -25
  122. package/schemas/sdd/agent-runtime-command-plan.schema.json +212 -0
  123. package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -0
  124. package/schemas/sdd/codesdd-plugin.schema.json +171 -0
  125. package/schemas/sdd/deepagent-run-request.schema.json +316 -0
  126. package/schemas/sdd/parallel-feat-automation-plan.schema.json +89 -0
  127. package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
  128. package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
  129. package/schemas/sdd/plugin-artifact-manifest.schema.json +109 -0
  130. package/schemas/sdd/plugin-artifact-map.schema.json +223 -0
  131. package/schemas/sdd/plugin-evidence-manifest.schema.json +109 -0
  132. package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
  133. package/schemas/sdd/plugin-package-governance.schema.json +74 -0
  134. package/schemas/sdd/plugin-registry.schema.json +171 -0
  135. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +109 -0
  136. package/schemas/sdd/quality-evidence-bundle.schema.json +109 -0
  137. package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
  138. package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
  139. package/schemas/sdd/workspace-catalog.schema.json +3776 -398
@@ -264,6 +264,317 @@
264
264
  "additionalProperties": false
265
265
  }
266
266
  },
267
+ "change_safety": {
268
+ "type": "object",
269
+ "properties": {
270
+ "explicit_modification_intent": {
271
+ "type": "object",
272
+ "properties": {
273
+ "operation": {
274
+ "type": "string",
275
+ "enum": [
276
+ "add",
277
+ "modify",
278
+ "remove",
279
+ "replace",
280
+ "refactor",
281
+ "optimize"
282
+ ]
283
+ }
284
+ },
285
+ "required": [
286
+ "operation"
287
+ ],
288
+ "additionalProperties": false
289
+ },
290
+ "context_lock": {
291
+ "default": {
292
+ "allowed_paths": [],
293
+ "forbidden_paths": [],
294
+ "protected_core": []
295
+ },
296
+ "type": "object",
297
+ "properties": {
298
+ "allowed_paths": {
299
+ "default": [],
300
+ "type": "array",
301
+ "items": {
302
+ "type": "string",
303
+ "minLength": 1
304
+ }
305
+ },
306
+ "forbidden_paths": {
307
+ "default": [],
308
+ "type": "array",
309
+ "items": {
310
+ "type": "string",
311
+ "minLength": 1
312
+ }
313
+ },
314
+ "protected_core": {
315
+ "default": [],
316
+ "type": "array",
317
+ "items": {
318
+ "type": "string",
319
+ "minLength": 1
320
+ }
321
+ }
322
+ },
323
+ "required": [
324
+ "allowed_paths",
325
+ "forbidden_paths",
326
+ "protected_core"
327
+ ],
328
+ "additionalProperties": false
329
+ },
330
+ "change_budget": {
331
+ "default": {},
332
+ "type": "object",
333
+ "properties": {
334
+ "max_files_changed": {
335
+ "type": "integer",
336
+ "minimum": 0,
337
+ "maximum": 9007199254740991
338
+ },
339
+ "max_new_files": {
340
+ "type": "integer",
341
+ "minimum": 0,
342
+ "maximum": 9007199254740991
343
+ },
344
+ "max_deleted_files": {
345
+ "type": "integer",
346
+ "minimum": 0,
347
+ "maximum": 9007199254740991
348
+ }
349
+ },
350
+ "additionalProperties": false
351
+ },
352
+ "governed_override": {
353
+ "type": "object",
354
+ "properties": {
355
+ "feature_id": {
356
+ "type": "string",
357
+ "pattern": "^FEAT-\\d{4}$"
358
+ },
359
+ "intent": {
360
+ "type": "string",
361
+ "enum": [
362
+ "add",
363
+ "modify",
364
+ "remove",
365
+ "replace",
366
+ "refactor",
367
+ "optimize"
368
+ ]
369
+ },
370
+ "rationale": {
371
+ "type": "string",
372
+ "minLength": 1
373
+ },
374
+ "write_scope": {
375
+ "minItems": 1,
376
+ "type": "array",
377
+ "items": {
378
+ "type": "string",
379
+ "minLength": 1
380
+ }
381
+ },
382
+ "expected_deletions": {
383
+ "default": [],
384
+ "type": "array",
385
+ "items": {
386
+ "type": "string",
387
+ "minLength": 1
388
+ }
389
+ },
390
+ "rollback_plan": {
391
+ "type": "string",
392
+ "minLength": 1
393
+ },
394
+ "compensating_control": {
395
+ "type": "string",
396
+ "minLength": 1
397
+ },
398
+ "approver": {
399
+ "type": "string",
400
+ "minLength": 1
401
+ },
402
+ "expires_at": {
403
+ "type": "string",
404
+ "format": "date-time",
405
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
406
+ }
407
+ },
408
+ "required": [
409
+ "feature_id",
410
+ "intent",
411
+ "rationale",
412
+ "write_scope",
413
+ "expected_deletions",
414
+ "rollback_plan",
415
+ "compensating_control",
416
+ "approver",
417
+ "expires_at"
418
+ ],
419
+ "additionalProperties": false
420
+ }
421
+ },
422
+ "required": [
423
+ "explicit_modification_intent",
424
+ "context_lock",
425
+ "change_budget"
426
+ ],
427
+ "additionalProperties": false
428
+ },
429
+ "planned_file_changes": {
430
+ "default": [],
431
+ "type": "array",
432
+ "items": {
433
+ "type": "object",
434
+ "properties": {
435
+ "path": {
436
+ "type": "string",
437
+ "minLength": 1
438
+ },
439
+ "operation": {
440
+ "type": "string",
441
+ "enum": [
442
+ "create",
443
+ "modify",
444
+ "delete",
445
+ "rename",
446
+ "replace"
447
+ ]
448
+ },
449
+ "previous_path": {
450
+ "type": "string",
451
+ "minLength": 1
452
+ }
453
+ },
454
+ "required": [
455
+ "path",
456
+ "operation"
457
+ ],
458
+ "additionalProperties": false
459
+ }
460
+ },
461
+ "capability_inventory_before": {
462
+ "default": [],
463
+ "type": "array",
464
+ "items": {
465
+ "type": "object",
466
+ "properties": {
467
+ "kind": {
468
+ "type": "string",
469
+ "enum": [
470
+ "route",
471
+ "page",
472
+ "cli_command",
473
+ "public_contract",
474
+ "schema",
475
+ "event",
476
+ "core_flow",
477
+ "governance_state"
478
+ ]
479
+ },
480
+ "id": {
481
+ "type": "string",
482
+ "minLength": 1
483
+ },
484
+ "path": {
485
+ "type": "string",
486
+ "minLength": 1
487
+ },
488
+ "fingerprint": {
489
+ "type": "string",
490
+ "minLength": 1
491
+ },
492
+ "metadata": {
493
+ "default": {},
494
+ "type": "object",
495
+ "propertyNames": {
496
+ "type": "string"
497
+ },
498
+ "additionalProperties": {}
499
+ }
500
+ },
501
+ "required": [
502
+ "kind",
503
+ "id",
504
+ "metadata"
505
+ ],
506
+ "additionalProperties": false
507
+ }
508
+ },
509
+ "capability_inventory_after": {
510
+ "default": [],
511
+ "type": "array",
512
+ "items": {
513
+ "type": "object",
514
+ "properties": {
515
+ "kind": {
516
+ "type": "string",
517
+ "enum": [
518
+ "route",
519
+ "page",
520
+ "cli_command",
521
+ "public_contract",
522
+ "schema",
523
+ "event",
524
+ "core_flow",
525
+ "governance_state"
526
+ ]
527
+ },
528
+ "id": {
529
+ "type": "string",
530
+ "minLength": 1
531
+ },
532
+ "path": {
533
+ "type": "string",
534
+ "minLength": 1
535
+ },
536
+ "fingerprint": {
537
+ "type": "string",
538
+ "minLength": 1
539
+ },
540
+ "metadata": {
541
+ "default": {},
542
+ "type": "object",
543
+ "propertyNames": {
544
+ "type": "string"
545
+ },
546
+ "additionalProperties": {}
547
+ }
548
+ },
549
+ "required": [
550
+ "kind",
551
+ "id",
552
+ "metadata"
553
+ ],
554
+ "additionalProperties": false
555
+ }
556
+ },
557
+ "capability_inventory_required": {
558
+ "default": false,
559
+ "type": "boolean"
560
+ },
561
+ "capability_required_kinds": {
562
+ "default": [],
563
+ "type": "array",
564
+ "items": {
565
+ "type": "string",
566
+ "enum": [
567
+ "route",
568
+ "page",
569
+ "cli_command",
570
+ "public_contract",
571
+ "schema",
572
+ "event",
573
+ "core_flow",
574
+ "governance_state"
575
+ ]
576
+ }
577
+ },
267
578
  "reversa_scope": {
268
579
  "type": "object",
269
580
  "properties": {
@@ -312,6 +623,11 @@
312
623
  "env_contract",
313
624
  "skill_ids",
314
625
  "plugin_envelopes",
626
+ "planned_file_changes",
627
+ "capability_inventory_before",
628
+ "capability_inventory_after",
629
+ "capability_inventory_required",
630
+ "capability_required_kinds",
315
631
  "reversa_scope",
316
632
  "expected_evidence"
317
633
  ],
@@ -24,6 +24,67 @@
24
24
  "exclusiveMinimum": 0,
25
25
  "maximum": 9007199254740991
26
26
  },
27
+ "state_boundary": {
28
+ "type": "object",
29
+ "properties": {
30
+ "id": {
31
+ "type": "string",
32
+ "const": "codesdd-canonical-sdd-state"
33
+ },
34
+ "canonical_state_glob": {
35
+ "type": "string",
36
+ "const": ".sdd/state/*.yaml"
37
+ },
38
+ "project_state_root": {
39
+ "type": "string",
40
+ "const": ".sdd"
41
+ },
42
+ "hidden_state_allowed": {
43
+ "type": "boolean",
44
+ "const": false
45
+ },
46
+ "external_state_allowed": {
47
+ "type": "boolean",
48
+ "const": false
49
+ }
50
+ },
51
+ "required": [
52
+ "id",
53
+ "canonical_state_glob",
54
+ "project_state_root",
55
+ "hidden_state_allowed",
56
+ "external_state_allowed"
57
+ ],
58
+ "additionalProperties": false
59
+ },
60
+ "write_policy": {
61
+ "type": "object",
62
+ "properties": {
63
+ "allowed_root": {
64
+ "type": "string",
65
+ "const": ".sdd"
66
+ },
67
+ "canonical_state_glob": {
68
+ "type": "string",
69
+ "const": ".sdd/state/*.yaml"
70
+ },
71
+ "hidden_state_allowed": {
72
+ "type": "boolean",
73
+ "const": false
74
+ },
75
+ "external_state_allowed": {
76
+ "type": "boolean",
77
+ "const": false
78
+ }
79
+ },
80
+ "required": [
81
+ "allowed_root",
82
+ "canonical_state_glob",
83
+ "hidden_state_allowed",
84
+ "external_state_allowed"
85
+ ],
86
+ "additionalProperties": false
87
+ },
27
88
  "rules": {
28
89
  "default": [],
29
90
  "type": "array",
@@ -141,6 +202,29 @@
141
202
  ],
142
203
  "additionalProperties": false
143
204
  },
205
+ "state_boundary_ref": {
206
+ "type": "string",
207
+ "const": "codesdd-canonical-sdd-state"
208
+ },
209
+ "allowed_state_writes": {
210
+ "minItems": 1,
211
+ "type": "array",
212
+ "items": {
213
+ "type": "string",
214
+ "minLength": 1
215
+ }
216
+ },
217
+ "forbidden_state_writes": {
218
+ "default": [
219
+ ".codesdd/**",
220
+ "external-context/**"
221
+ ],
222
+ "type": "array",
223
+ "items": {
224
+ "type": "string",
225
+ "minLength": 1
226
+ }
227
+ },
144
228
  "evidence_required": {
145
229
  "default": [],
146
230
  "type": "array",
@@ -157,6 +241,9 @@
157
241
  "delegation",
158
242
  "commands",
159
243
  "commit_boundary",
244
+ "state_boundary_ref",
245
+ "allowed_state_writes",
246
+ "forbidden_state_writes",
160
247
  "evidence_required"
161
248
  ],
162
249
  "additionalProperties": false
@@ -205,6 +292,8 @@
205
292
  "generated_at",
206
293
  "status",
207
294
  "max_agents",
295
+ "state_boundary",
296
+ "write_policy",
208
297
  "rules",
209
298
  "waves",
210
299
  "summary"
@@ -0,0 +1,116 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schema_version": {
6
+ "default": 1,
7
+ "type": "number",
8
+ "const": 1
9
+ },
10
+ "generated_at": {
11
+ "type": "string",
12
+ "format": "date-time",
13
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
14
+ },
15
+ "max_agents": {
16
+ "default": 5,
17
+ "type": "integer",
18
+ "minimum": 1,
19
+ "maximum": 10
20
+ },
21
+ "require_clean_worktree": {
22
+ "default": true,
23
+ "type": "boolean"
24
+ },
25
+ "require_commit_per_feature": {
26
+ "default": true,
27
+ "type": "boolean"
28
+ },
29
+ "require_finalize_before_commit": {
30
+ "default": true,
31
+ "type": "boolean"
32
+ },
33
+ "agent_provider": {
34
+ "type": "string",
35
+ "enum": [
36
+ "codex",
37
+ "opencode",
38
+ "claude-code",
39
+ "cloudcode",
40
+ "deepagents",
41
+ "fake"
42
+ ]
43
+ },
44
+ "features": {
45
+ "default": [],
46
+ "type": "array",
47
+ "items": {
48
+ "type": "object",
49
+ "properties": {
50
+ "feature_ref": {
51
+ "type": "string",
52
+ "pattern": "^FEAT-\\d{4}$"
53
+ },
54
+ "title": {
55
+ "type": "string",
56
+ "minLength": 3
57
+ },
58
+ "recommended_skills": {
59
+ "default": [],
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ }
65
+ },
66
+ "lock_domains": {
67
+ "default": [],
68
+ "type": "array",
69
+ "items": {
70
+ "type": "string",
71
+ "minLength": 1
72
+ }
73
+ },
74
+ "blocked_by": {
75
+ "default": [],
76
+ "type": "array",
77
+ "items": {
78
+ "type": "string",
79
+ "pattern": "^FEAT-\\d{4}$"
80
+ }
81
+ },
82
+ "status": {
83
+ "default": "READY",
84
+ "type": "string",
85
+ "enum": [
86
+ "READY",
87
+ "IN_PROGRESS",
88
+ "BLOCKED",
89
+ "DONE"
90
+ ]
91
+ }
92
+ },
93
+ "required": [
94
+ "feature_ref",
95
+ "title",
96
+ "recommended_skills",
97
+ "lock_domains",
98
+ "blocked_by",
99
+ "status"
100
+ ],
101
+ "additionalProperties": false
102
+ }
103
+ }
104
+ },
105
+ "required": [
106
+ "schema_version",
107
+ "max_agents",
108
+ "require_clean_worktree",
109
+ "require_commit_per_feature",
110
+ "require_finalize_before_commit",
111
+ "features"
112
+ ],
113
+ "additionalProperties": false,
114
+ "title": "CodeSDD Parallel FEAT Scheduler Request",
115
+ "description": "Machine-readable input contract for dependency-aware chained FEAT wave scheduling."
116
+ }