project-tiny-context-harness 0.8.12 → 0.8.16

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 (174) hide show
  1. package/README.md +62 -28
  2. package/assets/README.md +98 -45
  3. package/assets/README.zh-CN.md +68 -32
  4. package/assets/agents/AGENTS_CORE.md +10 -6
  5. package/assets/agents/long-task-implementation.toml +1 -1
  6. package/assets/skills/context_development_engineer/SKILL.md +9 -1
  7. package/assets/skills/design-resource-authoring/SKILL.md +7 -5
  8. package/assets/skills/design-resource-authoring/references/downstream-handoff.md +2 -2
  9. package/assets/skills/design-resource-authoring/references/open-design-provider.md +22 -2
  10. package/assets/skills/design-resource-authoring/references/recovery-and-writeback.md +199 -0
  11. package/assets/skills/design-resource-authoring/references/resource-selection.md +2 -2
  12. package/assets/skills/long-task-workflow/SKILL.md +14 -12
  13. package/assets/skills/long-task-workflow/agents/openai.yaml +1 -1
  14. package/assets/skills/long-task-workflow/references/authority-lifecycle.md +1 -1
  15. package/assets/skills/long-task-workflow/references/contract-authoring.md +27 -22
  16. package/assets/skills/long-task-workflow/references/evidence-design.md +49 -32
  17. package/assets/skills/long-task-workflow/references/source-authoring.md +2 -2
  18. package/dist/commands/design-resource-recovery.d.ts +1 -0
  19. package/dist/commands/design-resource-recovery.js +152 -0
  20. package/dist/commands/design-resource.js +20 -1
  21. package/dist/commands/index.js +1 -1
  22. package/dist/commands/long-task-revision.js +4 -4
  23. package/dist/lib/design-resource-reconciliation-codec.d.ts +2 -0
  24. package/dist/lib/design-resource-reconciliation-codec.js +174 -0
  25. package/dist/lib/design-resource-reconciliation-types.d.ts +62 -0
  26. package/dist/lib/design-resource-reconciliation-types.js +1 -0
  27. package/dist/lib/design-resource-reconciliation.d.ts +3 -0
  28. package/dist/lib/design-resource-reconciliation.js +224 -0
  29. package/dist/lib/design-resource-recovery-authority-policy.d.ts +8 -0
  30. package/dist/lib/design-resource-recovery-authority-policy.js +123 -0
  31. package/dist/lib/design-resource-recovery-catalog-resources.d.ts +6 -0
  32. package/dist/lib/design-resource-recovery-catalog-resources.js +121 -0
  33. package/dist/lib/design-resource-recovery-catalog-shape.d.ts +3 -0
  34. package/dist/lib/design-resource-recovery-catalog-shape.js +104 -0
  35. package/dist/lib/design-resource-recovery-catalog.d.ts +9 -0
  36. package/dist/lib/design-resource-recovery-catalog.js +103 -0
  37. package/dist/lib/design-resource-recovery-cleanup.d.ts +2 -0
  38. package/dist/lib/design-resource-recovery-cleanup.js +11 -0
  39. package/dist/lib/design-resource-recovery-codec-primitives.d.ts +19 -0
  40. package/dist/lib/design-resource-recovery-codec-primitives.js +92 -0
  41. package/dist/lib/design-resource-recovery-codec.d.ts +4 -0
  42. package/dist/lib/design-resource-recovery-codec.js +93 -0
  43. package/dist/lib/design-resource-recovery-current.d.ts +9 -0
  44. package/dist/lib/design-resource-recovery-current.js +41 -0
  45. package/dist/lib/design-resource-recovery-delta-policy.d.ts +5 -0
  46. package/dist/lib/design-resource-recovery-delta-policy.js +108 -0
  47. package/dist/lib/design-resource-recovery-files.d.ts +37 -0
  48. package/dist/lib/design-resource-recovery-files.js +204 -0
  49. package/dist/lib/design-resource-recovery-final-disposition-shape.d.ts +2 -0
  50. package/dist/lib/design-resource-recovery-final-disposition-shape.js +47 -0
  51. package/dist/lib/design-resource-recovery-patch-types.d.ts +54 -0
  52. package/dist/lib/design-resource-recovery-patch-types.js +1 -0
  53. package/dist/lib/design-resource-recovery-replay.d.ts +7 -0
  54. package/dist/lib/design-resource-recovery-replay.js +112 -0
  55. package/dist/lib/design-resource-recovery-repository-bindings.d.ts +9 -0
  56. package/dist/lib/design-resource-recovery-repository-bindings.js +49 -0
  57. package/dist/lib/design-resource-recovery-schema.d.ts +5 -0
  58. package/dist/lib/design-resource-recovery-schema.js +5 -0
  59. package/dist/lib/design-resource-recovery-shape.d.ts +10 -0
  60. package/dist/lib/design-resource-recovery-shape.js +184 -0
  61. package/dist/lib/design-resource-recovery-source-authority.d.ts +5 -0
  62. package/dist/lib/design-resource-recovery-source-authority.js +219 -0
  63. package/dist/lib/design-resource-recovery-text.d.ts +17 -0
  64. package/dist/lib/design-resource-recovery-text.js +186 -0
  65. package/dist/lib/design-resource-recovery-types.d.ts +197 -0
  66. package/dist/lib/design-resource-recovery-types.js +1 -0
  67. package/dist/lib/design-resource-recovery-writeback-policy.d.ts +5 -0
  68. package/dist/lib/design-resource-recovery-writeback-policy.js +326 -0
  69. package/dist/lib/design-resource-recovery-writeback-shape.d.ts +6 -0
  70. package/dist/lib/design-resource-recovery-writeback-shape.js +155 -0
  71. package/dist/lib/design-resource-recovery.d.ts +44 -0
  72. package/dist/lib/design-resource-recovery.js +216 -0
  73. package/dist/lib/long-task-acceptance-shape.js +8 -2
  74. package/dist/lib/long-task-activation-validation.js +13 -3
  75. package/dist/lib/long-task-admitted-observation-records.d.ts +25 -0
  76. package/dist/lib/long-task-admitted-observation-records.js +40 -0
  77. package/dist/lib/long-task-admitted-observation.d.ts +93 -0
  78. package/dist/lib/long-task-admitted-observation.js +201 -0
  79. package/dist/lib/long-task-artifacts.d.ts +1 -0
  80. package/dist/lib/long-task-artifacts.js +1 -0
  81. package/dist/lib/long-task-authority-material-diff.js +1 -0
  82. package/dist/lib/long-task-authority-policy.d.ts +2 -0
  83. package/dist/lib/long-task-authority-policy.js +2 -0
  84. package/dist/lib/long-task-authority-revision-brief.js +3 -1
  85. package/dist/lib/long-task-authority-revision-details.js +3 -1
  86. package/dist/lib/long-task-authority-revision-summary.js +6 -2
  87. package/dist/lib/long-task-authority-revision-types.d.ts +2 -0
  88. package/dist/lib/long-task-authority.js +2 -1
  89. package/dist/lib/long-task-check-execution-policy.js +5 -0
  90. package/dist/lib/long-task-check-runner.d.ts +2 -2
  91. package/dist/lib/long-task-check-runner.js +440 -23
  92. package/dist/lib/long-task-claims.d.ts +18 -0
  93. package/dist/lib/long-task-claims.js +35 -0
  94. package/dist/lib/long-task-compact-structure-targets.js +1 -0
  95. package/dist/lib/long-task-conformance-policy.js +3 -1
  96. package/dist/lib/long-task-counterfactual-claim-policy.d.ts +3 -4
  97. package/dist/lib/long-task-counterfactual-claim-policy.js +11 -3
  98. package/dist/lib/long-task-counterfactual-sandbox.js +1 -0
  99. package/dist/lib/long-task-counterfactual-types.d.ts +2 -0
  100. package/dist/lib/long-task-delivery-compiler.js +2 -0
  101. package/dist/lib/long-task-design-resource-method-binding.js +8 -2
  102. package/dist/lib/long-task-evidence-capability-policy.d.ts +3 -2
  103. package/dist/lib/long-task-evidence-capability-policy.js +114 -8
  104. package/dist/lib/long-task-evidence-capability-runtime.d.ts +5 -2
  105. package/dist/lib/long-task-evidence-capability-runtime.js +149 -5
  106. package/dist/lib/long-task-evidence-sensitivity-policy.d.ts +9 -0
  107. package/dist/lib/long-task-evidence-sensitivity-policy.js +31 -1
  108. package/dist/lib/long-task-evidence-v2.d.ts +4 -4
  109. package/dist/lib/long-task-evidence-v2.js +321 -43
  110. package/dist/lib/long-task-exact-comparison.d.ts +16 -0
  111. package/dist/lib/long-task-exact-comparison.js +28 -0
  112. package/dist/lib/long-task-execution-observation.d.ts +24 -0
  113. package/dist/lib/long-task-execution-observation.js +332 -0
  114. package/dist/lib/long-task-explain-acceptance-link.d.ts +4 -0
  115. package/dist/lib/long-task-explain-acceptance-link.js +4 -0
  116. package/dist/lib/long-task-explain-claim-links.d.ts +2 -0
  117. package/dist/lib/long-task-explain-claim-links.js +2 -0
  118. package/dist/lib/long-task-explain-source-links.d.ts +6 -0
  119. package/dist/lib/long-task-final-v2.js +7 -4
  120. package/dist/lib/long-task-git.d.ts +26 -0
  121. package/dist/lib/long-task-git.js +130 -0
  122. package/dist/lib/long-task-json-pointer-observation.d.ts +59 -0
  123. package/dist/lib/long-task-json-pointer-observation.js +184 -0
  124. package/dist/lib/long-task-observation-artifact.d.ts +8 -0
  125. package/dist/lib/long-task-observation-artifact.js +58 -0
  126. package/dist/lib/long-task-observation-authority.d.ts +17 -0
  127. package/dist/lib/long-task-observation-authority.js +348 -0
  128. package/dist/lib/long-task-paths.js +2 -2
  129. package/dist/lib/long-task-process-observation.d.ts +6 -0
  130. package/dist/lib/long-task-process-observation.js +117 -0
  131. package/dist/lib/long-task-process-runtime-closure.d.ts +13 -0
  132. package/dist/lib/long-task-process-runtime-closure.js +207 -0
  133. package/dist/lib/long-task-progress.js +2 -0
  134. package/dist/lib/long-task-protected-files.d.ts +1 -1
  135. package/dist/lib/long-task-protected-files.js +1 -30
  136. package/dist/lib/long-task-risk.js +8 -3
  137. package/dist/lib/long-task-root-shape.js +10 -1
  138. package/dist/lib/long-task-runner-environment.d.ts +1 -1
  139. package/dist/lib/long-task-runner-environment.js +4 -4
  140. package/dist/lib/long-task-runner-freeze.d.ts +4 -2
  141. package/dist/lib/long-task-runner-freeze.js +128 -28
  142. package/dist/lib/long-task-runtime-types.d.ts +111 -0
  143. package/dist/lib/long-task-scoped-binding.d.ts +13 -0
  144. package/dist/lib/long-task-scoped-binding.js +11 -0
  145. package/dist/lib/long-task-semantic-contract-types.d.ts +1 -0
  146. package/dist/lib/long-task-semantic-fact-contract-closure.js +3 -3
  147. package/dist/lib/long-task-semantic-fact-evidence.d.ts +3 -3
  148. package/dist/lib/long-task-semantic-fact-evidence.js +75 -58
  149. package/dist/lib/long-task-source-claim-validation.js +4 -1
  150. package/dist/lib/long-task-source-target-continuity.d.ts +2 -2
  151. package/dist/lib/long-task-source-target-continuity.js +35 -2
  152. package/dist/lib/long-task-source-target-index.d.ts +3 -0
  153. package/dist/lib/long-task-source-target-index.js +19 -0
  154. package/dist/lib/long-task-stage-policy.js +10 -4
  155. package/dist/lib/long-task-static-observation-freeze.d.ts +83 -0
  156. package/dist/lib/long-task-static-observation-freeze.js +428 -0
  157. package/dist/lib/long-task-status-projection.js +5 -1
  158. package/dist/lib/long-task-target-policy.d.ts +1 -1
  159. package/dist/lib/long-task-target-policy.js +3 -0
  160. package/dist/lib/long-task-verifier-authority.js +2 -0
  161. package/dist/lib/long-task-verifier-dependency-closure.js +7 -3
  162. package/dist/lib/long-task-verifier-v2.js +70 -9
  163. package/dist/lib/long-task-workspace-manifest.d.ts +8 -0
  164. package/dist/lib/long-task-workspace-manifest.js +173 -0
  165. package/dist/lib/long-task-workspace-snapshot.d.ts +8 -0
  166. package/dist/lib/long-task-workspace-snapshot.js +176 -0
  167. package/dist/lib/long-task-workspace.d.ts +5 -26
  168. package/dist/lib/long-task-workspace.js +4 -444
  169. package/dist/lib/repository-path-safety.d.ts +14 -0
  170. package/dist/lib/repository-path-safety.js +126 -0
  171. package/dist/long-task-hook.js +12 -3
  172. package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +53 -8
  173. package/migrations/README.md +77 -0
  174. package/package.json +1 -1
@@ -10,9 +10,9 @@ Read this only while authoring or structurally revising the one `delivery-contra
10
10
  - Every non-decision Source item owns exactly one same-kind, text-identical canonical target; no target may collapse multiple Source items. `out_of_scope` is not a resolution.
11
11
  - A Source AC maps criterion-identically to one named Assertion and proves at least one independently Source-backed non-Result Claim.
12
12
  - At least one `technical_obligation` Source Item has `aspect=architecture`, maps text-identically to a named architecture obligation and is independently provable; a generic Result or unmarked architecture review cannot substitute.
13
- - Missing recommended legacy Source Plan headings or keys never blocks authoring. Raw/mixed inputs enter this Contract Draft immediately; apply `source-authoring.md` alongside mapping until real Source, provenance and markers converge. Missing mandatory Material Source Item markers still blocks Preflight/Compile.
13
+ - Missing headings or keys from a pre-existing planning document never blocks authoring. Raw/mixed inputs enter this Contract Draft immediately; apply `source-authoring.md` alongside mapping until real Source, provenance and markers converge. Missing mandatory Material Source Item markers still blocks Preflight/Compile.
14
14
  - A revised initial proposal and selected design resources are parallel Source inputs. Preserve their stable resource/surface/control/state/target keys, declared conditions, provider/project/run/entry provenance and immutable digest/snapshot; do not flatten visual meaning into an untraceable prose summary.
15
- - `delegated` in a Source Plan is provenance, not a Contract disposition or new Claim kind. An instruction to synthesize, refine, complete, implement or use judgment delegates plan-level authoring, but it does not invent material tradeoff preferences. Before comparative research or a material product, technical, architecture or provider selection, identify the criteria that could change the research scope, candidate set or recommendation. If such a preference is unknown or ambiguous, ask a concise targeted question before research or selection and keep the item `decision_required` until answered; do not impose a fixed questionnaire or re-ask preferences already supplied by the user, Source, Context or controlling constraints.
15
+ - `delegated` in an input proposal is provenance, not a Contract disposition or new Claim kind. An instruction to synthesize, refine, complete, implement or use judgment delegates plan-level authoring, but it does not invent material tradeoff preferences. Before comparative research or a material product, technical, architecture or provider selection, identify the criteria that could change the research scope, candidate set or recommendation. If such a preference is unknown or ambiguous, ask a concise targeted question before research or selection and keep the item `decision_required` until answered; do not impose a fixed questionnaire or re-ask preferences already supplied by the user, Source, Context or controlling constraints.
16
16
  - Once the material preference envelope is clear, use current authoritative or primary evidence for external capability, price, quota, license, compatibility, region, security posture or support claims. When one defensible recommendation exists, record the authoring instruction, preference/evidence or conservative-default basis and exact added meaning in real Source, then preserve that keyed item as ordinary Source of its semantic kind. If ordinary prose is the Source, append the delegated item without rewriting the user's original text; never place the choice only in Contract YAML.
17
17
  - A delegated plan choice is not action authorization. Payment, contracting, production deployment/publication, destructive production mutation, real permission grants, sensitive-data transmission and required legal/security/human approval remain named External Confirmations. Conflicting authority, an explicitly user-reserved choice, a missing material preference or the absence of a defensible recommendation remains `decision_required`; high impact or multiple options with known criteria alone does not.
18
18
  - A rolling implementation blocker is not an External Confirmation merely because work is difficult, delayed or unavailable through the current implementation path. Reclassify or remove machine-verifiable scope only through an explicit marked Source change and protected exact approval; otherwise keep the requirement and revise the implementation/evidence path.
@@ -26,8 +26,8 @@ For every Outcome:
26
26
 
27
27
  - `semantic_fact_bindings.manifest_ref` equals the root manifest key;
28
28
  - `semantic_fact_bindings.facts` is set-equal to that Outcome's manifest Facts. Each row binds one `fact_ref` to exactly the generated `semantic_fact.<fact_ref>` Claim and one matching atomic applicability profile;
29
- - `semantic_fact_bindings.proofs` is set-equal to that Outcome's Fact × required-method obligations. A machine row preserves method, proof surface and all evidence capabilities, binds one owning Check and one single-Claim Assertion at the same applicability, and requires typed `semantic_fact` evidence. An external row binds one typed External Confirmation whose impacts include the full Fact Claim;
30
- - every declared observer resolves to an execution target capable of observing the furthest independently failing boundary; a product/self-reporting proxy cannot impersonate an independent observer;
29
+ - `semantic_fact_bindings.proofs` is set-equal to that Outcome's Fact × required-method obligations. A machine row preserves method, proof surface and all evidence capabilities, binds one owning Check and one single-Claim Assertion at the same applicability, and is legal only when Compile can project it to one package-admitted current-Actual authority. An external row binds one typed External Confirmation whose impacts include the full Fact Claim;
30
+ - every declared observer resolves to an execution target and admitted package adapter capable of observing the furthest independently failing boundary; a project-authored Oracle, product/self-reporting proxy, wrapper or submitted capability record cannot impersonate that observer;
31
31
  - the Claim/Assertion/Check projection must be bijective. Missing, extra, duplicate, reused, narrowed or orphan Fact/proof identities block Authority Lock.
32
32
 
33
33
  The exact invariants are:
@@ -38,6 +38,8 @@ The exact invariants are:
38
38
 
39
39
  Do not copy raw semantic values into Contract, merge multiple atomic facts into one Claim, use one Assertion for several Fact obligations, turn a machine-verifiable Fact external because implementation is difficult, or accept a default/sample/aggregate path. A protected Fact uses digest-only expected authority and a policy-bound redacted/digest observation with no raw persistence. Genuine decision/external authority remains explicit and target-blocking as required.
40
40
 
41
+ Compile derives one internal observation-authority row for each machine proof. Current admission has only two choices: `package_static_json_exact` for plain `exact_value + exact` static implementation/configuration content in a pre-run-frozen UTF-8 JSON production carrier, and `package_process_json_exact` for plain exact output observed while Harness directly spawns the declared `process` product root. Every other proof—including custom/`named_external_tcb` Oracles, project wrappers, protected data, tolerance/mask, custom locators and browser/native/device/layout/pixel/accessibility/motion observations—must be authored as a blocking External Confirmation. This projection is not a new Contract field, Authority, state or registry, and unsupported machine rows fail Compile rather than auto-migrating.
42
+
41
43
  ## Outcome Boundary
42
44
 
43
45
  Create an Outcome only when its result is independently observable, decidable, target-verifiable, dependency-expressible and localizable to its own Claims, Assertions, Checks and owner boundary. Requirement coupling, acceptance/verification-ready projection, targeted verification, precise failure localization, semantic resume and stale-result invalidation are valid reasons to decompose. Outcome boundaries never restrict implementation order. File count, implementation layer, context length, desired parallelism and Agent capacity are not.
@@ -60,16 +62,16 @@ Declare only real applicability, not a blind Cartesian product. Each global or O
60
62
 
61
63
  Declare each Check's `input_paths` and Binding carriers as the smallest sound causal envelope for that Check. Do not use a repository, application or platform root merely because it is convenient: a broad pattern is justified only when any matching change can actually invalidate the declared result. If independent capabilities have different invalidation surfaces or useful feedback boundaries, assign them to the owning Outcomes/Checks rather than making every early Stage gate stale.
62
64
 
63
- Every Counterfactual mutation path must be a current production carrier with a defensible route from the declared target root to the asserted behavior. Review `verify --explain` before an expensive first execution and repair obsolete routes, barrels, fixtures or duplicate Main/Counterfactual invocations. Preflight cannot claim language/runtime reachability from a path name alone; when repository evidence cannot establish that route, the current-execution Counterfactual remains the proof.
65
+ Every Counterfactual mutation path must be a current production carrier with a defensible route from the declared target root to the asserted behavior. A Binding or `input_paths` declaration is not reachability proof. A static-structure proof mutates and observes the frozen structure object itself and cannot be promoted to runtime behavior; a runtime proof requires Harness mutation of the declared carrier, direct execution of the same process product root and package-observed actual change. Declare the expected affected Facts, preserved Facts and allowed fan-out Facts; baseline and mutation must retain the same obligation universe, all expected Facts must change, preserved/liveness Facts must not change and every other change must be listed fan-out. A machine-closing Check with no admitted baseline or mutated observation fails rather than skipping. Review `verify --explain` before an expensive first execution and repair obsolete routes, barrels, fixtures or duplicate Main/Counterfactual invocations.
64
66
 
65
- Declare cheap machine-checkable prerequisites through existing environment requirements and verification inputs. Product/API readiness probes, incremental build caches, streaming phase output, timeout heartbeats and descendant-process cleanup belong to the project-owned runner when they depend on its runtime; do not encode them as Harness business logic.
67
+ Declare cheap machine-checkable prerequisites through existing environment requirements and verification inputs. Product/API readiness probes, incremental build caches, streaming phase output and timeout heartbeats belong to the project-owned runner when they depend on its runtime. The admitted direct-process observer is the narrow exception: Harness owns bounded stdout capture plus process-tree inspection and cleanup because those are part of its host execution TCB; this remains containment rather than an absolute hostile-code sandbox.
66
68
 
67
69
  ## Stage And Target Profile
68
70
 
69
71
  - Declare one ordered `stages` DAG in the same Contract. Every Outcome belongs to exactly one Stage; every Stage names one gate Outcome; the gate transitively depends on every other Outcome in that Stage; and every later Stage Outcome transitively depends on every prerequisite gate.
70
72
  - A Stage Gate is not a second Final Gate or Receipt. It is one or more `stage_gate` Checks owned by the gate Outcome, and its status/frontier is derived from ordinary Outcome Progress.
71
- - A multi-Outcome Stage Gate declares `cross_surface_consistency`. Its runtime record names at least two distinct `surface_ref` values, may use the same runtime target for several pages, and proves one matching state version.
72
- - `task.target_profile` declares `required_state` plus a non-empty, duplicate-free `required_target_refs`. Each ref resolves to a `product` execution target with one bounded runtime family, root entrypoint and explicit capabilities. A required product target declares its family capability plus `cold-start` and `production-root`; every Stage Gate and every `critical_user_path` Outcome provides root `target_runtime` proof for every required ref. Optional support/observer targets never substitute.
73
+ - A multi-Outcome Stage Gate declares `cross_surface_consistency`. Its diagnostic runtime record names at least two distinct `surface_ref` values, may use the same runtime target for several pages and reports one matching state version. Because the current slice has no package derivation for that capability, the owning machine obligation remains a blocking External Confirmation.
74
+ - `task.target_profile` declares `required_state` plus a non-empty, duplicate-free `required_target_refs`. Each ref resolves to a `product` execution target with one bounded runtime family, root entrypoint, complete `root_argv` and explicit capabilities. Give every required target one Source technical obligation whose canonical target is `execution_target.<key>` and whose exact normalized statement preserves key, role, family, root, complete argv and capabilities; the Source Claim disposition, execution target and production Binding must agree. A required process root and every argv path admitted by the finite production-Binding match belong to the production owner and a Binding, not merely to the runner, a fixture, verification input or `input_paths`. The match examines a standalone argument or explicit `--key=value`, resolves a safe repository-relative value from declared `cwd`, and accepts exact or pattern Binding coverage, including glob-owned and extensionless files. Unmatched safe relative values are labels/outputs rather than inferred dependencies and are not copied. Absolute paths, repository escapes, `file:` URLs and network URLs fail closed unless explicitly routed to the external TCB/External Confirmation boundary. An exact planned root, matched argv file or process carrier may be absent through Preflight/Compile, but Final Gate requires it to exist; materializing the already-declared path does not revise Authority. Do not guess from file extensions, substrings, output flags or a language dependency graph. Root/family/role/argv/capability declaration change is a protected Source/Contract and Authority Revision. Current machine `target_runtime` proof exists only for a Harness-direct Source-backed `process` product root; required browser/native/desktop/device targets and other unsupported families retain target-blocking External Confirmation. Every Stage Gate and every `critical_user_path` Outcome accounts for every required ref through admitted root proof or that External Confirmation. Optional support/observer targets never substitute.
73
75
  - Use `implementation_complete` only when code-level implementation is the selected target, `target_profile_usable` when the declared required targets must be usable, and `production_release_ready` only when release gates are part of the selected target. These are terminal target qualifications, not Outcome progress states.
74
76
 
75
77
  ## Engineering Quality Deliberation And Closure
@@ -92,27 +94,30 @@ Do not encode subjective “clean architecture”, `quality == true`, a function
92
94
 
93
95
  ## Proxy And Target Runtime Independence
94
96
 
95
- When a declared result can pass on a proxy surface while failing in its target runtime, author independent target-runtime proof for the exact required target ref. Put the project-owned live Check in the earliest Outcome that owns the first runnable target boundary rather than postponing it to a terminal release/quality Outcome; this assigns proof ownership and does not dictate implementation order.
97
+ When a declared result can pass on a proxy surface while failing in its target runtime, author independent target-runtime proof for the exact required target ref. Put it in the earliest Outcome that owns the first runnable target boundary rather than postponing it to a terminal release/quality Outcome; this assigns proof ownership and does not dictate implementation order. Under the current admitted slice, machine runtime proof is available only through Harness direct-process observation; all other runtime families remain target-blocking External Confirmation.
96
98
 
97
99
  Use existing Contract semantics:
98
100
 
99
101
  1. require `runtime_behavior` or the other proof surface that matches the actual Claim;
100
- 2. make the accepting runner exercise the target during the current Raw Execution and derive its asserted Observation from that same session;
101
- 3. include the runtime-affecting entrypoints, dependency manifests/lockfiles, configuration and integration carriers in `input_paths` or Bindings as appropriate;
102
- 4. freeze runner helpers/configuration as `verification_inputs`; recursively freeze every statically resolvable local JS/TS import/re-export/require and JSON dependency, reject unresolved dynamic loaders, and permit a package-script runner only when its static Node entry closure is recoverable; and
103
- 5. add capability-specific probes only for Claims that actually require them.
102
+ 2. for machine proof, use a `project_binary` runner whose target exactly equals the declared `runtime_family: process`, `role: product` root entrypoint, has no wrapper and permits read-only or test-sandbox execution;
103
+ 3. let Harness own the process handle and capture exactly one bounded `ty-context-product-observation-v1` envelope from product stdout. It proves only exact values that the root itself emits on that declared JSON output surface; project-authored instrumentation/mapping cannot reclassify arbitrary internal/UI facts as package-observed, and any Claim that cannot bind directly to the surface requires External Confirmation. Do not declare or consume an observation-path, challenge or protocol environment variable; the execution nonce is internal host-attestation data. Project-submitted v3 actual/comparison/verdict and capability records remain diagnostic only;
104
+ 4. declare runtime-affecting entrypoints, modules/configuration and Claim/Counterfactual carriers through the production owner and Binding. For argv, use a standalone argument or explicit `--key=value`; Harness resolves a safe repository-relative value from declared `cwd` and includes it only when an exact or pattern production Binding covers the result. Glob-owned and extensionless files are valid, an unmatched safe relative value is not copied, and absolute/escaping/file-URL/network values fail closed unless explicitly external. `input_paths` still describes Check scope/freshness but is neither broadly role-scanned nor promoted into the process snapshot. Compile rejects any actual closure member that overlaps Source/Context/Contract/canonical expected, verification, expected-output/artifact, evidence/status/report/comparison/Receipt/Long-Task or historical-session roles. Global closure records keep `<outcome>.<binding>` logical identity while physical files deduplicate by path; authored Contract Bindings remain local and unchanged. Harness copies only this compiled closure, and a dependency that cannot be explicitly production-bound remains External Confirmation rather than triggering extension, substring, output-flag or language dependency guessing; and
105
+ 5. otherwise bind the Claim to a blocking External Confirmation instead of inventing a project-verifier proof.
106
+
107
+ This process path relies on the host OS/filesystem/process APIs, Node runtime, snapshot copy/digest checks, stdout decoder and process-tree inspection/cleanup. It is not a security sandbox and does not claim containment against a malicious executable using ambient filesystem/network resources or evading every process-tree mechanism. If the Contract requires that threat boundary, use an independently controlled sandbox and keep its acceptance external until a package adapter is separately admitted.
104
108
 
105
- A proxy check, static repository shape, tracked status report, prior screenshot, binary or historical run cannot be the sole proof of a Claim that can fail independently in the target. Use only the bounded execution-target runtime families and required refs in the Contract; do not add open-ended `platform_impact` flags or per-platform Progress state.
109
+ A proxy check, project-verifier payload, static repository shape, tracked status report, prior screenshot, binary, historical run or new `session_id` cannot be the sole proof of a Claim that can fail independently in the target. The required target family must equal the admitted observer family. Use only the bounded execution-target runtime families and required refs in the Contract; do not add open-ended `platform_impact` flags or per-platform Progress state.
106
110
 
107
111
  ## Success, Degradation And External Boundaries
108
112
 
109
113
  - Set `success_path_required` and `degradation_path_required` explicitly. A Result Claim is proved only by a `success` Check; the same Check cannot be both success and degradation, and an honest unavailable/pending/recovery state cannot replace required success.
110
114
  - External confirmations declare `kind`, exact `impact_claims` and `blocks_target`. A `functional_prerequisite` blocks the selected target; a `production_release_gate` blocks a production-release target but may remain non-blocking for a lower target. Reclassification or impact changes are protected authority.
111
- - `boundary_invocation` and `external_side_effect` are machine evidence only when their Check executes on a declared independent `observer` target. Product self-report never proves the downstream effect.
115
+ - External Confirmation coverage is exact for ordinary/global Claims and Semantic Fact Claims; it creates no machine Assertion or result. For a fully unsupported Outcome, set `success_path_required: false`, omit machine Checks, include every affected Claim in `impact_claims` and keep each Semantic Fact proof explicitly bound to that confirmation. A Stage Gate may omit its machine Check only when a `blocks_target: true` confirmation impacts that gate's `result` Claim. A non-blocking confirmation or one missing the result impact cannot substitute, and `success_path_required: true` still requires a real success Check. The final status is `blocked_external`, never machine accepted.
116
+ - `boundary_invocation` and `external_side_effect` still require a declared independent `observer` target, but the current slice has no package derivation for either capability. Their project records are diagnostic and their obligations remain External Confirmation; product self-report never proves the downstream effect.
112
117
 
113
118
  ## Visual Delivery Authoring
114
119
 
115
- When the selected delivery includes a new/redesigned screen, primary layout/navigation/theme/component system, high-fidelity implementation or other material production UI, resolve Design Authority before Compile and author the result through existing Contract semantics:
120
+ When the selected delivery includes a new/redesigned screen, primary layout/navigation/theme/component system, high-fidelity implementation or other material production UI, resolve Design Authority before Compile and author the result through existing Contract semantics. The complete design Fact universe remains mandatory Source authority, but the current machine observer does not admit browser/native/device/layout/pixel/accessibility/motion or protected/tolerance/mask observations; those Fact × method obligations must be blocking External Confirmations rather than project-verifier machine rows:
116
121
 
117
122
  - when selected external resources are an implementation handoff, place one strict marked `design-resource-handoff-v1` Markdown file in `task.source_paths` and run `ty-context design-resource preflight <handoff.md>` before Contract Preflight. A formal Web/App profile requires a canonical entry, exact dependency closure, complete acquisition and one frozen-Inspector Fact manifest proving `Expected Fact Universe = Canonical Resource Facts = Handoff Indexed Facts`. The atomic unit is an explicit `subject × target × condition × variation × property` Fact Cell: stable component instances/Anatomy Parts/relations and dynamic populations; all standard/custom target-condition and subject-variation axes/combinations; the complete standard/custom atomic property catalog; explicit N/A/exclusion basis; one Fact per covered cell; and every property-required Fact × method proof. Product Controls and eight UI/UX dimensions are semantic/roll-up owners, not the Fact ceiling. Incomplete acquisition/Census, aggregate labels, initial default-page inference, sampling/truncation, unresolved locators/lineage/conflicts/blockers, unsupported evidence and stale identities block. Canonical resources own exact values; the residual handoff projects located digests, value/design-system lineage, sensitivity, evidence, comparator/tolerance/mask, Oracle/environment and asset bindings without becoming a CSS copy. Every exact target additionally requires full-target layout and pixel Facts per condition. Deliberately partial input remains an explicitly scoped constraint or blocking unresolved and never an exact target. Treat candidates and unresolved decisions honestly; only a selected exact target with a valid selection basis, complete declared Fact universe and immutable identity can be proposed for fidelity authority, and downstream UI Authority Closure still owns adoption;
118
123
  - perform UI Authority Closure over stable surface/control/target keys: classify each material item as covered by owning Context/`DESIGN.md`, requiring an owner update, task-local Source, explicitly out of scope or genuinely `decision_required`. Product Surface Context owns cross-surface responsibility, Screen/interaction Context owns durable hierarchy/behavior, `DESIGN.md` owns visual-system/reference semantics and selected targets own concrete composition; Contract YAML must not duplicate or invent those owners;
@@ -124,19 +129,19 @@ When the selected delivery includes a new/redesigned screen, primary layout/navi
124
129
  - encode each independently falsifiable visual expectation as an atomic Requirement, applicable Control field or named AC Assertion. Name the surface, viewport, theme/state/content condition and observable result when they matter to the claim;
125
130
  - close every real Control's canonical fields independently through `field_coverage`: `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` and `accessibility`. `specified` names concrete meaning, `not_applicable` carries a falsifiable reason, and `unresolved` blocks Compile; specified and not-applicable entries create Claims for every declared applicability profile, so omission can never silently mean non-applicable;
126
131
  - close each Outcome's cross-Control/system meaning through `control_relation_closure` plus `control_relations`: shared state, dependency/order, mutual exclusion, navigation, permission, recovery, validation and feedback chains are explicit relations with Control refs, proof surfaces and applicability, while `state: not_applicable` is a negative Claim with exact applicability and an explicit assertion that no such relation applies; `unresolved` blocks;
127
- - when an Outcome declares Controls, add the minimum aggregated Product `surface_bindings`: one stable binding per owner surface and required product target, its Control refs, existing Technical route/component Binding refs, one root-entry success Check and its real entry action. Every Control must be bound, every Control Claim must have target-local proof on the runtime-appropriate surface, and the root journey must prove each Control's declared `navigation_result` or its `interaction`/`trigger`/`location` fallback with all-of `interaction_trace` and `target_runtime`;
132
+ - when an Outcome declares Controls, add the minimum aggregated Product `surface_bindings`: one stable binding per owner surface and required product target, its Control refs, existing Technical route/component Binding refs, one root-entry success Check and its real entry action. Every Control must be bound and every Control Claim must have target-local disposition. The admitted direct-process observer can derive host `target_runtime` for the real process root, but it does not currently derive `interaction_trace`; interaction plus browser/native/device journeys remain blocking External Confirmations;
128
133
  - bind the declared result to the owning Context/`DESIGN.md`, one authored token source and generation direction, selected target/constraint inputs, production component/route carriers, path envelopes and project-owned target checks. Freeze acceptance-affecting selected target files, token sources and fixed prototype fixtures in `verification_inputs`; bind production carriers through `input_paths`/Bindings and reserve `artifact_globs` for generated implementation renders, diffs and reports. Detached kits, deep links, mocks or marketing specimens may be references or supplemental checks but not substitute implementation carriers or the production root journey;
129
- - for each selected exact/constraint target inside a surface binding, use the exact handoff target key and interpretation; declare `source_paths` as exactly the handoff plus that target's immutable resource paths and `condition_keys` as exactly its handoff condition refs. Put the same files in Check `verification_inputs`; map every covered handoff Source Item through `source_claims` to method-specific Source Claims and separate single-Claim Assertions at the target's exact applicability; and bind every handoff acceptance blocker in the surface binding. Every handoff verification method binds its own Assertion and exact per-condition `evidence_artifacts`. Each cell declares the exact proof-owned `fact_refs`, `path` for its method record, `observation_path` for its primary method-native observation and a canonical `fact_expectations` row for every Fact. That row freezes subject, variation, property, `plain|protected` sensitivity, expected canonical located digest, comparator, exact/tolerance mode, parameter/tolerance/narrow-mask located digests, Oracle key/trust/identity/version/digest and environment key/identity/definition located digest. Contract stores these references and digests, never a duplicate CSS value source. Cell Fact sets close every property-required Fact × method obligation; their exact union equals the target Fact set. Both paths are covered by the Check, primary-observation paths and current digests are pairwise distinct across methods/conditions, and typed current-execution `design_method` evidence names both paths plus the exact Fact set and one exact `fact_results` row per Fact. Each result binds subject/variation/property; attributable actual observation and actual environment paths/digests/typed locators/value digests; the frozen comparison fields and comparison artifact; explicit pass/fail verdict; and exact Oracle/environment identities. Protected observations require digest-only or redacted structured representation, a policy ref and `raw_persisted: false`; plain observations reject unexpected redaction. Missing/extra/duplicate/stale/failed rows, sensitivity or authority drift, mismatched environment, widened mask/tolerance, result reuse or indistinguishable observation fails the Assertion. A Playwright Assertion must attach `ty-context-design-method:<target>:<method>:<condition>:record` and `...:observation` in every project instance before the adapter emits that evidence. The target-local Assertions also cover bound Control Claims, distinct current actual/comparison artifact paths and all-of `design_conformance`, `interaction_trace` and `target_runtime` where applicable. `visual_render`, handoff preflight, Inspector counts, file hashes or registry presence remain input/resource integrity and cannot substitute for implementation conformance or omitted Fact proof;
130
- - explicitly inventory every declared design-acceptance blocker inside its surface binding. An empty array states that no blocker is declared; each declared entry preserves exactly the handoff's `source_item_refs`, `verification_methods` and non-empty `required_capabilities`. A `machine_claim` is valid only when the exact bound execution target declares every required capability and the referenced Claims have target-local proof; otherwise use a target-blocking External Confirmation whose impact includes the Outcome. There is no in-band not-applicable waiver: removing a blocker from scope first requires explicit revised Source and, after Authority Lock, protected Contract revision. Empty refs block Compile/Final Gate;
131
- - use `ui_browser` only for declared browser ACs. A browser or Expo-Web proxy cannot prove a native/mobile/desktop target that can fail independently; use a project-owned current-execution target Check when existing proof surfaces can truthfully represent the claim, otherwise retain named human/device confirmation as an external confirmation rather than inventing machine proof;
134
+ - for each selected exact/constraint target inside a surface binding, use the exact handoff target key and interpretation; declare `source_paths` as exactly the handoff plus that target's immutable resource paths and `condition_keys` as exactly its handoff condition refs. Put the same files in Check `verification_inputs`; map every covered handoff Source Item through `source_claims` to method-specific Source Claims and separate single-Claim Assertions at the target's exact applicability; and bind every handoff acceptance blocker in the surface binding. Every handoff verification method binds its own Assertion and exact per-condition `evidence_artifacts`. Each cell declares the exact proof-owned `fact_refs`, `path` for its method record, `observation_path` for its primary method-native observation and a canonical `fact_expectations` row for every Fact. That row freezes subject, variation, property, `plain|protected` sensitivity, expected canonical located digest, comparator, exact/tolerance mode, parameter/tolerance/narrow-mask located digests, Oracle key/trust/identity/version/digest and environment key/identity/definition located digest. Contract stores these references and digests, never a duplicate CSS value source. Cell Fact sets close every property-required Fact × method obligation; their exact union equals the target Fact set. Current package derivation supplies only admitted plain exact/presence results and host `target_runtime`; project or Playwright `design_method`, `fact_results`, `design_conformance` and `interaction_trace` rows remain diagnostic and cannot provide authority. Because the current slice does not admit design conformance, interaction, layout, pixel, accessibility, motion, browser/native/device, protected or tolerance/mask observation, those obligations retain their exact expectations but bind blocking External Confirmations instead of fabricated machine results. Missing/extra/duplicate/stale/failed rows, authority drift, mismatched environment, widened mask/tolerance, result reuse or indistinguishable observation still fail every admitted exact Assertion. `visual_render`, handoff preflight, Inspector counts, file hashes or registry presence remain input/resource integrity and cannot substitute for implementation conformance or omitted Fact proof;
135
+ - explicitly inventory every declared design-acceptance blocker inside its surface binding. An empty array states that no blocker is declared; each declared entry preserves exactly the handoff's `source_item_refs`, `verification_methods` and non-empty `required_capabilities`. A `machine_claim` is valid only when the exact obligation compiles to a package-admitted static or direct-process exact observation and the referenced Claims have matching target-local proof; otherwise use a target-blocking External Confirmation whose impact includes the Outcome. There is no in-band not-applicable waiver: removing a blocker from scope first requires explicit revised Source and, after Authority Lock, protected Contract revision. Empty refs block Compile/Final Gate;
136
+ - retain `ui_browser` assertions only as project diagnostics during this first observer slice. Browser, Expo-Web, native, mobile and desktop UI conformance cannot machine-close a Claim; bind the affected Claim or blocker to target-blocking External Confirmation rather than treating Playwright, a project binary, screenshot or device/session payload as observer authority;
132
137
  - keep subjective visual direction, taste or approval outside false machine proof. Resolve an undecided direction as `decision_required`; represent required human design or new-baseline approval as an explicit external confirmation.
133
138
  - for combined design-and-implementation delivery, ordinary design Outcomes/Stages may author candidates before selection, but candidate/planned artifacts cannot authorize fidelity Claims. Append the selected result to real marked Context-reachable Source and its owning Context/`DESIGN.md` reference; after Authority Lock adopt it through Authority Revision before downstream fidelity implementation. This creates no target-selection state, second Contract or second Gate.
134
139
 
135
- External design resources authorize fidelity only when they become a selected exact target with a validated handoff; they remain ordinary upstream Source rather than a Contract Draft, verification result or alternate authority. The revised initial proposal plus selected immutable canonical resources and the residual `design-resource-handoff-v1` is the recommended implementation input; no standalone Source Plan handoff is required. Map each exact fact set into method/condition evidence, each covered Source Item into the root conformance Assertion and each declared verification method to its own independently failing Assertion; carry blocker Source Items and methods unchanged into a target-local machine Claim or target-blocking External Confirmation. A legacy Source Plan remains valid ordinary Source if supplied. The single Product `surface_bindings` projection is an aggregated cross-reference over existing Source, Controls, Technical Bindings, targets, Checks, Assertions, verification inputs and External Confirmations; it creates no `uiux_delivery` authority block, Claim kind, risk level, lifecycle state, required design directory, per-Control screenshot matrix or Gate, and it creates no copied style/value source.
140
+ External design resources authorize fidelity only when they become a selected exact target with a validated handoff; they remain ordinary upstream Source rather than a Contract Draft, verification result or alternate authority. The revised initial proposal plus selected immutable canonical resources and the residual `design-resource-handoff-v1` is the recommended implementation input; no standalone intermediary authoring handoff is required. Map each exact fact set into method/condition evidence, each covered Source Item into the root conformance Assertion and each declared verification method to its own independently failing Assertion; carry blocker Source Items and methods unchanged into a target-local machine Claim or target-blocking External Confirmation. Any pre-existing planning document remains valid ordinary Source if supplied. The single Product `surface_bindings` projection is an aggregated cross-reference over existing Source, Controls, Technical Bindings, targets, Checks, Assertions, verification inputs and External Confirmations; it creates no `uiux_delivery` authority block, Claim kind, risk level, lifecycle state, required design directory, per-Control screenshot matrix or Gate, and it creates no copied style/value source.
136
141
 
137
142
  ## Symbolic Selected-Design Authoring
138
143
 
139
- UI symbolic V2 is explicit opt-in; V1 remains the default. Accept `design-resource-handoff-v2` only when the target explicitly declares `representation: symbolic_rules_v2`. Require equal extensional disposition, located expected semantics and complete proof-obligation denotation across every subject/relation, target, reachable condition/variation, applicable atomic property and population/quantifier point; physical V1 ground-row identity is irrelevant. V2 Rules use constant located expected values and mutually exclusive exhaustive canonical regions. Applicability may retain legacy exact remainder partitions or use package-owned subject property profiles plus frozen Inspector custom-property closure and explicit unique instance exceptions; every logical subject-property point still needs exactly one disposition. Project every required method to typed current Rule-region evidence and each set-valued Rule/omitted-axis certificate to a separate fresh recomputed result without materializing Rule × axis edges. An omitted axis requires both Source-side and production-side proof through frozen closed-world static dependency closure, restricted-IR exact equivalence or finite complete-domain exhaustive equivalence; dynamic/reflected/unfrozen/external or sampled dependencies block. A Contract may mix V1 and V2 targets, but records cannot cross-substitute and all converge only in the existing Final Gate. V1 over-capacity diagnostics may guide an explicit V2 decision but never switch automatically. Purpose-efficiency is package admission, not terminal safety or a new Gate. Non-UI symbolic admission and Provider/P0 trust-boundary work remain out of scope.
144
+ UI symbolic V2 is explicit opt-in; V1 remains the default. Accept `design-resource-handoff-v2` only when the target explicitly declares `representation: symbolic_rules_v2`. Require equal extensional disposition, located expected semantics and complete proof-obligation denotation across every subject/relation, target, reachable condition/variation, applicable atomic property and population/quantifier point; physical V1 ground-row identity is irrelevant. V2 Rules use constant located expected values and mutually exclusive exhaustive canonical regions. Applicability may retain legacy exact remainder partitions or use package-owned subject property profiles plus frozen Inspector custom-property closure and explicit unique instance exceptions; every logical subject-property point still needs exactly one disposition. Project every required method to typed current Rule-region evidence only when its Actual comes through the admitted package observer; otherwise bind the obligation to External Confirmation. Each set-valued Rule/omitted-axis certificate remains a separate fresh package-recomputed result without materializing Rule × axis edges. An omitted axis requires both Source-side and production-side proof through frozen closed-world static dependency closure, restricted-IR exact equivalence or finite complete-domain exhaustive equivalence; dynamic/reflected/unfrozen/external or sampled dependencies block. A Contract may mix V1 and V2 targets, but records cannot cross-substitute and all converge only in the existing Final Gate. V1 over-capacity diagnostics may guide an explicit V2 decision but never switch automatically. Purpose-efficiency is package admission, not terminal safety or a new Gate. Non-UI symbolic admission remains out of scope; verifier/runner observation authority is covered by the mandatory admitted-observer boundary above.
140
145
 
141
146
  ## Compact Authoring
142
147
 
@@ -5,32 +5,42 @@ Read this only while designing or repairing Contract Checks and proof.
5
5
  ## General Proof Rules
6
6
 
7
7
  - Every Outcome has at least one executable Check and one non-Result atomic Claim.
8
+ - Keep four authorities separate: Source/Context/canonical resources/Contract own Expected; a package-admitted adapter owns current Actual; Harness owns comparison/result identity and verdict; the sole current-snapshot Final Gate owns terminal status. No project runner or Oracle may own two of these layers for a machine-closing obligation.
8
9
  - Required proof surfaces are non-empty, unique and all-of. Every Claim-bearing Assertion proves exactly one Claim at one exact applicability profile and uses explicit comparable Observations and expected values; every Claim/applicability/proof-surface cell must be covered.
9
10
  - `truthy`/`falsy` are diagnostic-only. `exists` proves only implementation-structure obligations. Missing or type-incomparable Observation never proves a Claim; negative proof uses an explicit value such as `equals: false`.
10
11
  - Claim and Population proof is emitted only after the entire Check passes. Exit failure, missing artifact, failed population, failed Assertion or invalid Counterfactual yields no Claim proof.
11
- - Verification inputs include entrypoints, helpers, fixtures/config, package scripts and lockfiles and cannot overlap implementation carriers. The frozen runner identity recursively includes the supported direct-literal local verifier module/config/data graph; runtime-owned Check inputs/outputs/artifacts are explicitly excluded from Oracle identity, while non-literal loaders, `createRequire` and package scripts without a recoverable static Node entry fail closed. Other indirect Oracle access must be declared or treated as named TCB.
12
+ - Verification inputs include entrypoints, helpers, fixtures/config, package scripts and lockfiles and cannot overlap implementation carriers. The frozen runner identity recursively includes the supported direct-literal local verifier module/config/data graph; runtime-owned Check inputs/outputs/artifacts are explicitly excluded from Oracle identity, while non-literal loaders, `createRequire` and package scripts without a recoverable static Node entry fail closed. Declaring other indirect/custom Oracle access as a named TCB does not admit it for machine completion; use a package-admitted adapter or blocking External Confirmation.
12
13
  - Runners receive the minimum environment whitelist plus only declared environment requirements. Never expose actual secret values in findings.
13
14
 
14
15
  ## Runner And Observation Identity
15
16
 
16
- Evidence adapter is derived from runner kind. Only Playwright may prove `ui_browser`; structured runners prove non-browser surfaces. Raw Execution identity binds the runner, its recursively frozen local dependency closure and canonical declared Environment Requirements, not actual values. Bare installed packages and the Harness/runtime remain named trusted-computing-boundary components rather than silently mutable project helpers.
17
+ Runner kind still selects payload decoding, but payload decoding is not observation authority. Raw Execution identity binds the runner, its recursively frozen local dependency closure and canonical declared Environment Requirements, not actual values. Bare installed packages and the Harness/runtime remain named trusted-computing-boundary components rather than silently mutable project helpers. A project-authored verifier, `node_oracle`, wrapper or Playwright payload can provide diagnostics only unless a separate admitted package observer independently extracts the current Actual.
17
18
 
18
19
  Across all Checks sharing a Raw Execution, one Claim-bearing Observation belongs to one Assertion. Shared setup may execute once only when independent per-Check observations and artifacts remain unambiguous.
19
20
 
21
+ ## Observation Authority Admission
22
+
23
+ Compile derives one immutable internal observation-authority plan for every machine Claim or Fact × required-method obligation. It binds the obligation/Fact/Assertion/target/proof-surface/method, expected identity/value, locator policy, carriers and runtime requirements. This is a rebuildable projection, never a new Contract Authority, state or Observer registry. A machine-closing row has exactly one of these first-slice authorities:
24
+
25
+ - `package_static_json_exact`: plain `exact_value + exact` content for a static implementation/configuration structure. The UTF-8 JSON carrier must already exist in the pre-run workspace manifest; its no-follow path/type/size/digest/file identity remains unchanged after the runner; it matches the declared production Binding; and it is not Source, Context, Contract, expected authority, verifier output, evidence, report, status or Receipt. Harness, not the project, selects the fixed RFC 6901 `/observations/<stable Fact-or-obligation identity>` locator and applies the package duplicate-key, UTF-8, size, depth and pointer limits. A generated bundle/configuration is eligible only when it was already in the candidate snapshot. This proves only current static content, never runtime consumption, interaction or liveness.
26
+ - `package_process_json_exact`: plain exact output from a declared `runtime_family: process`, `role: product` root. The Check uses `project_binary`, its target and complete argv equal the Source-backed root invocation exactly, no project wrapper intervenes and its effect is read-only or test-sandbox. The target's canonical Source obligation, Source Claim disposition and execution target agree on key, role, family, root, complete argv and capabilities. Compile creates one internal process-runtime closure containing that invocation, the Claim/Counterfactual production carriers and only finite argv values that resolve to production Binding members. It examines a standalone argument or explicit `--key=value`, resolves safe repository-relative values from declared `cwd`, and admits a path only when an exact or pattern Binding covers it; glob-owned and extensionless files are supported. An unmatched safe relative value is ignored and not copied. Absolute paths, repository escapes, `file:` URLs and network URLs fail closed unless explicitly routed to the existing external TCB/External Confirmation boundary. It neither broadly role-scans nor copies all `input_paths`; role separation applies only to actual closure members. Global Checks use internal scoped Binding records `{ outcome_key, local_key, binding_ref, binding }` with `<outcome>.<binding>`, preserving logical refs while deduplicating identical physical paths without changing authored Contract Bindings or adding a registry. Every closure member is disjoint from Source/Context/Contract/canonical expected authority, verification inputs, verifier/evidence/status/report/comparison/Receipt/Long-Task workdir, historical session/evidence, `expected_output_paths`, `artifact_globs` and other proof-output roles. Harness copies only this compiled closure into an OS-temporary snapshot, then directly spawns/owns the root there. The child receives the minimal runner environment and no observation-path, challenge or protocol variable. It writes exactly one bounded `ty-context-product-observation-v1` envelope to stdout with exact keys `schema_version` and identity-keyed `observations`; Harness captures stdout, requires the exact compiled identity set, extracts multiple values, records host execution attestation bound to the closure identity, verifies the closure again and deletes the snapshot. The envelope proves only exact values actually emitted by that root on the declared JSON output surface. Project-authored instrumentation or mapping cannot elevate arbitrary internal/UI facts into package-observed truth; a Claim that cannot bind directly to that surface remains External Confirmation. The per-execution nonce is generated and retained only inside host attestation; it is neither a child-visible challenge nor a trust root.
27
+
28
+ Everything else is unsupported and therefore a blocking External Confirmation: custom or `named_external_tcb` Oracle, indirect wrapper, browser/native/device session, layout, pixel, accessibility, motion, protected raw observation, tolerance/mask and custom locator. Target family must equal observer family. Project-submitted v3 actual/value digest, comparison result, `passed`, verdict and capability records remain optional diagnostics and never own Actual or completion. Current package derivation covers exact/presence plus host-derived `target_runtime`; `interaction_trace`, `state_delta`, `design_conformance` and every other capability without package derivation require External Confirmation even when a project record is present. A diagnostic copy that disagrees with a derived result fails closed. The public project result remains `long-task-check-result-v3`; the stdout product observation envelope is a separate v1 protocol, so no v4 is introduced.
29
+
20
30
  ## Scenario And Evidence Capabilities
21
31
 
22
32
  - Every Check declares non-empty keyed `scenario.given` and `scenario.when` steps. One Check covers one materially coherent journey; a different success path belongs in another Check or vertical Outcome. A Claim-bearing Assertion's `applicability_ref` must match the Check target, journey role, duplicate-free atomic dimension assignments, all keyed Given refs and ordered When refs exactly.
23
- - Every Assertion declares a non-empty all-of `evidence_capabilities` set. `presence` proves static existence only and cannot alone prove a behavioral Claim. Each other capability requires exactly one typed current-execution record bound to the declared Assertion key; missing, duplicate, unknown or undeclared records fail closed.
24
- - `interaction_trace` names the exact target plus the declared Given keys and ordered action keys. Playwright derives it only from an executed declared AC carrying matching `[given:<key>]` and `[action:<key>]` steps; `[ac:<assertion-key>]` remains the AC binding.
25
- - `state_delta` requires different before/after hashes and named changed fields. `durable_readback` requires independent write/read sessions with equal state hashes. `cross_surface_consistency` requires at least two distinct surface refs, known target refs and one state hash.
26
- - `boundary_invocation` and `external_side_effect` require the Check itself to execute on the named observer target. `failure_injection` requires an observed fault and recovery state; `visual_render` binds a declared artifact hash; `design_conformance` binds one compiled selected target, exact required product target, declared condition set and distinct current actual/comparison artifact paths; `design_method` binds one handoff verification method, its exact condition, exact handoff `fact_refs`, declared method-record path and declared primary-observation path. Runtime Fact refs and `fact_results` must be set-equal to the compiled cell, all property-required Fact × method obligations must be present, and all cells must conserve the complete target Fact set. Every result preserves subject/variation/property, attributable actual observation/environment, frozen expected/comparator/tolerance/mask/Oracle/environment authority and explicit verdict; every row must pass. Protected observations use the declared digest-only/redacted policy without persisting raw values. Missing, extra, duplicate, stale, failed, authority-drifted or reused/indistinguishable rows fail closed. Primary observations are pairwise unique by current path and digest across method/condition cells; `target_runtime` binds exact target/root/current session and requires a cold start for a root journey whose execution target declares the matching family, `cold-start` and `production-root` capabilities; `input_variation` requires at least two distinct inputs, differing propagated outputs and an observed failure case.
33
+ - Every Assertion declares a non-empty all-of `evidence_capabilities` set. `presence` proves static existence only and cannot alone prove a behavioral Claim. A project payload may contain one typed current-execution compatibility record per capability, but a machine Claim is satisfied only by a matching package-derived result. In the current slice that means exact/presence and, for a direct process root, host `target_runtime`; missing admission, duplicate/unknown/undeclared records or disagreement with a submitted copy fail closed.
34
+ - `interaction_trace` names the exact target plus the declared Given keys and ordered action keys, but no package derivation currently owns those semantics. Project/Playwright trace rows are diagnostic and the obligation remains External Confirmation, including on a direct process root.
35
+ - `state_delta` compatibility rows still require different before/after hashes and named changed fields, but they are not package-derived machine proof. The same external boundary applies to `durable_readback`, `cross_surface_consistency`, `boundary_invocation`, `external_side_effect`, `failure_injection`, `input_variation`, `visual_render`, `design_conformance` and `design_method` until a package adapter derives the applicable result.
36
+ - `target_runtime` binds the exact target/root and is host-derived only for a direct process product root. Runtime Fact refs and every admitted package-derived exact/presence result remain set-equal to the compiled obligation cells; no aggregate project record fills a missing cell.
27
37
  - Structured runners emit `long-task-check-result-v3` for capability records. V2 payloads remain decodable only for presence-only compatibility; they cannot satisfy a declared non-presence capability. Evidence records contain bounded hashes/ids/refs, not unrestricted raw payloads.
28
38
 
29
39
  ## Non-UI Semantic Fact Evidence
30
40
 
31
- Every machine `semantic_fact` proof binding compiles one immutable expectation row identified by manifest/digest, Outcome, Fact, proof method, Claim, applicability, subject/relation/population, exact condition and property. It freezes the Source-located expected value digest, sensitivity, comparator/mode/parameters/tolerance/mask, Oracle identity/version/digest/capabilities, environment identity/definition digest and observer refs. Runtime evidence cannot rewrite any of these fields.
41
+ Every machine `semantic_fact` proof binding compiles one immutable expectation row identified by manifest/digest, Outcome, Fact, proof method, Claim, applicability, subject/relation/population, exact condition and property. It freezes the Source-located expected value digest, sensitivity, comparator/mode/parameters/tolerance/mask, admitted observer identity and environment definition. Runtime evidence cannot rewrite any field, and Compile rejects a machine row whose method/surface/target/sensitivity/comparison mode has no admitted observer.
32
42
 
33
- The owning Check emits exactly one current `semantic_fact` result for every and only every expectation assigned to it. Each result records:
43
+ The owning Check may submit compatibility data, but the package observer derives exactly one authoritative current `semantic_fact` result for every and only every admitted expectation assigned to it. Each result records:
34
44
 
35
45
  - exact assertion/manifest/Outcome/target/Fact/proof/method/subject/condition/property identity;
36
46
  - an attributable actual-observation artifact, current digest, typed locator and value digest;
@@ -40,54 +50,61 @@ The owning Check emits exactly one current `semantic_fact` result for every and
40
50
  - the exact Oracle/environment identity; and
41
51
  - one result for every declared independent observer where applicable.
42
52
 
43
- Exact mode requires the actual value digest to equal the expected digest; tolerance mode still freezes Fact-local tolerance and optional narrow mask as Source/verifier input. Global/widened runtime tolerances, implementation-generated expectations and self-baselines are invalid. Protected observations use the declared digest-only/redacted representation and policy identity with `raw_persisted: false`; secrets, tokens, personal or regulated values never enter Contract, logs, findings, Context or artifacts in raw form.
53
+ V1 ground, V2 symbolic, non-UI semantic Fact, static observer and process observer all call the same Harness-owned `evaluateExactDigestComparison` with identity, actual/expected value digests, comparator/mode and parameter/tolerance/mask digests. The admitted exact slice permits only `exact_value + exact`, requires empty tolerance/mask and fails whenever actual differs from expected. Harness recomputes result identity; submitted `passed`/verdict never participates and any submitted comparison field that disagrees fails closed. Protected and tolerance/mask observations are not admitted in this slice and remain External Confirmation; secrets, tokens, personal or regulated values never enter Contract, logs, findings, Context or artifacts in raw form.
44
54
 
45
- Result identities and primary observations are duplicate-free. One aggregate Boolean/report/log/screenshot, one reused artifact+locator+value tuple, one all-states row or one Check exit code cannot satisfy several Facts or methods. A Fact may legitimately require several independent methods/observers, and all must pass. Population/quantified Facts additionally prove exact expected universe = eligible = observed plus valid exclusions. Evidence must reach the furthest independently failing named boundary; parser/request/queue acceptance or implementation self-report does not prove storage, downstream delivery, recovery, security or external effect.
55
+ Result identities and primary observations are duplicate-free. One aggregate Boolean/report/log/screenshot, one reused artifact+locator+value tuple, one all-states row or one Check exit code cannot satisfy several Facts or methods. A Fact may legitimately require several independently admitted methods/observers, and all must pass. Population/quantified Facts additionally prove exact expected universe = eligible = observed plus valid exclusions. Evidence must reach the furthest independently failing admitted boundary; parser/request/queue acceptance or implementation self-report does not prove storage, downstream delivery, recovery, security or external effect.
46
56
 
47
57
  Final Gate requires exact expectation/result set equality on its one current snapshot and rejects missing, extra, duplicate, stale, failed, authority-drifted, environment-mismatched, proxy-only, reused or indistinguishable results. External-confirmation obligations emit no fabricated machine row and remain pending through terminal reporting. Manifest/preflight success, hashes, Census, schema validation, focused tests and Progress prove only their own input/integrity/intermediate claims.
48
58
 
49
59
  ## Live Target Runtime Evidence
50
60
 
51
- - For a target-runtime Claim, the accepting Check must exercise the exact declared required target during the current runner invocation and derive structured Observations from the same runtime session. Browser target runtime is proved only by Playwright; Native/Desktop target runtime is proved only by the project binary. Rerunning a parser for a tracked or generated status report reruns the parser, not the target.
52
- - A proxy surface may prove its own Claim but cannot substitute when proxy and target can fail independently. Static source/config shape proves structure only. The existence of a build, installation, started process or clean fatal-error scan proves only those exact assertions.
53
- - If the declared result includes a runnable product surface or interaction, observe a stable product-owned sentinel or the declared interaction in the target session. A generic process/activity/window, development shell or absence of errors is insufficient for that broader Claim.
54
- - Historical reports, screenshots, binaries and logs are review material. Current-run screenshots/logs may accompany a Check as Artifacts, but the accepting Observation must come from the live runner execution and cannot be imported from historical state.
55
- - Bind every runtime-affecting implementation surface through `input_paths` and relevant Binding carriers; keep runner/helper/config files in `verification_inputs`. This lets existing Progress freshness identify when rolling feedback is stale without a new trigger registry.
61
+ - Machine target-runtime authority exists only for `package_process_json_exact`: Harness directly spawns the exact declared `runtime_family: process`, `role: product` root entrypoint and derives host execution attestation, target liveness, current exact/presence Actuals and exit result. This does not derive the semantic Given/action sequence required by `interaction_trace`. A project `target_runtime`, new `session_id`, `cold_start: true`, historical session, wrapper or child self-report is diagnostic only.
62
+ - Static package observation proves structure/configuration content only. It cannot prove runtime consumption, interaction, liveness or production reachability merely because its path appears in a Binding or `input_paths`.
63
+ - Browser/native/desktop/device runtime and layout/pixel/accessibility/motion observations have no admitted adapter in this slice. Playwright, H5/browser proxies, project binaries, screenshots and session payloads cannot close those machine Claims; retain a blocking External Confirmation.
64
+ - Target family must equal admitted observer family. A proxy may prove only its own separately admitted Fact; it cannot substitute when proxy and required target can fail independently.
65
+ - Historical reports, screenshots, binaries and logs are review material. Current-run diagnostics may accompany a Check as Artifacts, but only package extraction from the current frozen static carrier or Harness-owned direct process creates accepting Actual.
66
+ - Bind every process runtime dependency through the Source-backed root plus its production owner/Binding. For argv, use only a standalone argument or explicit `--key=value`; Harness resolves a safe repository-relative value from declared `cwd` and includes it only when a production Binding exact path or pattern covers the result. Glob-owned and extensionless files are valid. An unmatched safe relative value is not copied; absolute, escaping, `file:` and network values fail closed unless explicitly external. Bind modules/configuration and Claim/Counterfactual carriers directly. Keep `input_paths` as ordinary Check scope/freshness and project verifier/helper material in `verification_inputs`: it is neither broadly role-scanned nor promoted into the snapshot. The declaration-stable compiled process closure is the only snapshot-copy input, and role separation checks only its actual members. Exact planned members may be absent through Preflight/Compile but must materialize at Final Gate. Compatible Cross-Check and implicit-preserved Facts may share one Raw Execution/envelope, but every Fact keeps its own obligation/comparison identity. A missing production binding for an actual dependency, forbidden closure-role overlap or absent Final member fails closed. This lets existing Progress freshness identify when rolling feedback is stale without a new trigger registry or dependency parser.
67
+
68
+ ### Process Containment TCB
69
+
70
+ The isolated runtime-closure snapshot, minimal environment, bounded stdout capture, no-follow/digest checks, direct process handle, timeout, process-tree monitoring and cleanup reduce self-attestation and cross-execution priming. Static observation likewise retains prepare-all mutation watching plus per-file pre/post identity/hash. Subtraction controls reopen transient/persistent carrier swaps or descendant/timeout leaks when those owner responsibilities are removed, so do not replace either pair with prose or a new edge mechanism. They are not an absolute security sandbox. The TCB includes the host OS/filesystem/process APIs, Node runtime and process-enumeration/termination behavior. Harness does not claim to contain a deliberately malicious executable that escapes the copied closure, accesses ambient filesystem/network resources or evades every OS process-tree mechanism. If a Claim needs that adversary boundary, run the target inside an independently controlled sandbox and retain External Confirmation until that observer is separately admitted.
56
71
 
57
72
  ## Causal Boundary Review After Revision
58
73
 
59
74
  - When a rolling blocker causes a semantic or proof revision, review only the affected weak-observability or high-risk Outcomes before adoption. Ask whether a cheaper proxy, fixed response or self-reported success could pass while the declared result still fails at a farther independent boundary.
60
75
  - Evidence must reach the furthest independently failing boundary named by the Claim. A proxy may prove its own result, but it cannot prove a downstream state or effect merely by reporting success.
61
- - Every behavioral Claim-bearing Assertion requires a same-Check claim-local semantic Counterfactual. Use `replace_json_value` or `replace_text` to alter only the asserted semantic field/fragment while preserving the production carrier; the designated Assertion must fail and a claimless target-runtime liveness Assertion in `preserved_assertions` must keep passing. `replace_file` remains compatibility-only and cannot establish semantic binding; `remove_paths` remains for non-behavioral existence/structure claims.
76
+ - Every behavioral Claim-bearing Assertion requires a same-Check claim-local semantic Counterfactual with admitted baseline and mutated observations. Use `replace_json_value` or `replace_text` to alter only the asserted semantic field/fragment while preserving the production carrier; the designated affected Fact set must change, `preserved_assertions` and preserved Facts/liveness must remain unchanged, other changes must belong to the explicit allowed fan-out set and the obligation universe must remain identical. `replace_file` remains compatibility-only and cannot establish semantic binding; `remove_paths` remains for non-behavioral existence/structure claims. A machine-closing Check with no admitted entries fails with `counterfactual_admitted_observation_required`; it never skips impact validation.
77
+ - Static Counterfactuals prove only the mutated structure object itself. Runtime production reachability requires `Harness mutation of a compiled production carrier → direct execution of the same Source-backed process product root → package-observed actual change`; baseline and mutated execution bind the same process-closure identity and neither closure contains Authority, verification or evidence input. Binding/path declarations, synthetic status, evidence output and generated verifier carrier do not establish causality.
62
78
  - Keep this risk-proportional and internal. Do not create an evidence matrix, product-effect taxonomy, universal restart/end-to-end suite or persistent review state.
63
79
 
64
- For semantic Product Conformance, require one separate read-only Global `conformance` Check only when `weak_observability` combines with multiple Stages or multiple required product runtime families. It starts from a required root product target, includes `target_runtime`, uses a Raw Execution identity independent of Outcome Checks and runs inside the existing Final Gate. Single-Stage/single-family weak work keeps the existing same-Check sensitivity path and does not pay this extra runtime cost.
80
+ For semantic Product Conformance, require one separate read-only Global `conformance` Check only when `weak_observability` combines with multiple Stages or multiple required product runtime families. It starts from a required root product target, uses a Raw Execution identity independent of Outcome Checks and runs inside the existing Final Gate. It can carry machine `target_runtime` only for an admitted direct-process root; unsupported families remain blocking External Confirmation and the conformance Check cannot bypass that boundary. Single-Stage/single-family weak work keeps the existing same-Check sensitivity path and does not pay this extra runtime cost.
65
81
 
66
82
  ## Playwright
67
83
 
68
- Claim-bearing Playwright proof is only `playwright.case.<ac-key>.passed equals true`. `[ac:<assertion-key>]` binds one declared AC per Test Instance; ordinary tags are ignored and legacy `[<key>]` binds only a declared key.
84
+ Playwright is a diagnostic project verifier in the current observer slice, not machine Actual authority. `[ac:<assertion-key>]` may still bind one declared AC per Test Instance for failure localization; ordinary tags are ignored and legacy `[<key>]` binds only a declared key.
69
85
 
70
- Missing, skipped, flaky, unexpected, timed-out, interrupted, failed, multi-AC and duplicate-within-project cases fail closed. The same AC across distinct projects aggregates all-of. Aggregate status/count fields are diagnostic-only.
86
+ Missing, skipped, flaky, unexpected, timed-out, interrupted, failed, multi-AC and duplicate-within-project cases remain failed diagnostics. The same AC across distinct projects aggregates all-of for that diagnostic Check, and aggregate status/count fields remain diagnostic-only. None can close a browser/UI machine Claim.
71
87
 
72
- Standard frozen Playwright verifier content is trusted. Weak-observability Outcomes require same-Check AC/Claim sensitivity. A weak Playwright Counterfactual may accept exit one only when every unexpected instance is uniquely a designated executed AC failure and there are no root, unbound, extra, missing, skipped, flaky, timeout, interruption, artifact, population, environment or other evidence failures. Ordinary Baseline Checks require exit zero.
88
+ Standard frozen Playwright content remains a stable diagnostic verifier input, not an admitted Actual source. Browser/UI machine obligations are External Confirmation in the current slice. Playwright Counterfactual output can localize repairs but cannot create machine acceptance, target-runtime authority or capability proof.
73
89
 
74
90
  ## Visual UI Evidence
75
91
 
76
- - A selected implementation handoff must already pass `ty-context design-resource preflight`, including frozen-Inspector Census, exact manifest↔handoff universe equality, complete per-resource/Fact Cell/Fact/proof closure, non-sampling/non-truncation and exact-target layout/pixel defaults. For each covered row, turn every property-required Fact × verification-method obligation into project-owned, independently failing observations in the target conformance Check: geometry/pixel/token/content, component state/interaction/gesture/scroll trace, motion/haptic/sound timeline, responsive reflow/input/localization/system UI, accessibility semantic/navigation/visual and asset integrity are different obligations. Each method maps to its own Assertion and typed `design_method` evidence; every exact condition declares Fact refs, full `fact_expectations`, a method record and a method-native primary observation whose current path and digest cannot be reused by another cell. Each current `fact_results` row repeats the exact identity and authority, records actual observation and render environment, compares under the frozen parameters/tolerance/mask and supplies its own pass/fail verdict. Playwright requires explicit record/observation attachments from every project instance. The strict index proves conservation relative to the named Inspector/Oracle TCB; it does not prove that an unsupported format was read or that the project verifier is semantically sound.
77
- - Never accept an aggregate Boolean, screenshot pass or one `all-states` result in place of per-Fact rows. A legitimate tolerance/mask is canonical Fact-scoped verifier input and cannot be widened by runtime evidence. The expected target cannot be generated from the implementation under test. Plain observations remain attributable; protected observations retain canonical-source ownership while evidence stores only digest/redacted representation plus policy and `raw_persisted: false`.
92
+ - A selected implementation handoff must already pass `ty-context design-resource preflight`, including frozen-Inspector Census, exact manifest↔handoff universe equality, complete per-resource/Fact Cell/Fact/proof closure, non-sampling/non-truncation and exact-target layout/pixel defaults. Preserve exact handoff `fact_refs`, every property-required Fact × verification-method obligation and its exact expectation. Under the current observer slice, layout, pixel, visual, interaction, motion, accessibility, browser/native/device, protected and tolerance/mask methods bind blocking External Confirmations; project `design_method`, `fact_results`, screenshots and Playwright attachments are repair diagnostics only. A future package-admitted adapter may reuse these identities, but no project verdict can pre-admit it.
93
+ - Keep separately attributable evidence where geometry/pixel/token/content, interaction/state, motion/haptic/sound timeline, accessibility semantic/navigation/visual adaptation and asset integrity cannot falsifiably share one observation method. This preserves the complete selected-design proof universe; it does not admit those currently unsupported methods for machine completion.
94
+ - Never accept an aggregate Boolean, screenshot pass or one `all-states` result in place of per-Fact authority. The expected target cannot be generated from the implementation under test. Plain static/process exact observations remain attributable through package extraction; protected and tolerance/mask obligations remain External Confirmation until an admitted adapter owns their Actual and comparison.
78
95
  - Keep `design_resource_integrity` and `design_implementation_conformance` distinct. Stable paths/hashes, provider/export success, manifest/registry membership and expected counts prove resource integrity; `visual_render` proves a current artifact exists. Neither proves the production implementation matches a selected target.
79
- - When external design resources are Source, prove every selected exact-target/constraint condition that the Contract explicitly adopts. Candidate comparison, a mutable provider link, extraction success, metadata-only output, resource digest or an isolated prototype run is authoring/integrity material and cannot become product acceptance. Resolve each acceptance-affecting fact through a typed locator plus immutable path/hash and declared target/condition applicability before Compile. Include the handoff and every source-profile entry/dependency in `verification_inputs`; project-owned method-specific single-Claim design-conformance, interaction and target-runtime observations must still fail independently on the current production target.
80
- - A `design_conformance` record is accepted only for the compiled target/Assertion/current Check target, an equal declared condition-key set and both declared actual/comparison artifacts collected by the current Check. Its Assertion applicability must also equal the adopted target, conditions, journey and input/state facts. Missing or swapped targets, conditions or artifacts fail closed; the implementation render cannot also be the comparison authority.
81
- - Use Playwright for every declared `ui_browser` visual AC and bind each independently falsifiable AC to its own `[ac:<assertion-key>]` Test Instance. A broad screenshot or one passing page case does not silently prove separate viewport, theme, state, content-stress, layout or accessibility claims; representative, sampled or pairwise coverage cannot waive an actual applicable cell.
96
+ - When external design resources are Source, account for every selected exact-target/constraint condition that the Contract explicitly adopts. Candidate comparison, a mutable provider link, extraction success, metadata-only output, resource digest or an isolated prototype run is authoring/integrity material and cannot become product acceptance. Resolve each acceptance-affecting fact through a typed locator plus immutable path/hash and declared target/condition applicability before Compile. Include the handoff and every source-profile entry/dependency in `verification_inputs`; unsupported method-specific design, interaction and target-runtime obligations remain separate blocking External Confirmations on the real production target.
97
+ - The decoder may validate a project `design_conformance` record against its compiled target/Assertion/current Check target, conditions and artifacts for diagnostics, but that record is not admitted Actual or comparison authority in this slice. Missing or swapped bindings fail the diagnostic Check; a matching record still cannot machine-close visual conformance or make the implementation render its own comparison authority.
98
+ - Playwright may exercise declared `ui_browser` visual ACs for diagnostic localization. Give each independently falsifiable AC one `[ac:<assertion-key>]` Test Instance, but Playwright is not an admitted machine observer in this slice. Bind every browser visual obligation to blocking External Confirmation; a broad screenshot or one passing page case cannot waive an applicable cell.
82
99
  - Make the test environment deterministic enough for its claim: freeze the relevant browser/project, viewport, theme/mode, locale/timezone, font loading, fixtures/data and animation/motion policy in declared verifier inputs or configuration.
83
100
  - Any reviewed screenshot baseline that affects pass/fail must exist for the accepting Compile and be included in `verification_inputs`. Generated screenshots, diffs and reports are Artifacts and review material; they are not editable acceptance authority. Creating or replacing a baseline after Authority Lock is verifier-material revision and must never be silently auto-updated to make a failure pass.
84
101
  - Confirm that each baseline is a selected `exact-target` for the named surface/viewport/theme/state or implements a named `constraint`; an inspiration reference cannot become a fidelity oracle merely because it is available. The implementation's current screenshot is never its own target.
85
- - Screenshot comparison proves only the named visual similarity claim. Pair it with explicit DOM/layout/accessibility/motion/responsive/input assertions whenever the handoff or Contract separately declares no overflow, action visibility, focus behavior, target size, semantic state, reduced motion or other observable behavior. One generic `design_conformance` record cannot erase distinct Source Claims or verification methods; every handoff method binds a separate Assertion and the trusted Check must fail if any asserted method fails.
102
+ - Screenshot comparison is diagnostic only under the current admitted boundary. Keep DOM/layout/accessibility/motion/responsive/input obligations distinct and blocking; one generic `design_conformance` record cannot erase Source Claims, verification methods or their External Confirmations.
86
103
  - Keep evidence aligned with stable surface/control/target keys. Visual similarity, interaction/navigation, validation/recovery, permission behavior, accessibility and target-runtime conformance are independently failing claims and need their own Assertions/capabilities when declared; one broad screenshot or UI pass cannot prove all Control fields.
87
- - Run checks against production components or real product routes. For each bound Control, the named root-entry journey must begin at the required product target root, execute the declared entry action and prove its navigation result—or interaction, trigger or location fallback—with `interaction_trace` plus `target_runtime`. A detached kit/mock/deep-link harness is acceptable only when the Contract explicitly makes that artifact the product surface; otherwise it cannot substitute for the production carrier or root journey.
104
+ - Run diagnostic checks against production components or real product routes. Host `target_runtime` is available only when Harness directly executes the process product root; `interaction_trace` has no package derivation in the current slice and remains External Confirmation together with browser/native/device journeys. A detached kit/mock/deep-link harness cannot substitute for the production carrier or root journey.
88
105
  - Keep subjective visual quality and approval external. A new visual direction or baseline that needs human judgment remains an explicit external confirmation even when all machine checks pass.
89
- - `ui_browser` proves browser UI only. When a native/mobile/desktop UI can fail independently, browser output is proxy evidence; require a project-owned live target-runtime Check that truthfully fits an existing proof surface or keep the device/simulator review external.
90
- - Preserve each handoff blocker's non-empty `required_capabilities`. A machine Claim closes it only on the exact execution target that declares every capability; physical device, sensor, camera, orientation, haptic, screen-reader, pixel-density, safe-area or comparable observations cannot be borrowed from a proxy target. If that runtime observation is unavailable or the Oracle cannot consume the target-owned acceptance criteria, keep the blocker as a target-blocking External Confirmation.
106
+ - `ui_browser` does not create machine proof in the current slice. Browser output cannot close native/mobile/desktop Claims; all such runtime reviews stay external until a package-owned adapter is admitted.
107
+ - Preserve each handoff blocker's non-empty `required_capabilities`. A machine Claim closes it only when one admitted adapter for the exact target supplies every required observation; physical device, sensor, camera, orientation, haptic, screen-reader, pixel-density, safe-area and comparable observations are currently target-blocking External Confirmations and cannot be borrowed from a proxy.
91
108
 
92
109
  ## Symbolic Noninterference Evidence
93
110
 
@@ -95,10 +112,10 @@ For every non-interference method, require a digest-identified frozen executable
95
112
 
96
113
  ## Structured Evidence And Sensitivity
97
114
 
98
- Every claim-bearing `structured_json_v2` Check needs same-Check Claim-related Counterfactual sensitivity. Population declares a real `universe_binding_key`; every universe carrier is an owning-Check `input_path`, and the current observation proves exact universe = eligible = observed plus valid exclusions by entity id. Population never substitutes for the claim-local narrow semantic witness and preserved target-runtime liveness required by a behavioral Claim. Artifacts and another Check never substitute for sensitivity.
115
+ Every machine claim-bearing `structured_json_v2` Check needs same-Check Claim-related Counterfactual sensitivity backed by the compiled admitted observer; the project payload alone never supplies Actual. Population declares a real `universe_binding_key`; every universe carrier is an owning-Check `input_path`, and package observation proves exact universe = eligible = observed plus valid exclusions by entity id. Population never substitutes for the claim-local narrow semantic witness and host-derived target-runtime liveness required by an admitted process behavioral Claim. Artifacts and another Check never substitute for sensitivity.
99
116
 
100
- Outcome Counterfactual V2 names an Outcome `binding_key`; Global Counterfactual V2 resolves an Outcome-owned `binding_ref`. A Counterfactual mutates only a proven subset of implementation carriers, never Source, Context, runners or verification inputs, and accepts only designated `assertion_value_mismatch` findings. Behavioral witnesses use claim-local `replace_json_value` or `replace_text`, list their designated Claim-bearing failure Assertions, and list the claimless liveness Assertions that must remain passing.
117
+ Outcome Counterfactual V2 names an Outcome `binding_key`; Global Counterfactual V2 resolves an Outcome-owned `binding_ref`. A Counterfactual mutates only a package-proven subset of implementation carriers, never Source, Context, runners, verification inputs, expected authority, evidence, reports or status. Behavioral witnesses use claim-local `replace_json_value` or `replace_text`, list their designated affected Fact/Assertion set, preserved Fact/liveness set and allowed fan-out set, and require package observations to establish the exact permitted actual changes.
101
118
 
102
- An `existing` mutation target must exist at Preflight/Compile and the JSON pointer/text fragment must resolve uniquely. A `planned` target may be absent until implementation but must exist at Final Gate; once created, its changes stale targeted Progress.
119
+ An `existing` mutation target must exist at Preflight/Compile and the JSON pointer/text fragment must resolve uniquely. An exact `planned` target, process root or argv dependency may be absent until implementation but must exist at Final Gate; materializing the declared path preserves compiled/Authority identity, while later content changes stale targeted Progress.
103
120
 
104
121
  Artifacts remain review material. They do not prove Claim sensitivity by themselves.
@@ -1,12 +1,12 @@
1
1
  # Source-Bound Draft Input Reference
2
2
 
3
- Read this alongside `contract-authoring.md` when raw, mixed, attachment-heavy or incomplete inputs need Source-quality repair while the same Contract Draft is being mapped. Inputs enter the Draft immediately; this reference is neither an earlier Source-authoring phase nor a standalone Source Plan stage or second lifecycle.
3
+ Read this alongside `contract-authoring.md` when raw, mixed, attachment-heavy or incomplete inputs need Source-quality repair while the same Contract Draft is being mapped. Inputs enter the Draft immediately; this reference is neither an earlier Source-authoring phase nor a standalone intermediary planning stage or second lifecycle.
4
4
 
5
5
  ## Objective and boundary
6
6
 
7
7
  Preserve every material user, product, technical, visual and acceptance constraint from the initial/revised proposal and supplied resources. Add only traceable necessary derivations, defensible delegated choices and evidence-backed repository facts. Make the real Source understandable without the original conversation before Preflight/Compile, while allowing Draft decomposition and repository binding to proceed incrementally.
8
8
 
9
- Do not create a Source Plan schema, CLI, Preflight, Compile, Receipt, cache, authority, state or internal Source-authoring stage. Contract YAML cannot become the sole owner of a choice or missing semantic. Do not let current implementation silently redefine intent. A pre-existing Source Plan is simply one possible input.
9
+ Do not create an intermediary planning schema, CLI, Preflight, Compile, Receipt, cache, authority, state or internal Source-authoring stage. Contract YAML cannot become the sole owner of a choice or missing semantic. Do not let current implementation silently redefine intent. A pre-existing planning or proposal document is simply one possible input.
10
10
 
11
11
  ## Input inventory
12
12
 
@@ -0,0 +1 @@
1
+ export declare function designResourceRecoveryCommand(args: string[]): Promise<void>;