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.
- package/README.md +26 -20
- package/assets/README.md +115 -36
- package/assets/README.zh-CN.md +33 -27
- package/assets/agents/AGENTS_CORE.md +6 -6
- package/assets/skills/context_development_engineer/SKILL.md +6 -6
- package/assets/skills/context_uiux_design/SKILL.md +5 -5
- package/assets/skills/design-resource-authoring/SKILL.md +4 -3
- package/assets/skills/design-resource-authoring/references/downstream-handoff.md +9 -6
- package/assets/skills/design-resource-authoring/references/resource-selection.md +3 -2
- package/assets/skills/long-task-workflow/SKILL.md +16 -16
- package/assets/skills/long-task-workflow/references/authority-lifecycle.md +8 -6
- package/assets/skills/long-task-workflow/references/contract-authoring.md +18 -14
- package/assets/skills/long-task-workflow/references/evidence-design.md +15 -14
- package/assets/skills/long-task-workflow/references/source-authoring.md +12 -9
- package/assets/skills/source-plan-authoring/SKILL.md +1 -1
- package/dist/commands/long-task-authoring.js +83 -9
- package/dist/lib/context-graph-snapshot.js +7 -0
- package/dist/lib/design-resource-fact-policy.d.ts +25 -0
- package/dist/lib/design-resource-fact-policy.js +35 -0
- package/dist/lib/design-resource-handoff-shape-evidence.d.ts +3 -1
- package/dist/lib/design-resource-handoff-shape-evidence.js +60 -0
- package/dist/lib/design-resource-handoff-shape.js +5 -1
- package/dist/lib/design-resource-handoff-types.d.ts +29 -0
- package/dist/lib/design-resource-handoff-validation-coverage.d.ts +1 -1
- package/dist/lib/design-resource-handoff-validation-coverage.js +42 -14
- package/dist/lib/design-resource-handoff-validation-facts.d.ts +2 -0
- package/dist/lib/design-resource-handoff-validation-facts.js +97 -0
- package/dist/lib/design-resource-handoff-validation-structure.js +2 -0
- package/dist/lib/design-resource-handoff-validation.js +10 -1
- package/dist/lib/execution-target-capabilities.d.ts +2 -0
- package/dist/lib/execution-target-capabilities.js +31 -0
- package/dist/lib/long-task-acceptance-shape.js +81 -20
- package/dist/lib/long-task-applicability-shape.d.ts +4 -0
- package/dist/lib/long-task-applicability-shape.js +54 -0
- package/dist/lib/long-task-assertions-v2.js +8 -0
- package/dist/lib/long-task-authoring-preflight-diagnostics.js +5 -0
- package/dist/lib/long-task-authoring-preflight-repair-order.js +3 -0
- package/dist/lib/long-task-authoring-preflight.js +12 -8
- package/dist/lib/long-task-authority-materials.js +46 -4
- package/dist/lib/long-task-authority-policy.d.ts +54 -0
- package/dist/lib/long-task-authority-policy.js +61 -0
- package/dist/lib/long-task-authority-types.d.ts +12 -2
- package/dist/lib/long-task-authority.js +9 -2
- package/dist/lib/long-task-check-shape.js +6 -1
- package/dist/lib/long-task-claim-definitions.js +27 -42
- package/dist/lib/long-task-claims.js +275 -146
- package/dist/lib/long-task-contract-types.d.ts +42 -8
- package/dist/lib/long-task-control-fields.d.ts +12 -0
- package/dist/lib/long-task-control-fields.js +66 -0
- package/dist/lib/long-task-control-types.d.ts +1 -0
- package/dist/lib/long-task-control-types.js +1 -0
- package/dist/lib/long-task-counterfactual-claim-policy.js +7 -0
- package/dist/lib/long-task-counterfactual-types.d.ts +12 -0
- package/dist/lib/long-task-delivery-compiler.js +1 -0
- package/dist/lib/long-task-delivery-preflight.js +24 -0
- package/dist/lib/long-task-delivery-shape.d.ts +1 -0
- package/dist/lib/long-task-delivery-shape.js +1 -0
- package/dist/lib/long-task-delivery-types.d.ts +1 -0
- package/dist/lib/long-task-delivery-types.js +1 -0
- package/dist/lib/long-task-delivery-validation.js +46 -0
- package/dist/lib/long-task-design-resource-handoff.js +67 -13
- package/dist/lib/long-task-evidence-capability-codec.js +47 -0
- package/dist/lib/long-task-evidence-capability-policy.js +80 -38
- package/dist/lib/long-task-evidence-capability-runtime.js +39 -0
- package/dist/lib/long-task-evidence-capability-types.d.ts +14 -1
- package/dist/lib/long-task-evidence-findings.js +3 -0
- package/dist/lib/long-task-evidence-sensitivity-policy.js +38 -0
- package/dist/lib/long-task-evidence-v2.js +7 -1
- package/dist/lib/long-task-final-integrity.d.ts +16 -0
- package/dist/lib/long-task-final-integrity.js +98 -0
- package/dist/lib/long-task-final-v2.js +17 -34
- package/dist/lib/long-task-outcome-parser.js +22 -4
- package/dist/lib/long-task-playwright-case-evidence.d.ts +2 -0
- package/dist/lib/long-task-playwright-case-evidence.js +10 -2
- package/dist/lib/long-task-playwright-evidence.d.ts +1 -0
- package/dist/lib/long-task-playwright-evidence.js +33 -0
- package/dist/lib/long-task-product-shape.d.ts +3 -1
- package/dist/lib/long-task-product-shape.js +100 -4
- package/dist/lib/long-task-requirement-shape.js +3 -0
- package/dist/lib/long-task-root-shape.js +12 -6
- package/dist/lib/long-task-runner-freeze.js +16 -0
- package/dist/lib/long-task-runtime-types.d.ts +11 -2
- package/dist/lib/long-task-semantic-assurance-policy.d.ts +4 -0
- package/dist/lib/long-task-semantic-assurance-policy.js +52 -0
- package/dist/lib/long-task-semantic-contract-types.d.ts +18 -1
- package/dist/lib/long-task-semantic-drift-migration.js +33 -2
- package/dist/lib/long-task-semantic-mutation.d.ts +7 -0
- package/dist/lib/long-task-semantic-mutation.js +81 -0
- package/dist/lib/long-task-shape-primitives.d.ts +1 -1
- package/dist/lib/long-task-shape-primitives.js +1 -0
- package/dist/lib/long-task-source-authority-types.d.ts +2 -0
- package/dist/lib/long-task-source-item-parser.d.ts +1 -1
- package/dist/lib/long-task-source-item-parser.js +150 -104
- package/dist/lib/long-task-source-markers.d.ts +12 -0
- package/dist/lib/long-task-source-markers.js +146 -0
- package/dist/lib/long-task-source-target-continuity.d.ts +1 -1
- package/dist/lib/long-task-source-target-continuity.js +80 -55
- package/dist/lib/long-task-source-target-index.js +7 -29
- package/dist/lib/long-task-status-v2.d.ts +1 -0
- package/dist/lib/long-task-status-v2.js +2 -2
- package/dist/lib/long-task-target-policy.js +20 -0
- package/dist/lib/long-task-ui-design-policy.js +34 -1
- package/dist/lib/long-task-ui-surface-shape.js +33 -2
- package/dist/lib/long-task-ui-surface-types.d.ts +8 -0
- package/dist/lib/long-task-verification-preview.d.ts +10 -0
- package/dist/lib/long-task-verifier-dependency-closure.d.ts +3 -0
- package/dist/lib/long-task-verifier-dependency-closure.js +179 -0
- package/dist/lib/long-task-verifier-v2.js +12 -2
- package/dist/lib/long-task-workspace.js +5 -1
- package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +101 -25
- 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": { "
|
|
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
|
-
"
|
|
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/
|
|
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/
|
|
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/
|
|
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", "
|
|
206
|
-
"properties": { "key": { "$ref": "#/$defs/key" }, "surface": { "type": "string", "default": "" }, "region": { "type": "string", "default": "" }, "location": { "
|
|
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/
|
|
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.
|
|
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",
|