project-tiny-context-harness 0.8.1 → 0.8.3

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 (111) hide show
  1. package/README.md +26 -20
  2. package/assets/README.md +115 -36
  3. package/assets/README.zh-CN.md +33 -27
  4. package/assets/agents/AGENTS_CORE.md +6 -6
  5. package/assets/skills/context_development_engineer/SKILL.md +6 -6
  6. package/assets/skills/context_uiux_design/SKILL.md +5 -5
  7. package/assets/skills/design-resource-authoring/SKILL.md +4 -3
  8. package/assets/skills/design-resource-authoring/references/downstream-handoff.md +9 -6
  9. package/assets/skills/design-resource-authoring/references/resource-selection.md +3 -2
  10. package/assets/skills/long-task-workflow/SKILL.md +16 -16
  11. package/assets/skills/long-task-workflow/references/authority-lifecycle.md +8 -6
  12. package/assets/skills/long-task-workflow/references/contract-authoring.md +18 -14
  13. package/assets/skills/long-task-workflow/references/evidence-design.md +15 -14
  14. package/assets/skills/long-task-workflow/references/source-authoring.md +12 -9
  15. package/assets/skills/source-plan-authoring/SKILL.md +1 -1
  16. package/dist/commands/long-task-authoring.js +83 -9
  17. package/dist/lib/context-graph-snapshot.js +7 -0
  18. package/dist/lib/design-resource-fact-policy.d.ts +25 -0
  19. package/dist/lib/design-resource-fact-policy.js +35 -0
  20. package/dist/lib/design-resource-handoff-shape-evidence.d.ts +3 -1
  21. package/dist/lib/design-resource-handoff-shape-evidence.js +60 -0
  22. package/dist/lib/design-resource-handoff-shape.js +5 -1
  23. package/dist/lib/design-resource-handoff-types.d.ts +29 -0
  24. package/dist/lib/design-resource-handoff-validation-coverage.d.ts +1 -1
  25. package/dist/lib/design-resource-handoff-validation-coverage.js +42 -14
  26. package/dist/lib/design-resource-handoff-validation-facts.d.ts +2 -0
  27. package/dist/lib/design-resource-handoff-validation-facts.js +97 -0
  28. package/dist/lib/design-resource-handoff-validation-structure.js +2 -0
  29. package/dist/lib/design-resource-handoff-validation.js +10 -1
  30. package/dist/lib/execution-target-capabilities.d.ts +2 -0
  31. package/dist/lib/execution-target-capabilities.js +31 -0
  32. package/dist/lib/long-task-acceptance-shape.js +81 -20
  33. package/dist/lib/long-task-applicability-shape.d.ts +4 -0
  34. package/dist/lib/long-task-applicability-shape.js +54 -0
  35. package/dist/lib/long-task-assertions-v2.js +8 -0
  36. package/dist/lib/long-task-authoring-preflight-diagnostics.js +5 -0
  37. package/dist/lib/long-task-authoring-preflight-repair-order.js +3 -0
  38. package/dist/lib/long-task-authoring-preflight.js +12 -8
  39. package/dist/lib/long-task-authority-materials.js +46 -4
  40. package/dist/lib/long-task-authority-policy.d.ts +54 -0
  41. package/dist/lib/long-task-authority-policy.js +61 -0
  42. package/dist/lib/long-task-authority-types.d.ts +12 -2
  43. package/dist/lib/long-task-authority.js +9 -2
  44. package/dist/lib/long-task-check-shape.js +6 -1
  45. package/dist/lib/long-task-claim-definitions.js +27 -42
  46. package/dist/lib/long-task-claims.js +275 -146
  47. package/dist/lib/long-task-contract-types.d.ts +42 -8
  48. package/dist/lib/long-task-control-fields.d.ts +12 -0
  49. package/dist/lib/long-task-control-fields.js +66 -0
  50. package/dist/lib/long-task-control-types.d.ts +1 -0
  51. package/dist/lib/long-task-control-types.js +1 -0
  52. package/dist/lib/long-task-counterfactual-claim-policy.js +7 -0
  53. package/dist/lib/long-task-counterfactual-types.d.ts +12 -0
  54. package/dist/lib/long-task-delivery-compiler.js +1 -0
  55. package/dist/lib/long-task-delivery-preflight.js +24 -0
  56. package/dist/lib/long-task-delivery-shape.d.ts +1 -0
  57. package/dist/lib/long-task-delivery-shape.js +1 -0
  58. package/dist/lib/long-task-delivery-types.d.ts +1 -0
  59. package/dist/lib/long-task-delivery-types.js +1 -0
  60. package/dist/lib/long-task-delivery-validation.js +46 -0
  61. package/dist/lib/long-task-design-resource-handoff.js +67 -13
  62. package/dist/lib/long-task-evidence-capability-codec.js +47 -0
  63. package/dist/lib/long-task-evidence-capability-policy.js +80 -38
  64. package/dist/lib/long-task-evidence-capability-runtime.js +39 -0
  65. package/dist/lib/long-task-evidence-capability-types.d.ts +14 -1
  66. package/dist/lib/long-task-evidence-findings.js +3 -0
  67. package/dist/lib/long-task-evidence-sensitivity-policy.js +38 -0
  68. package/dist/lib/long-task-evidence-v2.js +7 -1
  69. package/dist/lib/long-task-final-integrity.d.ts +16 -0
  70. package/dist/lib/long-task-final-integrity.js +98 -0
  71. package/dist/lib/long-task-final-v2.js +17 -34
  72. package/dist/lib/long-task-outcome-parser.js +22 -4
  73. package/dist/lib/long-task-playwright-case-evidence.d.ts +2 -0
  74. package/dist/lib/long-task-playwright-case-evidence.js +10 -2
  75. package/dist/lib/long-task-playwright-evidence.d.ts +1 -0
  76. package/dist/lib/long-task-playwright-evidence.js +33 -0
  77. package/dist/lib/long-task-product-shape.d.ts +3 -1
  78. package/dist/lib/long-task-product-shape.js +100 -4
  79. package/dist/lib/long-task-requirement-shape.js +3 -0
  80. package/dist/lib/long-task-root-shape.js +12 -6
  81. package/dist/lib/long-task-runner-freeze.js +16 -0
  82. package/dist/lib/long-task-runtime-types.d.ts +11 -2
  83. package/dist/lib/long-task-semantic-assurance-policy.d.ts +4 -0
  84. package/dist/lib/long-task-semantic-assurance-policy.js +52 -0
  85. package/dist/lib/long-task-semantic-contract-types.d.ts +18 -1
  86. package/dist/lib/long-task-semantic-drift-migration.js +33 -2
  87. package/dist/lib/long-task-semantic-mutation.d.ts +7 -0
  88. package/dist/lib/long-task-semantic-mutation.js +81 -0
  89. package/dist/lib/long-task-shape-primitives.d.ts +1 -1
  90. package/dist/lib/long-task-shape-primitives.js +1 -0
  91. package/dist/lib/long-task-source-authority-types.d.ts +2 -0
  92. package/dist/lib/long-task-source-item-parser.d.ts +1 -1
  93. package/dist/lib/long-task-source-item-parser.js +150 -104
  94. package/dist/lib/long-task-source-markers.d.ts +12 -0
  95. package/dist/lib/long-task-source-markers.js +146 -0
  96. package/dist/lib/long-task-source-target-continuity.d.ts +1 -1
  97. package/dist/lib/long-task-source-target-continuity.js +80 -55
  98. package/dist/lib/long-task-source-target-index.js +7 -29
  99. package/dist/lib/long-task-status-v2.d.ts +1 -0
  100. package/dist/lib/long-task-status-v2.js +2 -2
  101. package/dist/lib/long-task-target-policy.js +20 -0
  102. package/dist/lib/long-task-ui-design-policy.js +34 -1
  103. package/dist/lib/long-task-ui-surface-shape.js +33 -2
  104. package/dist/lib/long-task-ui-surface-types.d.ts +8 -0
  105. package/dist/lib/long-task-verification-preview.d.ts +10 -0
  106. package/dist/lib/long-task-verifier-dependency-closure.d.ts +3 -0
  107. package/dist/lib/long-task-verifier-dependency-closure.js +179 -0
  108. package/dist/lib/long-task-verifier-v2.js +12 -2
  109. package/dist/lib/long-task-workspace.js +5 -1
  110. package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +101 -25
  111. package/package.json +2 -2
@@ -19,7 +19,7 @@
19
19
  "execution_targets": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/executionTarget" } },
20
20
  "source_paths": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/nonEmpty" } },
21
21
  "context_refs": { "$ref": "#/$defs/nonEmptyStrings" },
22
- "context_snapshot_mode": { "enum": ["referenced", "full"], "default": "referenced" }
22
+ "context_snapshot_mode": { "const": "full", "default": "full" }
23
23
  }
24
24
  },
25
25
  "source_claims": {
@@ -39,8 +39,11 @@
39
39
  ],
40
40
  "$defs": {
41
41
  "key": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
42
+ "designFactKey": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*$" },
43
+ "designFactRefs": { "type": "array", "items": { "$ref": "#/$defs/designFactKey" }, "uniqueItems": true },
42
44
  "nonEmpty": { "type": "string", "minLength": 1 },
43
45
  "nonEmptyStrings": { "type": "array", "items": { "$ref": "#/$defs/nonEmpty" } },
46
+ "executionTargetCapability": { "enum": ["browser-runtime", "native-runtime", "desktop-runtime", "service-runtime", "process-runtime", "external-runtime", "cold-start", "production-root", "pointer-input", "keyboard-input", "touch-input", "viewport-control", "pixel-density-observation", "safe-area-observation", "motion-observation", "reduced-motion", "color-scheme-control", "text-scale-control", "assistive-technology", "screen-reader", "physical-device", "device-orientation", "sensor-input", "camera-input", "haptic-output", "thermal-observation", "power-mode-control", "persistent-storage", "network-boundary"] },
44
47
  "targetProfile": {
45
48
  "type": "object",
46
49
  "additionalProperties": false,
@@ -55,13 +58,14 @@
55
58
  "executionTarget": {
56
59
  "type": "object",
57
60
  "additionalProperties": false,
58
- "required": ["key", "description", "role", "runtime_family", "root_entrypoint"],
61
+ "required": ["key", "description", "role", "runtime_family", "root_entrypoint", "capabilities"],
59
62
  "properties": {
60
63
  "key": { "$ref": "#/$defs/key" },
61
64
  "description": { "$ref": "#/$defs/nonEmpty" },
62
65
  "role": { "enum": ["product", "support", "observer"] },
63
66
  "runtime_family": { "enum": ["browser", "native", "desktop", "service", "process", "external"] },
64
- "root_entrypoint": { "$ref": "#/$defs/nonEmpty" }
67
+ "root_entrypoint": { "$ref": "#/$defs/nonEmpty" },
68
+ "capabilities": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/executionTargetCapability" } }
65
69
  }
66
70
  },
67
71
  "stage": {
@@ -81,6 +85,29 @@
81
85
  "required": ["key", "statement"],
82
86
  "properties": { "key": { "$ref": "#/$defs/key" }, "statement": { "$ref": "#/$defs/nonEmpty" } }
83
87
  },
88
+ "applicableStatement": {
89
+ "type": "object",
90
+ "additionalProperties": false,
91
+ "required": ["key", "statement", "applicability_refs"],
92
+ "properties": {
93
+ "key": { "$ref": "#/$defs/key" },
94
+ "statement": { "$ref": "#/$defs/nonEmpty" },
95
+ "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } }
96
+ }
97
+ },
98
+ "claimApplicability": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "required": ["key", "target_ref", "journey_role", "dimensions", "given_refs", "when_refs"],
102
+ "properties": {
103
+ "key": { "$ref": "#/$defs/key" },
104
+ "target_ref": { "$ref": "#/$defs/key" },
105
+ "journey_role": { "enum": ["success", "degradation", "recovery", "stage_gate", "conformance"] },
106
+ "dimensions": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["key", "value"], "properties": { "key": { "$ref": "#/$defs/key" }, "value": { "$ref": "#/$defs/key" } } } },
107
+ "given_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } },
108
+ "when_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } }
109
+ }
110
+ },
84
111
  "keyedPath": {
85
112
  "type": "object",
86
113
  "additionalProperties": false,
@@ -134,14 +161,15 @@
134
161
  "type": "object",
135
162
  "additionalProperties": false,
136
163
  "properties": {
137
- "product": { "type": "object", "additionalProperties": false, "properties": { "non_goals": { "type": "array", "items": { "$ref": "#/$defs/keyedStatement" }, "default": [] } }, "default": {} },
164
+ "applicability": { "type": "array", "items": { "$ref": "#/$defs/claimApplicability" }, "default": [] },
165
+ "product": { "type": "object", "additionalProperties": false, "properties": { "non_goals": { "type": "array", "items": { "$ref": "#/$defs/applicableStatement" }, "default": [] } }, "default": {} },
138
166
  "technical": {
139
167
  "type": "object",
140
168
  "additionalProperties": false,
141
169
  "properties": {
142
- "constraints": { "type": "array", "items": { "$ref": "#/$defs/keyedStatement" }, "default": [] },
170
+ "constraints": { "type": "array", "items": { "$ref": "#/$defs/applicableStatement" }, "default": [] },
143
171
  "forbidden_paths": { "type": "array", "items": { "$ref": "#/$defs/keyedPath" }, "default": [] },
144
- "forbidden_shortcuts": { "type": "array", "items": { "$ref": "#/$defs/keyedStatement" }, "default": [] }
172
+ "forbidden_shortcuts": { "type": "array", "items": { "$ref": "#/$defs/applicableStatement" }, "default": [] }
145
173
  },
146
174
  "default": {}
147
175
  },
@@ -160,12 +188,13 @@
160
188
  "outcome": {
161
189
  "type": "object",
162
190
  "additionalProperties": false,
163
- "required": ["key", "title", "stage", "product", "technical", "acceptance"],
191
+ "required": ["key", "title", "stage", "applicability", "product", "technical", "acceptance"],
164
192
  "properties": {
165
193
  "key": { "$ref": "#/$defs/key" },
166
194
  "title": { "$ref": "#/$defs/nonEmpty" },
167
195
  "stage": { "$ref": "#/$defs/key" },
168
196
  "depends_on": { "$ref": "#/$defs/keys", "default": [] },
197
+ "applicability": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/claimApplicability" } },
169
198
  "product": { "$ref": "#/$defs/product" },
170
199
  "technical": { "$ref": "#/$defs/technical" },
171
200
  "acceptance": { "$ref": "#/$defs/acceptance" }
@@ -174,17 +203,20 @@
174
203
  "product": {
175
204
  "type": "object",
176
205
  "additionalProperties": false,
177
- "required": ["observable_result", "success_path_required", "degradation_path_required", "owner"],
206
+ "required": ["observable_result", "result_applicability_refs", "success_path_required", "degradation_path_required", "owner", "control_relation_closure"],
178
207
  "properties": {
179
208
  "observable_result": { "$ref": "#/$defs/nonEmpty" },
209
+ "result_applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } },
180
210
  "success_path_required": { "type": "boolean" },
181
211
  "degradation_path_required": { "type": "boolean" },
182
212
  "owner": { "type": "object", "additionalProperties": false, "required": ["label", "context_refs", "path_globs"], "properties": { "label": { "$ref": "#/$defs/nonEmpty" }, "context_refs": { "$ref": "#/$defs/nonEmptyStrings" }, "path_globs": { "$ref": "#/$defs/nonEmptyStrings" } } },
183
213
  "requirements": { "type": "array", "items": { "$ref": "#/$defs/requirement" }, "default": [] },
184
214
  "owner_surfaces": { "$ref": "#/$defs/nonEmptyStrings", "default": [] },
185
215
  "controls": { "type": "array", "items": { "$ref": "#/$defs/control" }, "default": [] },
216
+ "control_relation_closure": { "$ref": "#/$defs/controlRelationClosure" },
217
+ "control_relations": { "type": "array", "items": { "$ref": "#/$defs/controlRelation" }, "default": [] },
186
218
  "surface_bindings": { "type": "array", "items": { "$ref": "#/$defs/surfaceBinding" }, "default": [] },
187
- "non_completing_outcomes": { "type": "array", "items": { "$ref": "#/$defs/keyedStatement" }, "default": [] }
219
+ "non_completing_outcomes": { "type": "array", "items": { "$ref": "#/$defs/applicableStatement" }, "default": [] }
188
220
  },
189
221
  "allOf": [
190
222
  {
@@ -196,14 +228,43 @@
196
228
  "requirement": {
197
229
  "type": "object",
198
230
  "additionalProperties": false,
199
- "required": ["key", "statement", "required_proof_surfaces"],
200
- "properties": { "key": { "$ref": "#/$defs/key" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "required_proof_surfaces": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/proofSurface" } } }
231
+ "required": ["key", "statement", "required_proof_surfaces", "applicability_refs"],
232
+ "properties": { "key": { "$ref": "#/$defs/key" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "required_proof_surfaces": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/proofSurface" } }, "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } } }
201
233
  },
202
234
  "control": {
203
235
  "type": "object",
204
236
  "additionalProperties": false,
205
- "required": ["key", "location"],
206
- "properties": { "key": { "$ref": "#/$defs/key" }, "surface": { "type": "string", "default": "" }, "region": { "type": "string", "default": "" }, "location": { "$ref": "#/$defs/nonEmpty" }, "control_type": { "type": "string", "default": "" }, "label_content": { "type": "string", "default": "" }, "user_task": { "type": "string", "default": "" }, "visibility": { "type": "string", "default": "" }, "availability": { "type": "string", "default": "" }, "trigger": { "type": "string", "default": "" }, "input": { "type": "string", "default": "" }, "validation": { "type": "string", "default": "" }, "default_value": { "type": "string", "default": "" }, "interaction": { "type": "string", "default": "" }, "navigation_result": { "type": "string", "default": "" }, "loading_state": { "type": "string", "default": "" }, "empty_state": { "type": "string", "default": "" }, "success_state": { "type": "string", "default": "" }, "failure_state": { "type": "string", "default": "" }, "recovery": { "type": "string", "default": "" }, "permission": { "type": "string", "default": "" }, "feedback": { "type": "string", "default": "" }, "accessibility": { "type": "string", "default": "" } }
237
+ "required": ["key", "field_coverage"],
238
+ "properties": { "key": { "$ref": "#/$defs/key" }, "surface": { "type": "string", "default": "" }, "region": { "type": "string", "default": "" }, "location": { "type": "string", "default": "" }, "control_type": { "type": "string", "default": "" }, "label_content": { "type": "string", "default": "" }, "user_task": { "type": "string", "default": "" }, "visibility": { "type": "string", "default": "" }, "availability": { "type": "string", "default": "" }, "trigger": { "type": "string", "default": "" }, "input": { "type": "string", "default": "" }, "validation": { "type": "string", "default": "" }, "default_value": { "type": "string", "default": "" }, "interaction": { "type": "string", "default": "" }, "navigation_result": { "type": "string", "default": "" }, "loading_state": { "type": "string", "default": "" }, "empty_state": { "type": "string", "default": "" }, "success_state": { "type": "string", "default": "" }, "failure_state": { "type": "string", "default": "" }, "recovery": { "type": "string", "default": "" }, "permission": { "type": "string", "default": "" }, "feedback": { "type": "string", "default": "" }, "accessibility": { "type": "string", "default": "" }, "field_coverage": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/controlFieldCoverage" } } }
239
+ },
240
+ "controlField": {
241
+ "enum": ["surface", "region", "location", "control_type", "label_content", "user_task", "visibility", "availability", "trigger", "input", "validation", "default_value", "interaction", "navigation_result", "loading_state", "empty_state", "success_state", "failure_state", "recovery", "permission", "feedback", "accessibility"]
242
+ },
243
+ "controlFieldCoverage": {
244
+ "oneOf": [
245
+ { "type": "object", "additionalProperties": false, "required": ["fields", "state", "applicability_refs"], "properties": { "fields": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/controlField" } }, "state": { "const": "specified" }, "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } } } },
246
+ { "type": "object", "additionalProperties": false, "required": ["fields", "state", "statement", "applicability_refs"], "properties": { "fields": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/controlField" } }, "state": { "const": "not_applicable" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } } } },
247
+ { "type": "object", "additionalProperties": false, "required": ["fields", "state", "statement"], "properties": { "fields": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/controlField" } }, "state": { "const": "unresolved" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "applicability_refs": { "type": "array", "maxItems": 0 } } }
248
+ ]
249
+ },
250
+ "controlRelationClosure": {
251
+ "oneOf": [
252
+ { "type": "object", "additionalProperties": false, "required": ["state", "statement", "applicability_refs"], "properties": { "state": { "const": "specified" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } } } },
253
+ { "type": "object", "additionalProperties": false, "required": ["state", "statement", "applicability_refs"], "properties": { "state": { "const": "not_applicable" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } } } },
254
+ { "type": "object", "additionalProperties": false, "required": ["state", "statement"], "properties": { "state": { "const": "unresolved" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "applicability_refs": { "type": "array", "maxItems": 0 } } }
255
+ ]
256
+ },
257
+ "controlRelation": {
258
+ "type": "object",
259
+ "additionalProperties": false,
260
+ "required": ["key", "statement", "control_refs", "required_proof_surfaces", "applicability_refs"],
261
+ "properties": {
262
+ "key": { "$ref": "#/$defs/key" },
263
+ "statement": { "$ref": "#/$defs/nonEmpty" },
264
+ "control_refs": { "type": "array", "minItems": 2, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } },
265
+ "required_proof_surfaces": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/proofSurface" } },
266
+ "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } }
267
+ }
207
268
  },
208
269
  "surfaceBinding": {
209
270
  "type": "object",
@@ -241,10 +302,11 @@
241
302
  "items": {
242
303
  "type": "object",
243
304
  "additionalProperties": false,
244
- "required": ["method", "assertion_ref"],
305
+ "required": ["method", "assertion_ref", "evidence_artifacts"],
245
306
  "properties": {
246
307
  "method": { "$ref": "#/$defs/designVerificationMethod" },
247
- "assertion_ref": { "$ref": "#/$defs/key" }
308
+ "assertion_ref": { "$ref": "#/$defs/key" },
309
+ "evidence_artifacts": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["condition_key", "path", "observation_path", "fact_refs"], "properties": { "condition_key": { "$ref": "#/$defs/key" }, "path": { "$ref": "#/$defs/nonEmpty" }, "observation_path": { "$ref": "#/$defs/nonEmpty" }, "fact_refs": { "$ref": "#/$defs/designFactRefs" } } } }
248
310
  }
249
311
  }
250
312
  },
@@ -255,13 +317,14 @@
255
317
  "designAcceptanceBlocker": {
256
318
  "type": "object",
257
319
  "additionalProperties": false,
258
- "required": ["key", "status", "refs", "source_item_refs", "verification_methods", "rationale"],
320
+ "required": ["key", "status", "refs", "source_item_refs", "verification_methods", "required_capabilities", "rationale"],
259
321
  "properties": {
260
322
  "key": { "$ref": "#/$defs/key" },
261
323
  "status": { "enum": ["machine_claim", "external_confirmation"] },
262
324
  "refs": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/nonEmpty" } },
263
325
  "source_item_refs": { "$ref": "#/$defs/nonEmptyStrings" },
264
326
  "verification_methods": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/designVerificationMethod" } },
327
+ "required_capabilities": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/executionTargetCapability" } },
265
328
  "rationale": { "$ref": "#/$defs/nonEmpty" }
266
329
  }
267
330
  },
@@ -289,7 +352,7 @@
289
352
  "expected_change_paths": { "$ref": "#/$defs/nonEmptyStrings" },
290
353
  "allowed_support_paths": { "$ref": "#/$defs/nonEmptyStrings", "default": [] },
291
354
  "forbidden_paths": { "$ref": "#/$defs/nonEmptyStrings", "default": [] },
292
- "forbidden_shortcuts": { "type": "array", "items": { "$ref": "#/$defs/keyedStatement" }, "default": [] },
355
+ "forbidden_shortcuts": { "type": "array", "items": { "$ref": "#/$defs/applicableStatement" }, "default": [] },
293
356
  "bindings": { "type": "array", "items": { "$ref": "#/$defs/binding" }, "default": [] },
294
357
  "rollback_and_recovery": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/rollback" }], "default": null }
295
358
  }
@@ -297,8 +360,8 @@
297
360
  "obligation": {
298
361
  "type": "object",
299
362
  "additionalProperties": false,
300
- "required": ["key", "statement", "required_proof_surfaces"],
301
- "properties": { "key": { "$ref": "#/$defs/key" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "required_proof_surfaces": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/proofSurface" } } }
363
+ "required": ["key", "statement", "required_proof_surfaces", "applicability_refs"],
364
+ "properties": { "key": { "$ref": "#/$defs/key" }, "statement": { "$ref": "#/$defs/nonEmpty" }, "required_proof_surfaces": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/proofSurface" } }, "applicability_refs": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/key" } } }
302
365
  },
303
366
  "proofSurface": { "enum": ["ui_browser", "runtime_behavior", "api_contract", "data_state", "security_boundary", "population_coverage", "implementation_structure"] },
304
367
  "binding": {
@@ -366,12 +429,18 @@
366
429
  "key": { "$ref": "#/$defs/key" },
367
430
  "criterion": { "$ref": "#/$defs/nonEmpty" },
368
431
  "claims": { "$ref": "#/$defs/nonEmptyStrings" },
432
+ "applicability_ref": { "$ref": "#/$defs/key" },
369
433
  "observation": { "$ref": "#/$defs/nonEmpty" },
370
434
  "evidence_capabilities": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/evidenceCapability" } },
371
435
  "operator": { "enum": ["equals", "not_equals", "contains", "not_contains", "matches", "not_matches", "greater_than", "greater_or_equal", "less_than", "less_or_equal", "truthy", "falsy", "exists", "set_equals", "subset_of", "superset_of"] },
372
436
  "expected": true
373
437
  },
374
438
  "allOf": [
439
+ {
440
+ "if": { "properties": { "claims": { "minItems": 1 } } },
441
+ "then": { "required": ["applicability_ref"] },
442
+ "else": { "not": { "required": ["applicability_ref"] } }
443
+ },
375
444
  {
376
445
  "if": { "properties": { "operator": { "enum": ["equals", "not_equals", "contains", "not_contains", "matches", "not_matches", "greater_than", "greater_or_equal", "less_than", "less_or_equal", "set_equals", "subset_of", "superset_of"] } } },
377
446
  "then": { "required": ["expected"] }
@@ -403,7 +472,7 @@
403
472
  "when": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/keyedStatement" } }
404
473
  }
405
474
  },
406
- "evidenceCapability": { "enum": ["presence", "interaction_trace", "state_delta", "cross_surface_consistency", "durable_readback", "boundary_invocation", "external_side_effect", "failure_injection", "visual_render", "design_conformance", "target_runtime", "input_variation"] },
475
+ "evidenceCapability": { "enum": ["presence", "interaction_trace", "state_delta", "cross_surface_consistency", "durable_readback", "boundary_invocation", "external_side_effect", "failure_injection", "visual_render", "design_conformance", "design_method", "target_runtime", "input_variation"] },
407
476
  "environment": {
408
477
  "oneOf": [
409
478
  {
@@ -423,15 +492,16 @@
423
492
  "population": {
424
493
  "type": "object",
425
494
  "additionalProperties": false,
426
- "required": ["check_key", "claims", "observations", "exclusion_rules"],
495
+ "required": ["check_key", "universe_binding_key", "claims", "observations", "exclusion_rules"],
427
496
  "properties": {
428
497
  "check_key": { "$ref": "#/$defs/key" },
498
+ "universe_binding_key": { "$ref": "#/$defs/key" },
429
499
  "claims": { "$ref": "#/$defs/nonEmptyStrings" },
430
500
  "observations": {
431
501
  "type": "object",
432
502
  "additionalProperties": false,
433
- "required": ["eligible_ids", "observed_ids", "excluded_items"],
434
- "properties": { "eligible_ids": { "$ref": "#/$defs/nonEmpty" }, "observed_ids": { "$ref": "#/$defs/nonEmpty" }, "excluded_items": { "$ref": "#/$defs/nonEmpty" } }
503
+ "required": ["universe_ids", "eligible_ids", "observed_ids", "excluded_items"],
504
+ "properties": { "universe_ids": { "$ref": "#/$defs/nonEmpty" }, "eligible_ids": { "$ref": "#/$defs/nonEmpty" }, "observed_ids": { "$ref": "#/$defs/nonEmpty" }, "excluded_items": { "$ref": "#/$defs/nonEmpty" } }
435
505
  },
436
506
  "exclusion_rules": { "type": "array", "items": { "$ref": "#/$defs/keyedStatement" } }
437
507
  }
@@ -446,10 +516,13 @@
446
516
  "claims": { "$ref": "#/$defs/nonEmptyStrings" },
447
517
  "check_key": { "$ref": "#/$defs/key" },
448
518
  "expected_assertion_failures": { "$ref": "#/$defs/keys" },
519
+ "preserved_assertions": { "$ref": "#/$defs/keys", "default": [] },
449
520
  "mutation": {
450
521
  "oneOf": [
451
522
  { "type": "object", "additionalProperties": false, "required": ["type", "paths"], "properties": { "type": { "const": "remove_paths" }, "paths": { "$ref": "#/$defs/nonEmptyStrings" } } },
452
- { "type": "object", "additionalProperties": false, "required": ["type", "path", "fixture_path"], "properties": { "type": { "const": "replace_file" }, "path": { "$ref": "#/$defs/nonEmpty" }, "fixture_path": { "$ref": "#/$defs/nonEmpty" } } }
523
+ { "type": "object", "additionalProperties": false, "required": ["type", "path", "fixture_path"], "properties": { "type": { "const": "replace_file" }, "path": { "$ref": "#/$defs/nonEmpty" }, "fixture_path": { "$ref": "#/$defs/nonEmpty" } } },
524
+ { "type": "object", "additionalProperties": false, "required": ["type", "path", "pointer", "value"], "properties": { "type": { "const": "replace_json_value" }, "path": { "$ref": "#/$defs/nonEmpty" }, "pointer": { "type": "string", "pattern": "^/(?:[^~/]|~[01])+(?:/(?:[^~/]|~[01])+)*$" }, "value": true } },
525
+ { "type": "object", "additionalProperties": false, "required": ["type", "path", "match", "replacement"], "properties": { "type": { "const": "replace_text" }, "path": { "$ref": "#/$defs/nonEmpty" }, "match": { "$ref": "#/$defs/nonEmpty" }, "replacement": { "type": "string" } } }
453
526
  ]
454
527
  }
455
528
  }
@@ -464,10 +537,13 @@
464
537
  "claims": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/nonEmpty" } },
465
538
  "check_key": { "$ref": "#/$defs/key" },
466
539
  "expected_assertion_failures": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/key" }, "uniqueItems": true },
540
+ "preserved_assertions": { "$ref": "#/$defs/keys", "default": [] },
467
541
  "mutation": {
468
542
  "oneOf": [
469
543
  { "type": "object", "additionalProperties": false, "required": ["type", "paths"], "properties": { "type": { "const": "remove_paths" }, "paths": { "$ref": "#/$defs/nonEmptyStrings" } } },
470
- { "type": "object", "additionalProperties": false, "required": ["type", "path", "fixture_path"], "properties": { "type": { "const": "replace_file" }, "path": { "$ref": "#/$defs/nonEmpty" }, "fixture_path": { "$ref": "#/$defs/nonEmpty" } } }
544
+ { "type": "object", "additionalProperties": false, "required": ["type", "path", "fixture_path"], "properties": { "type": { "const": "replace_file" }, "path": { "$ref": "#/$defs/nonEmpty" }, "fixture_path": { "$ref": "#/$defs/nonEmpty" } } },
545
+ { "type": "object", "additionalProperties": false, "required": ["type", "path", "pointer", "value"], "properties": { "type": { "const": "replace_json_value" }, "path": { "$ref": "#/$defs/nonEmpty" }, "pointer": { "type": "string", "pattern": "^/(?:[^~/]|~[01])+(?:/(?:[^~/]|~[01])+)*$" }, "value": true } },
546
+ { "type": "object", "additionalProperties": false, "required": ["type", "path", "match", "replacement"], "properties": { "type": { "const": "replace_text" }, "path": { "$ref": "#/$defs/nonEmpty" }, "match": { "$ref": "#/$defs/nonEmpty" }, "replacement": { "type": "string" } } }
471
547
  ]
472
548
  }
473
549
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-tiny-context-harness",
3
- "version": "0.8.1",
3
+ "version": "0.8.3",
4
4
  "description": "Minimal project memory and validation harness for AI coding agents.",
5
5
  "license": "MIT",
6
6
  "author": "Seven128",
@@ -58,7 +58,7 @@
58
58
  "pretest": "npm run build",
59
59
  "test": "npm run test:built",
60
60
  "test:workflow-default:built": "node --test --test-concurrency=1 ../../tests/ty-context/workflow-contract-routing.test.mjs",
61
- "test:delivery-contract:built": "node --test --test-concurrency=1 ../../tests/ty-context/long-task-compact-authoring.test.mjs ../../tests/ty-context/long-task-authoring-claims.test.mjs ../../tests/ty-context/long-task-authoring-preflight.test.mjs ../../tests/ty-context/long-task-authority-authoring-fields.test.mjs ../../tests/ty-context/long-task-playwright-ac-evidence.test.mjs ../../tests/ty-context/long-task-delivery-parser.test.mjs ../../tests/ty-context/long-task-delivery-compiler.test.mjs ../../tests/ty-context/long-task-delivery-risk.test.mjs ../../tests/ty-context/long-task-claim-coverage.test.mjs ../../tests/ty-context/long-task-closure-invariants.test.mjs ../../tests/ty-context/long-task-source-authority-closure.test.mjs ../../tests/ty-context/long-task-evidence-sensitivity-policy.test.mjs ../../tests/ty-context/long-task-global-evidence-sensitivity.test.mjs ../../tests/ty-context/long-task-source-risk-binding.test.mjs ../../tests/ty-context/long-task-non-completing-source.test.mjs ../../tests/ty-context/long-task-playwright-trust-boundary.test.mjs ../../tests/ty-context/long-task-planned-counterfactual.test.mjs ../../tests/ty-context/long-task-public-contract-example.test.mjs ../../tests/ty-context/long-task-release-tarball-contract.test.mjs ../../tests/ty-context/long-task-semantic-drift-closure.test.mjs ../../tests/ty-context/long-task-semantic-drift-lifecycle.test.mjs ../../tests/ty-context/long-task-workspace-scope.test.mjs",
61
+ "test:delivery-contract:built": "node --test --test-concurrency=1 ../../tests/ty-context/long-task-compact-authoring.test.mjs ../../tests/ty-context/long-task-authoring-claims.test.mjs ../../tests/ty-context/long-task-authoring-preflight.test.mjs ../../tests/ty-context/long-task-authority-authoring-fields.test.mjs ../../tests/ty-context/long-task-playwright-ac-evidence.test.mjs ../../tests/ty-context/long-task-delivery-parser.test.mjs ../../tests/ty-context/long-task-delivery-compiler.test.mjs ../../tests/ty-context/long-task-delivery-risk.test.mjs ../../tests/ty-context/long-task-claim-coverage.test.mjs ../../tests/ty-context/long-task-closure-invariants.test.mjs ../../tests/ty-context/long-task-source-authority-closure.test.mjs ../../tests/ty-context/long-task-evidence-sensitivity-policy.test.mjs ../../tests/ty-context/long-task-global-evidence-sensitivity.test.mjs ../../tests/ty-context/long-task-source-risk-binding.test.mjs ../../tests/ty-context/long-task-non-completing-source.test.mjs ../../tests/ty-context/long-task-playwright-trust-boundary.test.mjs ../../tests/ty-context/long-task-planned-counterfactual.test.mjs ../../tests/ty-context/long-task-public-contract-example.test.mjs ../../tests/ty-context/long-task-release-tarball-contract.test.mjs ../../tests/ty-context/long-task-semantic-assurance-closure.test.mjs ../../tests/ty-context/long-task-semantic-drift-closure.test.mjs ../../tests/ty-context/long-task-semantic-drift-lifecycle.test.mjs ../../tests/ty-context/long-task-workspace-scope.test.mjs",
62
62
  "test:delivery-contract": "npm run build && npm run test:delivery-contract:built",
63
63
  "test:long-task-workflow:built": "node ../../tests/ty-context/run-package-suite.mjs long-task",
64
64
  "test:long-task-workflow": "npm run build && npm run test:long-task-workflow:built",