persona-harness 0.8.21 → 0.8.22

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.
@@ -0,0 +1,1215 @@
1
+ {
2
+ "schemaVersion": "consumer-authority-v0822-acceptance.1",
3
+ "package": {
4
+ "channel": "unpublished",
5
+ "scope": "source-candidate",
6
+ "version": "0.8.22"
7
+ },
8
+ "packageBoundary": {
9
+ "bundle": {
10
+ "requiredRefs": [
11
+ "explicit-single-refs-heads-candidate-must-match-expected-head",
12
+ "refs/remotes/origin/main"
13
+ ],
14
+ "verification": "git-bundle-verify-and-exact-ref-binding",
15
+ "baseComparison": "independent-no-local-base-checkout-under-the-same-npm-policy"
16
+ },
17
+ "cleanCheckout": {
18
+ "requiredBindings": [
19
+ "checkout-cwd",
20
+ "git-toplevel",
21
+ "npm-prefix",
22
+ "resolved-package-json-path",
23
+ "resolved-package-lock-path",
24
+ "HEAD-package-json-bytes",
25
+ "HEAD-package-lock-bytes"
26
+ ],
27
+ "sourceFallback": "forbidden"
28
+ },
29
+ "npm": {
30
+ "invocation": "plain-npm-from-bound-detached-checkout-cwd",
31
+ "packPrefixFlag": "forbidden",
32
+ "global": false,
33
+ "ignoreScriptsBeforePack": false,
34
+ "install": "npm-ci-ignore-scripts",
35
+ "workspaces": false
36
+ },
37
+ "pack": {
38
+ "metadata": "name-version-filename-must-match-frozen-package-and-lock",
39
+ "prepack": "package-root-build-script-derived-from-its-own-package-root",
40
+ "postcondition": "fresh-installed-cli-version-must-match-tarball-version"
41
+ },
42
+ "authoritativeBundleContract": {
43
+ "command": "node scripts/verify-clean-package-boundary.mjs --exercise-contract",
44
+ "baseAndTarget": "fresh-detached-no-local-checkouts-from-the-same-complete-bundle",
45
+ "candidateRef": "explicit-single-refs-heads-candidate-must-match-expected-head",
46
+ "headAlias": "optional-head-mapping-must-match-the-same-expected-head",
47
+ "sourceCandidateRef": "refs/heads/clean-package-source",
48
+ "rejectBeforePack": "launcher-cwd-or-manifest-outside-bound-checkout",
49
+ "sourceContract": "built-cli-package-exercise-contract-under-the-same-executable",
50
+ "installedContract": "fresh-installed-package-exercise-uses-the-exact-canonical-target-tarball-sha256-and-package-content-identity-before-the-separate-node24-publisher-handoff",
51
+ "fullJavaGradleContract": "source-and-fresh-installed-full-contract-on-a-provisioned-java-gradle-host",
52
+ "partialCloneSourceHydration": "only-a-blob-none-promisor-clone-with-the-exact-canonical-origin-may-no-filter-hydrate-the-retained-origin-main-sha-before-local-bundle-materialization-without-moving-refs",
53
+ "rootPolicy": "the-git-bound-authoritative-bundle-verifier-runs-only-from-a-complete-source-materialization-and-requires-git; fresh-installed-contracts-load-observer-stage-and-package-record-only-from-the-exact-tarball-without-src-git-or-source-verifier-fallback",
54
+ "exercisePhaseProtocol": {
55
+ "authorityDiscoveryResult": {
56
+ "marker": "authority-discovery-exercise-result",
57
+ "placement": "exactly-one-trusted-unconsumed-persisted-record-immediately-after-the-ready-authority-discovery-phase-for-the-matching-source-built-or-fresh-tar-surface",
58
+ "result": "trusted-unconsumed-persisted",
59
+ "schemaVersion": "consumer-authority-discovery-exercise.1"
60
+ },
61
+ "childOutput": "each-source-built-and-fresh-tar-package-exercise-phase-emits-one-ordered-exact-nonreflective-ready-record-or-one-terminal-blocked-record-before-the-terminal-pass-marker",
62
+ "freshTar": [
63
+ "tarball-materialization",
64
+ "fresh-install",
65
+ "package-identity",
66
+ "package-content-identity",
67
+ "opencode-interview-observation",
68
+ "repository-only-files",
69
+ "canonical-publisher",
70
+ "observer-credential",
71
+ "producer-intake",
72
+ "producer-action-topology",
73
+ "verifier-no-source",
74
+ "project-finish-verifier-no-source",
75
+ "prearmed-observer",
76
+ "v4-cleanliness",
77
+ "observer-gh-selector",
78
+ "attestation-parser",
79
+ "artifact-transport",
80
+ "authority-discovery",
81
+ "authority-lifecycle",
82
+ "staged-artifact-verifier",
83
+ "doctor-registry",
84
+ "evidence-read-write",
85
+ "report-stdin",
86
+ "workflow-lifecycle",
87
+ "bootstrap-workspace-intake",
88
+ "installed-package-test"
89
+ ],
90
+ "parentAcceptance": "the-clean-bundle-parent-requires-the-complete-ordered-ready-transcript-and-exact-terminal-pass-marker; marker-only-malformed-out-of-order-foreign-or-success-after-blocked-output-is-a-bounded-phase-envelope-block",
91
+ "schemaVersion": "clean-package-exercise-phase.1",
92
+ "sourceBuilt": [
93
+ "cli-binding",
94
+ "opencode-interview-observation",
95
+ "producer-intake",
96
+ "producer-action-topology",
97
+ "canonical-publisher",
98
+ "prearmed-observer",
99
+ "v4-cleanliness",
100
+ "observer-gh-selector",
101
+ "attestation-parser",
102
+ "artifact-transport",
103
+ "observer-credential",
104
+ "authority-discovery",
105
+ "authority-lifecycle",
106
+ "doctor-registry",
107
+ "evidence-read-write",
108
+ "report-stdin",
109
+ "workflow-lifecycle",
110
+ "bootstrap-workspace-intake"
111
+ ]
112
+ }
113
+ },
114
+ "contentIdentity": {
115
+ "aggregate": "sorted-package-relative-path-type-normalized-allowed-mode-size-sha256",
116
+ "allowedMemberTypes": [
117
+ "regular"
118
+ ],
119
+ "allowedModes": [
120
+ "0600",
121
+ "0644",
122
+ "0700",
123
+ "0755"
124
+ ],
125
+ "canonicalPacker": {
126
+ "environment": [
127
+ "isolated-HOME",
128
+ "isolated-npm-cache",
129
+ "isolated-npm-config",
130
+ "isolated-git-config",
131
+ "umask-0022",
132
+ "LANG-C",
133
+ "LC_ALL-C",
134
+ "TZ-UTC",
135
+ "SOURCE_DATE_EPOCH-0"
136
+ ],
137
+ "node": "20.19.0",
138
+ "npm": "10.8.2",
139
+ "publish": "handoff-one-exact-canonical-tarball-to-isolated-node24-npm11-publisher"
140
+ },
141
+ "crossEnvironment": "compare-package-content-identity-not-generic-independent-npm-pack-raw-tar-sha256",
142
+ "rawTarballSha256": "valid-only-for-the-exact-canonical-supplied-tarball-or-postpublish-registry-blob",
143
+ "registryReadback": "require-protected-main-tag-source-preflight-and-registry-version-sha1-sri-raw-sha256-and-package-content-identity-to-match-frozen-canonical-package-facts-without-registry-githead",
144
+ "retainedExternalDiagnostics": {
145
+ "beta16": {
146
+ "contentOnlySha256": "9bb1c7eaeceb79d198d7baafdaea9c8bc73cd8750209ea5aa76cfc46070e0832",
147
+ "entryCount": 1191,
148
+ "identitySha256": "9eac0bdc041e8e616bd6e4de3ba49e8490b8a269f3f0d3e520027833b927c332",
149
+ "modeCounts": {
150
+ "0600": 296,
151
+ "0644": 887,
152
+ "0700": 7,
153
+ "0755": 1
154
+ }
155
+ },
156
+ "beta17": {
157
+ "contentOnlySha256": "d411a23a2343cd21e33ac30250ed903934968e214b7f198ccd0ea91a7d6bf580",
158
+ "entryCount": 1200,
159
+ "identitySha256": "5771dc973dd95e5d3f8b01a9e17becf3c17223b3d94aed692e5248e0c3054c5e",
160
+ "modeCounts": {
161
+ "0600": 305,
162
+ "0644": 887,
163
+ "0700": 7,
164
+ "0755": 1
165
+ }
166
+ },
167
+ "headerClassification": "normalized-gzip-tar-headers-do-not-explain-the-retained-content-or-mode-identity-delta",
168
+ "reuse": "diagnostic-only-not-acceptance-evidence"
169
+ },
170
+ "schemaVersion": "package-content-identity.1",
171
+ "publisherRuntime": "node24.18.0-npm11.16.0-dry-run-and-real-publish-use-identical-canonical-tarball-argv"
172
+ },
173
+ "registryReadback": {
174
+ "failureEvidence": "sanitized-readback-is-uploaded-even-when-postpublish-reconciliation-blocks",
175
+ "sourceBinding": "workflow-verified-canonical-tar",
176
+ "unsupportedMetadata": "registry-githead-is-neither-required-nor-reflected"
177
+ },
178
+ "currentVersionAuthority": "current-package-json-package-lock-and-current-versioned-acceptance-manifest-must-bind-one-identical-prerelease-version; historical-versioned-acceptance-records-remain-strict-and-never-define-current-package-identity"
179
+ },
180
+ "preAuthorityReadiness": {
181
+ "consumer": "exact-registry-installed-java-spring-gradle",
182
+ "commands": [
183
+ "ph bootstrap backend --strict --no-developer-mcp",
184
+ "ph plan --accept",
185
+ "ph bearshell ./gradlew test",
186
+ "ph bearshell ./gradlew compileJava",
187
+ "ph bearshell ./gradlew clean",
188
+ "ph evidence read README.md",
189
+ "ph evidence read .persona/project-profile.jsonc",
190
+ "ph evidence read src/main/java/example/cooperative/GreetingService.java",
191
+ "ph plan --report-filled implementation --stdin",
192
+ "ph plan --report-filled review --stdin"
193
+ ],
194
+ "expectedDefaultFinish": {
195
+ "absentBlockers": [
196
+ "implementation-report-missing",
197
+ "review-report-missing",
198
+ "evidence-missing",
199
+ "report-coverage-missing",
200
+ "profile-read-coverage-missing",
201
+ "java-role-read-coverage-missing",
202
+ "workflow-loop-state-absent",
203
+ "ralph-loop-state-absent"
204
+ ],
205
+ "primaryBlocker": "trusted-authority-required",
206
+ "status": "blocked"
207
+ },
208
+ "publicOutput": {
209
+ "absoluteWorkspacePaths": "omitted",
210
+ "stableReferences": [
211
+ ".persona/workflow/plan.md",
212
+ ".persona/workflow/implementation-report.md",
213
+ ".persona/workflow/review-report.md"
214
+ ]
215
+ },
216
+ "initialization": {
217
+ "acceptedPlan": "ph plan --accept",
218
+ "binding": {
219
+ "consumerRoot": "same-canonical-project-root",
220
+ "profile": ".persona/project-profile.jsonc",
221
+ "reportsAndEvidence": "public-command-created-only",
222
+ "sourceIdentity": "current-git-source-identity"
223
+ },
224
+ "inactiveFinish": {
225
+ "blocker": "workflow-state-uninitialized",
226
+ "status": "blocked"
227
+ },
228
+ "loopState": [
229
+ ".persona/workflow/workflow-loop-state.json",
230
+ ".persona/workflow/ralph-loop-state.json"
231
+ ],
232
+ "sameConsumer": true,
233
+ "retainedDraftPlan": "bootstrap preserves an existing draft plan; public readiness must accept it explicitly"
234
+ },
235
+ "negativeCases": [
236
+ "absolute-workspace-or-temp-path-public-output",
237
+ "missing-or-malformed-report",
238
+ "repeated-control-or-oversized-report",
239
+ "missing-unsafe-replaced-or-identity-drifted-evidence",
240
+ "workflow-or-ralph-loop-missing-malformed-or-unsafe",
241
+ "default-finish-has-no-authority-side-effect"
242
+ ],
243
+ "proof": "source-built-and-fresh-packed-installed-public-cli"
244
+ },
245
+ "authority": {
246
+ "binding": {
247
+ "callerEnrollment": {
248
+ "repositoryId": 1304576182,
249
+ "repositorySlug": "jyt6640/persona-harness-attestation-claim-fixture",
250
+ "workflowPath": ".github/workflows/research-attestation.yml",
251
+ "workflowRef": "refs/heads/main"
252
+ },
253
+ "reusableSigner": {
254
+ "certificateSanIdentity": "reusable-producer-workflow",
255
+ "workflowPath": ".github/workflows/persona-harness-project-finish.yml"
256
+ },
257
+ "runtimeSourceProjection": {
258
+ "excludedRuntimeMetadata": [
259
+ ".persona/.ph-init-manifest.json",
260
+ ".persona/workflow"
261
+ ],
262
+ "reason": "bootstrap-local ownership metadata contains the consumer real path and is not caller project source",
263
+ "stillBound": [
264
+ ".persona/project-profile.jsonc",
265
+ "root-gradle-build-and-settings",
266
+ "git-source-identity",
267
+ "public-reports-and-evidence"
268
+ ]
269
+ },
270
+ "required": [
271
+ "caller-workflow-filename-ref-and-sha",
272
+ "reusable-workflow-sha-and-certificate-SAN",
273
+ "repository-id-and-slug",
274
+ "source-head-and-source-identity",
275
+ "workflow-run-and-attempt",
276
+ "artifact-id-and-sha256",
277
+ "original-archive-members"
278
+ ],
279
+ "storeSchema": "consumer-authority-original-artifact.2"
280
+ },
281
+ "modeledContract": {
282
+ "acceptedTopology": "separate-enrolled-caller-and-reusable-signer",
283
+ "proof": "source-built-and-fresh-packed-installed-public-bootstrap-bound-discovery-exact-once-finish-and-replay-test",
284
+ "rejected": [
285
+ "caller-workflow-mismatch",
286
+ "reusable-workflow-or-certificate-SAN-mismatch",
287
+ "repository-source-or-run-mismatch",
288
+ "artifact-digest-or-archive-mismatch",
289
+ "stale-or-replayed-terminal-record"
290
+ ],
291
+ "authorityClaim": "none-before-a-current-original-artifact-is-verified-online"
292
+ },
293
+ "fixturePlan": {
294
+ "artifact": "project-finish-attestation",
295
+ "consumer": "public-java-spring-gradle",
296
+ "postmergeAction": "normal-push-to-main",
297
+ "registryInstall": "requires-authorized-release-before-registry-install-persona-harness@0.8.22"
298
+ },
299
+ "hostedFixture": {
300
+ "callerWorkflowPath": ".github/workflows/research-attestation.yml",
301
+ "certificateSanIdentity": "reusable-producer-workflow",
302
+ "event": "push",
303
+ "ref": "refs/heads/main",
304
+ "repository": "jyt6640/persona-harness-attestation-claim-fixture",
305
+ "reusableWorkflowPath": ".github/workflows/persona-harness-project-finish.yml",
306
+ "revision": "v0822-source-candidate-head-before-authorized-release"
307
+ },
308
+ "verification": {
309
+ "predicate": "project-finish-attestation.1",
310
+ "route": "fixed-product-owned-online",
311
+ "unavailable": "bounded-non-authoritative"
312
+ },
313
+ "fetchDiagnostic": {
314
+ "allowedCodes": [
315
+ "authority-fetch-evidence",
316
+ "authority-fetch-invalid",
317
+ "authority-fetch-network",
318
+ "authority-fetch-policy"
319
+ ],
320
+ "childEnvelope": "only-exit-one-fixed-code-ok-false",
321
+ "persistence": "blocked-child-leaves-no-artifact-or-authority-state",
322
+ "privacy": "no-token-path-url-or-raw-child-output",
323
+ "publicState": "missing"
324
+ },
325
+ "fetchBindingReason": {
326
+ "allowedReasons": [
327
+ "artifact",
328
+ "package-version",
329
+ "source",
330
+ "enrollment",
331
+ "run",
332
+ "signer",
333
+ "freshness",
334
+ "consumption",
335
+ "verification",
336
+ "unknown"
337
+ ],
338
+ "output": "fixed-enum-only-no-values-paths-tokens-urls-or-raw-output",
339
+ "publicState": "binding-mismatch",
340
+ "schemaVersion": "consumer-authority-fetch-binding-reason.1"
341
+ },
342
+ "fetchSelection": {
343
+ "requiredTuple": [
344
+ "artifactId",
345
+ "runId",
346
+ "sourceHead",
347
+ "artifactDigest"
348
+ ],
349
+ "repositoryOnly": "blocked-before-enrollment-or-fetch",
350
+ "returnedArtifact": "must-match-all-four-fields-before-verifier-or-store",
351
+ "receipt": "explicit-secret-free-verified-tuple-or-retained-verified-receipt"
352
+ },
353
+ "fetchResult": {
354
+ "schemaVersion": "consumer-authority-fetch.4",
355
+ "sourceReason": [
356
+ "head",
357
+ "inputs",
358
+ "identity",
359
+ "status",
360
+ "index",
361
+ "content",
362
+ "working-tree",
363
+ "workspace",
364
+ "unknown"
365
+ ],
366
+ "sourceReasonWhen": "present-only-with-bindingReason-source",
367
+ "nonSourceReasons": "existing-binding-reasons-omit-sourceReason",
368
+ "privacy": "fixed-enum-only-no-receipt-path-digest-certificate-artifact-credential-or-raw-diagnostic"
369
+ },
370
+ "readOnlyVerify": {
371
+ "command": "ph authority verify",
372
+ "input": [
373
+ "archive",
374
+ "artifactId",
375
+ "runId",
376
+ "sourceHead",
377
+ "artifactDigest"
378
+ ],
379
+ "schemaVersion": "consumer-authority-verify.2",
380
+ "output": [
381
+ "authorityEligible",
382
+ "consumptionState",
383
+ "reason",
384
+ "schemaVersion",
385
+ "sourceFallback",
386
+ "sourceReason",
387
+ "state"
388
+ ],
389
+ "sourceReason": [
390
+ "head",
391
+ "inputs",
392
+ "identity",
393
+ "status",
394
+ "index",
395
+ "content",
396
+ "working-tree",
397
+ "workspace",
398
+ "unknown"
399
+ ],
400
+ "sourceReasonWhen": "present-only-with-reason-source-mismatch",
401
+ "nonSourceReasons": "existing-verify-reasons-omit-sourceReason",
402
+ "trustUnavailable": [
403
+ "dns-unavailable",
404
+ "network-unavailable",
405
+ "trust-root-unavailable",
406
+ "verification-timeout"
407
+ ],
408
+ "noCredentialFetchStoreConsumeFinishReplay": true,
409
+ "malformedMismatchSymlinkSourceStaleRuntime": "blocked",
410
+ "archiveInput": {
411
+ "arbitrarySymlinkAncestorOrLeaf": "blocked-before-verifier-or-store",
412
+ "darwinSystemTemporaryAlias": "only-root-owned-/tmp-symlink-to-private-tmp-is-canonicalized-before-no-follow-validation",
413
+ "nonDarwin": "uses-input-absolute-path-without-temporary-alias-canonicalization",
414
+ "ancestorDirectoryChurn": "same-no-follow-directory-location-and-mode-required-while-unrelated-entry-metadata-may-change",
415
+ "directParentIntegrity": "full-no-follow-identity-remains-required-before-read"
416
+ },
417
+ "artifactDigestInput": "canonical-sha256-prefix-or-exact-64-hex-normalized-before-archive-verification"
418
+ }
419
+ },
420
+ "externalAttestationCommandPlan": {
421
+ "certificateOidcIssuer": "https://token.actions.githubusercontent.com",
422
+ "command": [
423
+ "attestation",
424
+ "verify"
425
+ ],
426
+ "denySelfHostedRunners": true,
427
+ "exitClassification": {
428
+ "authenticationRequired": 4,
429
+ "normalVerificationFailure": 1,
430
+ "verified": 0
431
+ },
432
+ "format": "json",
433
+ "predicateType": "https://github.com/jyt6640/persona-harness/attestations/project-finish-attestation.1",
434
+ "repositorySelector": {
435
+ "flag": "--repo",
436
+ "source": "caller-enrollment.repositorySlug"
437
+ },
438
+ "schemaVersion": "consumer-authority-external-attestation-command-plan.1",
439
+ "signerDigest": {
440
+ "flag": "--signer-digest",
441
+ "source": "reusable-signer.workflowSha"
442
+ },
443
+ "signerSelector": {
444
+ "flag": "--signer-workflow",
445
+ "source": "reusable-signer.workflowPath"
446
+ },
447
+ "sourceDigest": {
448
+ "flag": "--source-digest",
449
+ "source": "caller-source.sourceSha"
450
+ },
451
+ "sourceRef": {
452
+ "flag": "--source-ref",
453
+ "source": "caller-source.ref"
454
+ },
455
+ "tokenIsolation": {
456
+ "artifactAccess": "forbidden-during-preflight",
457
+ "credential": "absent",
458
+ "output": "bounded-classification-only"
459
+ }
460
+ },
461
+ "prearmedExternalHandoff": {
462
+ "prepare": {
463
+ "allowedBeforeFixture": [
464
+ "prepare-one-exact-git-backed-fixture-clone-and-isolated-consumer-home-store",
465
+ "source-bound-bootstrap-before-final-fixture-commit",
466
+ "retain-identical-unpushed-final-fixture-commit-as-the-installed-consumer-cwd-head",
467
+ "post-commit-excluded-runtime-build-only-preparation",
468
+ "v4-immutable-tracked-binding-and-stage-scoped-residue-cleanliness-after-every-prepush-stage",
469
+ "workflow-selected-observer-gh-tool-preflight-without-package-path-lookup-token-or-artifact",
470
+ "public-pre-authority-readiness",
471
+ "public-initialized-finish-state",
472
+ "observer-credential-preflight",
473
+ "external-attestation-command-plan-preflight",
474
+ "external-artifact-transport-plan-preflight",
475
+ "enroll-after-prefetch-readiness",
476
+ "status-and-explain-on-ready-same-consumer"
477
+ ],
478
+ "consumer": "isolated-exact-registry-install",
479
+ "credentialPreflight": {
480
+ "acquisition": "host-gh-auth-token-read-once",
481
+ "command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-observer.mjs --json",
482
+ "consumerHome": "isolated-ephemeral",
483
+ "hostCredential": "host-gh-only",
484
+ "logging": "forbidden",
485
+ "observerWorker": "github-actions-read-only",
486
+ "persistence": "forbidden",
487
+ "productFallback": "forbidden",
488
+ "scope": "fixed-authenticated-user-and-empty-sentinel-actions-metadata",
489
+ "tokenEnvironment": "PH_OBSERVER_PREFLIGHT_GITHUB_TOKEN"
490
+ },
491
+ "attestationCommandPreflight": {
492
+ "command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-external-attestation.mjs --json",
493
+ "credential": "absent",
494
+ "input": "no-artifact-grammar-sentinel-only",
495
+ "output": "bounded-exit-classification-only",
496
+ "productFallback": "forbidden"
497
+ },
498
+ "prohibitedBeforeArtifact": [
499
+ "artifact-download",
500
+ "online-crypto-validation",
501
+ "authority-fetch",
502
+ "finish-consumption",
503
+ "replay-observation"
504
+ ],
505
+ "requiredBeforeFixtureAuthorization": "public-initialized-finish-blocked-only-on-trusted-authority-required",
506
+ "artifactTransportPreflight": {
507
+ "command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-external-artifact-transport.mjs --json",
508
+ "credential": "absent",
509
+ "input": "no-artifact-fixed-topology-and-metadata-sentinel-only",
510
+ "output": "bounded-parser-classification-only",
511
+ "productFallback": "forbidden"
512
+ }
513
+ },
514
+ "trigger": {
515
+ "onlyAfter": "immutable-prepush-fixture-commit-v4-tracked-binding-and-stage-scoped-residue-cleanliness-and-workflow-selected-observer-gh-tool-ready-and-natural-current-version-original-artifact",
516
+ "steps": [
517
+ "pre-push-fixture-parent-cwd-head-source-identity-and-v4-cleanliness-ready",
518
+ "normal-push-of-the-same-final-fixture-commit-to-main",
519
+ "current-original-artifact-transport-and-online-crypto",
520
+ "verify-online-before-leaf-certificate-notAfter-without-validity-relaxation",
521
+ "authority-fetch-discovers-and-binds-original-artifact",
522
+ "same-consumer-trusted-unconsumed-no-readiness-blocker",
523
+ "finish-consume-once",
524
+ "finish-replay-blocked"
525
+ ]
526
+ },
527
+ "nonAuthority": [
528
+ "preflight-does-not-self-validate",
529
+ "readiness-does-not-authorize-fixture",
530
+ "readiness-does-not-grant-authority",
531
+ "readiness-does-not-persist-or-log-host-credential",
532
+ "command-plan-preflight-does-not-access-artifact-or-network",
533
+ "command-plan-preflight-does-not-reuse-beta15-artifact",
534
+ "transport-plan-preflight-does-not-access-an-artifact-or-network",
535
+ "transport-model-safety-is-not-online-crypto-or-authority-evidence"
536
+ ],
537
+ "finalObserverProcedure": {
538
+ "credentialHandoff": "retrieve-host-gh-credential-silently-outside-the-consumer-and-pass-it-only-to-one-fixed-read-only-observer-child",
539
+ "execution": {
540
+ "environment": "env-i-with-only-fixed-allowlisted-variables",
541
+ "toolPaths": [
542
+ "absolute-gh",
543
+ "absolute-git",
544
+ "absolute-node",
545
+ "absolute-npm"
546
+ ]
547
+ },
548
+ "failureHandling": {
549
+ "afterFetch": "do-not-reinitialize-switch-reset-or-retry",
550
+ "beforeFetch": "abandon-and-recreate-the-consumer-before-any-live-fetch"
551
+ },
552
+ "hostStateIsolation": {
553
+ "externalStateRoots": [
554
+ "HOME",
555
+ "GH_CONFIG_DIR",
556
+ "XDG_CONFIG_HOME",
557
+ "XDG_DATA_HOME",
558
+ "XDG_STATE_HOME",
559
+ "XDG_CACHE_HOME",
560
+ "XDG_RUNTIME_DIR",
561
+ "TMPDIR",
562
+ "APPDATA",
563
+ "LOCALAPPDATA",
564
+ "USERPROFILE",
565
+ "GIT_CONFIG_GLOBAL",
566
+ "GIT_CONFIG_SYSTEM",
567
+ "NPM_CONFIG_USERCONFIG",
568
+ "NPM_CONFIG_CACHE"
569
+ ],
570
+ "forbiddenConsumerPaths": [
571
+ ".local/**",
572
+ ".config/**",
573
+ ".cache/**"
574
+ ],
575
+ "rootBinding": "all-fifteen-absolute-state-roots-must-remain-outside-the-consumer-realpath"
576
+ },
577
+ "liveSteps": [
578
+ "normal-push-of-the-same-final-fixture-commit-to-main",
579
+ "current-original-artifact-transport-and-online-crypto-within-leaf-window-without-validity-relaxation",
580
+ "authenticated-fetch-once",
581
+ "same-consumer-status-and-explain-trusted-unconsumed-with-no-readiness-blocker",
582
+ "Finish-consume-once",
583
+ "immediate-Finish-replay-blocked"
584
+ ],
585
+ "noReinitializationAfterFetch": [
586
+ "consumer-cwd-git-head-or-source-profile-change",
587
+ "consumer-home-or-authority-store-replacement",
588
+ "bootstrap-plan-report-evidence-or-loop-state-reset",
589
+ "consumer-switch-or-copied-state"
590
+ ],
591
+ "postCommitPreparation": {
592
+ "allowedMutations": [
593
+ ".persona/.ph-init-manifest.json",
594
+ ".persona/evidence/**",
595
+ ".persona/workflow/**",
596
+ ".gradle/**",
597
+ "build/**",
598
+ "node_modules/**"
599
+ ],
600
+ "forbiddenSourceBoundMutations": [
601
+ ".github/workflows/research-attestation.yml",
602
+ ".gitignore",
603
+ ".local/**",
604
+ ".config/**",
605
+ ".cache/**",
606
+ ".opencode/opencode.json",
607
+ ".persona/conventions/**",
608
+ ".persona/harness.jsonc",
609
+ ".persona/policies/**",
610
+ ".persona/project-profile.jsonc",
611
+ ".persona/rules/**",
612
+ "AGENTS.md",
613
+ "root-gradle-build-and-settings",
614
+ "src/**"
615
+ ]
616
+ },
617
+ "prePushCommit": {
618
+ "cwd": "must-be-exact-fixture-git-toplevel-and-canonical-project-root",
619
+ "finalCommit": "one-final-commit-contains-only-allowed-source-bound-bootstrap-outputs-and-reusable-pin",
620
+ "head": "must-remain-the-identical-unpushed-final-fixture-commit",
621
+ "remoteParent": "must-remain-unchanged-immediately-before-normal-push",
622
+ "sourceBoundBootstrap": "must-complete-before-final-commit",
623
+ "sourceIdentity": "immutable-tracked-source-head-parent-reusable-pin-and-digest-map-with-v4-stage-scoped-runtime-residue-projection"
624
+ },
625
+ "prefetchSteps": [
626
+ "one-exact-git-backed-fixture-clone-cwd-head-and-isolated-consumer-home-store",
627
+ "baseline-v4-immutable-tracked-binding-and-normalized-residue-projection",
628
+ "source-bound-bootstrap-before-final-fixture-commit",
629
+ "source-bound-preparation-v4-constrained-final-diff-and-normalized-residue-projection",
630
+ "one-final-commit-with-only-source-bound-bootstrap-allowlist-and-reusable-pin",
631
+ "post-commit-excluded-runtime-build-only-slow-preparation-before-push-without-arbitrary-outer-timeout",
632
+ "credential-handoff-v4-immutable-binding-and-normalized-residue-projection",
633
+ "observer-child-v4-immutable-binding-and-normalized-residue-projection",
634
+ "immediately-pre-push-v4-immutable-binding-and-normalized-residue-projection",
635
+ "workflow-selected-observer-gh-tool-dpkg-ownership-byte-strict-record-qualified-regular-nonsymlink-policy-primary-optional-known-completion-mode-independent-and-strict-secondary-inert-or-block-copyfile-excl-private-copy-reassessment-version-compatible-runner-temp-isolated-token-free-state-root-fixed-selector-stage-and-package-record-shape-without-package-path-lookup",
636
+ "public-bootstrap-current-loop-state",
637
+ "public-plan-accept-retained-or-draft-plan",
638
+ "public-Gradle-test-compileJava-and-clean",
639
+ "public-README-profile-and-Java-evidence",
640
+ "public-implementation-and-review-report-ingress",
641
+ "public-plan-status",
642
+ "public-bootstrap-current-loop-state",
643
+ "public-bootstrap-current-loop-state",
644
+ "public-plan-accept-retained-or-draft-plan"
645
+ ],
646
+ "procedureRecord": {
647
+ "location": "coordinator-governed-immutable-external-procedure-record-no-local-path",
648
+ "sha256": "5389c027b21f72f325a5d9e467ecd4d150f672e14da1d04f51774602a284c57d"
649
+ },
650
+ "stageCleanliness": [
651
+ "baseline",
652
+ "source-bound-preparation",
653
+ "credential-handoff",
654
+ "observer-child",
655
+ "immediately-pre-push"
656
+ ],
657
+ "timeBounds": {
658
+ "certificateValidity": "non-relaxable-verify-online-before-leaf-certificate-notAfter",
659
+ "outerTimeout": "forbidden-no-arbitrary-outer-timeout",
660
+ "slowPreparation": "complete-before-one-normal-push"
661
+ },
662
+ "schemaVersion": "consumer-authority-final-observer-procedure.4",
663
+ "cleanliness": {
664
+ "constrainedFinalDiff": "exact-v4-record-final-diff-only-with-immutable-reusable-pin",
665
+ "finalDiffPolicy": "only-documented-source-bound-bootstrap-paths-plus-the-required-immutable-reusable-pin",
666
+ "diagnostic": "normalized-clean-diagnostic-equals-stage-expected-residue-set",
667
+ "enumeration": "nul-safe-untracked-and-ignored-only",
668
+ "forbiddenConsumerPaths": [
669
+ ".local/**",
670
+ ".config/**",
671
+ ".cache/**"
672
+ ],
673
+ "immutableTrackedBinding": "exact-cwd-git-toplevel-head-parent-remote-parent-reusable-pin-digest-and-source-identity-digest-map",
674
+ "residueInspection": "lstat-and-realpath-contained-for-every-residue-and-ancestor",
675
+ "sourceProjection": "only-source-identity-and-project-finish-runtime-exclusions",
676
+ "stageResidueProjection": "exact-normalized-v4-record-residue-set-for-each-of-the-five-fences",
677
+ "policy": {
678
+ "allowedSourceBoundFinalDiffPaths": [
679
+ ".gitignore",
680
+ ".opencode/opencode.json",
681
+ ".persona/conventions/**",
682
+ ".persona/harness.jsonc",
683
+ ".persona/policies/**",
684
+ ".persona/project-profile.jsonc",
685
+ ".persona/rules/**",
686
+ "AGENTS.md",
687
+ "build.gradle",
688
+ "build.gradle.kts",
689
+ "gradle.properties",
690
+ "settings.gradle",
691
+ "settings.gradle.kts"
692
+ ],
693
+ "allowedResidues": [
694
+ {
695
+ "kind": "directory",
696
+ "path": ".gradle"
697
+ },
698
+ {
699
+ "kind": "file",
700
+ "path": ".persona/.ph-init-manifest.json"
701
+ },
702
+ {
703
+ "kind": "directory",
704
+ "path": ".persona/evidence"
705
+ },
706
+ {
707
+ "kind": "directory",
708
+ "path": ".persona/workflow"
709
+ },
710
+ {
711
+ "kind": "directory",
712
+ "path": "build"
713
+ },
714
+ {
715
+ "kind": "directory",
716
+ "path": "node_modules"
717
+ }
718
+ ],
719
+ "cleanDiagnostic": "git-clean-ndx-normalized-against-the-nul-safe-status-projection",
720
+ "forbiddenConsumerPaths": [
721
+ ".local/**",
722
+ ".config/**",
723
+ ".cache/**"
724
+ ],
725
+ "requiredReusablePinPath": ".github/workflows/research-attestation.yml",
726
+ "schemaVersion": "consumer-authority-final-observer-cleanliness.1",
727
+ "stageResidueProjection": {
728
+ "baseline": [],
729
+ "source-bound-preparation": [
730
+ ".persona/.ph-init-manifest.json",
731
+ ".persona/workflow"
732
+ ],
733
+ "credential-handoff": [
734
+ ".gradle",
735
+ ".persona/.ph-init-manifest.json",
736
+ ".persona/evidence",
737
+ ".persona/workflow",
738
+ "build",
739
+ "node_modules"
740
+ ],
741
+ "observer-child": [
742
+ ".gradle",
743
+ ".persona/.ph-init-manifest.json",
744
+ ".persona/evidence",
745
+ ".persona/workflow",
746
+ "build",
747
+ "node_modules"
748
+ ],
749
+ "immediately-pre-push": [
750
+ ".gradle",
751
+ ".persona/.ph-init-manifest.json",
752
+ ".persona/evidence",
753
+ ".persona/workflow",
754
+ "build",
755
+ "node_modules"
756
+ ]
757
+ },
758
+ "stages": [
759
+ "baseline",
760
+ "source-bound-preparation",
761
+ "credential-handoff",
762
+ "observer-child",
763
+ "immediately-pre-push"
764
+ ],
765
+ "statusEnumeration": "git-status-porcelain-v1-z-untracked-all-ignored-matching"
766
+ }
767
+ },
768
+ "observerGhTool": {
769
+ "executable": "workflow-selected-absolute-regular-non-symlink",
770
+ "invocation": "direct-exec-no-shell-no-path-lookup",
771
+ "output": "bounded-version-classification-only",
772
+ "provisioning": "workflow-owned-runner-package-record-to-private-regular-copy",
773
+ "schemaVersion": "consumer-authority-observer-gh-tool.2",
774
+ "version": ">=2.96.0 <3.0.0"
775
+ },
776
+ "observerGhSelection": "source-and-protected-ubuntu-ci-only-workflow-owned-dpkg-ownership-and-byte-strict-package-record-qualified-primary-with-optional-known-completion-mode-independent-validation-and-strict-secondary-inert-or-block-policy-copyfile-excl-private-copy-reassessment-with-runner-temp-isolated-token-free-state-root-and-fixed-nonreflective-selector-stage-and-package-record-shape",
777
+ "attestationCommandPreflight": {
778
+ "command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-external-attestation.mjs --json --observer-gh <workflow-private-copy>",
779
+ "credential": "absent",
780
+ "input": "fixed-nonmaterialized-placeholder-exact-rendered-command-plan-and-help-only",
781
+ "output": "bounded-parser-classification-only",
782
+ "parser": "direct-absolute-gh-attestation-verify-placeholder-exact-plan-arguments-help",
783
+ "productFallback": "forbidden",
784
+ "stateIsolation": "same-explicit-token-free-home-gh-xdg-temp-git-and-npm-state-root-as-direct-version-assessment",
785
+ "timeout": "short-parser-only-bound"
786
+ }
787
+ }
788
+ },
789
+ "hostedResidual": {
790
+ "id": "v0822-current-package-acceptance-and-authorized-current-artifact-observation",
791
+ "requiredEvidence": "one separately authorized normal push of the v4-prepared exact fixture commit; immediate current-version original-artifact transport, online verification before leaf-certificate-notAfter without validity relaxation, one authenticated fetch, one Finish consumption, and immediate replay rejection occur in the same unchanged consumer",
792
+ "whyLocalCannotClose": "A real current signed artifact, leaf-certificate validity window, isolated external credential, online verification, and GitHub Actions discovery cannot be produced locally. Source and CI-shaped packed exercise prove v4 tracked-binding, stage-scoped residue cleanliness, workflow-selected observer-gh ownership, byte-strict primary package-record selector lifecycle, COPYFILE_EXCL private-copy reassessment, one runner-temp isolated token-free state root, fixed-placeholder exact-plan help parser preflight without artifact or network access, strict secondary validation, fixed stage and shape diagnostics. Package acceptance separately proves current package-lock-acceptance binding, exact-tar provenance, normal installation, installed-only no-source fallback, CLI approval-before-mutation behavior, complete source and fresh-installed fixture import closure, explicit public acceptance of a retained draft plan, exact Linux authority-fetch child envelope behavior, trusted-unconsumed-persisted discovery result binding, public readiness, privacy, trusted modeled fetch, one Finish consumption, and replay block without accessing a live artifact."
793
+ },
794
+ "mutationBoundary": {
795
+ "performed": false,
796
+ "prohibited": [
797
+ "npm-publish",
798
+ "tag-or-dist-tag-mutation",
799
+ "release-creation",
800
+ "artifact-download-or-live-verification",
801
+ "Finish-consumption",
802
+ "fixture-push-or-workflow-dispatch"
803
+ ]
804
+ },
805
+ "beta16HistoricalExternal": {
806
+ "outcome": "external-gh-artifact-download-exit-zero-with-zero-byte-output-before-zip-validation",
807
+ "reusableForBeta17": false,
808
+ "version": "0.8.0-beta.16"
809
+ },
810
+ "externalArtifactTransportPlan": {
811
+ "api": {
812
+ "accept": "application/vnd.github+json, application/octet-stream",
813
+ "origin": "https://api.github.com",
814
+ "version": "2022-11-28"
815
+ },
816
+ "artifact": {
817
+ "maximumBytes": 8388608,
818
+ "source": "validated-actions-artifact-metadata"
819
+ },
820
+ "endpoint": {
821
+ "method": "GET",
822
+ "path": "/repos/{caller-enrollment.repositorySlug}/actions/artifacts/{artifact.id}/zip"
823
+ },
824
+ "output": {
825
+ "files": [
826
+ "original.zip",
827
+ "bundle.json"
828
+ ],
829
+ "root": "private-observer-mkdtemp",
830
+ "write": "no-follow-reserved-and-promote-after-validation"
831
+ },
832
+ "redirect": {
833
+ "authorization": "api-origin-only",
834
+ "maximum": 1,
835
+ "permittedHosts": [
836
+ "pipelines.actions.githubusercontent.com",
837
+ "results-receiver.actions.githubusercontent.com",
838
+ "*.blob.core.windows.net"
839
+ ]
840
+ },
841
+ "response": {
842
+ "contentTypes": [
843
+ "application/octet-stream",
844
+ "application/zip"
845
+ ],
846
+ "status": 200,
847
+ "timeoutMs": 15000
848
+ },
849
+ "schemaVersion": "consumer-authority-external-artifact-transport-plan.1"
850
+ },
851
+ "beta17HistoricalPublish": {
852
+ "beta16Registry": "present-in-public-registry",
853
+ "outcome": "canonical-tar-and-provenance-completed-before-authorization-shaped-registry-put-e404",
854
+ "reusableForBeta18": false,
855
+ "version": "0.8.0-beta.17"
856
+ },
857
+ "canonicalPackagePublisherPlan": {
858
+ "canonicalPackerRuntime": {
859
+ "node": "20.19.0",
860
+ "npm": "10.8.2"
861
+ },
862
+ "canonicalTar": {
863
+ "handoff": "exact-canonical-tarball-sha256-and-package-content-identity",
864
+ "source": "canonical-package-packer-output-and-package-facts"
865
+ },
866
+ "preflight": {
867
+ "argv": [
868
+ "npm",
869
+ "publish",
870
+ "<canonical-tarball>",
871
+ "--access",
872
+ "public",
873
+ "--tag",
874
+ "<selected-dist-tag>",
875
+ "--provenance",
876
+ "--dry-run"
877
+ ],
878
+ "credentials": "no-custom-token-exchange-or-auth-state-output",
879
+ "mode": "node24-npm11-exact-canonical-tarball-dry-run"
880
+ },
881
+ "publisherEnvironment": {
882
+ "canonicalPackerConfigInheritance": "forbidden",
883
+ "isolated": [
884
+ "HOME",
885
+ "NPM_CONFIG_CACHE",
886
+ "NPM_CONFIG_GLOBALCONFIG",
887
+ "NPM_CONFIG_USERCONFIG"
888
+ ]
889
+ },
890
+ "publisherRuntime": {
891
+ "node": "24.18.0",
892
+ "npm": "11.16.0"
893
+ },
894
+ "npmTrustedPublishingMinimum": {
895
+ "node": "22.14.0",
896
+ "npm": "11.5.1"
897
+ },
898
+ "registryPut": {
899
+ "evidence": "hosted-only",
900
+ "historicalBeta17": "authorization-shaped-registry-response-not-package-absence"
901
+ },
902
+ "schemaVersion": "canonical-package-publisher-plan.1"
903
+ },
904
+ "beta18HistoricalPublish": {
905
+ "contentIdentity": "bf3de031ae9ed6d9ab290291f151d0befc1fc4804465f55bddb5ad382399a150",
906
+ "outcome": "registry-publish-succeeded-and-canonical-registry-bytes-matched-before-an-unsupported-githead-metadata-requirement-blocked-readback",
907
+ "rawTarballSha256": "66ef460552d03fd067baf412c1d4952e5bd42811b419c585092fc7a75b4c54e6",
908
+ "reusableForBeta19": false,
909
+ "version": "0.8.0-beta.18"
910
+ },
911
+ "beta19HistoricalPublish": {
912
+ "outcome": "published-immutable-staging-package-not-reusable-as-current-package-evidence",
913
+ "reusableForBeta20": false,
914
+ "version": "0.8.0-beta.19"
915
+ },
916
+ "beta20HistoricalFinalObserver": {
917
+ "outcome": "trusted-unconsumed-live-fetch-followed-by-intentional-workflow-state-uninitialized-block-not-reusable-as-closure-evidence",
918
+ "procedureRecordSha256": "1d370a4e4cdd55b20e27c016073246b78c373548c84c89c3499b3838e27980a7",
919
+ "reusableForBeta21": false,
920
+ "version": "0.8.0-beta.20"
921
+ },
922
+ "beta21HistoricalFinalObserver": {
923
+ "outcome": "online-crypto-and-bindings-passed-after-leaf-window-expired-before-authority-fetch-not-reusable-as-closure-evidence",
924
+ "reusableForBeta22": false,
925
+ "version": "0.8.0-beta.21"
926
+ },
927
+ "beta22HistoricalFinalObserver": {
928
+ "outcome": "host-gh-xdg-state-created-untracked-local-device-id-after-final-commit-not-reusable-as-closure-evidence",
929
+ "reusableForBeta23": false,
930
+ "version": "0.8.0-beta.22"
931
+ },
932
+ "beta23HistoricalFinalObserver": {
933
+ "outcome": "raw-empty-porcelain-and-clean-contradicted-approved-runtime-build-residue-after-final-commit-not-reusable-as-closure-evidence",
934
+ "reusableForBeta28": false,
935
+ "version": "0.8.0-beta.23"
936
+ },
937
+ "beta24HistoricalExternalContract": {
938
+ "outcome": "supplied-bundle-source-contract-required-ambient-gh-and-rejected-linux-runtime-owned-uv-use-io-uring-not-reusable-as-closure-evidence",
939
+ "reusableForBeta28": false,
940
+ "version": "0.8.0-beta.24"
941
+ },
942
+ "beta25HistoricalObserverTool": {
943
+ "outcome": "protected-verify-used-an-unselected-literal-observer-gh-path-and-collapsed-tool-stage-not-reusable-as-closure-evidence",
944
+ "reusableForBeta28": false,
945
+ "version": "0.8.0-beta.25"
946
+ },
947
+ "beta26HistoricalObserverTool": {
948
+ "outcome": "ubuntu-gh-package-record-includes-a-regular-nonexecutable-completion-sibling-and-basename-only-selection-blocked-before-tool-assessment-not-reusable-as-closure-evidence",
949
+ "reusableForBeta28": false,
950
+ "version": "0.8.0-beta.26"
951
+ },
952
+ "beta27HistoricalObserverTool": {
953
+ "outcome": "protected-verify-selector-collapsed-runner-package-list-record-assessment-private-copy-and-output-handoff-failures-to-one-non-attributable-code-not-reusable-as-closure-evidence",
954
+ "reusableForBeta28": false,
955
+ "version": "0.8.0-beta.27"
956
+ },
957
+ "observerGhTool": {
958
+ "executable": "workflow-selected-absolute-regular-non-symlink",
959
+ "invocation": "direct-exec-no-shell-no-path-lookup",
960
+ "output": "bounded-version-classification-only",
961
+ "provisioning": "workflow-owned-runner-package-record-to-private-regular-copy",
962
+ "schemaVersion": "consumer-authority-observer-gh-tool.2",
963
+ "version": ">=2.96.0 <3.0.0"
964
+ },
965
+ "observerGhSelection": {
966
+ "diagnostics": "only-fixed-tool-invalid-tool-unavailable-tool-version-unsupported-parser-rejected-parser-timeout-non-tool-stage-selector-stage-and-package-record-shape-codes-cross-the-package-contract-boundary",
967
+ "dpkgOwnership": "bounded-direct-dpkg-query-requires-gh-installed-status-ii-and-the-current-linux-architecture-before-package-record-parsing",
968
+ "packageRecord": {
969
+ "ancillary": "allow-an-absent-documented-completion-silently-and-allow-only-the-present-known-completion-after-no-follow-regular-nonsymlink-validation-regardless-of-executable-mode; treat-other-present-secondary-basename-gh-records-as-inert-only-after-no-follow-regular-nonsymlink-nonexecutable-validation; reject-listed-missing-symlink-nonregular-or-unknown-executable-secondary-records",
970
+ "encoding": "bounded-buffer-valid-utf8-lf-only-with-an-optional-final-lf-and-no-nul-cr-blank-duplicate-or-noncanonical-records",
971
+ "primary": "require-exactly-the-policy-primary-/usr/bin/gh-record-as-a-regular-nonsymlink-executable-after-no-follow-lstat",
972
+ "shapes": [
973
+ "record-encoding",
974
+ "record-path",
975
+ "primary-missing",
976
+ "primary-unsafe",
977
+ "ancillary-unsafe",
978
+ "executable-ambiguous",
979
+ "lstat-failed",
980
+ "canonical"
981
+ ],
982
+ "unknownExecutables": "reject-every-secondary-executable-or-alias-as-ambiguous"
983
+ },
984
+ "stateIsolation": "every-direct-version-assessment-and-parser-help-preflight-use-only-a-validated-runner-temp-real-directory-as-one-explicit-token-free-home-gh-xdg-temp-git-and-npm-state-root-so-gh-cannot-create-consumer-local-state",
985
+ "stages": [
986
+ "environment",
987
+ "package-list",
988
+ "package-record",
989
+ "source-assessment",
990
+ "private-reservation",
991
+ "private-copy",
992
+ "private-assessment",
993
+ "output-handoff"
994
+ ],
995
+ "unknown": "selector-internal",
996
+ "workflow": "validate-runner-temp-and-github-output-then-owned-dpkg-status-architecture-and-byte-record-primary-selection-with-optional-known-completion-mode-independent-validation-and-strict-secondary-inert-or-block-policy-and-runner-temp-isolated-token-free-state-root-to-copyfile-excl-private-regular-nonsymlink-copy-reassessment-and-parser-help-preflight-before-ci-publish-and-release-package-contracts"
997
+ },
998
+ "closureCompleteness": {
999
+ "deterministicLinks": [
1000
+ "immutable-tracked-source-head-parent-pin-and-digest-map",
1001
+ "v4-stage-scoped-runtime-residue-cleanliness",
1002
+ "ubuntu-dpkg-ownership-byte-strict-package-record-policy-primary-with-optional-known-completion-mode-independent-validation-and-strict-secondary-records-workflow-selected-copyfile-excl-private-observer-gh-tool-reassessment-and-no-network-parser-help-preflight-with-fixed-nonreflective-selector-stage-and-package-record-shape-without-package-path-lookup",
1003
+ "linux-runtime-owned-uv-use-io-uring-child-envelope-only",
1004
+ "same-consumer-public-bootstrap-explicit-plan-accept-loop-gradle-reports-evidence-readiness",
1005
+ "host-state-isolated-credential-preflight-and-command-transport-plans",
1006
+ "current-original-byte-and-online-crypto-before-leaf-certificate-notAfter",
1007
+ "authenticated-fetch-to-trusted-unconsumed",
1008
+ "one-Finish-consumption-and-immediate-replay-block",
1009
+ "current-package-lock-acceptance-version-binding-and-complete-source-and-fresh-installed-fixture-import-closure-without-source-fallback",
1010
+ "workflow-private-copy-reassessment-and-fixed-placeholder-exact-plan-help-parser-preflight-without-artifact-network-token-or-ambient-state",
1011
+ "actual-opencode-first-assistant-response-linked-event-and-zero-pre-approval-mutation-trace-without-transformed-input-substitution"
1012
+ ],
1013
+ "localProof": "clean-linux-node20-source-built-and-fresh-packed-installed-v4-cleanliness-qualified-dpkg-ownership-byte-strict-primary-with-optional-known-completion-mode-independent-validation-and-strict-secondary-package-record-copyfile-excl-private-copy-reassessment-runner-temp-isolated-token-free-gh-state-fixed-placeholder-exact-plan-help-parser-preflight-fixed-stage-and-shape-diagnostics-current-package-lock-acceptance-binding-complete-fixture-import-closure-and-authority-child-contracts-with-exact-linux-runtime-envelope-and-trusted-unconsumed-persisted-discovery-result-binding",
1014
+ "remainingUncertainty": "one-authorized-v4-fixture-push-and-immediate-current-artifact-observation-only"
1015
+ },
1016
+ "beta28HistoricalObserverTool": {
1017
+ "outcome": "protected-verify-observed-an-unattributed-package-record-selector-block-before-tests-and-beta28-is-not-reusable-as-closure-evidence",
1018
+ "reusableForBeta29": false,
1019
+ "version": "0.8.0-beta.28"
1020
+ },
1021
+ "beta29HistoricalObserverTool": {
1022
+ "outcome": "protected-verify-observed-a-primary-validated-package-record-block-at-a-conflated-nonselected-ancillary-shape-and-beta29-is-not-reusable-as-closure-evidence",
1023
+ "reusableForBeta30": false,
1024
+ "version": "0.8.0-beta.29"
1025
+ },
1026
+ "beta30HistoricalObserverTool": {
1027
+ "outcome": "protected-verify-observed-a-documented-nonselected-completion-in-executable-mode-classified-as-an-ambiguous-executor-before-the-known-completion-policy-branch-and-beta30-is-not-reusable-as-closure-evidence",
1028
+ "reusableForBeta31": false,
1029
+ "version": "0.8.0-beta.30"
1030
+ },
1031
+ "beta31HistoricalPackageContract": {
1032
+ "outcome": "protected-verify-revealed-stale-current-version-authority-and-incomplete-source-and-release-fixture-copy-graphs-before-the-real-source-and-fresh-tar-package-contracts-could-run",
1033
+ "reusableForBeta32": false,
1034
+ "version": "0.8.0-beta.31"
1035
+ },
1036
+ "beta32HistoricalParserPreflight": {
1037
+ "outcome": "protected-verify-reached-the-authoritative-bundle-source-contract-but-live-invalid-bundle-attestation-preflight-entered-gh-network-and-sigstore-initialization-before-parser-rejection-and-timed-out-not-reusable-as-closure-evidence",
1038
+ "reusableForBeta33": false,
1039
+ "version": "0.8.0-beta.32"
1040
+ },
1041
+ "rc1HistoricalNextChannelOnly": {
1042
+ "outcome": "published-to-the-next-channel-to-open-the-release-candidate-cycle-the-integrity-roadmap-requires-before-stable-and-establishes-no-latest-or-general-availability-claim-on-its-own",
1043
+ "reusableForGa": false,
1044
+ "version": "0.8.0-rc.1"
1045
+ },
1046
+ "gaHistoricalSupersededByPatch": {
1047
+ "outcome": "accepted-as-the-general-availability-record-for-its-own-tree-and-superseded-only-for-the-two-no-native-artifact-finish-fixes-this-patch-carries-so-it-establishes-no-claim-about-them",
1048
+ "reusableForV081": false,
1049
+ "version": "0.8.0"
1050
+ },
1051
+ "acceptanceResponsibilities": {
1052
+ "package": {
1053
+ "excludes": [
1054
+ "attestation-parser",
1055
+ "observer-gh-selector"
1056
+ ],
1057
+ "requires": [
1058
+ "exact-tar-provenance",
1059
+ "normal-install",
1060
+ "installed-only-no-source-fallback",
1061
+ "cli-and-approval-before-mutation",
1062
+ "post-model-assistant-response-and-pre-approval-trace"
1063
+ ]
1064
+ },
1065
+ "sourceAndProtectedUbuntuCi": {
1066
+ "requires": [
1067
+ "workflow-owned-dpkg-observer-gh-selection",
1068
+ "private-regular-nonsymlink-observer-gh-copy",
1069
+ "path-free-attestation-parser-preflight"
1070
+ ]
1071
+ }
1072
+ },
1073
+ "v081HistoricalRelease": {
1074
+ "outcome": "accepted-for-its-own-v081-tree-and-not-reusable-for-the-published-v082-release-or-any-later-package",
1075
+ "reusableForV082": false,
1076
+ "version": "0.8.1"
1077
+ },
1078
+ "v082HistoricalRelease": {
1079
+ "outcome": "published-latest-v082-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1080
+ "reusableForV0814": false,
1081
+ "version": "0.8.2"
1082
+ },
1083
+ "v083HistoricalRelease": {
1084
+ "outcome": "published-0.8.3-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1085
+ "reusableForV0814": false,
1086
+ "version": "0.8.3"
1087
+ },
1088
+ "openCodeInterviewObservation": {
1089
+ "approvalBoundary": {
1090
+ "event": "permission.replied",
1091
+ "acceptedResponses": [
1092
+ "once",
1093
+ "always"
1094
+ ],
1095
+ "preApprovalMutation": "tool.execute-before-or-after-command-executed-file-edited-file-watcher-updated-session-diff-and-assistant-tool-parts-block-before-approval"
1096
+ },
1097
+ "input": "normalized-opencode-event-stream-from-message-and-plugin-hook-surfaces",
1098
+ "firstResponse": {
1099
+ "assistantMessage": "first-message.updated-role-assistant-with-one-session-bound-message-id",
1100
+ "assistantText": "message.part.updated-text-parts-linked-to-that-assistant-message-only",
1101
+ "transformedUserInput": "user-messages-and-user-text-parts-never-satisfy-the-post-model-predicate",
1102
+ "messageIdentity": "message-id-session-role-and-event-surface-association-is-immutable-role-drift-blocks",
1103
+ "partIdentity": "part-id-session-message-type-and-event-surface-association-is-immutable-linked-text-cannot-promote",
1104
+ "lifecycle": {
1105
+ "message": "message.updated-first-or-same-binding-repeat-then-user-message.removed-once; no-unknown-remove-or-update-after-remove",
1106
+ "part": "message.part.updated-first-or-same-binding-repeat-then-message.part.removed-once; no-unknown-remove-update-after-remove-or-rebind",
1107
+ "rejectedCodes": [
1108
+ "message-lifecycle-invalid",
1109
+ "part-lifecycle-invalid"
1110
+ ]
1111
+ },
1112
+ "cardinality": "one-assistant-message-id-only-repeated-updates-of-that-id-allowed"
1113
+ },
1114
+ "response": {
1115
+ "predicate": "one-bounded-single-question-response-with-one-terminal-question-mark",
1116
+ "rejectedContent": [
1117
+ "solution",
1118
+ "plan",
1119
+ "command",
1120
+ "file-change",
1121
+ "multiple-or-nonquestion-content"
1122
+ ]
1123
+ },
1124
+ "output": "fixed-status-booleans-and-code-only-no-response-text-path-argument-token-or-host-data",
1125
+ "schemaVersion": "opencode-interview-observation.1"
1126
+ },
1127
+ "v084HistoricalRelease": {
1128
+ "outcome": "published-0.8.4-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1129
+ "reusableForV0814": false,
1130
+ "version": "0.8.4"
1131
+ },
1132
+ "v085HistoricalRelease": {
1133
+ "outcome": "immutable-v085-tag-release-is-unpublished-history-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1134
+ "reusableForV0814": false,
1135
+ "version": "0.8.5"
1136
+ },
1137
+ "v086HistoricalRelease": {
1138
+ "outcome": "published-latest-v086-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1139
+ "reusableForV0814": false,
1140
+ "version": "0.8.6"
1141
+ },
1142
+ "v087HistoricalRelease": {
1143
+ "outcome": "published-latest-v087-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1144
+ "reusableForV0814": false,
1145
+ "version": "0.8.7"
1146
+ },
1147
+ "v088HistoricalRelease": {
1148
+ "outcome": "published-latest-v088-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1149
+ "reusableForV0814": false,
1150
+ "version": "0.8.8"
1151
+ },
1152
+ "v0813HistoricalRelease": {
1153
+ "outcome": "immutable-v0813-tag-release-is-unpublished-history-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1154
+ "reusableForV0814": false,
1155
+ "version": "0.8.13"
1156
+ },
1157
+ "v0812HistoricalRelease": {
1158
+ "outcome": "published-0.8.12-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1159
+ "reusableForV0814": false,
1160
+ "version": "0.8.12"
1161
+ },
1162
+ "v0810HistoricalRelease": {
1163
+ "outcome": "published-latest-v0810-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1164
+ "reusableForV0814": false,
1165
+ "version": "0.8.10"
1166
+ },
1167
+ "v0811HistoricalRelease": {
1168
+ "outcome": "published-0.8.11-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1169
+ "reusableForV0814": false,
1170
+ "version": "0.8.11"
1171
+ },
1172
+ "v089HistoricalRelease": {
1173
+ "outcome": "published-latest-v089-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
1174
+ "reusableForV0814": false,
1175
+ "version": "0.8.9"
1176
+ },
1177
+ "observerGhVersionProbe": {
1178
+ "ceilingMs": 15000,
1179
+ "timeoutCode": "gh-command-version-timeout",
1180
+ "unavailableCode": "gh-command-unavailable",
1181
+ "unsupportedCode": "gh-command-version-unsupported",
1182
+ "invalidCode": "gh-command-tool-invalid",
1183
+ "selectorCode": "observer-gh-workflow-tool-timeout",
1184
+ "stageCode": "observer-gh-tool-timeout",
1185
+ "output": "fixed-code-only-no-process-output"
1186
+ },
1187
+ "v0814HistoricalRelease": {
1188
+ "outcome": "published-0.8.14-release-is-immutable-and-not-reusable-for-this-unpublished-v0815-source-candidate-or-any-later-package",
1189
+ "reusableForV0815": false,
1190
+ "version": "0.8.14"
1191
+ },
1192
+ "v0815HistoricalRelease": {
1193
+ "outcome": "published-0.8.15-release-is-immutable-and-not-reusable-for-this-unpublished-v0816-source-candidate-or-any-later-package",
1194
+ "reusableForV0816": false,
1195
+ "version": "0.8.15"
1196
+ },
1197
+ "v0816HistoricalRelease": {
1198
+ "outcome": "published-0.8.16-release-is-immutable-and-not-reusable-for-this-unpublished-v0817-source-candidate-or-any-later-package",
1199
+ "reusableForV0817": false,
1200
+ "version": "0.8.16"
1201
+ },
1202
+ "initialization": {
1203
+ "packageTemplateIdentity": "canonical-package-template-digest-remains-separate-from-effective-bootstrap-overlay-file-digests",
1204
+ "repairStaging": "manifest-less-recognized-portable-static-baseline-records-the-caller-realpath-before-staging-ownership-verification"
1205
+ },
1206
+ "projectFinishSourceIdentity": {
1207
+ "adoptedInstructionPolicy": "remains-source-bound",
1208
+ "repairInferenceObservations": "excludes-only-.persona/instructions/inferred.json-and-.persona/instructions/conflicts.json"
1209
+ },
1210
+ "v0821HistoricalRelease": {
1211
+ "outcome": "published-0.8.21-release-is-immutable-and-not-reusable-for-this-unpublished-v0822-source-candidate-or-any-later-package",
1212
+ "reusableForV0822": false,
1213
+ "version": "0.8.21"
1214
+ }
1215
+ }