@devtrack-solution/codesdd 1.2.3 → 1.2.4

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 (213) hide show
  1. package/.sdd/skills/curated/devtrack-api/SKILL.md +98 -12
  2. package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +10 -0
  3. package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +10 -0
  4. package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +10 -0
  5. package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +10 -0
  6. package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +10 -0
  7. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +5 -3
  8. package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +12 -0
  9. package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +61 -5
  10. package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +15 -3
  11. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +1951 -0
  12. package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +16 -14
  13. package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +40 -0
  14. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +19 -2
  15. package/.sdd/skills/curated/devtrack-api/references/generated-artifact-invalidation.md +97 -0
  16. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +30 -1
  17. package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +42 -0
  18. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +22 -1
  19. package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +9 -7
  20. package/README.md +280 -29
  21. package/dist/applications/sdd/index.d.ts +16 -0
  22. package/dist/applications/sdd/index.js +16 -0
  23. package/dist/cli/program.js +180 -11
  24. package/dist/commands/config.js +197 -10
  25. package/dist/commands/sdd/execution.js +408 -16
  26. package/dist/commands/sdd/plugin.js +5 -0
  27. package/dist/commands/sdd/shared.d.ts +1 -0
  28. package/dist/commands/sdd/shared.js +10 -0
  29. package/dist/commands/sdd.js +157 -7
  30. package/dist/core/cli/command-matrix.d.ts +18 -0
  31. package/dist/core/cli/command-matrix.js +157 -0
  32. package/dist/core/cli-command-quality.js +11 -0
  33. package/dist/core/completions/command-registry.js +45 -0
  34. package/dist/core/config-schema.d.ts +31 -1
  35. package/dist/core/config-schema.js +79 -5
  36. package/dist/core/config.d.ts +1 -0
  37. package/dist/core/config.js +11 -0
  38. package/dist/core/global-config.d.ts +29 -0
  39. package/dist/core/init.d.ts +2 -2
  40. package/dist/core/init.js +13 -14
  41. package/dist/core/sdd/agent-binding.d.ts +19 -19
  42. package/dist/core/sdd/agent-runtime-contract.d.ts +204 -0
  43. package/dist/core/sdd/agent-runtime-contract.js +200 -0
  44. package/dist/core/sdd/allocator-recovery.d.ts +14 -0
  45. package/dist/core/sdd/allocator-recovery.js +30 -0
  46. package/dist/core/sdd/allocator-security.d.ts +18 -0
  47. package/dist/core/sdd/allocator-security.js +36 -0
  48. package/dist/core/sdd/api-foundation-baseline.d.ts +111 -0
  49. package/dist/core/sdd/api-foundation-baseline.js +151 -0
  50. package/dist/core/sdd/api-foundation-parity.d.ts +114 -0
  51. package/dist/core/sdd/api-foundation-parity.js +131 -0
  52. package/dist/core/sdd/api-profile-catalog.d.ts +36 -0
  53. package/dist/core/sdd/api-profile-catalog.js +132 -0
  54. package/dist/core/sdd/api-profile-dry-run-projection.d.ts +93 -0
  55. package/dist/core/sdd/api-profile-dry-run-projection.js +370 -0
  56. package/dist/core/sdd/api-profile-recipes.d.ts +82 -0
  57. package/dist/core/sdd/api-profile-recipes.js +484 -0
  58. package/dist/core/sdd/artifact-id-allocator.d.ts +368 -0
  59. package/dist/core/sdd/artifact-id-allocator.js +510 -0
  60. package/dist/core/sdd/check.d.ts +52 -1
  61. package/dist/core/sdd/check.js +326 -11
  62. package/dist/core/sdd/coordination/coordination-adapters.d.ts +15 -8
  63. package/dist/core/sdd/coordination/coordination-adapters.js +43 -15
  64. package/dist/core/sdd/coordination/index.d.ts +1 -0
  65. package/dist/core/sdd/coordination/index.js +1 -0
  66. package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
  67. package/dist/core/sdd/coordination/redis-runtime.js +698 -0
  68. package/dist/core/sdd/deepagent-contracts.d.ts +99 -5
  69. package/dist/core/sdd/deepagent-contracts.js +62 -0
  70. package/dist/core/sdd/deepagents/reversa-subagents.d.ts +3 -3
  71. package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
  72. package/dist/core/sdd/default-bootstrap-files.js +14 -10
  73. package/dist/core/sdd/default-skills.js +115 -9
  74. package/dist/core/sdd/devtrack-api-appliance.d.ts +42 -1
  75. package/dist/core/sdd/devtrack-api-appliance.js +159 -32
  76. package/dist/core/sdd/devtrack-api-architecture.d.ts +16 -0
  77. package/dist/core/sdd/devtrack-api-architecture.js +86 -0
  78. package/dist/core/sdd/docs-sync.js +24 -18
  79. package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
  80. package/dist/core/sdd/domain/capability-diff.js +200 -0
  81. package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
  82. package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
  83. package/dist/core/sdd/domain/semantic-intent-classifier.d.ts +29 -0
  84. package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -0
  85. package/dist/core/sdd/enterprise-mutating-command-gate.d.ts +27 -0
  86. package/dist/core/sdd/enterprise-mutating-command-gate.js +104 -0
  87. package/dist/core/sdd/enterprise-provenance-gates.d.ts +20 -0
  88. package/dist/core/sdd/enterprise-provenance-gates.js +63 -0
  89. package/dist/core/sdd/enterprise-provisioning-policy.d.ts +26 -0
  90. package/dist/core/sdd/enterprise-provisioning-policy.js +104 -0
  91. package/dist/core/sdd/foundation-artifact-map-validator.d.ts +16 -0
  92. package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
  93. package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
  94. package/dist/core/sdd/foundation-layer-manifest.js +117 -0
  95. package/dist/core/sdd/governance-schemas.d.ts +2 -2
  96. package/dist/core/sdd/governance-schemas.js +11 -2
  97. package/dist/core/sdd/intent-guard.d.ts +22 -0
  98. package/dist/core/sdd/intent-guard.js +67 -0
  99. package/dist/core/sdd/json-schema.js +13 -1
  100. package/dist/core/sdd/legacy-operations.js +169 -5
  101. package/dist/core/sdd/migrate-workspace.js +39 -0
  102. package/dist/core/sdd/package-security-gates.d.ts +21 -0
  103. package/dist/core/sdd/package-security-gates.js +121 -0
  104. package/dist/core/sdd/package-structure-gate.d.ts +85 -3
  105. package/dist/core/sdd/package-structure-gate.js +384 -11
  106. package/dist/core/sdd/parallel-feat-automation.d.ts +185 -7
  107. package/dist/core/sdd/parallel-feat-automation.js +212 -0
  108. package/dist/core/sdd/plugin-broker.d.ts +223 -4
  109. package/dist/core/sdd/plugin-broker.js +10 -0
  110. package/dist/core/sdd/plugin-cli.d.ts +30 -0
  111. package/dist/core/sdd/plugin-cli.js +70 -3
  112. package/dist/core/sdd/plugin-evidence.d.ts +73 -0
  113. package/dist/core/sdd/plugin-manifest.d.ts +69 -1
  114. package/dist/core/sdd/plugin-manifest.js +10 -0
  115. package/dist/core/sdd/plugin-policy-pack.d.ts +1 -1
  116. package/dist/core/sdd/plugin-policy.js +6 -1
  117. package/dist/core/sdd/plugin-registry.d.ts +138 -2
  118. package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
  119. package/dist/core/sdd/plugin-sdk-contract.js +268 -0
  120. package/dist/core/sdd/plugin-skill-binding.d.ts +1 -1
  121. package/dist/core/sdd/quality-validation.d.ts +89 -16
  122. package/dist/core/sdd/release-readiness.d.ts +68 -0
  123. package/dist/core/sdd/release-readiness.js +767 -0
  124. package/dist/core/sdd/reversa-architecture-extractor.d.ts +13 -0
  125. package/dist/core/sdd/reversa-architecture-extractor.js +89 -0
  126. package/dist/core/sdd/reversa-artifact-writer.d.ts +18 -0
  127. package/dist/core/sdd/reversa-artifact-writer.js +40 -0
  128. package/dist/core/sdd/reversa-command-policy.d.ts +136 -0
  129. package/dist/core/sdd/reversa-command-policy.js +361 -0
  130. package/dist/core/sdd/reversa-data-extractor.d.ts +11 -0
  131. package/dist/core/sdd/reversa-data-extractor.js +73 -0
  132. package/dist/core/sdd/reversa-equivalence.d.ts +20 -0
  133. package/dist/core/sdd/reversa-equivalence.js +34 -0
  134. package/dist/core/sdd/reversa-evidence.d.ts +298 -0
  135. package/dist/core/sdd/reversa-evidence.js +118 -0
  136. package/dist/core/sdd/reversa-reconstruction.d.ts +29 -0
  137. package/dist/core/sdd/reversa-reconstruction.js +32 -0
  138. package/dist/core/sdd/reversa-rules-extractor.d.ts +12 -0
  139. package/dist/core/sdd/reversa-rules-extractor.js +86 -0
  140. package/dist/core/sdd/reversa-source-safety.d.ts +19 -0
  141. package/dist/core/sdd/reversa-source-safety.js +105 -0
  142. package/dist/core/sdd/reversa-surface-scout.d.ts +13 -0
  143. package/dist/core/sdd/reversa-surface-scout.js +85 -0
  144. package/dist/core/sdd/reversa-ux-mapper.d.ts +11 -0
  145. package/dist/core/sdd/reversa-ux-mapper.js +73 -0
  146. package/dist/core/sdd/runtime-boundary-contract.d.ts +45 -0
  147. package/dist/core/sdd/runtime-boundary-contract.js +90 -0
  148. package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
  149. package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
  150. package/dist/core/sdd/services/agent-run.service.d.ts +38 -6
  151. package/dist/core/sdd/services/agent-run.service.js +73 -1
  152. package/dist/core/sdd/services/archive-quality-coherence.service.d.ts +17 -0
  153. package/dist/core/sdd/services/archive-quality-coherence.service.js +141 -0
  154. package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
  155. package/dist/core/sdd/services/capability-diff.service.js +26 -0
  156. package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
  157. package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
  158. package/dist/core/sdd/services/context.service.d.ts +43 -340
  159. package/dist/core/sdd/services/context.service.js +323 -9
  160. package/dist/core/sdd/services/decide.service.js +1 -1
  161. package/dist/core/sdd/services/finalize.service.d.ts +27 -0
  162. package/dist/core/sdd/services/finalize.service.js +226 -18
  163. package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
  164. package/dist/core/sdd/services/historical-quality-regression.service.d.ts +35 -0
  165. package/dist/core/sdd/services/historical-quality-regression.service.js +228 -0
  166. package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
  167. package/dist/core/sdd/services/planning-execution-coherence.service.d.ts +45 -0
  168. package/dist/core/sdd/services/planning-execution-coherence.service.js +225 -0
  169. package/dist/core/sdd/services/semantic-intent-classifier.service.d.ts +6 -0
  170. package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
  171. package/dist/core/sdd/state.d.ts +1 -0
  172. package/dist/core/sdd/state.js +266 -34
  173. package/dist/core/sdd/store/sdd-stores.js +2 -2
  174. package/dist/core/sdd/structural-health.d.ts +13 -13
  175. package/dist/core/sdd/types.d.ts +30 -15
  176. package/dist/core/sdd/types.js +4 -0
  177. package/dist/core/sdd/views.js +17 -0
  178. package/dist/core/sdd/workspace-schemas.d.ts +428 -7
  179. package/dist/core/sdd/workspace-schemas.js +223 -70
  180. package/dist/core/shared/skill-generation.d.ts +2 -0
  181. package/dist/core/shared/skill-generation.js +19 -2
  182. package/dist/core/shared/tool-detection.d.ts +19 -0
  183. package/dist/core/shared/tool-detection.js +89 -0
  184. package/dist/domains/sdd/index.d.ts +6 -0
  185. package/dist/domains/sdd/index.js +6 -0
  186. package/dist/infrastructures/sdd/index.d.ts +7 -0
  187. package/dist/infrastructures/sdd/index.js +6 -0
  188. package/dist/presentations/cli/sdd/index.d.ts +3 -0
  189. package/dist/presentations/cli/sdd/index.js +3 -0
  190. package/dist/shared/sdd/index.d.ts +3 -0
  191. package/dist/shared/sdd/index.js +2 -0
  192. package/package.json +14 -10
  193. package/schemas/sdd/2-plan.schema.json +207 -2
  194. package/schemas/sdd/5-quality.schema.json +324 -25
  195. package/schemas/sdd/agent-runtime-command-plan.schema.json +212 -0
  196. package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -0
  197. package/schemas/sdd/codesdd-plugin.schema.json +171 -0
  198. package/schemas/sdd/deepagent-run-request.schema.json +316 -0
  199. package/schemas/sdd/parallel-feat-automation-plan.schema.json +89 -0
  200. package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
  201. package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
  202. package/schemas/sdd/plugin-artifact-manifest.schema.json +109 -0
  203. package/schemas/sdd/plugin-artifact-map.schema.json +223 -0
  204. package/schemas/sdd/plugin-evidence-manifest.schema.json +109 -0
  205. package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
  206. package/schemas/sdd/plugin-package-governance.schema.json +74 -0
  207. package/schemas/sdd/plugin-registry.schema.json +171 -0
  208. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +109 -0
  209. package/schemas/sdd/quality-evidence-bundle.schema.json +109 -0
  210. package/schemas/sdd/reversa-evidence-bundle.schema.json +466 -0
  211. package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
  212. package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
  213. package/schemas/sdd/workspace-catalog.schema.json +5298 -1409
@@ -10,6 +10,205 @@
10
10
  "type": "string",
11
11
  "pattern": "^FEAT-\\d{4}$"
12
12
  },
13
+ "governance": {
14
+ "default": {
15
+ "state_boundary": "codesdd-canonical-sdd-state",
16
+ "planning_artifacts": [
17
+ ".sdd/state/backlog.yaml"
18
+ ],
19
+ "decision_refs": [],
20
+ "planned_state_writes": [],
21
+ "rollback_plan": "Review and revert only the scoped CodeSDD feature workspace and state changes if validation fails.",
22
+ "validation_gates": [
23
+ {
24
+ "name": "SDD check",
25
+ "command": "codesdd sdd check --render",
26
+ "expected": "CodeSDD state and generated views remain valid."
27
+ }
28
+ ]
29
+ },
30
+ "type": "object",
31
+ "properties": {
32
+ "state_boundary": {
33
+ "default": "codesdd-canonical-sdd-state",
34
+ "type": "string",
35
+ "const": "codesdd-canonical-sdd-state"
36
+ },
37
+ "planning_artifacts": {
38
+ "minItems": 1,
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string",
42
+ "minLength": 1
43
+ }
44
+ },
45
+ "decision_refs": {
46
+ "default": [],
47
+ "type": "array",
48
+ "items": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ }
52
+ },
53
+ "planned_state_writes": {
54
+ "default": [],
55
+ "type": "array",
56
+ "items": {
57
+ "type": "string",
58
+ "minLength": 1
59
+ }
60
+ },
61
+ "rollback_plan": {
62
+ "type": "string",
63
+ "minLength": 20
64
+ },
65
+ "validation_gates": {
66
+ "minItems": 1,
67
+ "type": "array",
68
+ "items": {
69
+ "type": "object",
70
+ "properties": {
71
+ "name": {
72
+ "type": "string",
73
+ "minLength": 1
74
+ },
75
+ "command": {
76
+ "type": "string",
77
+ "minLength": 1
78
+ },
79
+ "expected": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ }
83
+ },
84
+ "required": [
85
+ "name",
86
+ "command",
87
+ "expected"
88
+ ],
89
+ "additionalProperties": false
90
+ }
91
+ }
92
+ },
93
+ "required": [
94
+ "state_boundary",
95
+ "planning_artifacts",
96
+ "decision_refs",
97
+ "planned_state_writes",
98
+ "rollback_plan",
99
+ "validation_gates"
100
+ ],
101
+ "additionalProperties": false
102
+ },
103
+ "execution_plan": {
104
+ "default": {
105
+ "mode": "single-feature",
106
+ "state_boundary_ref": "codesdd-canonical-sdd-state",
107
+ "command_sequence": [
108
+ {
109
+ "name": "SDD check",
110
+ "command": "codesdd sdd check --render",
111
+ "writes_state": false,
112
+ "expected_state_writes": []
113
+ }
114
+ ],
115
+ "allowed_state_writes": [],
116
+ "forbidden_state_writes": [
117
+ ".codesdd/**",
118
+ "external-context/**"
119
+ ],
120
+ "handoff_artifacts": []
121
+ },
122
+ "type": "object",
123
+ "properties": {
124
+ "mode": {
125
+ "default": "single-feature",
126
+ "type": "string",
127
+ "enum": [
128
+ "single-feature",
129
+ "parallel-wave",
130
+ "chained-features"
131
+ ]
132
+ },
133
+ "state_boundary_ref": {
134
+ "default": "codesdd-canonical-sdd-state",
135
+ "type": "string",
136
+ "const": "codesdd-canonical-sdd-state"
137
+ },
138
+ "command_sequence": {
139
+ "minItems": 1,
140
+ "type": "array",
141
+ "items": {
142
+ "type": "object",
143
+ "properties": {
144
+ "name": {
145
+ "type": "string",
146
+ "minLength": 1
147
+ },
148
+ "command": {
149
+ "type": "string",
150
+ "minLength": 1
151
+ },
152
+ "writes_state": {
153
+ "default": false,
154
+ "type": "boolean"
155
+ },
156
+ "expected_state_writes": {
157
+ "default": [],
158
+ "type": "array",
159
+ "items": {
160
+ "type": "string",
161
+ "minLength": 1
162
+ }
163
+ }
164
+ },
165
+ "required": [
166
+ "name",
167
+ "command",
168
+ "writes_state",
169
+ "expected_state_writes"
170
+ ],
171
+ "additionalProperties": false
172
+ }
173
+ },
174
+ "allowed_state_writes": {
175
+ "default": [],
176
+ "type": "array",
177
+ "items": {
178
+ "type": "string",
179
+ "minLength": 1
180
+ }
181
+ },
182
+ "forbidden_state_writes": {
183
+ "default": [
184
+ ".codesdd/**",
185
+ "external-context/**"
186
+ ],
187
+ "type": "array",
188
+ "items": {
189
+ "type": "string",
190
+ "minLength": 1
191
+ }
192
+ },
193
+ "handoff_artifacts": {
194
+ "default": [],
195
+ "type": "array",
196
+ "items": {
197
+ "type": "string",
198
+ "minLength": 1
199
+ }
200
+ }
201
+ },
202
+ "required": [
203
+ "mode",
204
+ "state_boundary_ref",
205
+ "command_sequence",
206
+ "allowed_state_writes",
207
+ "forbidden_state_writes",
208
+ "handoff_artifacts"
209
+ ],
210
+ "additionalProperties": false
211
+ },
13
212
  "architectural_impact": {
14
213
  "type": "object",
15
214
  "properties": {
@@ -73,10 +272,14 @@
73
272
  "type": "object",
74
273
  "properties": {
75
274
  "unit_target": {
76
- "type": "number"
275
+ "type": "number",
276
+ "minimum": 0,
277
+ "maximum": 100
77
278
  },
78
279
  "integration_target": {
79
- "type": "number"
280
+ "type": "number",
281
+ "minimum": 0,
282
+ "maximum": 100
80
283
  },
81
284
  "approach": {
82
285
  "type": "string"
@@ -259,6 +462,8 @@
259
462
  "required": [
260
463
  "schema_version",
261
464
  "feature_id",
465
+ "governance",
466
+ "execution_plan",
262
467
  "architectural_impact",
263
468
  "frontend_impact",
264
469
  "affected_contracts",
@@ -14,10 +14,14 @@
14
14
  "type": "object",
15
15
  "properties": {
16
16
  "unit": {
17
- "type": "number"
17
+ "type": "number",
18
+ "minimum": 0,
19
+ "maximum": 100
18
20
  },
19
21
  "integration": {
20
- "type": "number"
22
+ "type": "number",
23
+ "minimum": 0,
24
+ "maximum": 100
21
25
  },
22
26
  "modules": {
23
27
  "type": "object",
@@ -25,7 +29,9 @@
25
29
  "type": "string"
26
30
  },
27
31
  "additionalProperties": {
28
- "type": "number"
32
+ "type": "number",
33
+ "minimum": 0,
34
+ "maximum": 100
29
35
  }
30
36
  }
31
37
  },
@@ -74,6 +80,49 @@
74
80
  },
75
81
  "artifact": {
76
82
  "type": "string"
83
+ },
84
+ "critical": {
85
+ "type": "boolean"
86
+ },
87
+ "provenance": {
88
+ "type": "object",
89
+ "properties": {
90
+ "command": {
91
+ "type": "string",
92
+ "minLength": 1
93
+ },
94
+ "exit_code": {
95
+ "type": "integer",
96
+ "minimum": -9007199254740991,
97
+ "maximum": 9007199254740991
98
+ },
99
+ "timestamp_iso": {
100
+ "type": "string",
101
+ "format": "date-time",
102
+ "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))$"
103
+ },
104
+ "commit_sha": {
105
+ "type": "string",
106
+ "pattern": "^[0-9a-f]{7,40}$"
107
+ },
108
+ "artifact_path": {
109
+ "type": "string",
110
+ "minLength": 1
111
+ },
112
+ "artifact_hash": {
113
+ "type": "string",
114
+ "minLength": 1
115
+ }
116
+ },
117
+ "required": [
118
+ "command",
119
+ "exit_code",
120
+ "timestamp_iso",
121
+ "commit_sha",
122
+ "artifact_path",
123
+ "artifact_hash"
124
+ ],
125
+ "additionalProperties": false
77
126
  }
78
127
  },
79
128
  "required": [
@@ -585,6 +634,215 @@
585
634
  ],
586
635
  "additionalProperties": false
587
636
  },
637
+ "token_budget_gates": {
638
+ "default": {
639
+ "require_numeric_efficiency": true,
640
+ "fail_below_percent": 95,
641
+ "telemetry": []
642
+ },
643
+ "type": "object",
644
+ "properties": {
645
+ "max_context_chars": {
646
+ "type": "integer",
647
+ "exclusiveMinimum": 0,
648
+ "maximum": 9007199254740991
649
+ },
650
+ "require_numeric_efficiency": {
651
+ "default": true,
652
+ "type": "boolean"
653
+ },
654
+ "fail_below_percent": {
655
+ "default": 95,
656
+ "type": "number",
657
+ "minimum": 0,
658
+ "maximum": 100
659
+ },
660
+ "telemetry": {
661
+ "default": [],
662
+ "type": "array",
663
+ "items": {
664
+ "type": "object",
665
+ "properties": {
666
+ "mode": {
667
+ "type": "string",
668
+ "enum": [
669
+ "compact",
670
+ "standard",
671
+ "full"
672
+ ]
673
+ },
674
+ "budget_chars": {
675
+ "type": "integer",
676
+ "exclusiveMinimum": 0,
677
+ "maximum": 9007199254740991
678
+ },
679
+ "actual_chars": {
680
+ "type": "integer",
681
+ "minimum": 0,
682
+ "maximum": 9007199254740991
683
+ },
684
+ "efficiency_percent": {
685
+ "type": "number",
686
+ "minimum": 0,
687
+ "maximum": 100
688
+ },
689
+ "gate": {
690
+ "default": "pass",
691
+ "type": "string",
692
+ "enum": [
693
+ "pass",
694
+ "warn",
695
+ "fail"
696
+ ]
697
+ },
698
+ "evidence_ref": {
699
+ "type": "string",
700
+ "minLength": 1
701
+ },
702
+ "notes": {
703
+ "type": "string"
704
+ }
705
+ },
706
+ "required": [
707
+ "gate"
708
+ ],
709
+ "additionalProperties": false
710
+ }
711
+ }
712
+ },
713
+ "required": [
714
+ "require_numeric_efficiency",
715
+ "fail_below_percent",
716
+ "telemetry"
717
+ ],
718
+ "additionalProperties": false
719
+ },
720
+ "runtime_quality_gates": {
721
+ "default": {
722
+ "mode": "observe",
723
+ "performance": [],
724
+ "flakiness": []
725
+ },
726
+ "type": "object",
727
+ "properties": {
728
+ "mode": {
729
+ "default": "observe",
730
+ "type": "string",
731
+ "enum": [
732
+ "observe",
733
+ "enforce"
734
+ ]
735
+ },
736
+ "performance": {
737
+ "default": [],
738
+ "type": "array",
739
+ "items": {
740
+ "type": "object",
741
+ "properties": {
742
+ "command": {
743
+ "type": "string",
744
+ "minLength": 1
745
+ },
746
+ "metric": {
747
+ "default": "duration_ms",
748
+ "type": "string",
749
+ "enum": [
750
+ "duration_ms",
751
+ "p95_ms",
752
+ "memory_mb",
753
+ "cpu_percent"
754
+ ]
755
+ },
756
+ "threshold": {
757
+ "type": "number",
758
+ "minimum": 0
759
+ },
760
+ "actual": {
761
+ "type": "number",
762
+ "minimum": 0
763
+ },
764
+ "gate": {
765
+ "default": "pass",
766
+ "type": "string",
767
+ "enum": [
768
+ "pass",
769
+ "warn",
770
+ "fail"
771
+ ]
772
+ },
773
+ "evidence_ref": {
774
+ "type": "string",
775
+ "minLength": 1
776
+ },
777
+ "notes": {
778
+ "type": "string"
779
+ }
780
+ },
781
+ "required": [
782
+ "command",
783
+ "metric",
784
+ "gate"
785
+ ],
786
+ "additionalProperties": false
787
+ }
788
+ },
789
+ "flakiness": {
790
+ "default": [],
791
+ "type": "array",
792
+ "items": {
793
+ "type": "object",
794
+ "properties": {
795
+ "command": {
796
+ "type": "string",
797
+ "minLength": 1
798
+ },
799
+ "attempts": {
800
+ "type": "integer",
801
+ "exclusiveMinimum": 0,
802
+ "maximum": 9007199254740991
803
+ },
804
+ "failures": {
805
+ "type": "integer",
806
+ "minimum": 0,
807
+ "maximum": 9007199254740991
808
+ },
809
+ "failure_rate_percent": {
810
+ "type": "number",
811
+ "minimum": 0,
812
+ "maximum": 100
813
+ },
814
+ "gate": {
815
+ "default": "pass",
816
+ "type": "string",
817
+ "enum": [
818
+ "pass",
819
+ "warn",
820
+ "fail"
821
+ ]
822
+ },
823
+ "evidence_ref": {
824
+ "type": "string",
825
+ "minLength": 1
826
+ },
827
+ "notes": {
828
+ "type": "string"
829
+ }
830
+ },
831
+ "required": [
832
+ "command",
833
+ "gate"
834
+ ],
835
+ "additionalProperties": false
836
+ }
837
+ }
838
+ },
839
+ "required": [
840
+ "mode",
841
+ "performance",
842
+ "flakiness"
843
+ ],
844
+ "additionalProperties": false
845
+ },
588
846
  "q95_ledger": {
589
847
  "default": {
590
848
  "threshold": 95,
@@ -631,11 +889,15 @@
631
889
  "properties": {
632
890
  "threshold": {
633
891
  "default": 95,
634
- "type": "number"
892
+ "type": "number",
893
+ "minimum": 0,
894
+ "maximum": 100
635
895
  },
636
896
  "score": {
637
897
  "default": 0,
638
- "type": "number"
898
+ "type": "number",
899
+ "minimum": 0,
900
+ "maximum": 100
639
901
  },
640
902
  "status": {
641
903
  "default": "pending",
@@ -662,23 +924,33 @@
662
924
  "properties": {
663
925
  "coverage": {
664
926
  "default": 30,
665
- "type": "number"
927
+ "type": "number",
928
+ "minimum": 0,
929
+ "maximum": 100
666
930
  },
667
931
  "traceability": {
668
932
  "default": 20,
669
- "type": "number"
933
+ "type": "number",
934
+ "minimum": 0,
935
+ "maximum": 100
670
936
  },
671
937
  "integrity": {
672
938
  "default": 20,
673
- "type": "number"
939
+ "type": "number",
940
+ "minimum": 0,
941
+ "maximum": 100
674
942
  },
675
943
  "naming": {
676
944
  "default": 10,
677
- "type": "number"
945
+ "type": "number",
946
+ "minimum": 0,
947
+ "maximum": 100
678
948
  },
679
949
  "token": {
680
950
  "default": 20,
681
- "type": "number"
951
+ "type": "number",
952
+ "minimum": 0,
953
+ "maximum": 100
682
954
  }
683
955
  },
684
956
  "required": [
@@ -724,13 +996,18 @@
724
996
  "type": "object",
725
997
  "properties": {
726
998
  "raw_score": {
727
- "type": "number"
999
+ "type": "number",
1000
+ "minimum": 0,
1001
+ "maximum": 100
728
1002
  },
729
1003
  "weighted_score": {
730
- "type": "number"
1004
+ "type": "number",
1005
+ "minimum": 0,
1006
+ "maximum": 100
731
1007
  },
732
1008
  "rationale": {
733
- "type": "string"
1009
+ "type": "string",
1010
+ "minLength": 1
734
1011
  }
735
1012
  },
736
1013
  "required": [
@@ -744,13 +1021,18 @@
744
1021
  "type": "object",
745
1022
  "properties": {
746
1023
  "raw_score": {
747
- "type": "number"
1024
+ "type": "number",
1025
+ "minimum": 0,
1026
+ "maximum": 100
748
1027
  },
749
1028
  "weighted_score": {
750
- "type": "number"
1029
+ "type": "number",
1030
+ "minimum": 0,
1031
+ "maximum": 100
751
1032
  },
752
1033
  "rationale": {
753
- "type": "string"
1034
+ "type": "string",
1035
+ "minLength": 1
754
1036
  }
755
1037
  },
756
1038
  "required": [
@@ -764,13 +1046,18 @@
764
1046
  "type": "object",
765
1047
  "properties": {
766
1048
  "raw_score": {
767
- "type": "number"
1049
+ "type": "number",
1050
+ "minimum": 0,
1051
+ "maximum": 100
768
1052
  },
769
1053
  "weighted_score": {
770
- "type": "number"
1054
+ "type": "number",
1055
+ "minimum": 0,
1056
+ "maximum": 100
771
1057
  },
772
1058
  "rationale": {
773
- "type": "string"
1059
+ "type": "string",
1060
+ "minLength": 1
774
1061
  }
775
1062
  },
776
1063
  "required": [
@@ -784,13 +1071,18 @@
784
1071
  "type": "object",
785
1072
  "properties": {
786
1073
  "raw_score": {
787
- "type": "number"
1074
+ "type": "number",
1075
+ "minimum": 0,
1076
+ "maximum": 100
788
1077
  },
789
1078
  "weighted_score": {
790
- "type": "number"
1079
+ "type": "number",
1080
+ "minimum": 0,
1081
+ "maximum": 100
791
1082
  },
792
1083
  "rationale": {
793
- "type": "string"
1084
+ "type": "string",
1085
+ "minLength": 1
794
1086
  }
795
1087
  },
796
1088
  "required": [
@@ -804,13 +1096,18 @@
804
1096
  "type": "object",
805
1097
  "properties": {
806
1098
  "raw_score": {
807
- "type": "number"
1099
+ "type": "number",
1100
+ "minimum": 0,
1101
+ "maximum": 100
808
1102
  },
809
1103
  "weighted_score": {
810
- "type": "number"
1104
+ "type": "number",
1105
+ "minimum": 0,
1106
+ "maximum": 100
811
1107
  },
812
1108
  "rationale": {
813
- "type": "string"
1109
+ "type": "string",
1110
+ "minLength": 1
814
1111
  }
815
1112
  },
816
1113
  "required": [
@@ -859,6 +1156,8 @@
859
1156
  "exceptions",
860
1157
  "remediation_policy",
861
1158
  "traceability",
1159
+ "token_budget_gates",
1160
+ "runtime_quality_gates",
862
1161
  "q95_ledger"
863
1162
  ],
864
1163
  "additionalProperties": false,