project-tiny-context-harness 0.8.17 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -30
- package/assets/README.md +158 -44
- package/assets/README.zh-CN.md +88 -29
- package/assets/agents/AGENTS_CORE.md +2 -2
- package/assets/context_templates/context.toml +6 -1
- package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_helpers.cs +301 -0
- package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_run.cs +197 -0
- package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_types.cs +215 -0
- package/assets/runtime/windows-job-supervisor/windows_job_process_supervisor.ps1 +117 -0
- package/assets/skills/design-resource-authoring/SKILL.md +6 -3
- package/assets/skills/design-resource-authoring/references/authority-delta-assessment.md +52 -0
- package/assets/skills/design-resource-authoring/references/downstream-handoff.md +5 -1
- package/assets/skills/design-system-authoring/SKILL.md +23 -17
- package/assets/skills/design-system-authoring/references/authority-adoption.md +19 -9
- package/assets/skills/design-system-authoring/references/open-design-design-system-provider.md +4 -0
- package/assets/skills/long-task-workflow/SKILL.md +6 -6
- package/assets/skills/long-task-workflow/references/authority-lifecycle.md +10 -4
- package/assets/skills/long-task-workflow/references/contract-authoring.md +5 -5
- package/assets/skills/long-task-workflow/references/evidence-design.md +14 -3
- package/assets/skills/long-task-workflow/references/source-authoring.md +11 -8
- package/assets/tools/context_rules.json +53 -0
- package/assets/tools/validate_context.py +302 -77
- package/dist/cli.js +2 -1
- package/dist/commands/context-create.d.ts +1 -0
- package/dist/commands/context-create.js +90 -0
- package/dist/commands/context-inspect.d.ts +1 -0
- package/dist/commands/context-inspect.js +98 -0
- package/dist/commands/context-move.d.ts +1 -0
- package/dist/commands/context-move.js +78 -0
- package/dist/commands/context-register.d.ts +1 -0
- package/dist/commands/context-register.js +110 -0
- package/dist/commands/context-transaction.d.ts +1 -0
- package/dist/commands/context-transaction.js +84 -0
- package/dist/commands/context.d.ts +1 -0
- package/dist/commands/context.js +36 -0
- package/dist/commands/design-authority-delta.d.ts +1 -0
- package/dist/commands/design-authority-delta.js +53 -0
- package/dist/commands/design-authority.d.ts +1 -0
- package/dist/commands/design-authority.js +104 -0
- package/dist/commands/design-resource.js +8 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.js +61 -3
- package/dist/commands/index.js +19 -2
- package/dist/commands/long-task-authoring.js +20 -2
- package/dist/commands/long-task-workdir.d.ts +2 -0
- package/dist/commands/long-task-workdir.js +23 -0
- package/dist/commands/long-task.js +75 -6
- package/dist/commands/route.d.ts +15 -0
- package/dist/commands/route.js +142 -0
- package/dist/index.d.ts +3 -13
- package/dist/index.js +3 -12
- package/dist/lib/cli-exit.d.ts +14 -0
- package/dist/lib/cli-exit.js +19 -0
- package/dist/lib/context-catalog/catalog-default-footprint.d.ts +3 -0
- package/dist/lib/context-catalog/catalog-default-footprint.js +53 -0
- package/dist/lib/context-catalog/catalog-diagnostics.d.ts +9 -0
- package/dist/lib/context-catalog/catalog-diagnostics.js +34 -0
- package/dist/lib/context-catalog/catalog-discovery.d.ts +7 -0
- package/dist/lib/context-catalog/catalog-discovery.js +81 -0
- package/dist/lib/context-catalog/catalog-load.d.ts +8 -0
- package/dist/lib/context-catalog/catalog-load.js +187 -0
- package/dist/lib/context-catalog/catalog-path-validation.d.ts +7 -0
- package/dist/lib/context-catalog/catalog-path-validation.js +62 -0
- package/dist/lib/context-catalog/catalog-paths.d.ts +11 -0
- package/dist/lib/context-catalog/catalog-paths.js +41 -0
- package/dist/lib/context-catalog/catalog-portable-contract.d.ts +15 -0
- package/dist/lib/context-catalog/catalog-portable-contract.js +68 -0
- package/dist/lib/context-catalog/catalog-staged-path-safety.d.ts +1 -0
- package/dist/lib/context-catalog/catalog-staged-path-safety.js +36 -0
- package/dist/lib/context-catalog/catalog-types.d.ts +40 -0
- package/dist/lib/context-catalog/catalog-types.js +1 -0
- package/dist/lib/context-catalog/catalog-validation.d.ts +9 -0
- package/dist/lib/context-catalog/catalog-validation.js +148 -0
- package/dist/lib/context-create/context-create-path.d.ts +2 -0
- package/dist/lib/context-create/context-create-path.js +30 -0
- package/dist/lib/context-create/context-create-template.d.ts +2 -0
- package/dist/lib/context-create/context-create-template.js +95 -0
- package/dist/lib/context-create/context-create-types.d.ts +28 -0
- package/dist/lib/context-create/context-create-types.js +1 -0
- package/dist/lib/context-create/context-create-write.d.ts +1 -0
- package/dist/lib/context-create/context-create-write.js +85 -0
- package/dist/lib/context-create/context-create.d.ts +2 -0
- package/dist/lib/context-create/context-create.js +84 -0
- package/dist/lib/context-default-footprint.d.ts +2 -3
- package/dist/lib/context-default-footprint.js +49 -57
- package/dist/lib/context-doctor/context-doctor-types.d.ts +16 -0
- package/dist/lib/context-doctor/context-doctor-types.js +15 -0
- package/dist/lib/context-doctor/context-doctor.d.ts +2 -0
- package/dist/lib/context-doctor/context-doctor.js +130 -0
- package/dist/lib/context-graph-snapshot.d.ts +5 -0
- package/dist/lib/context-graph-snapshot.js +46 -25
- package/dist/lib/context-inspect/context-inspect-projection.d.ts +9 -0
- package/dist/lib/context-inspect/context-inspect-projection.js +49 -0
- package/dist/lib/context-inspect/context-inspect-render.d.ts +2 -0
- package/dist/lib/context-inspect/context-inspect-render.js +29 -0
- package/dist/lib/context-inspect/context-inspect-types.d.ts +43 -0
- package/dist/lib/context-inspect/context-inspect-types.js +1 -0
- package/dist/lib/context-inspect/context-inspect.d.ts +2 -0
- package/dist/lib/context-inspect/context-inspect.js +104 -0
- package/dist/lib/context-manifest-schema.d.ts +1 -1
- package/dist/lib/context-manifest-schema.js +4 -20
- package/dist/lib/context-markdown/context-markdown-analysis.d.ts +15 -0
- package/dist/lib/context-markdown/context-markdown-analysis.js +245 -0
- package/dist/lib/context-markdown/context-markdown-extract.d.ts +7 -0
- package/dist/lib/context-markdown/context-markdown-extract.js +114 -0
- package/dist/lib/context-markdown/context-markdown-types.d.ts +57 -0
- package/dist/lib/context-markdown/context-markdown-types.js +1 -0
- package/dist/lib/context-move/context-move-input.d.ts +8 -0
- package/dist/lib/context-move/context-move-input.js +17 -0
- package/dist/lib/context-move/context-move-literal-scan.d.ts +20 -0
- package/dist/lib/context-move/context-move-literal-scan.js +213 -0
- package/dist/lib/context-move/context-move-live-validation.d.ts +3 -0
- package/dist/lib/context-move/context-move-live-validation.js +56 -0
- package/dist/lib/context-move/context-move-markdown-plan.d.ts +22 -0
- package/dist/lib/context-move/context-move-markdown-plan.js +39 -0
- package/dist/lib/context-move/context-move-projection.d.ts +3 -0
- package/dist/lib/context-move/context-move-projection.js +11 -0
- package/dist/lib/context-move/context-move-reference-validation.d.ts +11 -0
- package/dist/lib/context-move/context-move-reference-validation.js +64 -0
- package/dist/lib/context-move/context-move-render.d.ts +2 -0
- package/dist/lib/context-move/context-move-render.js +24 -0
- package/dist/lib/context-move/context-move-support.d.ts +10 -0
- package/dist/lib/context-move/context-move-support.js +88 -0
- package/dist/lib/context-move/context-move-transaction-plan.d.ts +24 -0
- package/dist/lib/context-move/context-move-transaction-plan.js +108 -0
- package/dist/lib/context-move/context-move-types.d.ts +74 -0
- package/dist/lib/context-move/context-move-types.js +1 -0
- package/dist/lib/context-move/context-move.d.ts +8 -0
- package/dist/lib/context-move/context-move.js +180 -0
- package/dist/lib/context-mutation/manifest-lossless-patch.d.ts +28 -0
- package/dist/lib/context-mutation/manifest-lossless-patch.js +208 -0
- package/dist/lib/context-mutation/markdown-link-patch.d.ts +34 -0
- package/dist/lib/context-mutation/markdown-link-patch.js +143 -0
- package/dist/lib/context-mutation/markdown-link-spans.d.ts +10 -0
- package/dist/lib/context-mutation/markdown-link-spans.js +179 -0
- package/dist/lib/context-mutation/mutation-cas.d.ts +13 -0
- package/dist/lib/context-mutation/mutation-cas.js +365 -0
- package/dist/lib/context-mutation/mutation-command-support.d.ts +12 -0
- package/dist/lib/context-mutation/mutation-command-support.js +57 -0
- package/dist/lib/context-mutation/mutation-commit.d.ts +12 -0
- package/dist/lib/context-mutation/mutation-commit.js +89 -0
- package/dist/lib/context-mutation/mutation-directories.d.ts +5 -0
- package/dist/lib/context-mutation/mutation-directories.js +56 -0
- package/dist/lib/context-mutation/mutation-file-state.d.ts +14 -0
- package/dist/lib/context-mutation/mutation-file-state.js +137 -0
- package/dist/lib/context-mutation/mutation-journal-file-validation.d.ts +1 -0
- package/dist/lib/context-mutation/mutation-journal-file-validation.js +106 -0
- package/dist/lib/context-mutation/mutation-journal-io.d.ts +5 -0
- package/dist/lib/context-mutation/mutation-journal-io.js +55 -0
- package/dist/lib/context-mutation/mutation-journal-storage.d.ts +18 -0
- package/dist/lib/context-mutation/mutation-journal-storage.js +283 -0
- package/dist/lib/context-mutation/mutation-journal-validation-support.d.ts +16 -0
- package/dist/lib/context-mutation/mutation-journal-validation-support.js +140 -0
- package/dist/lib/context-mutation/mutation-journal-validation.d.ts +3 -0
- package/dist/lib/context-mutation/mutation-journal-validation.js +177 -0
- package/dist/lib/context-mutation/mutation-journal.d.ts +8 -0
- package/dist/lib/context-mutation/mutation-journal.js +111 -0
- package/dist/lib/context-mutation/mutation-live-validation.d.ts +3 -0
- package/dist/lib/context-mutation/mutation-live-validation.js +51 -0
- package/dist/lib/context-mutation/mutation-long-task-guard.d.ts +6 -0
- package/dist/lib/context-mutation/mutation-long-task-guard.js +57 -0
- package/dist/lib/context-mutation/mutation-recovery.d.ts +4 -0
- package/dist/lib/context-mutation/mutation-recovery.js +189 -0
- package/dist/lib/context-mutation/mutation-staged-fs.d.ts +5 -0
- package/dist/lib/context-mutation/mutation-staged-fs.js +56 -0
- package/dist/lib/context-mutation/mutation-types.d.ts +103 -0
- package/dist/lib/context-mutation/mutation-types.js +1 -0
- package/dist/lib/context-register/context-register-input.d.ts +11 -0
- package/dist/lib/context-register/context-register-input.js +43 -0
- package/dist/lib/context-register/context-register-render.d.ts +2 -0
- package/dist/lib/context-register/context-register-render.js +21 -0
- package/dist/lib/context-register/context-register-support.d.ts +6 -0
- package/dist/lib/context-register/context-register-support.js +46 -0
- package/dist/lib/context-register/context-register-types.d.ts +46 -0
- package/dist/lib/context-register/context-register-types.js +1 -0
- package/dist/lib/context-register/context-register.d.ts +8 -0
- package/dist/lib/context-register/context-register.js +155 -0
- package/dist/lib/context-router/context-route-budget.d.ts +15 -0
- package/dist/lib/context-router/context-route-budget.js +14 -0
- package/dist/lib/context-router/context-route-candidates.d.ts +15 -0
- package/dist/lib/context-router/context-route-candidates.js +112 -0
- package/dist/lib/context-router/context-route-order.d.ts +6 -0
- package/dist/lib/context-router/context-route-order.js +53 -0
- package/dist/lib/context-router/context-route-paths.d.ts +16 -0
- package/dist/lib/context-router/context-route-paths.js +109 -0
- package/dist/lib/context-router/context-route-render.d.ts +2 -0
- package/dist/lib/context-router/context-route-render.js +32 -0
- package/dist/lib/context-router/context-route-scan.d.ts +18 -0
- package/dist/lib/context-router/context-route-scan.js +156 -0
- package/dist/lib/context-router/context-route-selection.d.ts +16 -0
- package/dist/lib/context-router/context-route-selection.js +72 -0
- package/dist/lib/context-router/context-route-terms.d.ts +13 -0
- package/dist/lib/context-router/context-route-terms.js +202 -0
- package/dist/lib/context-router/context-route-types.d.ts +101 -0
- package/dist/lib/context-router/context-route-types.js +1 -0
- package/dist/lib/context-router/context-route.d.ts +2 -0
- package/dist/lib/context-router/context-route.js +127 -0
- package/dist/lib/context-units-migration.d.ts +13 -0
- package/dist/lib/context-units-migration.js +217 -0
- package/dist/lib/design-authority-binding.d.ts +7 -0
- package/dist/lib/design-authority-binding.js +96 -0
- package/dist/lib/design-authority-closure.d.ts +3 -0
- package/dist/lib/design-authority-closure.js +201 -0
- package/dist/lib/design-authority-delta-codec-primitives.d.ts +10 -0
- package/dist/lib/design-authority-delta-codec-primitives.js +58 -0
- package/dist/lib/design-authority-delta-codec.d.ts +2 -0
- package/dist/lib/design-authority-delta-codec.js +193 -0
- package/dist/lib/design-authority-delta-types.d.ts +65 -0
- package/dist/lib/design-authority-delta-types.js +6 -0
- package/dist/lib/design-authority-delta-validation.d.ts +2 -0
- package/dist/lib/design-authority-delta-validation.js +16 -0
- package/dist/lib/design-authority-digest.d.ts +8 -0
- package/dist/lib/design-authority-digest.js +36 -0
- package/dist/lib/design-authority-files.d.ts +9 -0
- package/dist/lib/design-authority-files.js +62 -0
- package/dist/lib/design-authority-format.d.ts +2 -0
- package/dist/lib/design-authority-format.js +93 -0
- package/dist/lib/design-authority-links.d.ts +10 -0
- package/dist/lib/design-authority-links.js +137 -0
- package/dist/lib/design-authority-manifest.d.ts +4 -0
- package/dist/lib/design-authority-manifest.js +144 -0
- package/dist/lib/design-authority-tokens.d.ts +9 -0
- package/dist/lib/design-authority-tokens.js +45 -0
- package/dist/lib/design-authority-types.d.ts +80 -0
- package/dist/lib/design-authority-types.js +23 -0
- package/dist/lib/design-md-tool-adapter.d.ts +9 -0
- package/dist/lib/design-md-tool-adapter.js +152 -0
- package/dist/lib/design-md-tool-normalization.d.ts +7 -0
- package/dist/lib/design-md-tool-normalization.js +78 -0
- package/dist/lib/design-md-tool-types.d.ts +99 -0
- package/dist/lib/design-md-tool-types.js +8 -0
- package/dist/lib/design-resource-handoff-input-types.d.ts +1 -1
- package/dist/lib/design-resource-handoff-manifest-projection.js +3 -0
- package/dist/lib/design-resource-handoff-shape.js +14 -2
- package/dist/lib/design-resource-handoff-types.d.ts +3 -0
- package/dist/lib/design-resource-handoff-validation.js +16 -4
- package/dist/lib/design-resource-implementation-feasibility-validation-support.js +1 -1
- package/dist/lib/design-resource-recovery-current.js +22 -0
- package/dist/lib/design-resource-recovery-shape.js +64 -7
- package/dist/lib/design-resource-recovery-types.d.ts +4 -1
- package/dist/lib/design-resource-symbolic-fact-shape.js +7 -1
- package/dist/lib/design-resource-symbolic-fact-types.d.ts +3 -0
- package/dist/lib/design-resource-symbolic-fact-validation.js +15 -3
- package/dist/lib/doctor.d.ts +2 -1
- package/dist/lib/doctor.js +29 -1
- package/dist/lib/fs.js +1 -1
- package/dist/lib/long-task-acceptance-reachability-claims.d.ts +2 -0
- package/dist/lib/long-task-acceptance-reachability-claims.js +279 -0
- package/dist/lib/long-task-acceptance-reachability-design.d.ts +2 -0
- package/dist/lib/long-task-acceptance-reachability-design.js +96 -0
- package/dist/lib/long-task-acceptance-reachability-external.d.ts +9 -0
- package/dist/lib/long-task-acceptance-reachability-external.js +123 -0
- package/dist/lib/long-task-acceptance-reachability-helpers.d.ts +64 -0
- package/dist/lib/long-task-acceptance-reachability-helpers.js +473 -0
- package/dist/lib/long-task-acceptance-reachability-semantic.d.ts +2 -0
- package/dist/lib/long-task-acceptance-reachability-semantic.js +122 -0
- package/dist/lib/long-task-acceptance-reachability-types.d.ts +91 -0
- package/dist/lib/long-task-acceptance-reachability-types.js +1 -0
- package/dist/lib/long-task-acceptance-reachability.d.ts +4 -0
- package/dist/lib/long-task-acceptance-reachability.js +115 -0
- package/dist/lib/long-task-activation-validation.d.ts +6 -0
- package/dist/lib/long-task-activation-validation.js +72 -69
- package/dist/lib/long-task-active-authority-lock-context.d.ts +4 -0
- package/dist/lib/long-task-active-authority-lock-context.js +29 -0
- package/dist/lib/long-task-applicability-identity.d.ts +25 -0
- package/dist/lib/long-task-applicability-identity.js +60 -0
- package/dist/lib/long-task-authoring-preflight-diagnostics.js +8 -0
- package/dist/lib/long-task-authoring-preflight-types.d.ts +2 -0
- package/dist/lib/long-task-authoring-preflight-types.js +9 -0
- package/dist/lib/long-task-authoring-preflight.js +18 -2
- package/dist/lib/long-task-authority-material-diff.js +4 -0
- package/dist/lib/long-task-authority-materials.js +19 -0
- package/dist/lib/long-task-authority-policy.d.ts +3 -0
- package/dist/lib/long-task-authority-policy.js +3 -0
- package/dist/lib/long-task-authority-revision-details.js +2 -1
- package/dist/lib/long-task-authority-types.d.ts +2 -0
- package/dist/lib/long-task-authority.js +2 -0
- package/dist/lib/long-task-check-shape.js +6 -1
- package/dist/lib/long-task-claim-definitions.js +1 -3
- package/dist/lib/long-task-claim-semantic-proof-floor.d.ts +3 -0
- package/dist/lib/long-task-claim-semantic-proof-floor.js +78 -0
- package/dist/lib/long-task-claims.d.ts +0 -18
- package/dist/lib/long-task-claims.js +15 -14
- package/dist/lib/long-task-command-process.js +3 -0
- package/dist/lib/long-task-compact-authoring.js +3 -0
- package/dist/lib/long-task-compact-projections.js +10 -0
- package/dist/lib/long-task-complete-delivery-evidence-types.d.ts +38 -0
- package/dist/lib/long-task-complete-delivery-evidence-types.js +1 -0
- package/dist/lib/long-task-completion-types.d.ts +109 -0
- package/dist/lib/long-task-completion-types.js +1 -0
- package/dist/lib/long-task-conformance-policy.d.ts +2 -1
- package/dist/lib/long-task-conformance-policy.js +11 -4
- package/dist/lib/long-task-context-authority-topology.js +6 -4
- package/dist/lib/long-task-contract-types.d.ts +52 -1
- package/dist/lib/long-task-counterfactual-sandbox.d.ts +7 -1
- package/dist/lib/long-task-counterfactual-sandbox.js +86 -6
- package/dist/lib/long-task-delivery-compiler-preflight.d.ts +24 -0
- package/dist/lib/long-task-delivery-compiler-preflight.js +32 -0
- package/dist/lib/long-task-delivery-compiler.d.ts +1 -0
- package/dist/lib/long-task-delivery-compiler.js +59 -44
- package/dist/lib/long-task-delivery-parser.d.ts +3 -0
- package/dist/lib/long-task-delivery-parser.js +26 -8
- package/dist/lib/long-task-delivery-types.d.ts +2 -0
- package/dist/lib/long-task-delivery-types.js +2 -0
- package/dist/lib/long-task-delivery-validation.d.ts +6 -1
- package/dist/lib/long-task-delivery-validation.js +19 -4
- package/dist/lib/long-task-design-feasibility-binding.d.ts +1 -0
- package/dist/lib/long-task-design-feasibility-binding.js +3 -3
- package/dist/lib/long-task-design-feasibility-source-closure.js +11 -2
- package/dist/lib/long-task-design-obligation.d.ts +50 -0
- package/dist/lib/long-task-design-obligation.js +99 -0
- package/dist/lib/long-task-design-resource-handoff.d.ts +3 -1
- package/dist/lib/long-task-design-resource-handoff.js +36 -12
- package/dist/lib/long-task-design-resource-method-binding.js +12 -0
- package/dist/lib/long-task-effective-external-takeover.d.ts +15 -0
- package/dist/lib/long-task-effective-external-takeover.js +109 -0
- package/dist/lib/long-task-effective-external-ui-takeover.d.ts +5 -0
- package/dist/lib/long-task-effective-external-ui-takeover.js +117 -0
- package/dist/lib/long-task-evidence-capability-codec.js +91 -0
- package/dist/lib/long-task-evidence-capability-runtime.js +62 -14
- package/dist/lib/long-task-evidence-capability-types.d.ts +3 -2
- package/dist/lib/long-task-evidence-v2.d.ts +6 -1
- package/dist/lib/long-task-evidence-v2.js +253 -170
- package/dist/lib/long-task-execution-observation.d.ts +7 -0
- package/dist/lib/long-task-execution-observation.js +21 -4
- package/dist/lib/long-task-expected-authority.d.ts +4 -0
- package/dist/lib/long-task-expected-authority.js +126 -0
- package/dist/lib/long-task-external-confirmation-artifacts.d.ts +9 -0
- package/dist/lib/long-task-external-confirmation-artifacts.js +138 -0
- package/dist/lib/long-task-external-confirmation-attestation.d.ts +20 -0
- package/dist/lib/long-task-external-confirmation-attestation.js +115 -0
- package/dist/lib/long-task-external-confirmation-challenge.d.ts +23 -0
- package/dist/lib/long-task-external-confirmation-challenge.js +164 -0
- package/dist/lib/long-task-external-confirmation-context.d.ts +14 -0
- package/dist/lib/long-task-external-confirmation-context.js +53 -0
- package/dist/lib/long-task-external-confirmation-evaluation.d.ts +11 -0
- package/dist/lib/long-task-external-confirmation-evaluation.js +454 -0
- package/dist/lib/long-task-external-confirmation-expected.d.ts +8 -0
- package/dist/lib/long-task-external-confirmation-expected.js +200 -0
- package/dist/lib/long-task-external-confirmation-identity.d.ts +10 -0
- package/dist/lib/long-task-external-confirmation-identity.js +77 -0
- package/dist/lib/long-task-external-confirmation-plan.d.ts +25 -0
- package/dist/lib/long-task-external-confirmation-plan.js +148 -0
- package/dist/lib/long-task-external-confirmation-preparation.d.ts +4 -0
- package/dist/lib/long-task-external-confirmation-preparation.js +100 -0
- package/dist/lib/long-task-external-confirmation-shape.d.ts +8 -0
- package/dist/lib/long-task-external-confirmation-shape.js +387 -0
- package/dist/lib/long-task-external-confirmation-state.d.ts +10 -0
- package/dist/lib/long-task-external-confirmation-state.js +109 -0
- package/dist/lib/long-task-external-confirmation-types.d.ts +195 -0
- package/dist/lib/long-task-external-confirmation-types.js +1 -0
- package/dist/lib/long-task-final-integrity.d.ts +2 -0
- package/dist/lib/long-task-final-integrity.js +21 -10
- package/dist/lib/long-task-final-v2.d.ts +7 -2
- package/dist/lib/long-task-final-v2.js +179 -55
- package/dist/lib/long-task-finalization-identity.d.ts +27 -0
- package/dist/lib/long-task-finalization-identity.js +58 -0
- package/dist/lib/long-task-finding-context.d.ts +1 -1
- package/dist/lib/long-task-finding-context.js +139 -13
- package/dist/lib/long-task-freshness.d.ts +27 -0
- package/dist/lib/long-task-freshness.js +128 -5
- package/dist/lib/long-task-git.js +3 -3
- package/dist/lib/long-task-material-input-closure.d.ts +3 -0
- package/dist/lib/long-task-material-input-closure.js +92 -0
- package/dist/lib/long-task-obligation-authority-resolution.d.ts +12 -0
- package/dist/lib/long-task-obligation-authority-resolution.js +57 -0
- package/dist/lib/long-task-obligation-semantic-identity.d.ts +16 -0
- package/dist/lib/long-task-obligation-semantic-identity.js +116 -0
- package/dist/lib/long-task-observation-authority.d.ts +11 -0
- package/dist/lib/long-task-observation-authority.js +137 -6
- package/dist/lib/long-task-process-table.d.ts +2 -5
- package/dist/lib/long-task-process-table.js +21 -53
- package/dist/lib/long-task-process-tree.d.ts +0 -1
- package/dist/lib/long-task-process-tree.js +24 -54
- package/dist/lib/long-task-proof-adequacy.d.ts +12 -0
- package/dist/lib/long-task-proof-adequacy.js +57 -0
- package/dist/lib/long-task-proof-capability-floor.d.ts +6 -0
- package/dist/lib/long-task-proof-capability-floor.js +137 -0
- package/dist/lib/long-task-repair-frontier-checks.d.ts +8 -0
- package/dist/lib/long-task-repair-frontier-checks.js +93 -0
- package/dist/lib/long-task-repair-frontier-groups.d.ts +2 -0
- package/dist/lib/long-task-repair-frontier-groups.js +64 -0
- package/dist/lib/long-task-repair-frontier-utils.d.ts +6 -0
- package/dist/lib/long-task-repair-frontier-utils.js +27 -0
- package/dist/lib/long-task-repair-frontier.d.ts +14 -0
- package/dist/lib/long-task-repair-frontier.js +132 -0
- package/dist/lib/long-task-risk.d.ts +3 -2
- package/dist/lib/long-task-risk.js +73 -24
- package/dist/lib/long-task-root-shape.js +148 -8
- package/dist/lib/long-task-runner-freeze.d.ts +2 -1
- package/dist/lib/long-task-runner-freeze.js +23 -8
- package/dist/lib/long-task-runtime-types.d.ts +34 -40
- package/dist/lib/long-task-semantic-assurance-policy.js +2 -11
- package/dist/lib/long-task-semantic-contract-types.d.ts +2 -1
- package/dist/lib/long-task-semantic-drift-migration.js +48 -2
- package/dist/lib/long-task-semantic-fact-binding-types.d.ts +20 -0
- package/dist/lib/long-task-semantic-fact-closure.d.ts +5 -1
- package/dist/lib/long-task-semantic-fact-closure.js +33 -5
- package/dist/lib/long-task-semantic-fact-contract-closure.js +176 -1
- package/dist/lib/long-task-semantic-fact-contract-proofs.js +18 -1
- package/dist/lib/long-task-semantic-fact-input-closure.d.ts +16 -2
- package/dist/lib/long-task-semantic-fact-input-closure.js +138 -15
- package/dist/lib/long-task-semantic-fact-provenance-closure.js +1 -1
- package/dist/lib/long-task-semantic-fact-shape.d.ts +2 -1
- package/dist/lib/long-task-semantic-fact-shape.js +35 -1
- package/dist/lib/long-task-semantic-proof-adequacy.d.ts +2 -0
- package/dist/lib/long-task-semantic-proof-adequacy.js +19 -0
- package/dist/lib/long-task-semantic-proof-profile.d.ts +5 -0
- package/dist/lib/long-task-semantic-proof-profile.js +187 -0
- package/dist/lib/long-task-shape-primitives.d.ts +1 -1
- package/dist/lib/long-task-shape-primitives.js +5 -0
- package/dist/lib/long-task-source-anchors.d.ts +10 -0
- package/dist/lib/long-task-source-anchors.js +102 -0
- package/dist/lib/long-task-source-authority-types.d.ts +46 -0
- package/dist/lib/long-task-source-claim-validation.js +36 -0
- package/dist/lib/long-task-source-conservation-facts.d.ts +8 -0
- package/dist/lib/long-task-source-conservation-facts.js +57 -0
- package/dist/lib/long-task-source-conservation-types.d.ts +34 -0
- package/dist/lib/long-task-source-conservation-types.js +1 -0
- package/dist/lib/long-task-source-conservation.d.ts +7 -0
- package/dist/lib/long-task-source-conservation.js +110 -0
- package/dist/lib/long-task-source-fragments.d.ts +6 -0
- package/dist/lib/long-task-source-fragments.js +219 -0
- package/dist/lib/long-task-source-projection-resolution.d.ts +5 -0
- package/dist/lib/long-task-source-projection-resolution.js +57 -0
- package/dist/lib/long-task-source-projection-validation.d.ts +17 -0
- package/dist/lib/long-task-source-projection-validation.js +154 -0
- package/dist/lib/long-task-source-shape.js +14 -6
- package/dist/lib/long-task-source-supersession.d.ts +5 -0
- package/dist/lib/long-task-source-supersession.js +138 -0
- package/dist/lib/long-task-stage-policy.d.ts +7 -2
- package/dist/lib/long-task-stage-policy.js +67 -23
- package/dist/lib/long-task-state.d.ts +18 -4
- package/dist/lib/long-task-state.js +319 -33
- package/dist/lib/long-task-static-observation-freeze.js +4 -3
- package/dist/lib/long-task-status-projection.d.ts +3 -1
- package/dist/lib/long-task-status-projection.js +44 -13
- package/dist/lib/long-task-status-v2.d.ts +10 -6
- package/dist/lib/long-task-status-v2.js +70 -58
- package/dist/lib/long-task-target-policy.d.ts +8 -3
- package/dist/lib/long-task-target-policy.js +40 -9
- package/dist/lib/long-task-terminal-finalization.d.ts +12 -0
- package/dist/lib/long-task-terminal-finalization.js +190 -0
- package/dist/lib/long-task-ui-design-policy.js +15 -4
- package/dist/lib/long-task-verifier-counterfactuals.d.ts +11 -0
- package/dist/lib/long-task-verifier-counterfactuals.js +96 -0
- package/dist/lib/long-task-verifier-execution.d.ts +9 -0
- package/dist/lib/long-task-verifier-execution.js +67 -0
- package/dist/lib/long-task-verifier-identity.js +16 -5
- package/dist/lib/long-task-verifier-v2.js +52 -65
- package/dist/lib/long-task-windows-job-supervisor-helper.d.ts +1 -0
- package/dist/lib/long-task-windows-job-supervisor-helper.js +104 -0
- package/dist/lib/long-task-windows-job-supervisor-protocol.d.ts +28 -0
- package/dist/lib/long-task-windows-job-supervisor-protocol.js +124 -0
- package/dist/lib/long-task-windows-job-supervisor-result.d.ts +11 -0
- package/dist/lib/long-task-windows-job-supervisor-result.js +152 -0
- package/dist/lib/long-task-windows-job-supervisor.d.ts +2 -0
- package/dist/lib/long-task-windows-job-supervisor.js +126 -0
- package/dist/lib/long-task-workspace-scope.d.ts +1 -0
- package/dist/lib/long-task-workspace-scope.js +4 -1
- package/dist/lib/long-task-workspace.d.ts +1 -0
- package/dist/lib/long-task-workspace.js +10 -0
- package/dist/lib/migrations.js +43 -2
- package/dist/lib/repository-path-safety.d.ts +1 -0
- package/dist/lib/repository-path-safety.js +3 -3
- package/dist/lib/semantic-fact-input-shape.d.ts +7 -2
- package/dist/lib/semantic-fact-input-shape.js +25 -1
- package/dist/lib/semantic-fact-inventory-types.d.ts +8 -2
- package/dist/lib/semantic-fact-policy-census.d.ts +1 -1
- package/dist/lib/semantic-fact-policy-census.js +5 -2
- package/dist/lib/semantic-fact-policy.d.ts +1 -1
- package/dist/lib/semantic-fact-policy.js +2 -2
- package/dist/lib/semantic-fact-proof-shape.d.ts +1 -1
- package/dist/lib/semantic-fact-property-shape.d.ts +1 -1
- package/dist/lib/validators.d.ts +3 -0
- package/dist/lib/validators.js +45 -157
- package/dist/public-api-core.d.ts +12 -0
- package/dist/public-api-core.js +12 -0
- package/dist/public-api-long-task.d.ts +10 -0
- package/dist/public-api-long-task.js +10 -0
- package/dist/public-types.d.ts +5 -1
- package/dist/schemas/design-authority-delta-assessment-v1.schema.json +191 -0
- package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +166 -2
- package/dist/schemas/long-task-external-confirmation-record-v1.schema.json +155 -0
- package/dist/schemas/long-task-external-confirmation-record-v2.schema.json +209 -0
- package/migrations/README.md +99 -0
- package/package.json +7 -5
- package/source-mappings.yaml +18 -0
package/assets/README.md
CHANGED
|
@@ -73,18 +73,18 @@ It does not launch or switch models, spawn agent sessions, create branches or wo
|
|
|
73
73
|
|
|
74
74
|
## Capability Model
|
|
75
75
|
|
|
76
|
-
| Capability
|
|
77
|
-
|
|
78
|
-
| **Minimal Context**
|
|
79
|
-
| **Workflow Contract**
|
|
80
|
-
| **Long-Task Workflow** | Enable the `long-task` profile once, then explicitly select `long-task-workflow`, or resume an existing valid binding, when machine completion authority, recoverability or auditability is required. Task size alone never activates it. | One Source-bound Delivery Contract, Authority Lock, recoverable scoped progress, protected revision, exact declared-obligation evidence and one current-snapshot Live Final Gate.
|
|
76
|
+
| Capability | When and how to use it | What it owns |
|
|
77
|
+
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
78
|
+
| **Minimal Context** | Installed by default. Agents read and update `project_context/**` on every delivery route. | Durable goals, ownership, architecture/interface/state boundaries and repeatable verification/deployment facts. It never claims that implementation or tests passed. |
|
|
79
|
+
| **Workflow Contract** | The prompt-level default after `init`, for implementation work of any complexity whenever Long-Task is not explicitly selected or already bound. There is no Skill command or `delivery-contract.yaml`. | The model-led lightweight loop: Context discovery, risk-proportional requirement/architecture judgment, one `Context Delta`, Goal-owned implementation, current-candidate project checks, failure repair, evidence-bounded Contract Conformance and Context drift. It creates no exact Fact ledger, validator result, Receipt, persisted workflow state or machine completion. |
|
|
80
|
+
| **Long-Task Workflow** | Enable the `long-task` profile once, then explicitly select `long-task-workflow`, or resume an existing valid binding, when machine completion authority, recoverability or auditability is required. Task size alone never activates it. | One Source-bound Delivery Contract, Authority Lock, recoverable scoped progress, protected revision, exact declared-obligation evidence and one current-snapshot Live Final Gate. |
|
|
81
81
|
|
|
82
82
|
The relationship is deliberately one-of-two at execution time: every delivery consumes Minimal Context, then the default Workflow Contract applies unless `long-task-workflow` is explicitly selected or validly bound. Complexity determines execution and verification depth; required completion authority and recoverability determine the workflow route; Long-Task-internal risk determines proof strength. Long-Task Final Gate carries Engineering Quality/Architecture Conformance and selected-design closure instead of duplicating the default Contract Conformance closure.
|
|
83
83
|
|
|
84
|
-
| Task shape
|
|
85
|
-
|
|
86
|
-
| Local or small
|
|
87
|
-
| Cross-module or complex | Default Workflow Contract remains valid
|
|
84
|
+
| Task shape | Model-led, evidence-bounded handoff is sufficient | Machine-traceable complete closure is required |
|
|
85
|
+
| ----------------------- | ------------------------------------------------- | ---------------------------------------------- |
|
|
86
|
+
| Local or small | Default Workflow Contract | Explicit Long-Task is available |
|
|
87
|
+
| Cross-module or complex | Default Workflow Contract remains valid | Explicit Long-Task |
|
|
88
88
|
|
|
89
89
|
The base managed set also provides two explicitly triggered Open Design adapters: `design-system-authoring` generates/selects/adopts project Design Authority at cold start, while `design-resource-authoring` commissions task-local resources. They are optional upstream Skills, not a fourth mechanism and not stages inside Long-Task. Their selected outputs may feed either execution route, and `long-task-workflow` is the only active long-task execution Skill. Retired standalone authoring pointers are not installed; Long-Task inputs enter one Source-bound Contract Draft loop directly and pre-existing planning documents remain ordinary Source.
|
|
90
90
|
|
|
@@ -109,7 +109,7 @@ Start from the delivery request: either concise product intent or a detailed ini
|
|
|
109
109
|
Use this route when an implementation delivery both genuinely needs new style-bearing design resources and requires Long-Task's machine-assurance/recovery/audit boundary. It composes existing capabilities; it is not a prerequisite for every Long-Task:
|
|
110
110
|
|
|
111
111
|
1. **Enable Long-Task once.** Run `ty-context enable long-task` before selecting the workflow Skill.
|
|
112
|
-
2. **Establish Design Authority only when needed.** If the project has no adopted Design Authority
|
|
112
|
+
2. **Establish or revise Design Authority only when needed.** If the project has no adopted Design Authority, or a selected task design has a reusable system delta, explicitly select `$design-system-authoring` in `bootstrap`, `revise` or `reconcile` mode. Candidate selection and Authority adoption are separate decisions: after the Skill presents the exact project diff and migration impact, explicitly confirm adoption. Skip this step when the current complete Authority closure already covers the style-bearing scope.
|
|
113
113
|
3. **Prepare a writable initial proposal.** Put the project-native product/technical proposal at a concrete path such as `docs/initial-proposal.md`. It may be authored by the user, an external service or an explicitly requested applicable proposal capability. `design-resource-authoring` does not author the initial proposal, and no standalone intermediary authoring stage is required.
|
|
114
114
|
4. **Generate and select design resources.** Select `$design-resource-authoring` with the proposal path plus the exact development scope and targets. For formal Web/App work it first reads real technical Source, then returns one reconciled proposal, selected immutable canonical resources with their manifest/dependencies, a separate implementation-feasibility input, and a validated residual `design-resource-handoff-v1`.
|
|
115
115
|
5. **Start the Single-Goal delivery.** Select `$long-task-workflow` and give it the exact paths to the reconciled proposal, validated handoff, implementation-feasibility input and selected canonical resource set. The Skill authors the Source-bound Contract Draft. Its first Compile/Authority Lock always ends the current turn before implementation and says `After handling the model change, reply exactly: model checkpoint cleared, continue`; a generic continuation does not satisfy the managed prompt protocol, earlier model wording cannot skip the boundary, and Harness cannot observe the next host message or whether the model changed. After the user resumes, the parent identifies qualifying bounded packets before profile/capacity. Absent an explicit user or host prohibition, a qualifying set requires actual host calls for multiple exact `long_task_implementation` workers; host results determine zero-start or partial fallback under the Skill's six-reason rule. Worker count stays dynamic, generic substitutes remain forbidden, and the parent alone owns Source, Contract, Authority, architecture, Context, packet selection, integration, current-candidate checks, formal verification, Final Gate, close and completion.
|
|
@@ -117,7 +117,9 @@ Use this route when an implementation delivery both genuinely needs new style-be
|
|
|
117
117
|
One concrete invocation sequence is:
|
|
118
118
|
|
|
119
119
|
```text
|
|
120
|
-
$design-system-authoring
|
|
120
|
+
$design-system-authoring Bootstrap the project design system for this style-bearing scope, present candidates and the exact project diff, and stop for a separate adoption confirmation. Skip this request when the complete current Authority closure already covers the scope.
|
|
121
|
+
|
|
122
|
+
After reviewing the selected candidate and exact diff: explicitly adopt design-system candidate <candidate-id>.
|
|
121
123
|
|
|
122
124
|
Prepare a writable project-native initial proposal at docs/initial-proposal.md for <delivery scope>.
|
|
123
125
|
|
|
@@ -135,7 +137,7 @@ Other valid routes remain available:
|
|
|
135
137
|
- **Delivery that first needs design resources:** follow the design-first sequence above, then feed the revised proposal plus selected immutable resources and the validated handoff to either the default Workflow Contract or `long-task-workflow`, based on recovery and completion-authority needs.
|
|
136
138
|
- **Design-resource-only request:** stop after `design-resource-authoring`; do not create a Long-Task Contract unless implementation delivery was also explicitly selected.
|
|
137
139
|
|
|
138
|
-
The design-system step is user-selected
|
|
140
|
+
The design-system step is user-selected; no command or downstream Skill runs it automatically. It can bootstrap a new Authority, revise an existing one, or reconcile a user-promoted DRA Authority-delta candidate. `design-resource-authoring` gates only style-bearing work when Design Authority is unconfigured, and task-resource selection never implies system adoption. Low-fidelity structure, IA/flow and semantics-only state studies remain available without that gate. A pre-existing planning or proposal document remains ordinary Source, not a recommended intermediate service.
|
|
139
141
|
|
|
140
142
|
## Try It In 60 Seconds
|
|
141
143
|
|
|
@@ -187,7 +189,7 @@ The smoke packs the local workspace, installs it into a disposable repo and vali
|
|
|
187
189
|
|
|
188
190
|
```sh
|
|
189
191
|
cd /path/to/your/test-repo
|
|
190
|
-
npm install -D /path/to/project-tiny-context-harness/tmp/ty-context/source-preview/package/project-tiny-context-harness-0.
|
|
192
|
+
npm install -D /path/to/project-tiny-context-harness/tmp/ty-context/source-preview/package/project-tiny-context-harness-0.11.0.tgz
|
|
191
193
|
npx --no-install ty-context init --adopt
|
|
192
194
|
make validate-context
|
|
193
195
|
```
|
|
@@ -196,12 +198,12 @@ If it fails, open a [Source preview report](https://github.com/Seven128/project-
|
|
|
196
198
|
|
|
197
199
|
## Positioning
|
|
198
200
|
|
|
199
|
-
| Adjacent tool type
|
|
200
|
-
|
|
201
|
-
| Spec-first kits
|
|
202
|
-
| BMAD-style workflows and full Tiny Context processes | Role/process ceremony for selected work.
|
|
203
|
-
| Task Master-style planners
|
|
204
|
-
| Context7/Serena-style retrieval
|
|
201
|
+
| Adjacent tool type | Use it for | Harness stance |
|
|
202
|
+
| ---------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------ |
|
|
203
|
+
| Spec-first kits | Turning a feature idea into structured specs and plans. | Complementary; Harness keeps durable repo facts beyond one feature spec. |
|
|
204
|
+
| BMAD-style workflows and full Tiny Context processes | Role/process ceremony for selected work. | Lighter automatic route; explicit machine assurance stays opt-in. |
|
|
205
|
+
| Task Master-style planners | Backlog decomposition and task state. | Complementary; Harness does not own backlog state. |
|
|
206
|
+
| Context7/Serena-style retrieval | External docs, symbols or repository retrieval. | Complementary; Harness owns local intended boundaries. |
|
|
205
207
|
|
|
206
208
|
## Minimal Context
|
|
207
209
|
|
|
@@ -216,7 +218,32 @@ minimum graph-relevant area/role Context
|
|
|
216
218
|
|
|
217
219
|
Only near-universal recovery facts should use `read_policy = "default"`; specialized architecture, contract, deployment and historical detail should be task-triggered `on-demand` Context. Before deciding `Context Delta`, the Agent also runs one bounded text search over `project_context/**` using a small set of high-signal task terms such as explicit area/module names and API/schema/state/security/verification/deployment language. Matching files are merged with manifest candidates and filtered by semantic relevance. This is not a vector or persistent retrieval system and creates no index, cache, registry, search state or authority.
|
|
218
220
|
|
|
219
|
-
`ty-context doctor`
|
|
221
|
+
`ty-context doctor` keeps the deterministic default-footprint report and also inspects every Context Markdown file, including unregistered files. It reports default/on-demand/legacy/unregistered byte distribution, the largest on-demand file, per-file size and maximum line length, trigger fan-out, explicit local Markdown-link integrity, and duplicate opt-in declarations such as `<!-- ty-context-declare Fact-ID: OBS-001 -->`. New findings are advisory by default; `--strict` is an explicit project choice and is never added to CI implicitly. Genuine recovery facts take precedence over byte and line heuristics.
|
|
222
|
+
|
|
223
|
+
Schema v4 continues to accept `default`, `on-demand`, `always`, `optional` and `never-default`. Only `default` enters the default set directly; every registered node referenced through `default_children` enters transitively regardless of policy. Version 0.10 warns about the three legacy values without reinterpreting or automatically migrating them. In particular, `always -> default` can expand the footprint, while `never-default` plus an incoming default-child edge remains current-compatible but contradictory migration input that must be resolved explicitly.
|
|
224
|
+
|
|
225
|
+
The separate explicit `ty-context upgrade` path can convert the retired pre-v4 `[[context_units]]` table name when every legacy table has a provably simple single-line representation. It renames the table, removes only retired `id`/`area` fields and preserves every untouched byte and line ending. Complex or mixed-format TOML and current/legacy path conflicts become `manual_required`; ordinary `sync` never performs this migration.
|
|
226
|
+
|
|
227
|
+
Context maintenance commands share the same Catalog interpretation as validation and Doctor:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
ty-context route --task "change the weather map contract" --path apps/client/src/map.ts --explain
|
|
231
|
+
ty-context context inspect project_context/areas/main/weather.md --task "change the weather map contract"
|
|
232
|
+
ty-context context create --path project_context/areas/main/weather.md --role domain
|
|
233
|
+
ty-context context register --path project_context/areas/main/weather.md --role domain
|
|
234
|
+
ty-context context move --from project_context/deployment.md --to project_context/deployment/index.md
|
|
235
|
+
ty-context context transaction status
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
`route` is an experimental, stateless literal candidate diagnostic over all eligible `project_context/**`, including clearly labelled unregistered files. Its versioned JSON, fixed candidate/content/output budgets, stable ordering, explanations and byte costs do not establish Authority, participate in the default footprint or satisfy the Workflow-required bounded search. Budget exhaustion returns an explicitly incomplete result. These Router budgets apply after the Shared Catalog has completed repository-wide Context discovery and metadata collection; 0.10 deliberately leaves that traversal complete. A future total-discovery cap must be Catalog-owned, propagate typed incompleteness to every consumer and make Router return `complete: false`/exit `4`; a Router-only walker or silently truncated Validate/Doctor result is not allowed. `context inspect` reports one file's registration, Role, read metadata, default reasons, explicit backlinks, stable-key conflicts and optional route explanation without writing files.
|
|
239
|
+
|
|
240
|
+
Version 0.10.1 added only the bounded `context create` write. It publishes one Role-specific TODO-only Markdown scaffold below `project_context/**`, labels it unregistered, refuses unsafe paths and existing/concurrently appearing targets, and reports the unchanged default footprint. It never edits `context.toml`, never creates durable product or architecture facts, and has no combined register or force-overwrite option. Replace every TODO with real owner facts before separately registering the file; a placeholder scaffold intentionally fails registered-Context recoverability.
|
|
241
|
+
|
|
242
|
+
The completed 0.10.x mutation commands are dry-run-first. `context register` accepts one existing, recoverable, unregistered file, emits only canonical `default`/`on-demand` policy values and appends one parser-validated `[[context]]` block without rewriting untouched TOML. `context move` accepts one uniquely registered Context/Area owner, patches that owner plus structured `default_children`, rebases explicit CommonMark links inside all Context Markdown, reports exact prose/code/config references without changing them, and refuses apply while its bounded repository scan is incomplete or unresolved. A missing target directory is part of the recoverable plan.
|
|
243
|
+
|
|
244
|
+
Applied registration and move share current-byte/file-identity CAS, synchronized same-directory temporaries, a fully validated candidate-tree overlay, deterministic commit order, live after-state validation and `context transaction status|rollback|complete`. Current writes use `context-mutation-journal-v3`, whose immutable digest-linked generations bind each NFC logical key to its exact physical path. `context-mutation-journal-v2` remains recovery-readable with equal logical and physical paths. Pre-v2 journals require a version-matched package or explicit manual recovery and are never guessed or rewritten. Recovery records and compares complete before/published endpoint snapshots (content, mode and available file identity), accepts only exact journal-owned partial temporaries and refuses external conflicts, unowned links or a newly active Long-Task binding. Long-Task first Compile, activation, in-place Revision and mutation recovery serialize through the existing Active Authority lock, and each Long-Task write path refuses an unfinished journal. If an already-active binding conflicts with crash recovery, recovery writes nothing: end that binding through the legitimate Long-Task lifecycle, complete or roll back the transaction, then freshly Compile/rebind and perform any required Authority Revision. This is deterministic cooperative crash recovery, not a claim of filesystem-wide multi-file atomicity or hostile-writer mutex. There is no `--force`, manual lock deletion or implicit whole-Manifest normalization path.
|
|
245
|
+
|
|
246
|
+
These Context commands use classified exits: `0` completed, `2` arguments, `3` blocking Catalog, `4` incomplete scan budget, `5` I/O/path safety and `6` internal; ordinary route ambiguity and unresolved paths remain completed diagnostic results.
|
|
220
247
|
|
|
221
248
|
Typical roles are area/domain, contract, foundation, decision-rationale, implementation-index, verification and deployment. Context owns durable intended boundaries; code owns current implementation; tests, CI, browser/runtime evidence and people own behavior and product acceptance.
|
|
222
249
|
|
|
@@ -318,9 +345,9 @@ The generated canonical implementation source remains the sole owner of exact va
|
|
|
318
345
|
|
|
319
346
|
Formal Web/App handoff also indexes one separate `design-resource-implementation-feasibility-v1` JSON Source per target. It records current platform, framework/runtime, UI system, token/theming adapter, component-owner roots and route-owner roots; non-observed dispositions carry a reason instead of a fabricated value. Every material component-family × target × condition profile binds the complete matching V1 Fact or intersecting V2 Rule set and has one or more capability/feasibility-Source-backed reuse/compose/extend/theme/create candidates or an explicit blocker. Composite multi-primitive strategies, per-platform candidates and authorized planned owners are allowed. Browser-only capability cannot be relabeled as a native-App/React Native substrate. Exact visual values remain in canonical resources and are rejected from feasibility prose; DRA cannot choose a required production realization without independent technical authority. V1 uses an exact condition partition and symbolic V2 uses reachable, disjoint and exhaustive regions. New V1 bundle publication requires the input; direct preflight keeps legacy implementation handoffs readable and reports `technical feasibility not declared` when absent, while a `reference` target may truthfully omit it without that limitation.
|
|
320
347
|
|
|
321
|
-
Unresolved substrate observations are target-wide rather than representative: every `decision_required` or `unavailable` observation must be named by an exact blocker in every material family × condition cell, blocker and marked-Source projection observation-ref sets must match, and no-family vacuity fails. Candidate cells require observed component-owner roots.
|
|
348
|
+
Unresolved substrate observations are target-wide rather than representative: every `decision_required` or `unavailable` observation must be named by an exact blocker in every material family × condition cell, blocker and marked-Source projection observation-ref sets must match, and no-family vacuity fails. Candidate cells require observed component-owner roots. Across observation reasons, costs, risks and blocker descriptions, compact, spaced and singular/plural `millisecond|msec|ms|second|sec|s` durations use one classifier: motion context always blocks, explicit build/compile/test/startup/latency/timeout/network/benchmark/runtime/render cost context is valid, and an otherwise context-free time literal fails closed. Exact motion or ambiguous time values remain canonical-resource data.
|
|
322
349
|
|
|
323
|
-
For Long-Task consumption, every `file`/`path_glob` target and carrier, every `verified` carrier and every planned non-empty carrier is proven wholly inside observed component/route roots; a partial or indeterminate match fails. Empty component refs remain invalid in standalone Contract validation. Full activation may defer that one check only
|
|
350
|
+
For Long-Task consumption, every `file`/`path_glob` target and carrier, every `verified` carrier and every planned non-empty carrier is proven wholly inside observed component/route roots; a partial or indeterminate match fails. Empty component refs remain invalid in standalone Contract validation. Full activation may defer that one check only when every target is modern blocker-only, with a valid route and exact blocker closure; a legacy target cannot borrow that exception. Pure-legacy surfaces retain their historical non-empty component-Binding compatibility but gain no feasibility claim. Once any modern feasibility target appears, each component Binding must be consumed by a modern candidate-bearing cell's actual unique match; legacy consumes none, so an extra Binding cannot be laundered through a mixed surface, while an explicitly matched Binding may be shared by modern targets. An open target-blocking External Confirmation reaches `blocked_external`, never `machine_accepted`, without adding or changing the sole Final Gate.
|
|
324
351
|
|
|
325
352
|
Ready handoff requires exact set equality: `Expected Fact Universe = Canonical Resource Facts = Handoff Indexed Facts`, together with complete material-with-facts or honestly supporting-only resource closure. The canonical per-target manifest is the sole complete Fact/Census/proof index. New authoring keeps the shipped `design-resource-handoff-v1` marker and adds `representation: manifest_backed`; YAML carries only residual Source/scope/resource/target/closure/coverage/proposal binding, and preflight hydrates the same complete V1 object from the frozen manifest. Older embedded V1 remains read-compatible. UI symbolic V2 is explicit opt-in; V1 remains the default. An opted-in target uses `design-resource-handoff-v2`, `representation: symbolic_rules_v2` and `design-resource-observable-rule-manifest-v2`; constant located expected values and mutually exclusive canonical regions preserve exact point meaning. Applicability either keeps legacy exact remainder rows or uses package-owned property profiles, frozen Inspector custom-property closure and explicit unique instance exceptions, while every logical subject-property point retains one disposition. Fact Rule, required-method semantic obligation and set-valued non-interference certificate identities remain separate. `ready` is emitted only after unresolved dispositions and blockers are absent, V1 proof policies pass, and an `exact_target`'s full-target layout and pixel region unions each cover the complete reachable domain. Omitted axes require 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. Preflight resolves immutable resources and exact locators, recomputes canonical DAG/region/certificate identity and rejects missing, overlapping, gapped, unresolved, unsupported, stale or value-conflicting input. Exploration remains schema-free.
|
|
326
353
|
|
|
@@ -344,15 +371,25 @@ An explicit Long-Task is the strong authority carrier of the same shared obligat
|
|
|
344
371
|
|
|
345
372
|
Combined design-and-implementation work may author candidates in ordinary Outcomes/Stages, but a candidate or planned target cannot authorize fidelity implementation. The selection must become real marked Context-reachable Source plus its owning Context/`DESIGN.md` reference and, after Authority Lock, an adopted Authority Revision. Browser visual ACs may use `ui_browser` for diagnostic localization, but current machine closure remains External Confirmation; a browser proxy, detached route or deep link cannot prove a native/root journey that can fail independently. Resource integrity and `visual_render` cannot satisfy selected-target implementation conformance. Frozen baselines are verifier inputs, generated actual renders/diffs are current artifacts, and subjective approval remains external. This adds no `uiux_delivery` block, visual Claim type, resource registry, risk level, lifecycle state, Gate, required design directory, per-Control screenshot matrix or universal pixel threshold.
|
|
346
373
|
|
|
347
|
-
`ty-context doctor` keeps its compatible `missing | unconfigured | configured` project-level status and adds advisory
|
|
374
|
+
`ty-context doctor` keeps its compatible `missing | unconfigured | configured` project-level status and adds advisory complete-closure, token-projection, extra-file and normative-link diagnostics. Structural bundle errors remain visible without turning visual judgment into a machine claim. Doctor does not infer surface implementation readiness; that still requires the owning Screen/Control meaning, selected target/constraints and project-owned verification.
|
|
348
375
|
|
|
349
376
|
Static guidance tests prove routing text, positive/negative analysis rules, distribution, projection and canonical ownership—not real host Skill activation, Agent adherence, map-design quality, runtime cost, performance or ROI. The optional delivery-mechanism benchmark provides a fixed fresh-agent UI/UX Context/target-recovery task with routing gold and a hidden production oracle; only independent paired runs may support effectiveness or ROI conclusions.
|
|
350
377
|
|
|
351
378
|
### Explicit Design System Authoring
|
|
352
379
|
|
|
353
|
-
Use `design-system-authoring` only when the user explicitly asks to
|
|
380
|
+
Use `design-system-authoring` only when the user explicitly asks to `bootstrap`, `revise` or `reconcile` the project design system/design style. A DRA `authority_delta_candidate`, missing `DESIGN.md` or ordinary UI work never invokes it automatically. The Skill discovers live Open Design capabilities and keeps provider execution in the Skill layer; the package-local `@google/design.md` adapter performs deterministic lint/parse/export/diff only and is not a generator or provider runtime.
|
|
381
|
+
|
|
382
|
+
Root `DESIGN.md` is the unique Authority entry, human revision owner and first-bundle editable exact-Token owner. Bundle adoption writes the exact `<!-- ty-context-design-authority-format: bundle-v1 -->` machine declaration as the first non-empty Markdown body line after supported YAML front matter and creates the sparse `design_system/authority.manifest.json`; the marker and manifest are required as a pair. The manifest owns only sorted closure membership and `closure_digest`; it does not copy revision, direction or Token values. Missing, renamed, empty or invalid manifest under the marker, an orphan manifest, a moved/duplicate/non-canonical marker, or non-portable physical path casing fails closure. `design_system/tokens.json` is deterministic DTCG output from supported DESIGN front matter, never an independently edited authority. Component, pattern, motion and platform children exist only for real reusable rules. A true unmarked project without a manifest remains a compatible one-file closure.
|
|
383
|
+
|
|
384
|
+
The machine identity is the entry plus complete closure digest; the human revision is diagnostic. Closure validation rejects unsafe or duplicate paths, case collisions, symlink/hardlink aliases, invalid UTF-8/BOM, generated-Token drift and incomplete normative local links. A subordinate change stales DRA recovery/handoff and Long-Task bindings even if the revision label is unchanged. Read-only inspection is available through:
|
|
354
385
|
|
|
355
|
-
|
|
386
|
+
```bash
|
|
387
|
+
ty-context design-authority inspect --format json
|
|
388
|
+
ty-context design-authority tokens
|
|
389
|
+
ty-context design-authority tokens --from-entry
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Generation produces candidates. Explicit human selection—or explicit delegated selection with known criteria—comes first; after the exact project diff and migration impact are visible, a separate explicit adoption confirmation is required. Adoption updates the root entry and only necessary sparse owners, deterministically regenerates Tokens, publishes a new closure digest, rebinds affected DRA resources and reruns their checks. Open Design provider ID/revision/digest and project binding remain synchronization provenance, not another authority. Provider success, artifact readiness, selection, adoption and `get_project.designSystemId` binding verification are reported separately.
|
|
356
393
|
|
|
357
394
|
### Optional Design Resource Authoring
|
|
358
395
|
|
|
@@ -362,6 +399,8 @@ The Skill fixes the requested output or development content as a hard scope ceil
|
|
|
362
399
|
|
|
363
400
|
Inside that ceiling, DRA records selected existing coverage, new gaps and preservation obligations. An outside-ceiling effect returns existing `decision-required` with reason `scope-expansion-required`; only the user can expand the ceiling. A durable Product/Surface/Screen/Design change updates its actual owner before generation resumes. Style-bearing commissions carry Source-derived `style_application` fields only where needed plus an archetype-specific `quality_commission` for primary challenges, desired/avoided visual character, real copy/data, reference roles and design-side shared-family reuse. These are task-local Provider inputs, not files, states, scores, Authorities or routing records.
|
|
364
401
|
|
|
402
|
+
After a task direction is selected, DRA performs one non-authoritative Authority Delta Assessment against the exact current closure: `consistent_with_current_authority`, `task_local_variance` or `authority_delta_candidate`. A one-task variance declares `precedent: forbidden`; a reusable local variance must reach a named Screen Contract owner. A system delta is only a pure candidate packet and stops DRA until the user separately invokes DSA `reconcile`. The strict optional JSON form is read-only validated with `ty-context design-resource authority-delta validate <assessment.json> --json`; it cannot select, adopt, write Authority or invoke a provider. After adoption, the handoff binds the new closure and reruns affected preflight/resource checks.
|
|
403
|
+
|
|
365
404
|
Formal generation, a major design revision and critical regeneration use the highest eligible live model and that model's highest supported reasoning effort. Eligibility first preserves required tools, visual/context capability, authentication and data boundaries; provider capability ordering or documented replacement evidence establishes rank. The Skill never guesses from price, model name, release date or list order. An unrankable choice fails closed as `highest_performance_unverified`; an uncontrollable or unobservable provider result is reported with the same qualification and is never described as a confirmed highest-tier run. This policy creates no model registry, scheduler or persistent routing state.
|
|
366
405
|
|
|
367
406
|
For formal Web/App implementation output, “complete” defaults to the finest applicable observable Fact granularity described above. Before commissioning generation, the Skill builds the Expected Fact Universe, freezes the Inspector/Census obligation, and reads real technical Source for the platform, framework/runtime, UI system, token/theming adapter, component owners and route owners. It passes those constraints and the adopted design-system identity into a live capability matched to the resource archetype, then requires the returned canonical source/manifest to express every applicable cell. It separately authors the feasibility document described above; each material family/condition has a candidate or blocker, while production-owner selection remains downstream. It does not wait for downstream implementation to discover missing states, anatomy-part styling, responsive/platform/text-scale behavior, motion, accessibility, assets or basic implementability.
|
|
@@ -401,15 +440,19 @@ Use `long-task-workflow` only when explicitly selected or when the current workt
|
|
|
401
440
|
- a complete Final Gate on one current snapshot;
|
|
402
441
|
- a Stop Hook that rejects stale completion.
|
|
403
442
|
|
|
404
|
-
Its proof claim is conditional and precise: if Source is complete and accurate at the declared observable granularity, projection preserves that meaning and every actual applicability cell is expanded, then `AcceptedDeliveryTerminal
|
|
443
|
+
Its proof claim is conditional and precise: if Source is complete and accurate at the declared observable granularity, projection preserves that meaning and every actual applicability cell is expanded, then `AcceptedDeliveryTerminal` is either a fresh `machine_accepted` result when no blocking external fulfillment is required, or a fresh `delivery_accepted` result when every blocking external obligation also has a valid exact record. Machine obligations still require frozen Expected authority, package-admitted current Actual, Harness-computed comparison/verdict, attributable static-production or direct-process observation, causal Counterfactual evidence and current Final-Gate snapshot proof. Every blocking External Record v2 retains exact per-obligation identity/evidence, a current challenge, whole-candidate identity, immutable artifact snapshots and a detached Ed25519 signature verified against a protected Source-bound public key. That verifies possession of the bound key, not a real-world identity beyond the Source binding. Legacy Record v1 and `machine_accepted_external_pending` are audit-only and cannot close. The workflow cannot discover undeclared requirements or prove arbitrary physical/external observation sound.
|
|
444
|
+
|
|
445
|
+
Compile conserves Source meaning below the Source-item level. From the existing Semantic Fact Manifest it derives one internal view of every Source item and every strict-UTF-8 material attachment, canonical specification, repository-preservation input, external constraint, delegated instruction and textual design resource; it does not infer text from extensions, and unreadable or ambiguous text blocks. It deterministically covers headings, material paragraphs, nested list/table/quotation/Given-When-Then rows, fenced code/configuration and textual HTML and proves that all nonblank lines are exactly the disjoint union of Fragment lines and allowed pure separators. Every derived Fragment has one explicit `fact_bearing`, `supporting_basis`, `superseded`, `decision_required` or `scope_excluded` disposition. Reverse delivery-Fact provenance, anchors, semantic-cell identity and Claim modal polarity prevent supporting, supersession or exclusion from hiding an independent requirement. A `source_integrity` Fact cannot replace `delivery_semantic` meaning, and this remains part of the existing Source inventory and Semantic Fact Manifest rather than another ledger.
|
|
446
|
+
|
|
447
|
+
Proof adequacy is also structural. Closed method and standard-property profiles are unioned with observation-scope, quantifier, Claim-kind and Control-field floors; prose keywords are advisory only. Presence proves only existence, while transition/sequence, product effect, boundary provenance, durable readback, identity/data state, population, fault/recovery, concurrency/idempotency, performance/capacity and selected-design/runtime semantics retain their stronger typed capabilities. A new unclassified standard property fails closed; a `custom.*` method or custom property without a standard profile cannot machine-close. A Check with no claim-bearing Assertion is diagnostic and contributes zero completion. Preflight generates machine and external candidates per exact Claim/Fact × method × applicability obligation, then accepts exactly one route: machine/external overlap, duplicate same-kind routes and no route are `unreachable`; broad `impact_claims` never removes a machine Assertion.
|
|
405
448
|
|
|
406
449
|
Compile derives an internal `CompiledObservationAuthority` projection for every machine Claim or Fact × required-method obligation; it is not a new Contract Authority, state or registry. The first admitted slice has only two machine paths. `package_static_json_exact` reads plain exact implementation/configuration content from a UTF-8 JSON production carrier that already exists in the pre-run snapshot, retains the same no-follow file identity/digest after the runner, matches the Binding and is not Source/Context/Contract/expected material or evidence/report/status/verifier output; Harness selects the fixed RFC 6901 `/observations/<stable Fact-or-obligation identity>` locator and applies package duplicate-key/UTF-8/size/depth/pointer limits. Prepare-all mutation observation plus per-file pre/post identity/hash rejects transient and persistent runner swaps; it proves static content, not runtime consumption. `package_process_json_exact` applies only to a Source-backed `runtime_family: process`, `role: product` target and a direct root `project_binary` whose target and complete argv match that authority. Each required target has one canonical Source technical-obligation target covering key, role, family, root, complete argv and capabilities. Compile derives one declaration-stable process-runtime closure containing the exact Source-backed root, exact Claim/Counterfactual production carriers and only finite argv values that resolve to a production Binding. Every `root_argv` member remains the exact child-visible token: classification never splits spaces, strips quotes or rewrites backslashes. The closed grammar examines an independent token or one explicit `--name=value`; supported standalone switches remain labels and unsupported compound syntax receives no machine closure. Raw token and derived locator stay distinct. Quote-bearing, POSIX/UNC absolute, drive-prefixed, slash/backslash-platform-ambiguous and all scheme-shaped colon-prefix references outside the exact lowercase decimal `node:<number>` allowlist fail closed before execution unless explicitly routed to the existing external TCB/External Confirmation boundary. Parent segments resolve from declared `cwd` before repository containment is decided, so an in-repository `..` is legal and a true escape is not. Exact/pattern Bindings may own glob, extensionless or space-containing files; unmatched safe values and the exact lowercase decimal `node:<number>` and digits-only `<hours>:<minutes>` colon scalars are allowed but not copied. Compile neither broadly role-scans nor copies all `input_paths`; role separation applies only to actual closure members. Global Checks project Outcome Bindings into internal `{ outcome_key, local_key, binding_ref, binding }` records using `<outcome>.<binding>`: logical refs remain distinct while identical physical paths may be copied once, with no authored-Contract or registry change. Exact planned closure members may be absent through Compile but must materialize at Final Gate. Harness copies only that closure into an OS-temporary snapshot and binds its identity into host attestation. The child receives the unchanged raw argv and the minimal runner environment with no observation-path, challenge or protocol variable, then emits exactly one bounded `ty-context-product-observation-v1` envelope on stdout; compatible Cross-Check and implicit-preserved Facts share that Raw Execution/envelope while retaining independent result identities. This proves only exact values emitted by the Source-backed product root on the declared JSON output surface. An embedded dependency that cannot be explicitly production-bound or a Claim that cannot bind to that surface requires External Confirmation. The public project payload remains v3; no v4, shell/URI/dependency parser or general UI/native observer is introduced.
|
|
407
450
|
|
|
408
451
|
Project-submitted v3 actual/value digest, comparison, `passed`, verdict and capability records are compatibility diagnostics only; they never supply Actual or completion authority. The current package-derived capability slice is exact/presence plus host-derived `target_runtime`. `interaction_trace`, `state_delta`, `design_conformance` and every other capability without a package-derived implementation require blocking External Confirmation even when a project record is present. Custom/`named_external_tcb` Oracles, wrappers, browser/native/device sessions, layout/pixel/accessibility/motion, protected observation, tolerance/mask and custom locators likewise cannot machine-close an obligation. Every machine Counterfactual needs package-admitted baseline and mutated observations on the same compiled process-closure identity, a mutation target in its production-carrier set, exact affected/preserved/allowed-fan-out accounting, equal obligation universes and host-derived process liveness; no-observation never skips validation. Existing Contracts are not silently rewritten, and target/closure TCB changes invalidate prior Active Authority, Progress, Evidence and Receipts for acceptance.
|
|
409
452
|
|
|
410
|
-
An honestly unsupported Contract does not need a dummy verifier.
|
|
453
|
+
An honestly unsupported Contract does not need a dummy verifier. `target_profile.completion_authority` is `machine_only` or `declared_authorities`; legacy omission deterministically defaults to the fail-safe `machine_only` route and Preflight reports migration guidance. A blocking External Confirmation under `declared_authorities` must name its declared actor/owner, target, environment, Given/When scenario, evidence requirements and exact per-obligation rows with Claim, applicability, Fact/proof/method/capability and Expected-authority lineage. An external-only Outcome sets `success_path_required: false`; a Stage Gate may omit its machine Check only when a blocking confirmation covers that gate's result Claim. Missing decomposition/result lineage, an aggregate Boolean, a non-blocking confirmation or a declared machine success path without a real success Check fails Preflight/Compile. A valid unfulfilled route is `blocked_external`; after exact fresh fulfillment and a complete passing Final Gate it becomes `delivery_accepted`, never machine accepted.
|
|
411
454
|
|
|
412
|
-
Direct-process observation is bounded containment, not an absolute hostile-code sandbox.
|
|
455
|
+
Direct-process observation is bounded containment, not an absolute hostile-code sandbox. On Windows, every contained execution uses the package-owned byte-identified PowerShell 5.1/7 and C# helper: it creates the declared executable suspended, assigns it to a fresh Job with `KILL_ON_JOB_CLOSE`, resumes only after assignment, bounds streams/timeout/overflow and accepts evidence only after `ActiveProcesses == 0`. Short-lived roots cannot outrun descendant enrollment, helper/identity/protocol drift fails closed, and there is no PID/CIM polling fallback. Non-Windows keeps the existing process-group/tree path; ordinary non-contained direct spawn is unchanged. The wider TCB still includes the host OS/filesystem/process APIs, Node runtime, snapshot-copy and no-follow/digest checks and stdout capture/decoder. It does not claim to stop intentionally malicious code from escaping the copied closure or using ambient machine/network resources; workloads needing that adversary boundary require an external sandbox or External Confirmation.
|
|
413
456
|
|
|
414
457
|
Raw/revised proposals, selected design resources and mixed attachments enter one Source-bound Contract Draft loop immediately. Complete input inventory, stable keys, Product Control-level meaning, selected-resource design facts, acceptance/risk coverage, direct/derived/delegated/evidence-backed provenance, Source ownership and Contract mapping converge together. Every non-empty line in declared Markdown Source must belong to one Material `ty-source-item` block, one validated `design-resource-handoff-v1` or `design-resource-handoff-v2` formal block, or a closed-grammar background block: `markdown-structure` permits only text-free anchors/horizontal rules and `provenance` permits only `ty-source-provenance` comments with fixed `input`, `mode`, conditional `source` and optional `sha256` fields. A text-bearing heading or free-form provenance field can express authority and is therefore rejected as background. Arbitrary background prose and all other unclassified text fail closed. At least one marked technical obligation carries `aspect=architecture` and maps to an independently provable architecture obligation. If an unknown preference could materially change comparative research or selection, the workflow asks before Preflight/Compile can succeed. Once criteria are clear, a defensible recommendation is written into real Source with its delegation, preference/evidence basis and exact meaning; it is never hidden only in YAML. High-risk action remains an external confirmation. A pre-existing planning document's structure never blocks authoring.
|
|
415
458
|
|
|
@@ -441,7 +484,7 @@ One module-private-branded acquisition runtime constructs the interaction record
|
|
|
441
484
|
|
|
442
485
|
The catalog derives 86 executions and 586 formal artifacts: 516 base files, 30 compute records, 10 State ledgers plus 10 State payloads, and 10 prompts plus 10 Provider events. Formal capacity is 650 files/364.625 MiB and complete run-set capacity is 4,379 files/974.3125 MiB, including explicit headroom and two excluded self-referential controls; overflow or an unexpected file fails closed. The Evidence Candidate contains all code/schema/Context/test/package-version/protocol bytes. A Promotion Commit must be its direct child and add exactly four package-/TCB-external governance records while mechanically preserving materialized-package, benchmark and runtime/TCB identities; drift requires recollection and reaudit. Runtime TCB v2 binds the clean Node launch, executable path/hash, worker/protocol source identities, parser/transport and all limits. The benchmark implementation identity includes `npm_command_spec.mjs`, the Provider protocol/worker and its owner-local finite dependency checker; working-tree, Git-object, collection and Promotion paths recompute closure and bind the actual executing repository root.
|
|
443
486
|
|
|
444
|
-
Real collection remains `external_pending`: the Starward-derived fixture lacks authorized original incident design/runtime evidence, the complete original-to-sanitized mapping and retention/publication authorization; no retainable invocation-bound Provider usage/price material or State-retention Source has been supplied for this delivery. Synthetic controls prove only structure and may not be presented as formal-positive evidence. The implementation therefore remains Level 3 until qualified real evidence, the sole verifier's complete positive report, independent audit and explicit owner promotion all close. Package 0.8.15 is the historical frozen Evidence Candidate identity; package 0.8.
|
|
487
|
+
Real collection remains `external_pending`: the Starward-derived fixture lacks authorized original incident design/runtime evidence, the complete original-to-sanitized mapping and retention/publication authorization; no retainable invocation-bound Provider usage/price material or State-retention Source has been supplied for this delivery. Synthetic controls prove only structure and may not be presented as formal-positive evidence. The implementation therefore remains Level 3 until qualified real evidence, the sole verifier's complete positive report, independent audit and explicit owner promotion all close. Package 0.8.15 is the historical frozen Evidence Candidate identity; package 0.8.18 is the published predecessor; package 0.9.0 is the prior unpromoted Level-3 candidate; package 0.11.0 is the current Level-3 package candidate and inherits none of their package, benchmark or runtime/TCB evidence. `capability_level` remains `level_3`, `level_4_claimed` remains false, and no formal-positive result or actual Promotion exists. Provider readiness means only that local configuration, credential presence and the clean worker launch envelope permit one bounded attempt. Public `independent_evidence_admitted` means packet structure/source binding only; `total_roi_supported` and `total_roi_positive` remain the complete-evidence and positive-ROI authorities.
|
|
445
488
|
|
|
446
489
|
The mechanism's own Final-Gate Oracle reads fixed-test-ID machine reports and compares complete wrong-candidate versus correct-control workflow statuses. A runtime capability requires `wrong candidate != machine_accepted` and `correct candidate == machine_accepted` through the real lifecycle; command exit plus token/string presence proves documentation consistency only. ROI is computed by a separate verifier and never enters a safety Fact verdict.
|
|
447
490
|
|
|
@@ -451,7 +494,7 @@ The package-owned non-UI Compact Carrier realizes that separation without anothe
|
|
|
451
494
|
|
|
452
495
|
A separate read-only Global Product Conformance Check is required only for weak-observability work that also has multiple Stages or multiple required product runtime families. It starts at a required root product target, has independent Raw Execution and runs within the existing Final Gate. Single-Stage, single-family work retains the existing same-Check sensitivity path and pays no extra conformance run.
|
|
453
496
|
|
|
454
|
-
The platform owns physical Goal/session lifecycle. A later session runs `resume` to reconstruct semantic state; Tiny Context does not recreate the prior physical Turn.
|
|
497
|
+
The platform owns physical Goal/session lifecycle. A later session runs `resume` to reconstruct semantic state; Tiny Context does not recreate the prior physical Turn. Accepted Final/Stop/close results cover `declared_delivery_authority` and report `native_goal_effect: none`; Harness never completes the platform-native Goal itself. Before completing that Goal, the Agent performs a veto-only comparison of current Goal/user meaning against accepted marked Source and checks for pending revisions, unresolved blockers or omissions; this guard may block and repair, but it never supplies acceptance proof.
|
|
455
498
|
|
|
456
499
|
### CLI
|
|
457
500
|
|
|
@@ -467,6 +510,11 @@ ty-context long-task verify <workdir> [--outcome <key>] [--check <key>] [--expla
|
|
|
467
510
|
ty-context long-task status <workdir>
|
|
468
511
|
ty-context long-task resume <workdir>
|
|
469
512
|
ty-context long-task doctor <workdir>
|
|
513
|
+
ty-context long-task external prepare <workdir> [--confirmation <key>]
|
|
514
|
+
ty-context long-task external submit <workdir> --confirmation <key> --record <path>
|
|
515
|
+
ty-context long-task external status <workdir>
|
|
516
|
+
ty-context long-task external rotate <workdir> --confirmation <key>
|
|
517
|
+
ty-context long-task external revoke <workdir> --confirmation <key>
|
|
470
518
|
ty-context long-task final-gate <workdir>
|
|
471
519
|
ty-context long-task stop-check <workdir> [--message <text>]
|
|
472
520
|
ty-context long-task close <workdir>
|
|
@@ -479,10 +527,12 @@ ty-context long-task abandon <workdir> [--force-corrupt-state]
|
|
|
479
527
|
- `diagnose-revision` performs a side-effect-free candidate Compile. Only a scope-only candidate may run existing active Check identities with unchanged runner/verifier authority. Other mechanically bounded repairs return an automatic-revision preview without runner execution; decision-relevant Product/Claim/target/acceptance/forbidden-boundary/runner-type-or-effect/verifier-kernel changes return a user-decision preview, while risk downgrade is rejected. Output always has `acceptance_authorized: false`, `progress_written: false` and `pending_revision_written: false`.
|
|
480
528
|
- `compile --revise` auto-adopts monotonic or mechanically bounded revisions. Decision-relevant revisions return `authority_revision_pending` plus the exact id, deterministic material summary, `user_decision_reasons` and a self-contained `decision_brief`, then fail closed until that exact id carries the user's decision. Present the brief first; mechanically relay an already explicit task-specific decision only when it covers every reason. Candidate edits produce a new id and invalidate old approval. Adoption emits `authority_revision_adopted`, invalidates affected evidence and returns to rolling execution; it never means delivery completion.
|
|
481
529
|
- `verify` writes scoped per-Check Progress Records only after rechecking active task/revision/compiled/worktree identity and applying the same workspace categories against the immutable baseline. A concurrent revision returns `active_authority_changed_during_verify` and writes no stale progress. `verify --explain` is read-only: it groups selected Main Raw Executions, lists applicable Counterfactual invocations and declared retry-attempt bounds, executes nothing and writes no Progress.
|
|
482
|
-
- `status` reports each Outcome as `unverified`, `progress_passing`, `progress_failing`, `progress_stale` or `blocked_external`. It derives `stages`, `ready_stages` and an advisory acceptance/verification Outcome frontier from current Progress without persisting Stage completion. The legacy `ready_for_implementation` field is a compatibility alias for that projection, not an implementation gate. Status also reports the fresh Final Receipt as `final_workflow_status` (or `null` after drift), target profile/state,
|
|
483
|
-
- `resume` is read-only and reports task identity, risk, relevant Context, Git state, the same Final/target/Stage/external/pending decision surfaces, ready Outcomes, findings and an advisory
|
|
484
|
-
- `
|
|
485
|
-
- `
|
|
530
|
+
- `status` reports each Outcome as `unverified`, `progress_passing`, `progress_failing`, `progress_stale` or `blocked_external`. It derives `stages`, `ready_stages` and an advisory acceptance/verification Outcome frontier from current Progress without persisting Stage completion. The legacy `ready_for_implementation` field is a compatibility alias for that projection, not an implementation gate. Status also reports the fresh Final Receipt as `final_workflow_status` (or `null` after drift), target profile/state, declared confirmations, live per-confirmation fulfillment results and the single pending Authority Revision decision. Its non-persisted `repair_frontier` groups Findings by root, names Source fragments/Facts/proofs/Expected and Actual evidence, implementation/verification owners, minimum diagnostic reruns and still-fresh diagnostic Progress. It explicitly cannot accept and protects Source, Expected, Claims, proof authority, external scope, comparator and applicability from repair without Authority Revision.
|
|
531
|
+
- `resume` is read-only and reports task identity, risk, relevant Context, Git state, the same Final/target/Stage/external/pending decision surfaces, ready Outcomes, enriched findings, the derived Repair Frontier and an advisory next action from the common-dir authority snapshot. That action never restricts implementation order.
|
|
532
|
+
- `external prepare` emits current-candidate packets, the current challenge, Source-bound actor/key identity, signable canonical payload digest, exact obligation Expected/method/capabilities and evidence requirements while explicitly denying acceptance. `external submit` accepts one strict `long-task-external-confirmation-record-v2`, then in order validates Active Authority/freshness, schema, whole candidate, challenge, actor, Ed25519 signature, exact obligation and result-kind sets, immutable artifact snapshots and objective comparators before atomic storage. `external status` re-evaluates identity/signature/challenge/artifact integrity; `external rotate` changes the challenge; `external revoke` removes the named record and rotates its challenge. These mutations share the Active Authority lock with finalization. Failed/unable rows, declared-only actors and Record v1 remain non-accepting.
|
|
533
|
+
- Programmatic v2 producers can import `parseExternalConfirmationRecordV2`, `externalConfirmationRecordV2Hash` and `externalConfirmationV2SignablePayload` from the package root, sign the canonical payload outside Harness with the actor-held private key and then submit the complete record. Harness exposes verification but no private-key reader or v2 signing command/helper. The exported v1 parser/hash/`signExternalConfirmationRecordV1` remain legacy audit compatibility only; their local hash is not authentication and can never fulfill a blocking obligation.
|
|
534
|
+
- `final-gate` requires a clean candidate commit, rejects stale accepted authority inputs, recompiles Source authority, captures the complete protected-input and provisional Finalization Identity, and runs every semantic Check once on one Git-tree snapshot. It then enters one short existing-lock finalization CAS—without rerunning machine Checks—to recheck Authority, candidate/workspace fingerprint, compiled/verifier freshness, every external record/challenge/signature/artifact/evaluation and the exact Finalization Identity. Final Receipt v3 binds `finalization_identity_sha256` and emits only `machine_accepted`, `delivery_accepted`, `blocked_external` or `needs_work`.
|
|
535
|
+
- `stop-check` and `close` run that same Live Final Gate and use the same transaction to publish the Receipt and, only for a fresh accepted identity, clear Active Authority. A mutation at any covered race point produces a non-accepted result, preserves Authority and cannot leave a fresh accepted Receipt. Historical v3 Receipts without `finalization_identity_sha256`, legacy `machine_accepted_external_pending`, pending rows, failures and stale/invalid records remain audit-only and fail-closed. Final/Stop/close report `acceptance_scope: declared_delivery_authority` and `native_goal_effect: none`; close also reports `closed_scope: complete_long_task_authority`.
|
|
486
536
|
- `abandon` is explicit non-success cleanup. `--force-corrupt-state` is reserved for invalid/mismatched/legacy-unrecoverable state or a stale active lock and removes only deterministic local active state plus `<workdir>/.ty-context/**`; Contract, Source, Context and Git content are preserved.
|
|
487
537
|
|
|
488
538
|
### Delivery Contract
|
|
@@ -490,9 +540,15 @@ ty-context long-task abandon <workdir> [--force-corrupt-state]
|
|
|
490
540
|
`long-task-delivery-v2` keeps Product Authority, Technical Boundary Authority and Acceptance Authority as logical sections of one file. Compact YAML omits only deterministic defaults; the normalized Contract and all hashes are identical to the expanded form. The compiler derives machine Claims for observable results, atomic Requirements, control fields including location, non-completing outcomes, technical obligations and forbidden shortcuts:
|
|
491
541
|
|
|
492
542
|
<!-- long-task-public-contract-example:start -->
|
|
543
|
+
|
|
493
544
|
```yaml
|
|
494
545
|
schema_version: long-task-delivery-v2
|
|
495
|
-
semantic_fact_manifest:
|
|
546
|
+
semantic_fact_manifest:
|
|
547
|
+
{
|
|
548
|
+
key: example-semantic-facts,
|
|
549
|
+
source_path: plans/example.md,
|
|
550
|
+
sha256: "1111111111111111111111111111111111111111111111111111111111111111",
|
|
551
|
+
}
|
|
496
552
|
task:
|
|
497
553
|
id: example-task
|
|
498
554
|
title: Example task
|
|
@@ -502,6 +558,7 @@ task:
|
|
|
502
558
|
description: The example is usable from its declared runtime root.
|
|
503
559
|
required_state: target_profile_usable
|
|
504
560
|
required_target_refs: [example-runtime]
|
|
561
|
+
completion_authority: machine_only
|
|
505
562
|
execution_targets:
|
|
506
563
|
- key: example-runtime
|
|
507
564
|
description: Example product runtime
|
|
@@ -548,7 +605,7 @@ outcomes:
|
|
|
548
605
|
- key: runtime-root-success
|
|
549
606
|
target_ref: example-runtime
|
|
550
607
|
journey_role: success
|
|
551
|
-
dimensions: [{key: runtime-state, value: ready}]
|
|
608
|
+
dimensions: [{ key: runtime-state, value: ready }]
|
|
552
609
|
given_refs: [source-ready]
|
|
553
610
|
when_refs: [inspect-result]
|
|
554
611
|
semantic_fact_bindings:
|
|
@@ -557,6 +614,9 @@ outcomes:
|
|
|
557
614
|
- fact_ref: example.result.observable
|
|
558
615
|
claim_ref: semantic_fact.example.result.observable
|
|
559
616
|
applicability_ref: runtime-root-success
|
|
617
|
+
- fact_ref: example.architecture.boundary
|
|
618
|
+
claim_ref: semantic_fact.example.architecture.boundary
|
|
619
|
+
applicability_ref: runtime-root-success
|
|
560
620
|
proofs:
|
|
561
621
|
- proof_ref: example.result.observable.runtime
|
|
562
622
|
fact_ref: example.result.observable
|
|
@@ -566,6 +626,14 @@ outcomes:
|
|
|
566
626
|
authority: machine
|
|
567
627
|
check_ref: runtime
|
|
568
628
|
assertion_ref: semantic-fact-ac
|
|
629
|
+
- proof_ref: example.architecture.boundary.runtime
|
|
630
|
+
fact_ref: example.architecture.boundary
|
|
631
|
+
method: exact_value
|
|
632
|
+
proof_surface: runtime_behavior
|
|
633
|
+
evidence_capabilities: [semantic_fact]
|
|
634
|
+
authority: machine
|
|
635
|
+
check_ref: runtime
|
|
636
|
+
assertion_ref: architecture-semantic-fact-ac
|
|
569
637
|
product:
|
|
570
638
|
observable_result: What a user or system can observe
|
|
571
639
|
result_applicability_refs: [runtime-root-success]
|
|
@@ -574,7 +642,13 @@ outcomes:
|
|
|
574
642
|
owner:
|
|
575
643
|
label: Owning product or module boundary
|
|
576
644
|
context_refs: [project_context/areas/main.md]
|
|
577
|
-
path_globs:
|
|
645
|
+
path_globs:
|
|
646
|
+
[
|
|
647
|
+
"src/**",
|
|
648
|
+
bin/example-runtime.exe,
|
|
649
|
+
tests/runtime.mjs,
|
|
650
|
+
tests/verify-runtime.mjs,
|
|
651
|
+
]
|
|
578
652
|
requirements:
|
|
579
653
|
- key: observable
|
|
580
654
|
statement: The outcome is observable.
|
|
@@ -612,10 +686,22 @@ outcomes:
|
|
|
612
686
|
checks:
|
|
613
687
|
- key: runtime
|
|
614
688
|
journey_roles: [success, stage_gate]
|
|
615
|
-
execution_target: {target_ref: example-runtime, entrypoint: root}
|
|
689
|
+
execution_target: { target_ref: example-runtime, entrypoint: root }
|
|
616
690
|
scenario:
|
|
617
|
-
given:
|
|
618
|
-
|
|
691
|
+
given:
|
|
692
|
+
[
|
|
693
|
+
{
|
|
694
|
+
key: source-ready,
|
|
695
|
+
statement: The planned source carrier is available.,
|
|
696
|
+
},
|
|
697
|
+
]
|
|
698
|
+
when:
|
|
699
|
+
[
|
|
700
|
+
{
|
|
701
|
+
key: inspect-result,
|
|
702
|
+
statement: Inspect the result through the declared runtime.,
|
|
703
|
+
},
|
|
704
|
+
]
|
|
619
705
|
proof_surface: runtime_behavior
|
|
620
706
|
runner:
|
|
621
707
|
type: project_binary
|
|
@@ -651,6 +737,14 @@ outcomes:
|
|
|
651
737
|
evidence_capabilities: [semantic_fact]
|
|
652
738
|
operator: equals
|
|
653
739
|
expected: true
|
|
740
|
+
- key: architecture-semantic-fact-ac
|
|
741
|
+
criterion: The exact architecture boundary Fact passes its frozen comparison.
|
|
742
|
+
claims: [semantic_fact.example.architecture.boundary]
|
|
743
|
+
applicability_ref: runtime-root-success
|
|
744
|
+
observation: architecture_semantic_fact_result
|
|
745
|
+
evidence_capabilities: [semantic_fact]
|
|
746
|
+
operator: equals
|
|
747
|
+
expected: true
|
|
654
748
|
- key: architecture-ac
|
|
655
749
|
criterion: Preserve the observable module as the single state owner.
|
|
656
750
|
claims: [obligation.preserve-observable-owner]
|
|
@@ -678,14 +772,28 @@ outcomes:
|
|
|
678
772
|
counterfactual_controls:
|
|
679
773
|
- key: replace-observable-semantics
|
|
680
774
|
binding_key: observable-carrier
|
|
681
|
-
claims:
|
|
775
|
+
claims:
|
|
776
|
+
[
|
|
777
|
+
result,
|
|
778
|
+
requirement.observable,
|
|
779
|
+
obligation.preserve-observable-owner,
|
|
780
|
+
semantic_fact.example.result.observable,
|
|
781
|
+
semantic_fact.example.architecture.boundary,
|
|
782
|
+
]
|
|
682
783
|
check_key: runtime
|
|
683
784
|
mutation:
|
|
684
785
|
type: replace_text
|
|
685
786
|
path: src/observable.ts
|
|
686
787
|
match: "observable = true"
|
|
687
788
|
replacement: "observable = false"
|
|
688
|
-
expected_assertion_failures:
|
|
789
|
+
expected_assertion_failures:
|
|
790
|
+
[
|
|
791
|
+
result-ac,
|
|
792
|
+
observable-ac,
|
|
793
|
+
architecture-ac,
|
|
794
|
+
semantic-fact-ac,
|
|
795
|
+
architecture-semantic-fact-ac,
|
|
796
|
+
]
|
|
689
797
|
preserved_assertions: [runtime-liveness]
|
|
690
798
|
- key: make-relations-applicable
|
|
691
799
|
binding_key: observable-carrier
|
|
@@ -699,6 +807,7 @@ outcomes:
|
|
|
699
807
|
expected_assertion_failures: [relations-na-ac]
|
|
700
808
|
preserved_assertions: [runtime-liveness]
|
|
701
809
|
```
|
|
810
|
+
|
|
702
811
|
<!-- long-task-public-contract-example:end -->
|
|
703
812
|
|
|
704
813
|
In this example `bin/example-runtime` is the product root, not a verifier wrapper. It emits one stdout JSON object shaped as `{"schema_version":"ty-context-product-observation-v1","observations":{"<compiled-observation-identity>":<actual>}}` with exactly the identities compiled for the shared Raw Execution. Harness supplies no output path, challenge or protocol environment variable; a v3 verifier payload cannot substitute for this product envelope.
|
|
@@ -719,6 +828,7 @@ V2 authoring requires at least one real `source_path` and one `source_claim`. Du
|
|
|
719
828
|
|
|
720
829
|
```markdown
|
|
721
830
|
<!-- ty-source-item:start key=save-failure kind=requirement -->
|
|
831
|
+
|
|
722
832
|
Saving failure preserves the user's input and shows the reason.
|
|
723
833
|
<!-- ty-source-item:end -->
|
|
724
834
|
```
|
|
@@ -753,10 +863,14 @@ Raw Execution identity binds frozen runner identity plus canonical declared Envi
|
|
|
753
863
|
|
|
754
864
|
The workdir `.ty-context/compiled-contract.json` is only a rebuildable cache projection. Previous authority, the immutable initial base, risk floor and Final Gate identity come only from the common-dir snapshot. Commit, verifier migration, clear and abandon share one active-state lock; Final/Verify recheck identity and Stop/close use accepted-identity CAS. Observer identity, Compile admission policy and TCB changes invalidate existing Active Authority, Progress and Receipt acceptance; no custom Oracle, wrapper or machine-to-external migration is inferred. Corrupt continuity is recovered explicitly with `abandon --force-corrupt-state`.
|
|
755
865
|
|
|
756
|
-
Final Gate may run only Contract-declared verification commands and never production mutation/deployment/payment/migration execution. Retry defaults to none and is allowed once only for `transient_once` + idempotent + read-only/test-sandbox runners. Runners receive a minimal environment whitelist plus only declared environment requirements. Protected authority/proof inputs reject
|
|
866
|
+
Final Gate may run only Contract-declared verification commands and never production mutation/deployment/payment/migration execution. Retry defaults to none and is allowed once only for `transient_once` + idempotent + read-only/test-sandbox runners. Runners receive a minimal environment whitelist plus only declared environment requirements. Protected authority/proof inputs and external records reject unsafe path/symlink/integrity behavior. Network isolation remains external. Receipts are audit-only (`reusable_for_acceptance: false`). Pending blocking confirmation yields `blocked_external`; failed, unable, invalid, stale or unreachable proof yields `needs_work`; fresh exact blocking records plus passing machine obligations yield `delivery_accepted`. Non-blocking confirmations are advisory and do not change `machine_accepted`. No status directly completes the native Goal.
|
|
757
867
|
|
|
758
868
|
## Compatibility And Migration
|
|
759
869
|
|
|
870
|
+
The 0.10 line preserves Schema v4, all five read policies and the exact existing default-footprint behavior. Router remains experimental and does not replace the Workflow bounded search. `context create` does not register; `register` and `move` are explicit dry-run-first operations with recoverable transactions. No automatic legacy-policy conversion or workspace migration occurs.
|
|
871
|
+
|
|
872
|
+
Version 0.11 adds an opt-in sparse Design Authority bundle without migrating existing projects. A project with only an unmarked root `DESIGN.md` remains a valid one-file closure. Bundle adoption is one explicit DSA/Authority Revision that inserts the canonical `bundle-v1` marker and creates `design_system/authority.manifest.json`; `tokens.json` is generated from DESIGN and not a second editable owner. Existing DRA handoffs that omit the full identity remain compatible only for a true one-file project. Once adopted, retaining either half while removing or invalidating the other fails closed, and raw `DESIGN.md`-only bindings must be regenerated or rebound to the complete current closure. A deliberate return to one-file Authority removes both halves only through explicit DSA adoption/Authority Revision; the package can enforce the current marker/manifest pair and stale active bindings, but a fresh checkout containing neither half has no authenticated historical registry from which to infer a prior bundle. No upgrade command invents subordinate owners, Token values, adoption or Authority revision.
|
|
873
|
+
|
|
760
874
|
Version 0.6.0 retires the V1 schema/runtime and repo-local Hook. Enable, disable and upgrade remove only exact Tiny Context managed Hook entries. Relocated package-owned absolute commands are recognized only when known managed status and package layout match; similar-name user Hooks remain. Upgrade never imports V1 progress or Receipts into V2 authority. Delivery Set, `composite-campaign` and `composite-long-task` commands are non-executing tombstones.
|
|
761
875
|
|
|
762
876
|
Version 0.6.0 defined the first public V2 semantics while retaining the `long-task-delivery-v2` schema name and physical `outcome_files` parser form. It introduced the former optional Source Plan helper without adding Schema, CLI, Preflight, Compile, Validator, Receipt, Authority or state. Current releases integrate those Source-authoring semantics into `long-task-workflow` and retain the old Skill only as a compatibility pointer. Preflight and direct Compile use one activation-safety kernel.
|
|
@@ -795,7 +909,7 @@ make validate-harness
|
|
|
795
909
|
|
|
796
910
|
The modularity gate is `ty-context check-modularity`. Scoped waivers require `owner`, `introduced_at`, `reason`, `tracking_issue` and `expiry_condition`.
|
|
797
911
|
|
|
798
|
-
`npm run preview:pack` produces a local preview named `project-tiny-context-harness-0.
|
|
912
|
+
`npm run preview:pack` produces a local preview named `project-tiny-context-harness-0.11.0.tgz` under the preview output directory.
|
|
799
913
|
|
|
800
914
|
## Community And Further Reading
|
|
801
915
|
|