-
+
{model?.claim?.text != null && (
{model.claim.text}
From 9de00383ec210d0ebafe36c6394860b26084b1f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Sun, 11 Oct 2026 16:01:34 -0700
Subject: [PATCH 30/57] style(portal): apply CI-verified Prettier formatting
---
portal/lib/pcsData.ts | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/portal/lib/pcsData.ts b/portal/lib/pcsData.ts
index 2fc4e42..43d947d 100644
--- a/portal/lib/pcsData.ts
+++ b/portal/lib/pcsData.ts
@@ -13,7 +13,9 @@ async function readPcsExport(): Promise {
return JSON.parse(raw) as PcsPortalExport;
}
-async function readClaimFromCorpus(claimId: string): Promise {
+async function readClaimFromCorpus(
+ claimId: string,
+): Promise {
const p = path.join(CORPUS_PCS, claimId, "read_model.json");
const raw = await fs.readFile(p, "utf8").catch(() => null);
if (!raw) return null;
@@ -25,7 +27,9 @@ export async function getAllPcsClaimIds(): Promise {
if (exported?.claim_ids?.length) {
return exported.claim_ids;
}
- const entries = await fs.readdir(CORPUS_PCS, { withFileTypes: true }).catch(() => []);
+ const entries = await fs
+ .readdir(CORPUS_PCS, { withFileTypes: true })
+ .catch(() => []);
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
}
From 562b0e3092afe4957cb6be4c13074bf6a6621135 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Sun, 11 Oct 2026 16:01:36 -0700
Subject: [PATCH 31/57] style(portal): apply CI-verified Prettier formatting
---
.../scripts/verify-pcs-phase2-read-model.mjs | 54 +++++++++++++++----
1 file changed, 43 insertions(+), 11 deletions(-)
diff --git a/portal/scripts/verify-pcs-phase2-read-model.mjs b/portal/scripts/verify-pcs-phase2-read-model.mjs
index 6c19009..ef86ce9 100644
--- a/portal/scripts/verify-pcs-phase2-read-model.mjs
+++ b/portal/scripts/verify-pcs-phase2-read-model.mjs
@@ -19,7 +19,13 @@ const registryEntry = z.object({
source_commit: z.string().min(40),
hash: z.string().startsWith("sha256:"),
semantic_checks_performed: z.array(z.string()),
- admission_status: z.enum(["passed", "warning", "failed", "deferred", "not_applicable"]),
+ admission_status: z.enum([
+ "passed",
+ "warning",
+ "failed",
+ "deferred",
+ "not_applicable",
+ ]),
registry_admission_result: z.string().min(1),
});
@@ -101,7 +107,9 @@ const phase2Schema = z
release_chain_validation: z.object({
validation_id: z.string().min(1),
status: z.literal("ProofChecked"),
- checks: z.array(z.object({ check_id: z.string(), status: z.string() })).min(1),
+ checks: z
+ .array(z.object({ check_id: z.string(), status: z.string() }))
+ .min(1),
}),
artifact_registry: z.array(registryEntry).min(1),
handoff_manifests: z.array(handoffEntry).optional(),
@@ -128,13 +136,25 @@ const phase2Schema = z
claim_id: z.string().min(1),
certificate_id: z.string().min(1),
signed_bundle_hash: z.string().startsWith("sha256:"),
- claim_state: z.enum(["current", "stale", "superseded", "withdrawn", "revalidated"]),
+ claim_state: z.enum([
+ "current",
+ "stale",
+ "superseded",
+ "withdrawn",
+ "revalidated",
+ ]),
recommended_action: z.string().min(1),
}),
staleness: z.object({
stale: z.boolean(),
stale_reasons: z.array(z.string()),
- claim_state: z.enum(["current", "stale", "superseded", "withdrawn", "revalidated"]),
+ claim_state: z.enum([
+ "current",
+ "stale",
+ "superseded",
+ "withdrawn",
+ "revalidated",
+ ]),
repair_hint: z.string(),
recommended_action: z.string().min(1),
}),
@@ -206,7 +226,8 @@ const phase2Schema = z
if (!certs.includes("ComputationWitness.v0")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
- message: "certificate_artifact_types must include ComputationWitness.v0",
+ message:
+ "certificate_artifact_types must include ComputationWitness.v0",
path: ["certificate_artifact_types"],
});
}
@@ -214,14 +235,16 @@ const phase2Schema = z
if (!notice.includes("computational provenance")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
- message: "limitation_notice must include computation reproducibility disclaimer",
+ message:
+ "limitation_notice must include computation reproducibility disclaimer",
path: ["limitation_notice"],
});
}
} else if (!(data.handoff_manifests?.length ?? 0)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
- message: "handoff_manifests required for release workflows with producer handoffs",
+ message:
+ "handoff_manifests required for release workflows with producer handoffs",
path: ["handoff_manifests"],
});
}
@@ -239,12 +262,15 @@ const phase2Schema = z
if (kernel.overall_status !== "ProofChecked") {
ctx.addIssue({
code: z.ZodIssueCode.custom,
- message: "formal_trust_kernel.overall_status must be ProofChecked for passed releases",
+ message:
+ "formal_trust_kernel.overall_status must be ProofChecked for passed releases",
path: ["formal_trust_kernel", "overall_status"],
});
}
for (const snippet of REQUIRED_FORMAL_NON_CLAIM_SNIPPETS) {
- const found = (kernel.formal_non_claims ?? []).some((line) => line.includes(snippet));
+ const found = (kernel.formal_non_claims ?? []).some((line) =>
+ line.includes(snippet),
+ );
if (!found) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
@@ -266,12 +292,18 @@ const phase2Schema = z
const modelPath = process.argv[2]
? path.resolve(process.argv[2])
- : path.resolve(__dirname, "../../tests/pcs/fixtures/labtrust-release/.phase2-read-model.json");
+ : path.resolve(
+ __dirname,
+ "../../tests/pcs/fixtures/labtrust-release/.phase2-read-model.json",
+ );
const raw = JSON.parse(readFileSync(modelPath, "utf8"));
const parsed = phase2Schema.safeParse(raw);
if (!parsed.success) {
- console.error("PCS Phase 2 read model contract failed:", parsed.error.flatten());
+ console.error(
+ "PCS Phase 2 read model contract failed:",
+ parsed.error.flatten(),
+ );
process.exit(1);
}
console.log(
From 8713b8c8ea3b1cda2a96b8438059bdc75860e06e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Sun, 11 Oct 2026 16:01:38 -0700
Subject: [PATCH 32/57] style(portal): apply CI-verified Prettier formatting
---
portal/scripts/verify-pcs-read-model.mjs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/portal/scripts/verify-pcs-read-model.mjs b/portal/scripts/verify-pcs-read-model.mjs
index 8f86f7a..dd0555b 100644
--- a/portal/scripts/verify-pcs-read-model.mjs
+++ b/portal/scripts/verify-pcs-read-model.mjs
@@ -34,7 +34,9 @@ const readModelSchema = z.object({
verifier: z.string().optional(),
checks: z.array(z.object({ outcome: z.string() })).min(1),
}),
- artifact_hashes: z.array(z.object({ name: z.string(), digest: z.string() })).min(5),
+ artifact_hashes: z
+ .array(z.object({ name: z.string(), digest: z.string() }))
+ .min(5),
canonical_digests: z.object({
claim_artifact: z.string().startsWith("sha256:"),
runtime_receipt: z.string().startsWith("sha256:"),
From c7fc5716d7d33249be64183d93a683cd134b7b2b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Sun, 11 Oct 2026 16:01:45 -0700
Subject: [PATCH 33/57] ci: remove one-time read-only formatting export
workflow
---
.../temporary-portal-format-export.yml | 55 -------------------
1 file changed, 55 deletions(-)
delete mode 100644 .github/workflows/temporary-portal-format-export.yml
diff --git a/.github/workflows/temporary-portal-format-export.yml b/.github/workflows/temporary-portal-format-export.yml
deleted file mode 100644
index b7d3b64..0000000
--- a/.github/workflows/temporary-portal-format-export.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-name: Temporary portal formatting export
-
-on:
- pull_request:
- branches: [main]
- paths:
- - ".github/workflows/temporary-portal-format-export.yml"
-
-permissions:
- contents: read
-
-jobs:
- format-export:
- if: github.repository == 'fraware/scientific-memory' && github.head_ref == 'fix/ci-workspace-bootstrap-20261011'
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: pnpm/action-setup@v4
- with:
- version: "10.0.0"
- - uses: actions/setup-node@v4
- with:
- node-version: "22"
- cache: pnpm
- - name: Install pinned tooling without lifecycle scripts
- run: pnpm install --frozen-lockfile --ignore-scripts
- - name: Produce exact formatting, then check portal
- run: |
- pnpm --dir portal exec prettier --write \
- "app/pcs/claims/[claimId]/page.tsx" \
- "app/pcs/page.tsx" \
- "lib/pcsData.ts" \
- "scripts/verify-pcs-phase2-read-model.mjs" \
- "scripts/verify-pcs-read-model.mjs"
- git diff --check
- pnpm --dir portal lint
- - name: Export deterministic formatted bytes to log
- run: |
- python - <<'PY'
- from pathlib import Path
- from base64 import b64encode
- paths = [
- "portal/app/pcs/claims/[claimId]/page.tsx",
- "portal/app/pcs/page.tsx",
- "portal/lib/pcsData.ts",
- "portal/scripts/verify-pcs-phase2-read-model.mjs",
- "portal/scripts/verify-pcs-read-model.mjs",
- ]
- for i, path in enumerate(paths):
- value = b64encode(Path(path).read_bytes()).decode("ascii")
- print(f"__FMT_BEGIN_{i}__", flush=True)
- for j in range(0, len(value), 96):
- print("FMT_" + value[j:j + 96], flush=True)
- print(f"__FMT_END_{i}__", flush=True)
- PY
From a640ceb2fabd98c31a90bc9b31a1e61c56b31d42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:08 -0700
Subject: [PATCH 34/57] fix(fixtures): preserve byte-exact release artifacts
across Git checkout
---
.gitattributes | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.gitattributes b/.gitattributes
index ad06ac8..359298e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,6 @@
# Bash recipes and shims must stay LF (Git Bash / Linux CI).
*.sh text eol=lf
scripts/node_bin/node text eol=lf
+
+# These externally digested release artifacts must retain exact byte encodings.
+tests/pcs/fixtures/computation-release/*.json -text
From 4cc4912b521cb3be0c64e9dda31af5d61ed4e0a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:11 -0700
Subject: [PATCH 35/57] fix(fixtures): restore manifest-digested CRLF bytes for
dataset_receipt.json
---
.../computation-release/dataset_receipt.json | 42 +++++++++----------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/dataset_receipt.json b/tests/pcs/fixtures/computation-release/dataset_receipt.json
index 0a6792f..0cf0f54 100644
--- a/tests/pcs/fixtures/computation-release/dataset_receipt.json
+++ b/tests/pcs/fixtures/computation-release/dataset_receipt.json
@@ -1,21 +1,21 @@
-{
- "schema_version": "v0",
- "dataset_id": "dataset-demo-measurements-v0.1",
- "dataset_name": "Demo measurements",
- "dataset_version": "v0.1.0",
- "files": [
- {
- "path": "data/measurements.csv",
- "sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
- "size_bytes": 128,
- "media_type": "text/csv"
- }
- ],
- "aggregate_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "source_uri": "https://example.org/datasets/demo-measurements/v0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "license": "CC-BY-4.0",
- "created_at": "2026-05-18T12:00:00Z",
- "signature_or_digest": "sha256:baef97b34473403cd928b9e7f3414befeb67cfdbdf094f77e5c758176ef4338d"
-}
+{
+ "schema_version": "v0",
+ "dataset_id": "dataset-demo-measurements-v0.1",
+ "dataset_name": "Demo measurements",
+ "dataset_version": "v0.1.0",
+ "files": [
+ {
+ "path": "data/measurements.csv",
+ "sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "size_bytes": 128,
+ "media_type": "text/csv"
+ }
+ ],
+ "aggregate_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "source_uri": "https://example.org/datasets/demo-measurements/v0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "license": "CC-BY-4.0",
+ "created_at": "2026-05-18T12:00:00Z",
+ "signature_or_digest": "sha256:baef97b34473403cd928b9e7f3414befeb67cfdbdf094f77e5c758176ef4338d"
+}
From 8bf53d7977d663f13b051864fe50a29ca792985e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:14 -0700
Subject: [PATCH 36/57] fix(fixtures): restore manifest-digested CRLF bytes for
environment_receipt.json
---
.../environment_receipt.json | 40 +++++++++----------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/environment_receipt.json b/tests/pcs/fixtures/computation-release/environment_receipt.json
index 0d4174c..1fde17a 100644
--- a/tests/pcs/fixtures/computation-release/environment_receipt.json
+++ b/tests/pcs/fixtures/computation-release/environment_receipt.json
@@ -1,20 +1,20 @@
-{
- "schema_version": "v0",
- "environment_id": "env-linux-py312-uv",
- "environment_kind": "uv",
- "os": "linux",
- "architecture": "x86_64",
- "language_runtimes": [
- "python-3.12"
- ],
- "packages": [
- "numpy==2.1.0",
- "pandas==2.2.0"
- ],
- "container_image": "ghcr.io/example/scientific-runner:py312",
- "container_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
- "hardware_summary": "4 vCPU, 16 GiB RAM",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8"
-}
+{
+ "schema_version": "v0",
+ "environment_id": "env-linux-py312-uv",
+ "environment_kind": "uv",
+ "os": "linux",
+ "architecture": "x86_64",
+ "language_runtimes": [
+ "python-3.12"
+ ],
+ "packages": [
+ "numpy==2.1.0",
+ "pandas==2.2.0"
+ ],
+ "container_image": "ghcr.io/example/scientific-runner:py312",
+ "container_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
+ "hardware_summary": "4 vCPU, 16 GiB RAM",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8"
+}
From 0beabbc1acd243227849b83b5b11aae0390298c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:16 -0700
Subject: [PATCH 37/57] fix(fixtures): restore manifest-digested CRLF bytes for
computation_run_receipt.json
---
.../computation_run_receipt.json | 42 +++++++++----------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/computation_run_receipt.json b/tests/pcs/fixtures/computation-release/computation_run_receipt.json
index 24d96ec..f77fdc5 100644
--- a/tests/pcs/fixtures/computation-release/computation_run_receipt.json
+++ b/tests/pcs/fixtures/computation-release/computation_run_receipt.json
@@ -1,21 +1,21 @@
-{
- "schema_version": "v0",
- "run_id": "run-demo-analysis-001",
- "workflow_id": "scientific_computation.reproducibility_v0",
- "command": "uv run python -m demo_analysis --input data/measurements.csv",
- "code_repo": "https://github.com/example/scientific-computation-runner",
- "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "dataset_receipt_ref": "dataset-demo-measurements-v0.1",
- "environment_receipt_ref": "env-linux-py312-uv",
- "started_at": "2026-05-18T12:05:00Z",
- "completed_at": "2026-05-18T12:06:30Z",
- "exit_code": 0,
- "stdout_hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
- "stderr_hash": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
- "result_artifact_refs": [
- "result-demo-summary-v0.1"
- ],
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624"
-}
+{
+ "schema_version": "v0",
+ "run_id": "run-demo-analysis-001",
+ "workflow_id": "scientific_computation.reproducibility_v0",
+ "command": "uv run python -m demo_analysis --input data/measurements.csv",
+ "code_repo": "https://github.com/example/scientific-computation-runner",
+ "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "dataset_receipt_ref": "dataset-demo-measurements-v0.1",
+ "environment_receipt_ref": "env-linux-py312-uv",
+ "started_at": "2026-05-18T12:05:00Z",
+ "completed_at": "2026-05-18T12:06:30Z",
+ "exit_code": 0,
+ "stdout_hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
+ "stderr_hash": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
+ "result_artifact_refs": [
+ "result-demo-summary-v0.1"
+ ],
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624"
+}
From bab8761d9c50ecb0005873bb55c83de338ef5c2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:24 -0700
Subject: [PATCH 38/57] fix(fixtures): restore manifest-digested CRLF bytes for
result_artifact.json
---
.../computation-release/result_artifact.json | 28 +++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/result_artifact.json b/tests/pcs/fixtures/computation-release/result_artifact.json
index bed2ee9..277a074 100644
--- a/tests/pcs/fixtures/computation-release/result_artifact.json
+++ b/tests/pcs/fixtures/computation-release/result_artifact.json
@@ -1,14 +1,14 @@
-{
- "schema_version": "v0",
- "result_id": "result-demo-summary-v0.1",
- "result_kind": "table",
- "path": "outputs/summary.parquet",
- "sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
- "size_bytes": 4096,
- "media_type": "application/vnd.apache.parquet",
- "description": "Aggregated measurement summary table",
- "produced_by_run": "run-demo-analysis-001",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:787c5357feeac6cb2ea840fb59d953c78fbca3e9cf88ac58b84725100dcf00b8"
-}
+{
+ "schema_version": "v0",
+ "result_id": "result-demo-summary-v0.1",
+ "result_kind": "table",
+ "path": "outputs/summary.parquet",
+ "sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "size_bytes": 4096,
+ "media_type": "application/vnd.apache.parquet",
+ "description": "Aggregated measurement summary table",
+ "produced_by_run": "run-demo-analysis-001",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:787c5357feeac6cb2ea840fb59d953c78fbca3e9cf88ac58b84725100dcf00b8"
+}
From 3ce83a30f73198f91dfc9ae56ca7cb924ec4f32a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:27 -0700
Subject: [PATCH 39/57] fix(fixtures): restore manifest-digested CRLF bytes for
computation_witness.json
---
.../computation_witness.json | 40 +++++++++----------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/computation_witness.json b/tests/pcs/fixtures/computation-release/computation_witness.json
index 13f8336..386f8ee 100644
--- a/tests/pcs/fixtures/computation-release/computation_witness.json
+++ b/tests/pcs/fixtures/computation-release/computation_witness.json
@@ -1,20 +1,20 @@
-{
- "schema_version": "v0",
- "witness_id": "witness-computation-demo-v0.1",
- "workflow_id": "scientific_computation.reproducibility_v0",
- "dataset_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "environment_hash": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8",
- "run_receipt_hash": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624",
- "result_hashes": [
- "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
- ],
- "code_repo": "https://github.com/example/scientific-computation-runner",
- "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "checker": "pcs-core-computation-validator",
- "checker_version": "0.1.0",
- "status": "CertificateChecked",
- "violations": [],
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
- "signature_or_digest": "sha256:8b8fc0ca6fa3d4b7646e8e87a454f79371270220209e2a91ee6db9fcc7850425"
-}
+{
+ "schema_version": "v0",
+ "witness_id": "witness-computation-demo-v0.1",
+ "workflow_id": "scientific_computation.reproducibility_v0",
+ "dataset_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "environment_hash": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8",
+ "run_receipt_hash": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624",
+ "result_hashes": [
+ "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
+ ],
+ "code_repo": "https://github.com/example/scientific-computation-runner",
+ "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "checker": "pcs-core-computation-validator",
+ "checker_version": "0.1.0",
+ "status": "CertificateChecked",
+ "violations": [],
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
+ "signature_or_digest": "sha256:8b8fc0ca6fa3d4b7646e8e87a454f79371270220209e2a91ee6db9fcc7850425"
+}
From d98acad0d14a101316a6a6dd6e232e093233ef9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:29 -0700
Subject: [PATCH 40/57] fix(fixtures): restore manifest-digested CRLF bytes for
workflow_profile.v0.json
---
.../workflow_profile.v0.json | 118 +++++++++---------
1 file changed, 59 insertions(+), 59 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/workflow_profile.v0.json b/tests/pcs/fixtures/computation-release/workflow_profile.v0.json
index 4a52a29..bdc6f38 100644
--- a/tests/pcs/fixtures/computation-release/workflow_profile.v0.json
+++ b/tests/pcs/fixtures/computation-release/workflow_profile.v0.json
@@ -1,59 +1,59 @@
-{
- "schema_version": "v0",
- "workflow_id": "scientific_computation.reproducibility_v0",
- "domain": "scientific_computation",
- "description": "Proof-carrying computational reproducibility for declared inputs, environment, command, and results.",
- "runtime_artifacts": [
- "DatasetReceipt.v0",
- "EnvironmentReceipt.v0",
- "ComputationRunReceipt.v0",
- "ResultArtifact.v0"
- ],
- "certificate_artifacts": [
- "ComputationWitness.v0"
- ],
- "handoff_sequence": [
- "runtime_to_certificate",
- "certificate_to_bundle",
- "bundle_to_verifier",
- "signed_bundle_to_memory"
- ],
- "required_registry_entries": [
- "DatasetReceipt.v0",
- "EnvironmentReceipt.v0",
- "ComputationRunReceipt.v0",
- "ResultArtifact.v0",
- "ComputationWitness.v0",
- "ScienceClaimBundle.v0",
- "VerificationResult.v0",
- "SignedScienceClaimBundle.v0",
- "ReleaseManifest.v0",
- "HandoffManifest.v0",
- "ReleaseChainValidationResult.v0",
- "WorkflowProfile.v0"
- ],
- "required_admission_profile": "scientific_computation_reproducibility",
- "status_policy": {
- "policy_id": "pcs-v0.1-scientific-computation-lifecycle",
- "description": "Computation witnesses require hash alignment before CertificateChecked export.",
- "allowed_terminal_statuses": [
- "Rejected",
- "Stale"
- ],
- "forbidden_transitions": [
- {
- "from_status": "Rejected",
- "to_status": "ProofChecked"
- }
- ]
- },
- "failure_modes": [
- "dataset_hash_mismatch",
- "environment_hash_mismatch",
- "result_hash_mismatch",
- "missing_code_commit",
- "unreproducible_command"
- ],
- "limitations_notice": "This artifact is a proof-carrying computational reproducibility result. It verifies that declared inputs, environment metadata, code provenance, execution command, and result artifact hashes are internally consistent. It does not prove that the scientific model is true, that the dataset is unbiased, or that the result is externally valid.",
- "signature_or_digest": "sha256:57ec645d429826df128e8226f8a5de20b8d13dee043dfec40c254b002c1b0420"
-}
+{
+ "schema_version": "v0",
+ "workflow_id": "scientific_computation.reproducibility_v0",
+ "domain": "scientific_computation",
+ "description": "Proof-carrying computational reproducibility for declared inputs, environment, command, and results.",
+ "runtime_artifacts": [
+ "DatasetReceipt.v0",
+ "EnvironmentReceipt.v0",
+ "ComputationRunReceipt.v0",
+ "ResultArtifact.v0"
+ ],
+ "certificate_artifacts": [
+ "ComputationWitness.v0"
+ ],
+ "handoff_sequence": [
+ "runtime_to_certificate",
+ "certificate_to_bundle",
+ "bundle_to_verifier",
+ "signed_bundle_to_memory"
+ ],
+ "required_registry_entries": [
+ "DatasetReceipt.v0",
+ "EnvironmentReceipt.v0",
+ "ComputationRunReceipt.v0",
+ "ResultArtifact.v0",
+ "ComputationWitness.v0",
+ "ScienceClaimBundle.v0",
+ "VerificationResult.v0",
+ "SignedScienceClaimBundle.v0",
+ "ReleaseManifest.v0",
+ "HandoffManifest.v0",
+ "ReleaseChainValidationResult.v0",
+ "WorkflowProfile.v0"
+ ],
+ "required_admission_profile": "scientific_computation_reproducibility",
+ "status_policy": {
+ "policy_id": "pcs-v0.1-scientific-computation-lifecycle",
+ "description": "Computation witnesses require hash alignment before CertificateChecked export.",
+ "allowed_terminal_statuses": [
+ "Rejected",
+ "Stale"
+ ],
+ "forbidden_transitions": [
+ {
+ "from_status": "Rejected",
+ "to_status": "ProofChecked"
+ }
+ ]
+ },
+ "failure_modes": [
+ "dataset_hash_mismatch",
+ "environment_hash_mismatch",
+ "result_hash_mismatch",
+ "missing_code_commit",
+ "unreproducible_command"
+ ],
+ "limitations_notice": "This artifact is a proof-carrying computational reproducibility result. It verifies that declared inputs, environment metadata, code provenance, execution command, and result artifact hashes are internally consistent. It does not prove that the scientific model is true, that the dataset is unbiased, or that the result is externally valid.",
+ "signature_or_digest": "sha256:57ec645d429826df128e8226f8a5de20b8d13dee043dfec40c254b002c1b0420"
+}
From c24f949ad0b30b2b06dc8f0448f1927bd68e0d7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:32 -0700
Subject: [PATCH 41/57] fix(fixtures): restore manifest-digested CRLF bytes for
science_claim_bundle.certified.json
---
.../science_claim_bundle.certified.json | 350 +++++++++---------
1 file changed, 175 insertions(+), 175 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/science_claim_bundle.certified.json b/tests/pcs/fixtures/computation-release/science_claim_bundle.certified.json
index 169025c..7b9686d 100644
--- a/tests/pcs/fixtures/computation-release/science_claim_bundle.certified.json
+++ b/tests/pcs/fixtures/computation-release/science_claim_bundle.certified.json
@@ -1,175 +1,175 @@
-{
- "schema_version": "v0",
- "signed_bundle_id": "signed-scb-qc-release-v0.1",
- "science_claim_bundle": {
- "bundle_id": "scb-qc-release-v0.1",
- "schema_version": "v0",
- "claim_artifact": {
- "artifact_id": "claim-computation-release-v0.1",
- "artifact_type": "ClaimArtifact.v0",
- "schema_version": "v0",
- "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
- "claim_kind": "scientific_claim",
- "status": "CertificateChecked",
- "assumption_set_ref": "as-labtrust-qc-v0.1",
- "source_span_refs": [],
- "formal_statement": "",
- "certificate_refs": [
- "witness-computation-demo-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-computation-run-001"
- ],
- "created_at": "2026-05-18T12:05:00Z",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "assumption_set": {
- "assumption_set_id": "as-labtrust-qc-v0.1",
- "schema_version": "v0",
- "created_at": "2026-05-16T12:00:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "assumptions": [
- {
- "assumption_id": "asm-domain-qc-sim",
- "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
- "kind": "domain",
- "status": "HumanReviewed",
- "source_span_refs": [
- "span-qc-release-spec-1"
- ]
- }
- ],
- "human_review_status": "approved",
- "status": "HumanReviewed",
- "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
- },
- "runtime_receipts": [
- {
- "receipt_id": "receipt-computation-run-001",
- "schema_version": "v0",
- "run_id": "run-demo-analysis-001",
- "environment": {
- "platform": "linux",
- "python": "3.12",
- "labtrust_version": "0.1.0"
- },
- "started_at": "2026-05-18T12:05:00Z",
- "ended_at": "2026-05-18T12:06:30Z",
- "status": "RuntimeObserved",
- "run_outcome": "passed",
- "final_reason_code": "ok",
- "released": true,
- "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
- "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "input_hashes": {
- "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
- },
- "output_hashes": {
- "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
- },
- "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
- }
- ],
- "certificates": [
- {
- "certificate_id": "witness-computation-demo-v0.1",
- "schema_version": "v0",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
- "property_id": "scientific_computation.reproducibility_v0",
- "checker": "pcs-core-computation-validator",
- "checker_version": "0.1.0",
- "status": "CertificateChecked",
- "counterexample_ref": null,
- "created_at": "2026-05-16T12:10:00Z",
- "producer": "certifyedge",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
- "signature_or_digest": "sha256:8b8fc0ca6fa3d4b7646e8e87a454f79371270220209e2a91ee6db9fcc7850425"
- }
- ],
- "evidence_bundle": {
- "bundle_id": "evidence-qc-release-v0.1",
- "schema_version": "v0",
- "claim_refs": [
- "claim-qc-release-v0.1"
- ],
- "assumption_set_refs": [
- "as-labtrust-qc-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-qc-release-run-001"
- ],
- "certificate_refs": [
- "cert-trace-qc-release-v0.1"
- ],
- "artifact_hashes": {
- "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "created_at": "2026-05-16T12:12:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
- },
- "verification_policy": {
- "policy_id": "labtrust-v0.1-qc-release",
- "required_checks": [
- "schema-valid",
- "trace-hash-alignment"
- ]
- },
- "created_at": "2026-05-16T12:15:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
- },
- "verification_result": {
- "verification_id": "verify-scb-qc-release-v0.1",
- "schema_version": "v0",
- "bundle_id": "scb-qc-release-v0.1",
- "verifier": "provability-fabric",
- "verifier_version": "0.1.0",
- "status": "ProofChecked",
- "checks": [
- {
- "check_id": "schema-valid",
- "description": "ScienceClaimBundle conforms to schema",
- "status": "passed",
- "details": {}
- },
- {
- "check_id": "trace-hash-alignment",
- "description": "Receipt trace_hash matches certificate",
- "status": "passed",
- "details": {}
- }
- ],
- "created_at": "2026-05-16T12:20:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
- },
- "signer": "provability-fabric",
- "signed_at": "2026-05-16T12:25:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
- "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
-}
+{
+ "schema_version": "v0",
+ "signed_bundle_id": "signed-scb-qc-release-v0.1",
+ "science_claim_bundle": {
+ "bundle_id": "scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_artifact": {
+ "artifact_id": "claim-computation-release-v0.1",
+ "artifact_type": "ClaimArtifact.v0",
+ "schema_version": "v0",
+ "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
+ "claim_kind": "scientific_claim",
+ "status": "CertificateChecked",
+ "assumption_set_ref": "as-labtrust-qc-v0.1",
+ "source_span_refs": [],
+ "formal_statement": "",
+ "certificate_refs": [
+ "witness-computation-demo-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-computation-run-001"
+ ],
+ "created_at": "2026-05-18T12:05:00Z",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "assumption_set": {
+ "assumption_set_id": "as-labtrust-qc-v0.1",
+ "schema_version": "v0",
+ "created_at": "2026-05-16T12:00:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "assumptions": [
+ {
+ "assumption_id": "asm-domain-qc-sim",
+ "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
+ "kind": "domain",
+ "status": "HumanReviewed",
+ "source_span_refs": [
+ "span-qc-release-spec-1"
+ ]
+ }
+ ],
+ "human_review_status": "approved",
+ "status": "HumanReviewed",
+ "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
+ },
+ "runtime_receipts": [
+ {
+ "receipt_id": "receipt-computation-run-001",
+ "schema_version": "v0",
+ "run_id": "run-demo-analysis-001",
+ "environment": {
+ "platform": "linux",
+ "python": "3.12",
+ "labtrust_version": "0.1.0"
+ },
+ "started_at": "2026-05-18T12:05:00Z",
+ "ended_at": "2026-05-18T12:06:30Z",
+ "status": "RuntimeObserved",
+ "run_outcome": "passed",
+ "final_reason_code": "ok",
+ "released": true,
+ "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
+ "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "input_hashes": {
+ "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
+ },
+ "output_hashes": {
+ "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
+ },
+ "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
+ }
+ ],
+ "certificates": [
+ {
+ "certificate_id": "witness-computation-demo-v0.1",
+ "schema_version": "v0",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
+ "property_id": "scientific_computation.reproducibility_v0",
+ "checker": "pcs-core-computation-validator",
+ "checker_version": "0.1.0",
+ "status": "CertificateChecked",
+ "counterexample_ref": null,
+ "created_at": "2026-05-16T12:10:00Z",
+ "producer": "certifyedge",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
+ "signature_or_digest": "sha256:8b8fc0ca6fa3d4b7646e8e87a454f79371270220209e2a91ee6db9fcc7850425"
+ }
+ ],
+ "evidence_bundle": {
+ "bundle_id": "evidence-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_refs": [
+ "claim-qc-release-v0.1"
+ ],
+ "assumption_set_refs": [
+ "as-labtrust-qc-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-qc-release-run-001"
+ ],
+ "certificate_refs": [
+ "cert-trace-qc-release-v0.1"
+ ],
+ "artifact_hashes": {
+ "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "created_at": "2026-05-16T12:12:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
+ },
+ "verification_policy": {
+ "policy_id": "labtrust-v0.1-qc-release",
+ "required_checks": [
+ "schema-valid",
+ "trace-hash-alignment"
+ ]
+ },
+ "created_at": "2026-05-16T12:15:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
+ },
+ "verification_result": {
+ "verification_id": "verify-scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "bundle_id": "scb-qc-release-v0.1",
+ "verifier": "provability-fabric",
+ "verifier_version": "0.1.0",
+ "status": "ProofChecked",
+ "checks": [
+ {
+ "check_id": "schema-valid",
+ "description": "ScienceClaimBundle conforms to schema",
+ "status": "passed",
+ "details": {}
+ },
+ {
+ "check_id": "trace-hash-alignment",
+ "description": "Receipt trace_hash matches certificate",
+ "status": "passed",
+ "details": {}
+ }
+ ],
+ "created_at": "2026-05-16T12:20:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "signer": "provability-fabric",
+ "signed_at": "2026-05-16T12:25:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
+ "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
+}
From b0093339053be9bb88c3de95a7cb6b3d81f51a76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:42:34 -0700
Subject: [PATCH 42/57] fix(fixtures): restore manifest-digested CRLF bytes for
verification_result.json
---
.../verification_result.json | 66 +++++++++----------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/verification_result.json b/tests/pcs/fixtures/computation-release/verification_result.json
index e82c8ac..888c27d 100644
--- a/tests/pcs/fixtures/computation-release/verification_result.json
+++ b/tests/pcs/fixtures/computation-release/verification_result.json
@@ -1,33 +1,33 @@
-{
- "verification_id": "verify-scb-qc-release-v0.1",
- "schema_version": "v0",
- "bundle_id": "scb-qc-release-v0.1",
- "verifier": "provability-fabric",
- "verifier_version": "0.1.0",
- "status": "ProofChecked",
- "checks": [
- {
- "check_id": "schema-valid",
- "description": "ScienceClaimBundle conforms to ScienceClaimBundle.v0 schema",
- "status": "passed",
- "details": {}
- },
- {
- "check_id": "trace-hash-alignment",
- "description": "Runtime receipt trace_hash matches certificate trace_hash",
- "status": "passed",
- "details": {
- "trace_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
- }
- }
- ],
- "created_at": "2026-05-16T12:20:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:cd11abeaee38bcc8bf8df071290e99abb363e0bf81765cf65498b13d2ec609b4",
- "verified_input": {
- "certificate_id": "cert-tool-use-safety-v0",
- "trace_hash": "sha256:42ce47fca8ec10a9c65c8d9b9384c8be52094c93d46aa9705ce7c2fa2b8c89e4",
- "bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
- }
-}
+{
+ "verification_id": "verify-scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "bundle_id": "scb-qc-release-v0.1",
+ "verifier": "provability-fabric",
+ "verifier_version": "0.1.0",
+ "status": "ProofChecked",
+ "checks": [
+ {
+ "check_id": "schema-valid",
+ "description": "ScienceClaimBundle conforms to ScienceClaimBundle.v0 schema",
+ "status": "passed",
+ "details": {}
+ },
+ {
+ "check_id": "trace-hash-alignment",
+ "description": "Runtime receipt trace_hash matches certificate trace_hash",
+ "status": "passed",
+ "details": {
+ "trace_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
+ }
+ }
+ ],
+ "created_at": "2026-05-16T12:20:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:cd11abeaee38bcc8bf8df071290e99abb363e0bf81765cf65498b13d2ec609b4",
+ "verified_input": {
+ "certificate_id": "cert-tool-use-safety-v0",
+ "trace_hash": "sha256:42ce47fca8ec10a9c65c8d9b9384c8be52094c93d46aa9705ce7c2fa2b8c89e4",
+ "bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
+ }
+}
From 5a97a0f252d05275b7836d9ae0f19bc30de7dbdc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:43:21 -0700
Subject: [PATCH 43/57] fix(fixtures): restore manifest-digested CRLF bytes for
signed_science_claim_bundle.json
---
.../signed_science_claim_bundle.json | 350 +++++++++---------
1 file changed, 175 insertions(+), 175 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/signed_science_claim_bundle.json b/tests/pcs/fixtures/computation-release/signed_science_claim_bundle.json
index 169025c..7b9686d 100644
--- a/tests/pcs/fixtures/computation-release/signed_science_claim_bundle.json
+++ b/tests/pcs/fixtures/computation-release/signed_science_claim_bundle.json
@@ -1,175 +1,175 @@
-{
- "schema_version": "v0",
- "signed_bundle_id": "signed-scb-qc-release-v0.1",
- "science_claim_bundle": {
- "bundle_id": "scb-qc-release-v0.1",
- "schema_version": "v0",
- "claim_artifact": {
- "artifact_id": "claim-computation-release-v0.1",
- "artifact_type": "ClaimArtifact.v0",
- "schema_version": "v0",
- "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
- "claim_kind": "scientific_claim",
- "status": "CertificateChecked",
- "assumption_set_ref": "as-labtrust-qc-v0.1",
- "source_span_refs": [],
- "formal_statement": "",
- "certificate_refs": [
- "witness-computation-demo-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-computation-run-001"
- ],
- "created_at": "2026-05-18T12:05:00Z",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "assumption_set": {
- "assumption_set_id": "as-labtrust-qc-v0.1",
- "schema_version": "v0",
- "created_at": "2026-05-16T12:00:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "assumptions": [
- {
- "assumption_id": "asm-domain-qc-sim",
- "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
- "kind": "domain",
- "status": "HumanReviewed",
- "source_span_refs": [
- "span-qc-release-spec-1"
- ]
- }
- ],
- "human_review_status": "approved",
- "status": "HumanReviewed",
- "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
- },
- "runtime_receipts": [
- {
- "receipt_id": "receipt-computation-run-001",
- "schema_version": "v0",
- "run_id": "run-demo-analysis-001",
- "environment": {
- "platform": "linux",
- "python": "3.12",
- "labtrust_version": "0.1.0"
- },
- "started_at": "2026-05-18T12:05:00Z",
- "ended_at": "2026-05-18T12:06:30Z",
- "status": "RuntimeObserved",
- "run_outcome": "passed",
- "final_reason_code": "ok",
- "released": true,
- "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
- "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "input_hashes": {
- "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
- },
- "output_hashes": {
- "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
- },
- "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
- }
- ],
- "certificates": [
- {
- "certificate_id": "witness-computation-demo-v0.1",
- "schema_version": "v0",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
- "property_id": "scientific_computation.reproducibility_v0",
- "checker": "pcs-core-computation-validator",
- "checker_version": "0.1.0",
- "status": "CertificateChecked",
- "counterexample_ref": null,
- "created_at": "2026-05-16T12:10:00Z",
- "producer": "certifyedge",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
- "signature_or_digest": "sha256:8b8fc0ca6fa3d4b7646e8e87a454f79371270220209e2a91ee6db9fcc7850425"
- }
- ],
- "evidence_bundle": {
- "bundle_id": "evidence-qc-release-v0.1",
- "schema_version": "v0",
- "claim_refs": [
- "claim-qc-release-v0.1"
- ],
- "assumption_set_refs": [
- "as-labtrust-qc-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-qc-release-run-001"
- ],
- "certificate_refs": [
- "cert-trace-qc-release-v0.1"
- ],
- "artifact_hashes": {
- "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "created_at": "2026-05-16T12:12:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
- },
- "verification_policy": {
- "policy_id": "labtrust-v0.1-qc-release",
- "required_checks": [
- "schema-valid",
- "trace-hash-alignment"
- ]
- },
- "created_at": "2026-05-16T12:15:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
- },
- "verification_result": {
- "verification_id": "verify-scb-qc-release-v0.1",
- "schema_version": "v0",
- "bundle_id": "scb-qc-release-v0.1",
- "verifier": "provability-fabric",
- "verifier_version": "0.1.0",
- "status": "ProofChecked",
- "checks": [
- {
- "check_id": "schema-valid",
- "description": "ScienceClaimBundle conforms to schema",
- "status": "passed",
- "details": {}
- },
- {
- "check_id": "trace-hash-alignment",
- "description": "Receipt trace_hash matches certificate",
- "status": "passed",
- "details": {}
- }
- ],
- "created_at": "2026-05-16T12:20:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
- },
- "signer": "provability-fabric",
- "signed_at": "2026-05-16T12:25:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
- "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
-}
+{
+ "schema_version": "v0",
+ "signed_bundle_id": "signed-scb-qc-release-v0.1",
+ "science_claim_bundle": {
+ "bundle_id": "scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_artifact": {
+ "artifact_id": "claim-computation-release-v0.1",
+ "artifact_type": "ClaimArtifact.v0",
+ "schema_version": "v0",
+ "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
+ "claim_kind": "scientific_claim",
+ "status": "CertificateChecked",
+ "assumption_set_ref": "as-labtrust-qc-v0.1",
+ "source_span_refs": [],
+ "formal_statement": "",
+ "certificate_refs": [
+ "witness-computation-demo-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-computation-run-001"
+ ],
+ "created_at": "2026-05-18T12:05:00Z",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "assumption_set": {
+ "assumption_set_id": "as-labtrust-qc-v0.1",
+ "schema_version": "v0",
+ "created_at": "2026-05-16T12:00:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "assumptions": [
+ {
+ "assumption_id": "asm-domain-qc-sim",
+ "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
+ "kind": "domain",
+ "status": "HumanReviewed",
+ "source_span_refs": [
+ "span-qc-release-spec-1"
+ ]
+ }
+ ],
+ "human_review_status": "approved",
+ "status": "HumanReviewed",
+ "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
+ },
+ "runtime_receipts": [
+ {
+ "receipt_id": "receipt-computation-run-001",
+ "schema_version": "v0",
+ "run_id": "run-demo-analysis-001",
+ "environment": {
+ "platform": "linux",
+ "python": "3.12",
+ "labtrust_version": "0.1.0"
+ },
+ "started_at": "2026-05-18T12:05:00Z",
+ "ended_at": "2026-05-18T12:06:30Z",
+ "status": "RuntimeObserved",
+ "run_outcome": "passed",
+ "final_reason_code": "ok",
+ "released": true,
+ "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
+ "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "input_hashes": {
+ "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
+ },
+ "output_hashes": {
+ "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
+ },
+ "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
+ }
+ ],
+ "certificates": [
+ {
+ "certificate_id": "witness-computation-demo-v0.1",
+ "schema_version": "v0",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
+ "property_id": "scientific_computation.reproducibility_v0",
+ "checker": "pcs-core-computation-validator",
+ "checker_version": "0.1.0",
+ "status": "CertificateChecked",
+ "counterexample_ref": null,
+ "created_at": "2026-05-16T12:10:00Z",
+ "producer": "certifyedge",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
+ "signature_or_digest": "sha256:8b8fc0ca6fa3d4b7646e8e87a454f79371270220209e2a91ee6db9fcc7850425"
+ }
+ ],
+ "evidence_bundle": {
+ "bundle_id": "evidence-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_refs": [
+ "claim-qc-release-v0.1"
+ ],
+ "assumption_set_refs": [
+ "as-labtrust-qc-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-qc-release-run-001"
+ ],
+ "certificate_refs": [
+ "cert-trace-qc-release-v0.1"
+ ],
+ "artifact_hashes": {
+ "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "created_at": "2026-05-16T12:12:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
+ },
+ "verification_policy": {
+ "policy_id": "labtrust-v0.1-qc-release",
+ "required_checks": [
+ "schema-valid",
+ "trace-hash-alignment"
+ ]
+ },
+ "created_at": "2026-05-16T12:15:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
+ },
+ "verification_result": {
+ "verification_id": "verify-scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "bundle_id": "scb-qc-release-v0.1",
+ "verifier": "provability-fabric",
+ "verifier_version": "0.1.0",
+ "status": "ProofChecked",
+ "checks": [
+ {
+ "check_id": "schema-valid",
+ "description": "ScienceClaimBundle conforms to schema",
+ "status": "passed",
+ "details": {}
+ },
+ {
+ "check_id": "trace-hash-alignment",
+ "description": "Receipt trace_hash matches certificate",
+ "status": "passed",
+ "details": {}
+ }
+ ],
+ "created_at": "2026-05-16T12:20:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "signer": "provability-fabric",
+ "signed_at": "2026-05-16T12:25:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
+ "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
+}
From ece083a392f115280ca8c320ed667ffedaf2edf8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:43:24 -0700
Subject: [PATCH 44/57] fix(fixtures): restore manifest-digested CRLF bytes for
proof_obligation.v0.json
---
.../proof_obligation.v0.json | 132 +++++++++---------
1 file changed, 66 insertions(+), 66 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/proof_obligation.v0.json b/tests/pcs/fixtures/computation-release/proof_obligation.v0.json
index 982c0cf..39a30e8 100644
--- a/tests/pcs/fixtures/computation-release/proof_obligation.v0.json
+++ b/tests/pcs/fixtures/computation-release/proof_obligation.v0.json
@@ -1,66 +1,66 @@
-{
- "schema_version": "v0",
- "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-reproducibility",
- "release_id": "release-pcs-v0.1-scientific-computation-reproducibility",
- "release_candidate": "pcs-v0.1-scientific-computation-conformance",
- "generated_at": "2026-05-22T11:48:43Z",
- "trust_boundary": "PCS trust-envelope invariants (Lean/PCS.lean)",
- "obligations": [
- {
- "obligation_id": "obl-certificate-matches-runtime",
- "predicate": "CertificateMatchesRuntime",
- "lean_theorem": "PCS.CertificateMatchesRuntime",
- "trust_boundary_invariant": "The temporal certificate trace hash matches the runtime receipt trace hash and the certificate is CertificateChecked.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "trace_certificate.json",
- "runtime_receipt.json"
- ]
- },
- {
- "obligation_id": "obl-verification-admits-bundle",
- "predicate": "VerificationAdmitsBundle",
- "lean_theorem": "PCS.VerificationAdmitsBundle",
- "trust_boundary_invariant": "Provability Fabric verification is ProofChecked and admits the certified bundle hash.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "verification_result.json",
- "science_claim_bundle.certified.json"
- ]
- },
- {
- "obligation_id": "obl-signed-bundle-admissible",
- "predicate": "SignedBundleAdmissible",
- "lean_theorem": "PCS.SignedBundleAdmissible",
- "trust_boundary_invariant": "The signed bundle input hash matches the PF verified certified bundle hash.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "signed_science_claim_bundle.json",
- "science_claim_bundle.certified.json"
- ]
- },
- {
- "obligation_id": "obl-rejected-certificate-not-admissible",
- "predicate": "RejectedCertificateNotAdmissible",
- "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
- "trust_boundary_invariant": "A Rejected temporal certificate cannot satisfy an admissible release chain.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "trace_certificate.json"
- ]
- },
- {
- "obligation_id": "obl-stale-certificate-not-admissible",
- "predicate": "StaleCertificateNotAdmissible",
- "lean_theorem": "PCS.StaleCertificateNotAdmissible",
- "trust_boundary_invariant": "A Stale temporal certificate cannot satisfy an admissible release chain.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "trace_certificate.json"
- ]
- }
- ],
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
- "signature_or_digest": "sha256:5ce7532e56a9cfa68b0e7d8e2e39999170613064331a59583959c9d85e0b7b48"
-}
+{
+ "schema_version": "v0",
+ "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-reproducibility",
+ "release_id": "release-pcs-v0.1-scientific-computation-reproducibility",
+ "release_candidate": "pcs-v0.1-scientific-computation-conformance",
+ "generated_at": "2026-05-22T11:48:43Z",
+ "trust_boundary": "PCS trust-envelope invariants (Lean/PCS.lean)",
+ "obligations": [
+ {
+ "obligation_id": "obl-certificate-matches-runtime",
+ "predicate": "CertificateMatchesRuntime",
+ "lean_theorem": "PCS.CertificateMatchesRuntime",
+ "trust_boundary_invariant": "The temporal certificate trace hash matches the runtime receipt trace hash and the certificate is CertificateChecked.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "trace_certificate.json",
+ "runtime_receipt.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-verification-admits-bundle",
+ "predicate": "VerificationAdmitsBundle",
+ "lean_theorem": "PCS.VerificationAdmitsBundle",
+ "trust_boundary_invariant": "Provability Fabric verification is ProofChecked and admits the certified bundle hash.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "verification_result.json",
+ "science_claim_bundle.certified.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-signed-bundle-admissible",
+ "predicate": "SignedBundleAdmissible",
+ "lean_theorem": "PCS.SignedBundleAdmissible",
+ "trust_boundary_invariant": "The signed bundle input hash matches the PF verified certified bundle hash.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "signed_science_claim_bundle.json",
+ "science_claim_bundle.certified.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-rejected-certificate-not-admissible",
+ "predicate": "RejectedCertificateNotAdmissible",
+ "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
+ "trust_boundary_invariant": "A Rejected temporal certificate cannot satisfy an admissible release chain.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-stale-certificate-not-admissible",
+ "predicate": "StaleCertificateNotAdmissible",
+ "lean_theorem": "PCS.StaleCertificateNotAdmissible",
+ "trust_boundary_invariant": "A Stale temporal certificate cannot satisfy an admissible release chain.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ]
+ }
+ ],
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
+ "signature_or_digest": "sha256:5ce7532e56a9cfa68b0e7d8e2e39999170613064331a59583959c9d85e0b7b48"
+}
From 7eb0dc7bec7df34ccca7b9fb0fcd3887be7ef1aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 06:43:26 -0700
Subject: [PATCH 45/57] fix(fixtures): restore manifest-digested CRLF bytes for
lean_check_result.v0.json
---
.../lean_check_result.v0.json | 150 +++++++++---------
1 file changed, 75 insertions(+), 75 deletions(-)
diff --git a/tests/pcs/fixtures/computation-release/lean_check_result.v0.json b/tests/pcs/fixtures/computation-release/lean_check_result.v0.json
index 9bd8a31..60a071c 100644
--- a/tests/pcs/fixtures/computation-release/lean_check_result.v0.json
+++ b/tests/pcs/fixtures/computation-release/lean_check_result.v0.json
@@ -1,75 +1,75 @@
-{
- "schema_version": "v0",
- "check_result_id": "lean-check-release-pcs-v0.1-scientific-computation-reproducibility",
- "release_id": "release-pcs-v0.1-scientific-computation-reproducibility",
- "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-reproducibility",
- "status": "ProofChecked",
- "lean_version": "leanprover/lean4:v4.24.0",
- "checked_at": "2026-05-22T11:48:43Z",
- "checker": "pcs-core",
- "checker_version": "0.1.0",
- "results": [
- {
- "obligation_id": "obl-certificate-matches-runtime",
- "lean_theorem": "PCS.CertificateMatchesRuntime",
- "status": "ProofChecked",
- "source_artifacts": [
- "trace_certificate.json",
- "runtime_receipt.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:43Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-verification-admits-bundle",
- "lean_theorem": "PCS.VerificationAdmitsBundle",
- "status": "ProofChecked",
- "source_artifacts": [
- "verification_result.json",
- "science_claim_bundle.certified.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:43Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-signed-bundle-admissible",
- "lean_theorem": "PCS.SignedBundleAdmissible",
- "status": "ProofChecked",
- "source_artifacts": [
- "signed_science_claim_bundle.json",
- "science_claim_bundle.certified.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:43Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-rejected-certificate-not-admissible",
- "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
- "status": "ProofChecked",
- "source_artifacts": [
- "trace_certificate.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:43Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-stale-certificate-not-admissible",
- "lean_theorem": "PCS.StaleCertificateNotAdmissible",
- "status": "ProofChecked",
- "source_artifacts": [
- "trace_certificate.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:43Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- }
- ],
- "pf_explain": null,
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
- "signature_or_digest": "sha256:bff19697ffa4ad3ba024e252281fbc8c31c56ae927bec1ed1196fb306a831a6f"
-}
+{
+ "schema_version": "v0",
+ "check_result_id": "lean-check-release-pcs-v0.1-scientific-computation-reproducibility",
+ "release_id": "release-pcs-v0.1-scientific-computation-reproducibility",
+ "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-reproducibility",
+ "status": "ProofChecked",
+ "lean_version": "leanprover/lean4:v4.24.0",
+ "checked_at": "2026-05-22T11:48:43Z",
+ "checker": "pcs-core",
+ "checker_version": "0.1.0",
+ "results": [
+ {
+ "obligation_id": "obl-certificate-matches-runtime",
+ "lean_theorem": "PCS.CertificateMatchesRuntime",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "trace_certificate.json",
+ "runtime_receipt.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:43Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-verification-admits-bundle",
+ "lean_theorem": "PCS.VerificationAdmitsBundle",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "verification_result.json",
+ "science_claim_bundle.certified.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:43Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-signed-bundle-admissible",
+ "lean_theorem": "PCS.SignedBundleAdmissible",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "signed_science_claim_bundle.json",
+ "science_claim_bundle.certified.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:43Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-rejected-certificate-not-admissible",
+ "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:43Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-stale-certificate-not-admissible",
+ "lean_theorem": "PCS.StaleCertificateNotAdmissible",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:43Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ }
+ ],
+ "pf_explain": null,
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
+ "signature_or_digest": "sha256:bff19697ffa4ad3ba024e252281fbc8c31c56ae927bec1ed1196fb306a831a6f"
+}
From 00dc15d1922daae60775682f9313f75a50ff07d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:23:36 -0700
Subject: [PATCH 46/57] fix(fixtures): preserve rejected-release artifact bytes
across checkout
---
.gitattributes | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitattributes b/.gitattributes
index 359298e..c3e39a8 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -4,3 +4,4 @@ scripts/node_bin/node text eol=lf
# These externally digested release artifacts must retain exact byte encodings.
tests/pcs/fixtures/computation-release/*.json -text
+tests/pcs/fixtures/computation-rejected-release/*.json -text
From 9e5945bd269ae4be955bd7cbc3702801bdd4c39f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:23:48 -0700
Subject: [PATCH 47/57] fix(fixtures): restore signed rejected-release bytes of
dataset_receipt.json
---
.../dataset_receipt.json | 42 +++++++++----------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/dataset_receipt.json b/tests/pcs/fixtures/computation-rejected-release/dataset_receipt.json
index 0a6792f..0cf0f54 100644
--- a/tests/pcs/fixtures/computation-rejected-release/dataset_receipt.json
+++ b/tests/pcs/fixtures/computation-rejected-release/dataset_receipt.json
@@ -1,21 +1,21 @@
-{
- "schema_version": "v0",
- "dataset_id": "dataset-demo-measurements-v0.1",
- "dataset_name": "Demo measurements",
- "dataset_version": "v0.1.0",
- "files": [
- {
- "path": "data/measurements.csv",
- "sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
- "size_bytes": 128,
- "media_type": "text/csv"
- }
- ],
- "aggregate_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "source_uri": "https://example.org/datasets/demo-measurements/v0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "license": "CC-BY-4.0",
- "created_at": "2026-05-18T12:00:00Z",
- "signature_or_digest": "sha256:baef97b34473403cd928b9e7f3414befeb67cfdbdf094f77e5c758176ef4338d"
-}
+{
+ "schema_version": "v0",
+ "dataset_id": "dataset-demo-measurements-v0.1",
+ "dataset_name": "Demo measurements",
+ "dataset_version": "v0.1.0",
+ "files": [
+ {
+ "path": "data/measurements.csv",
+ "sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "size_bytes": 128,
+ "media_type": "text/csv"
+ }
+ ],
+ "aggregate_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "source_uri": "https://example.org/datasets/demo-measurements/v0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "license": "CC-BY-4.0",
+ "created_at": "2026-05-18T12:00:00Z",
+ "signature_or_digest": "sha256:baef97b34473403cd928b9e7f3414befeb67cfdbdf094f77e5c758176ef4338d"
+}
From 268bd1686765f5b0c09f0829279bebc702a14aa9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:23:52 -0700
Subject: [PATCH 48/57] fix(fixtures): restore signed rejected-release bytes of
environment_receipt.json
---
.../environment_receipt.json | 40 +++++++++----------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/environment_receipt.json b/tests/pcs/fixtures/computation-rejected-release/environment_receipt.json
index 0d4174c..1fde17a 100644
--- a/tests/pcs/fixtures/computation-rejected-release/environment_receipt.json
+++ b/tests/pcs/fixtures/computation-rejected-release/environment_receipt.json
@@ -1,20 +1,20 @@
-{
- "schema_version": "v0",
- "environment_id": "env-linux-py312-uv",
- "environment_kind": "uv",
- "os": "linux",
- "architecture": "x86_64",
- "language_runtimes": [
- "python-3.12"
- ],
- "packages": [
- "numpy==2.1.0",
- "pandas==2.2.0"
- ],
- "container_image": "ghcr.io/example/scientific-runner:py312",
- "container_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
- "hardware_summary": "4 vCPU, 16 GiB RAM",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8"
-}
+{
+ "schema_version": "v0",
+ "environment_id": "env-linux-py312-uv",
+ "environment_kind": "uv",
+ "os": "linux",
+ "architecture": "x86_64",
+ "language_runtimes": [
+ "python-3.12"
+ ],
+ "packages": [
+ "numpy==2.1.0",
+ "pandas==2.2.0"
+ ],
+ "container_image": "ghcr.io/example/scientific-runner:py312",
+ "container_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
+ "hardware_summary": "4 vCPU, 16 GiB RAM",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8"
+}
From b409b9f68076f734e818a956dfb25e9b893626e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:23:55 -0700
Subject: [PATCH 49/57] fix(fixtures): restore signed rejected-release bytes of
computation_run_receipt.json
---
.../computation_run_receipt.json | 42 +++++++++----------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/computation_run_receipt.json b/tests/pcs/fixtures/computation-rejected-release/computation_run_receipt.json
index 24d96ec..f77fdc5 100644
--- a/tests/pcs/fixtures/computation-rejected-release/computation_run_receipt.json
+++ b/tests/pcs/fixtures/computation-rejected-release/computation_run_receipt.json
@@ -1,21 +1,21 @@
-{
- "schema_version": "v0",
- "run_id": "run-demo-analysis-001",
- "workflow_id": "scientific_computation.reproducibility_v0",
- "command": "uv run python -m demo_analysis --input data/measurements.csv",
- "code_repo": "https://github.com/example/scientific-computation-runner",
- "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "dataset_receipt_ref": "dataset-demo-measurements-v0.1",
- "environment_receipt_ref": "env-linux-py312-uv",
- "started_at": "2026-05-18T12:05:00Z",
- "completed_at": "2026-05-18T12:06:30Z",
- "exit_code": 0,
- "stdout_hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
- "stderr_hash": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
- "result_artifact_refs": [
- "result-demo-summary-v0.1"
- ],
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624"
-}
+{
+ "schema_version": "v0",
+ "run_id": "run-demo-analysis-001",
+ "workflow_id": "scientific_computation.reproducibility_v0",
+ "command": "uv run python -m demo_analysis --input data/measurements.csv",
+ "code_repo": "https://github.com/example/scientific-computation-runner",
+ "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "dataset_receipt_ref": "dataset-demo-measurements-v0.1",
+ "environment_receipt_ref": "env-linux-py312-uv",
+ "started_at": "2026-05-18T12:05:00Z",
+ "completed_at": "2026-05-18T12:06:30Z",
+ "exit_code": 0,
+ "stdout_hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
+ "stderr_hash": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
+ "result_artifact_refs": [
+ "result-demo-summary-v0.1"
+ ],
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624"
+}
From b421e50b4f2da03c473f3ec13e9b65f174dbd7d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:23:57 -0700
Subject: [PATCH 50/57] fix(fixtures): restore signed rejected-release bytes of
result_artifact.json
---
.../result_artifact.json | 28 +++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/result_artifact.json b/tests/pcs/fixtures/computation-rejected-release/result_artifact.json
index bed2ee9..277a074 100644
--- a/tests/pcs/fixtures/computation-rejected-release/result_artifact.json
+++ b/tests/pcs/fixtures/computation-rejected-release/result_artifact.json
@@ -1,14 +1,14 @@
-{
- "schema_version": "v0",
- "result_id": "result-demo-summary-v0.1",
- "result_kind": "table",
- "path": "outputs/summary.parquet",
- "sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
- "size_bytes": 4096,
- "media_type": "application/vnd.apache.parquet",
- "description": "Aggregated measurement summary table",
- "produced_by_run": "run-demo-analysis-001",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:787c5357feeac6cb2ea840fb59d953c78fbca3e9cf88ac58b84725100dcf00b8"
-}
+{
+ "schema_version": "v0",
+ "result_id": "result-demo-summary-v0.1",
+ "result_kind": "table",
+ "path": "outputs/summary.parquet",
+ "sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "size_bytes": 4096,
+ "media_type": "application/vnd.apache.parquet",
+ "description": "Aggregated measurement summary table",
+ "produced_by_run": "run-demo-analysis-001",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:787c5357feeac6cb2ea840fb59d953c78fbca3e9cf88ac58b84725100dcf00b8"
+}
From 6b617869dc4a3d69e17abe181b0f88ea83f397b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:24:06 -0700
Subject: [PATCH 51/57] fix(fixtures): restore signed rejected-release bytes of
computation_witness.json
---
.../computation_witness.json | 58 +++++++++----------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/computation_witness.json b/tests/pcs/fixtures/computation-rejected-release/computation_witness.json
index 83dc383..05d2ee2 100644
--- a/tests/pcs/fixtures/computation-rejected-release/computation_witness.json
+++ b/tests/pcs/fixtures/computation-rejected-release/computation_witness.json
@@ -1,29 +1,29 @@
-{
- "schema_version": "v0",
- "witness_id": "witness-computation-demo-v0.1",
- "workflow_id": "scientific_computation.reproducibility_v0",
- "dataset_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "environment_hash": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8",
- "run_receipt_hash": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624",
- "result_hashes": [
- "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
- ],
- "code_repo": "https://github.com/example/scientific-computation-runner",
- "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "checker": "pcs-core-computation-validator",
- "checker_version": "0.1.0",
- "status": "Rejected",
- "violations": [
- {
- "violation_id": "viol-result-hash-mismatch",
- "violation_type": "result_hash_mismatch",
- "explanation": "Re-run with the pinned dataset version and verify result artifact sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.",
- "expected_hash": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
- "actual_hash": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
- "responsible_component": "scientific-computation-runner"
- }
- ],
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
- "signature_or_digest": "sha256:f3ddf13aaa6b89becd3b737ed396add5ebb294e7ffdcb18c344a512f83c0192e"
-}
+{
+ "schema_version": "v0",
+ "witness_id": "witness-computation-demo-v0.1",
+ "workflow_id": "scientific_computation.reproducibility_v0",
+ "dataset_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "environment_hash": "sha256:e8151506572c24de819d50107365d3b23545e25e6dd239670759bead0afa37b8",
+ "run_receipt_hash": "sha256:b8849e3846ede3cf5a1bf6ae6d375f9385d01255d90edade43bd173b44563624",
+ "result_hashes": [
+ "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
+ ],
+ "code_repo": "https://github.com/example/scientific-computation-runner",
+ "code_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "checker": "pcs-core-computation-validator",
+ "checker_version": "0.1.0",
+ "status": "Rejected",
+ "violations": [
+ {
+ "violation_id": "viol-result-hash-mismatch",
+ "violation_type": "result_hash_mismatch",
+ "explanation": "Re-run with the pinned dataset version and verify result artifact sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.",
+ "expected_hash": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "actual_hash": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "responsible_component": "scientific-computation-runner"
+ }
+ ],
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
+ "signature_or_digest": "sha256:f3ddf13aaa6b89becd3b737ed396add5ebb294e7ffdcb18c344a512f83c0192e"
+}
From 3057168ded267be73870b047e85c4bb4d8ff5785 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:24:08 -0700
Subject: [PATCH 52/57] fix(fixtures): restore signed rejected-release bytes of
workflow_profile.v0.json
---
.../workflow_profile.v0.json | 118 +++++++++---------
1 file changed, 59 insertions(+), 59 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/workflow_profile.v0.json b/tests/pcs/fixtures/computation-rejected-release/workflow_profile.v0.json
index 4a52a29..bdc6f38 100644
--- a/tests/pcs/fixtures/computation-rejected-release/workflow_profile.v0.json
+++ b/tests/pcs/fixtures/computation-rejected-release/workflow_profile.v0.json
@@ -1,59 +1,59 @@
-{
- "schema_version": "v0",
- "workflow_id": "scientific_computation.reproducibility_v0",
- "domain": "scientific_computation",
- "description": "Proof-carrying computational reproducibility for declared inputs, environment, command, and results.",
- "runtime_artifacts": [
- "DatasetReceipt.v0",
- "EnvironmentReceipt.v0",
- "ComputationRunReceipt.v0",
- "ResultArtifact.v0"
- ],
- "certificate_artifacts": [
- "ComputationWitness.v0"
- ],
- "handoff_sequence": [
- "runtime_to_certificate",
- "certificate_to_bundle",
- "bundle_to_verifier",
- "signed_bundle_to_memory"
- ],
- "required_registry_entries": [
- "DatasetReceipt.v0",
- "EnvironmentReceipt.v0",
- "ComputationRunReceipt.v0",
- "ResultArtifact.v0",
- "ComputationWitness.v0",
- "ScienceClaimBundle.v0",
- "VerificationResult.v0",
- "SignedScienceClaimBundle.v0",
- "ReleaseManifest.v0",
- "HandoffManifest.v0",
- "ReleaseChainValidationResult.v0",
- "WorkflowProfile.v0"
- ],
- "required_admission_profile": "scientific_computation_reproducibility",
- "status_policy": {
- "policy_id": "pcs-v0.1-scientific-computation-lifecycle",
- "description": "Computation witnesses require hash alignment before CertificateChecked export.",
- "allowed_terminal_statuses": [
- "Rejected",
- "Stale"
- ],
- "forbidden_transitions": [
- {
- "from_status": "Rejected",
- "to_status": "ProofChecked"
- }
- ]
- },
- "failure_modes": [
- "dataset_hash_mismatch",
- "environment_hash_mismatch",
- "result_hash_mismatch",
- "missing_code_commit",
- "unreproducible_command"
- ],
- "limitations_notice": "This artifact is a proof-carrying computational reproducibility result. It verifies that declared inputs, environment metadata, code provenance, execution command, and result artifact hashes are internally consistent. It does not prove that the scientific model is true, that the dataset is unbiased, or that the result is externally valid.",
- "signature_or_digest": "sha256:57ec645d429826df128e8226f8a5de20b8d13dee043dfec40c254b002c1b0420"
-}
+{
+ "schema_version": "v0",
+ "workflow_id": "scientific_computation.reproducibility_v0",
+ "domain": "scientific_computation",
+ "description": "Proof-carrying computational reproducibility for declared inputs, environment, command, and results.",
+ "runtime_artifacts": [
+ "DatasetReceipt.v0",
+ "EnvironmentReceipt.v0",
+ "ComputationRunReceipt.v0",
+ "ResultArtifact.v0"
+ ],
+ "certificate_artifacts": [
+ "ComputationWitness.v0"
+ ],
+ "handoff_sequence": [
+ "runtime_to_certificate",
+ "certificate_to_bundle",
+ "bundle_to_verifier",
+ "signed_bundle_to_memory"
+ ],
+ "required_registry_entries": [
+ "DatasetReceipt.v0",
+ "EnvironmentReceipt.v0",
+ "ComputationRunReceipt.v0",
+ "ResultArtifact.v0",
+ "ComputationWitness.v0",
+ "ScienceClaimBundle.v0",
+ "VerificationResult.v0",
+ "SignedScienceClaimBundle.v0",
+ "ReleaseManifest.v0",
+ "HandoffManifest.v0",
+ "ReleaseChainValidationResult.v0",
+ "WorkflowProfile.v0"
+ ],
+ "required_admission_profile": "scientific_computation_reproducibility",
+ "status_policy": {
+ "policy_id": "pcs-v0.1-scientific-computation-lifecycle",
+ "description": "Computation witnesses require hash alignment before CertificateChecked export.",
+ "allowed_terminal_statuses": [
+ "Rejected",
+ "Stale"
+ ],
+ "forbidden_transitions": [
+ {
+ "from_status": "Rejected",
+ "to_status": "ProofChecked"
+ }
+ ]
+ },
+ "failure_modes": [
+ "dataset_hash_mismatch",
+ "environment_hash_mismatch",
+ "result_hash_mismatch",
+ "missing_code_commit",
+ "unreproducible_command"
+ ],
+ "limitations_notice": "This artifact is a proof-carrying computational reproducibility result. It verifies that declared inputs, environment metadata, code provenance, execution command, and result artifact hashes are internally consistent. It does not prove that the scientific model is true, that the dataset is unbiased, or that the result is externally valid.",
+ "signature_or_digest": "sha256:57ec645d429826df128e8226f8a5de20b8d13dee043dfec40c254b002c1b0420"
+}
From 4d329d2ca47393022492a222487eb1215ca64ecb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:24:11 -0700
Subject: [PATCH 53/57] fix(fixtures): restore signed rejected-release bytes of
science_claim_bundle.certified.json
---
.../science_claim_bundle.certified.json | 350 +++++++++---------
1 file changed, 175 insertions(+), 175 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/science_claim_bundle.certified.json b/tests/pcs/fixtures/computation-rejected-release/science_claim_bundle.certified.json
index 871fbca..66d6842 100644
--- a/tests/pcs/fixtures/computation-rejected-release/science_claim_bundle.certified.json
+++ b/tests/pcs/fixtures/computation-rejected-release/science_claim_bundle.certified.json
@@ -1,175 +1,175 @@
-{
- "schema_version": "v0",
- "signed_bundle_id": "signed-scb-qc-release-v0.1",
- "science_claim_bundle": {
- "bundle_id": "scb-qc-release-v0.1",
- "schema_version": "v0",
- "claim_artifact": {
- "artifact_id": "claim-computation-rejected-v0.1",
- "artifact_type": "ClaimArtifact.v0",
- "schema_version": "v0",
- "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
- "claim_kind": "scientific_claim",
- "status": "CertificateChecked",
- "assumption_set_ref": "as-labtrust-qc-v0.1",
- "source_span_refs": [],
- "formal_statement": "",
- "certificate_refs": [
- "witness-computation-demo-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-computation-run-001"
- ],
- "created_at": "2026-05-18T12:05:00Z",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "assumption_set": {
- "assumption_set_id": "as-labtrust-qc-v0.1",
- "schema_version": "v0",
- "created_at": "2026-05-16T12:00:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "assumptions": [
- {
- "assumption_id": "asm-domain-qc-sim",
- "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
- "kind": "domain",
- "status": "HumanReviewed",
- "source_span_refs": [
- "span-qc-release-spec-1"
- ]
- }
- ],
- "human_review_status": "approved",
- "status": "HumanReviewed",
- "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
- },
- "runtime_receipts": [
- {
- "receipt_id": "receipt-computation-run-001",
- "schema_version": "v0",
- "run_id": "run-demo-analysis-001",
- "environment": {
- "platform": "linux",
- "python": "3.12",
- "labtrust_version": "0.1.0"
- },
- "started_at": "2026-05-18T12:05:00Z",
- "ended_at": "2026-05-18T12:06:30Z",
- "status": "RuntimeObserved",
- "run_outcome": "passed",
- "final_reason_code": "ok",
- "released": true,
- "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
- "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "input_hashes": {
- "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
- },
- "output_hashes": {
- "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
- },
- "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
- }
- ],
- "certificates": [
- {
- "certificate_id": "witness-computation-demo-v0.1",
- "schema_version": "v0",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
- "property_id": "scientific_computation.reproducibility_v0",
- "checker": "pcs-core-computation-validator",
- "checker_version": "0.1.0",
- "status": "CertificateChecked",
- "counterexample_ref": null,
- "created_at": "2026-05-16T12:10:00Z",
- "producer": "certifyedge",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
- "signature_or_digest": "sha256:f3ddf13aaa6b89becd3b737ed396add5ebb294e7ffdcb18c344a512f83c0192e"
- }
- ],
- "evidence_bundle": {
- "bundle_id": "evidence-qc-release-v0.1",
- "schema_version": "v0",
- "claim_refs": [
- "claim-qc-release-v0.1"
- ],
- "assumption_set_refs": [
- "as-labtrust-qc-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-qc-release-run-001"
- ],
- "certificate_refs": [
- "cert-trace-qc-release-v0.1"
- ],
- "artifact_hashes": {
- "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "created_at": "2026-05-16T12:12:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
- },
- "verification_policy": {
- "policy_id": "labtrust-v0.1-qc-release",
- "required_checks": [
- "schema-valid",
- "trace-hash-alignment"
- ]
- },
- "created_at": "2026-05-16T12:15:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
- },
- "verification_result": {
- "verification_id": "verify-scb-qc-release-v0.1",
- "schema_version": "v0",
- "bundle_id": "scb-qc-release-v0.1",
- "verifier": "provability-fabric",
- "verifier_version": "0.1.0",
- "status": "ProofChecked",
- "checks": [
- {
- "check_id": "schema-valid",
- "description": "ScienceClaimBundle conforms to schema",
- "status": "passed",
- "details": {}
- },
- {
- "check_id": "trace-hash-alignment",
- "description": "Receipt trace_hash matches certificate",
- "status": "passed",
- "details": {}
- }
- ],
- "created_at": "2026-05-16T12:20:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
- },
- "signer": "provability-fabric",
- "signed_at": "2026-05-16T12:25:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
- "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
-}
+{
+ "schema_version": "v0",
+ "signed_bundle_id": "signed-scb-qc-release-v0.1",
+ "science_claim_bundle": {
+ "bundle_id": "scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_artifact": {
+ "artifact_id": "claim-computation-rejected-v0.1",
+ "artifact_type": "ClaimArtifact.v0",
+ "schema_version": "v0",
+ "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
+ "claim_kind": "scientific_claim",
+ "status": "CertificateChecked",
+ "assumption_set_ref": "as-labtrust-qc-v0.1",
+ "source_span_refs": [],
+ "formal_statement": "",
+ "certificate_refs": [
+ "witness-computation-demo-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-computation-run-001"
+ ],
+ "created_at": "2026-05-18T12:05:00Z",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "assumption_set": {
+ "assumption_set_id": "as-labtrust-qc-v0.1",
+ "schema_version": "v0",
+ "created_at": "2026-05-16T12:00:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "assumptions": [
+ {
+ "assumption_id": "asm-domain-qc-sim",
+ "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
+ "kind": "domain",
+ "status": "HumanReviewed",
+ "source_span_refs": [
+ "span-qc-release-spec-1"
+ ]
+ }
+ ],
+ "human_review_status": "approved",
+ "status": "HumanReviewed",
+ "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
+ },
+ "runtime_receipts": [
+ {
+ "receipt_id": "receipt-computation-run-001",
+ "schema_version": "v0",
+ "run_id": "run-demo-analysis-001",
+ "environment": {
+ "platform": "linux",
+ "python": "3.12",
+ "labtrust_version": "0.1.0"
+ },
+ "started_at": "2026-05-18T12:05:00Z",
+ "ended_at": "2026-05-18T12:06:30Z",
+ "status": "RuntimeObserved",
+ "run_outcome": "passed",
+ "final_reason_code": "ok",
+ "released": true,
+ "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
+ "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "input_hashes": {
+ "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
+ },
+ "output_hashes": {
+ "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
+ },
+ "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
+ }
+ ],
+ "certificates": [
+ {
+ "certificate_id": "witness-computation-demo-v0.1",
+ "schema_version": "v0",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
+ "property_id": "scientific_computation.reproducibility_v0",
+ "checker": "pcs-core-computation-validator",
+ "checker_version": "0.1.0",
+ "status": "CertificateChecked",
+ "counterexample_ref": null,
+ "created_at": "2026-05-16T12:10:00Z",
+ "producer": "certifyedge",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
+ "signature_or_digest": "sha256:f3ddf13aaa6b89becd3b737ed396add5ebb294e7ffdcb18c344a512f83c0192e"
+ }
+ ],
+ "evidence_bundle": {
+ "bundle_id": "evidence-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_refs": [
+ "claim-qc-release-v0.1"
+ ],
+ "assumption_set_refs": [
+ "as-labtrust-qc-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-qc-release-run-001"
+ ],
+ "certificate_refs": [
+ "cert-trace-qc-release-v0.1"
+ ],
+ "artifact_hashes": {
+ "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "created_at": "2026-05-16T12:12:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
+ },
+ "verification_policy": {
+ "policy_id": "labtrust-v0.1-qc-release",
+ "required_checks": [
+ "schema-valid",
+ "trace-hash-alignment"
+ ]
+ },
+ "created_at": "2026-05-16T12:15:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
+ },
+ "verification_result": {
+ "verification_id": "verify-scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "bundle_id": "scb-qc-release-v0.1",
+ "verifier": "provability-fabric",
+ "verifier_version": "0.1.0",
+ "status": "ProofChecked",
+ "checks": [
+ {
+ "check_id": "schema-valid",
+ "description": "ScienceClaimBundle conforms to schema",
+ "status": "passed",
+ "details": {}
+ },
+ {
+ "check_id": "trace-hash-alignment",
+ "description": "Receipt trace_hash matches certificate",
+ "status": "passed",
+ "details": {}
+ }
+ ],
+ "created_at": "2026-05-16T12:20:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "signer": "provability-fabric",
+ "signed_at": "2026-05-16T12:25:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
+ "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
+}
From dad30ab3335e998c5cbb3d15c712b252c60bdbd9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:24:13 -0700
Subject: [PATCH 54/57] fix(fixtures): restore signed rejected-release bytes of
verification_result.json
---
.../verification_result.json | 66 +++++++++----------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/verification_result.json b/tests/pcs/fixtures/computation-rejected-release/verification_result.json
index e82c8ac..888c27d 100644
--- a/tests/pcs/fixtures/computation-rejected-release/verification_result.json
+++ b/tests/pcs/fixtures/computation-rejected-release/verification_result.json
@@ -1,33 +1,33 @@
-{
- "verification_id": "verify-scb-qc-release-v0.1",
- "schema_version": "v0",
- "bundle_id": "scb-qc-release-v0.1",
- "verifier": "provability-fabric",
- "verifier_version": "0.1.0",
- "status": "ProofChecked",
- "checks": [
- {
- "check_id": "schema-valid",
- "description": "ScienceClaimBundle conforms to ScienceClaimBundle.v0 schema",
- "status": "passed",
- "details": {}
- },
- {
- "check_id": "trace-hash-alignment",
- "description": "Runtime receipt trace_hash matches certificate trace_hash",
- "status": "passed",
- "details": {
- "trace_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
- }
- }
- ],
- "created_at": "2026-05-16T12:20:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:cd11abeaee38bcc8bf8df071290e99abb363e0bf81765cf65498b13d2ec609b4",
- "verified_input": {
- "certificate_id": "cert-tool-use-safety-v0",
- "trace_hash": "sha256:42ce47fca8ec10a9c65c8d9b9384c8be52094c93d46aa9705ce7c2fa2b8c89e4",
- "bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
- }
-}
+{
+ "verification_id": "verify-scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "bundle_id": "scb-qc-release-v0.1",
+ "verifier": "provability-fabric",
+ "verifier_version": "0.1.0",
+ "status": "ProofChecked",
+ "checks": [
+ {
+ "check_id": "schema-valid",
+ "description": "ScienceClaimBundle conforms to ScienceClaimBundle.v0 schema",
+ "status": "passed",
+ "details": {}
+ },
+ {
+ "check_id": "trace-hash-alignment",
+ "description": "Runtime receipt trace_hash matches certificate trace_hash",
+ "status": "passed",
+ "details": {
+ "trace_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
+ }
+ }
+ ],
+ "created_at": "2026-05-16T12:20:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:cd11abeaee38bcc8bf8df071290e99abb363e0bf81765cf65498b13d2ec609b4",
+ "verified_input": {
+ "certificate_id": "cert-tool-use-safety-v0",
+ "trace_hash": "sha256:42ce47fca8ec10a9c65c8d9b9384c8be52094c93d46aa9705ce7c2fa2b8c89e4",
+ "bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
+ }
+}
From 5911ea75a2c167373df57e9be546b294da8cd296 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:24:22 -0700
Subject: [PATCH 55/57] fix(fixtures): restore signed rejected-release bytes of
signed_science_claim_bundle.json
---
.../signed_science_claim_bundle.json | 350 +++++++++---------
1 file changed, 175 insertions(+), 175 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/signed_science_claim_bundle.json b/tests/pcs/fixtures/computation-rejected-release/signed_science_claim_bundle.json
index 871fbca..66d6842 100644
--- a/tests/pcs/fixtures/computation-rejected-release/signed_science_claim_bundle.json
+++ b/tests/pcs/fixtures/computation-rejected-release/signed_science_claim_bundle.json
@@ -1,175 +1,175 @@
-{
- "schema_version": "v0",
- "signed_bundle_id": "signed-scb-qc-release-v0.1",
- "science_claim_bundle": {
- "bundle_id": "scb-qc-release-v0.1",
- "schema_version": "v0",
- "claim_artifact": {
- "artifact_id": "claim-computation-rejected-v0.1",
- "artifact_type": "ClaimArtifact.v0",
- "schema_version": "v0",
- "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
- "claim_kind": "scientific_claim",
- "status": "CertificateChecked",
- "assumption_set_ref": "as-labtrust-qc-v0.1",
- "source_span_refs": [],
- "formal_statement": "",
- "certificate_refs": [
- "witness-computation-demo-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-computation-run-001"
- ],
- "created_at": "2026-05-18T12:05:00Z",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "assumption_set": {
- "assumption_set_id": "as-labtrust-qc-v0.1",
- "schema_version": "v0",
- "created_at": "2026-05-16T12:00:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "assumptions": [
- {
- "assumption_id": "asm-domain-qc-sim",
- "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
- "kind": "domain",
- "status": "HumanReviewed",
- "source_span_refs": [
- "span-qc-release-spec-1"
- ]
- }
- ],
- "human_review_status": "approved",
- "status": "HumanReviewed",
- "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
- },
- "runtime_receipts": [
- {
- "receipt_id": "receipt-computation-run-001",
- "schema_version": "v0",
- "run_id": "run-demo-analysis-001",
- "environment": {
- "platform": "linux",
- "python": "3.12",
- "labtrust_version": "0.1.0"
- },
- "started_at": "2026-05-18T12:05:00Z",
- "ended_at": "2026-05-18T12:06:30Z",
- "status": "RuntimeObserved",
- "run_outcome": "passed",
- "final_reason_code": "ok",
- "released": true,
- "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
- "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "producer": "scientific-computation-runner",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/example/scientific-computation-runner",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "input_hashes": {
- "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
- },
- "output_hashes": {
- "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
- },
- "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
- }
- ],
- "certificates": [
- {
- "certificate_id": "witness-computation-demo-v0.1",
- "schema_version": "v0",
- "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
- "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
- "property_id": "scientific_computation.reproducibility_v0",
- "checker": "pcs-core-computation-validator",
- "checker_version": "0.1.0",
- "status": "CertificateChecked",
- "counterexample_ref": null,
- "created_at": "2026-05-16T12:10:00Z",
- "producer": "certifyedge",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
- "signature_or_digest": "sha256:f3ddf13aaa6b89becd3b737ed396add5ebb294e7ffdcb18c344a512f83c0192e"
- }
- ],
- "evidence_bundle": {
- "bundle_id": "evidence-qc-release-v0.1",
- "schema_version": "v0",
- "claim_refs": [
- "claim-qc-release-v0.1"
- ],
- "assumption_set_refs": [
- "as-labtrust-qc-v0.1"
- ],
- "runtime_receipt_refs": [
- "receipt-qc-release-run-001"
- ],
- "certificate_refs": [
- "cert-trace-qc-release-v0.1"
- ],
- "artifact_hashes": {
- "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
- },
- "created_at": "2026-05-16T12:12:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
- },
- "verification_policy": {
- "policy_id": "labtrust-v0.1-qc-release",
- "required_checks": [
- "schema-valid",
- "trace-hash-alignment"
- ]
- },
- "created_at": "2026-05-16T12:15:00Z",
- "producer": "labtrust-gym",
- "producer_version": "0.1.0",
- "source_repo": "https://github.com/fraware/LabTrust-Gym",
- "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
- "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
- },
- "verification_result": {
- "verification_id": "verify-scb-qc-release-v0.1",
- "schema_version": "v0",
- "bundle_id": "scb-qc-release-v0.1",
- "verifier": "provability-fabric",
- "verifier_version": "0.1.0",
- "status": "ProofChecked",
- "checks": [
- {
- "check_id": "schema-valid",
- "description": "ScienceClaimBundle conforms to schema",
- "status": "passed",
- "details": {}
- },
- {
- "check_id": "trace-hash-alignment",
- "description": "Receipt trace_hash matches certificate",
- "status": "passed",
- "details": {}
- }
- ],
- "created_at": "2026-05-16T12:20:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
- },
- "signer": "provability-fabric",
- "signed_at": "2026-05-16T12:25:00Z",
- "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
- "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
- "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
- "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
-}
+{
+ "schema_version": "v0",
+ "signed_bundle_id": "signed-scb-qc-release-v0.1",
+ "science_claim_bundle": {
+ "bundle_id": "scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_artifact": {
+ "artifact_id": "claim-computation-rejected-v0.1",
+ "artifact_type": "ClaimArtifact.v0",
+ "schema_version": "v0",
+ "claim_text": "The declared computation run reproduces the pinned dataset under the recorded environment.",
+ "claim_kind": "scientific_claim",
+ "status": "CertificateChecked",
+ "assumption_set_ref": "as-labtrust-qc-v0.1",
+ "source_span_refs": [],
+ "formal_statement": "",
+ "certificate_refs": [
+ "witness-computation-demo-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-computation-run-001"
+ ],
+ "created_at": "2026-05-18T12:05:00Z",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "assumption_set": {
+ "assumption_set_id": "as-labtrust-qc-v0.1",
+ "schema_version": "v0",
+ "created_at": "2026-05-16T12:00:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "assumptions": [
+ {
+ "assumption_id": "asm-domain-qc-sim",
+ "text": "Simulation models a hospital QC release workflow, not a live clinical laboratory.",
+ "kind": "domain",
+ "status": "HumanReviewed",
+ "source_span_refs": [
+ "span-qc-release-spec-1"
+ ]
+ }
+ ],
+ "human_review_status": "approved",
+ "status": "HumanReviewed",
+ "signature_or_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
+ },
+ "runtime_receipts": [
+ {
+ "receipt_id": "receipt-computation-run-001",
+ "schema_version": "v0",
+ "run_id": "run-demo-analysis-001",
+ "environment": {
+ "platform": "linux",
+ "python": "3.12",
+ "labtrust_version": "0.1.0"
+ },
+ "started_at": "2026-05-18T12:05:00Z",
+ "ended_at": "2026-05-18T12:06:30Z",
+ "status": "RuntimeObserved",
+ "run_outcome": "passed",
+ "final_reason_code": "ok",
+ "released": true,
+ "events_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
+ "policy_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "producer": "scientific-computation-runner",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/example/scientific-computation-runner",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "input_hashes": {
+ "spec": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
+ },
+ "output_hashes": {
+ "trace.json": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
+ },
+ "signature_or_digest": "sha256:260299295080e7b1a07b2d0b1ef37fff0a96d2c6d0b701263a36a0f2d0aa5081"
+ }
+ ],
+ "certificates": [
+ {
+ "certificate_id": "witness-computation-demo-v0.1",
+ "schema_version": "v0",
+ "trace_hash": "sha256:701f0ede04cba3644c15e7364228b5bcd873fd7b690ccf1a90cc5e6af93fe046",
+ "spec_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
+ "property_id": "scientific_computation.reproducibility_v0",
+ "checker": "pcs-core-computation-validator",
+ "checker_version": "0.1.0",
+ "status": "CertificateChecked",
+ "counterexample_ref": null,
+ "created_at": "2026-05-16T12:10:00Z",
+ "producer": "certifyedge",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "a361fd2b388f88cdbc9e4e4691ae49dba714ab6c",
+ "signature_or_digest": "sha256:f3ddf13aaa6b89becd3b737ed396add5ebb294e7ffdcb18c344a512f83c0192e"
+ }
+ ],
+ "evidence_bundle": {
+ "bundle_id": "evidence-qc-release-v0.1",
+ "schema_version": "v0",
+ "claim_refs": [
+ "claim-qc-release-v0.1"
+ ],
+ "assumption_set_refs": [
+ "as-labtrust-qc-v0.1"
+ ],
+ "runtime_receipt_refs": [
+ "receipt-qc-release-run-001"
+ ],
+ "certificate_refs": [
+ "cert-trace-qc-release-v0.1"
+ ],
+ "artifact_hashes": {
+ "claim-qc-release-v0.1": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
+ },
+ "created_at": "2026-05-16T12:12:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
+ },
+ "verification_policy": {
+ "policy_id": "labtrust-v0.1-qc-release",
+ "required_checks": [
+ "schema-valid",
+ "trace-hash-alignment"
+ ]
+ },
+ "created_at": "2026-05-16T12:15:00Z",
+ "producer": "labtrust-gym",
+ "producer_version": "0.1.0",
+ "source_repo": "https://github.com/fraware/LabTrust-Gym",
+ "source_commit": "4c5439ae358733f9a4c4a58e33fdaed1ab0d29de",
+ "signature_or_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
+ },
+ "verification_result": {
+ "verification_id": "verify-scb-qc-release-v0.1",
+ "schema_version": "v0",
+ "bundle_id": "scb-qc-release-v0.1",
+ "verifier": "provability-fabric",
+ "verifier_version": "0.1.0",
+ "status": "ProofChecked",
+ "checks": [
+ {
+ "check_id": "schema-valid",
+ "description": "ScienceClaimBundle conforms to schema",
+ "status": "passed",
+ "details": {}
+ },
+ {
+ "check_id": "trace-hash-alignment",
+ "description": "Receipt trace_hash matches certificate",
+ "status": "passed",
+ "details": {}
+ }
+ ],
+ "created_at": "2026-05-16T12:20:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:4c5439ae358733f9a4c4a58e33fdaed1ab0d29deaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ "signer": "provability-fabric",
+ "signed_at": "2026-05-16T12:25:00Z",
+ "source_repo": "https://github.com/SentinelOps-CI/provability-fabric",
+ "source_commit": "0f659b90c80c46a6bbfd51b0d37ea723b032fb9d",
+ "signature_or_digest": "sha256:6bd6088e18a82f3eef22adaba8db91d0f2942142af35b2a698d5d87b92f1331a",
+ "signed_input_bundle_hash": "sha256:21adad1e4817811766d484422d68ac13a056849b04e9143dcb583a87b70a9e30"
+}
From f123799265a51259c55f2e3cd209a55a93a3fb7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:24:25 -0700
Subject: [PATCH 56/57] fix(fixtures): restore signed rejected-release bytes of
proof_obligation.v0.json
---
.../proof_obligation.v0.json | 132 +++++++++---------
1 file changed, 66 insertions(+), 66 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/proof_obligation.v0.json b/tests/pcs/fixtures/computation-rejected-release/proof_obligation.v0.json
index 0d1b5b1..e3b883b 100644
--- a/tests/pcs/fixtures/computation-rejected-release/proof_obligation.v0.json
+++ b/tests/pcs/fixtures/computation-rejected-release/proof_obligation.v0.json
@@ -1,66 +1,66 @@
-{
- "schema_version": "v0",
- "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-rejected",
- "release_id": "release-pcs-v0.1-scientific-computation-rejected",
- "release_candidate": "pcs-v0.1-scientific-computation-conformance",
- "generated_at": "2026-05-22T11:48:44Z",
- "trust_boundary": "PCS trust-envelope invariants (Lean/PCS.lean)",
- "obligations": [
- {
- "obligation_id": "obl-certificate-matches-runtime",
- "predicate": "CertificateMatchesRuntime",
- "lean_theorem": "PCS.CertificateMatchesRuntime",
- "trust_boundary_invariant": "The temporal certificate trace hash matches the runtime receipt trace hash and the certificate is CertificateChecked.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "trace_certificate.json",
- "runtime_receipt.json"
- ]
- },
- {
- "obligation_id": "obl-verification-admits-bundle",
- "predicate": "VerificationAdmitsBundle",
- "lean_theorem": "PCS.VerificationAdmitsBundle",
- "trust_boundary_invariant": "Provability Fabric verification is ProofChecked and admits the certified bundle hash.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "verification_result.json",
- "science_claim_bundle.certified.json"
- ]
- },
- {
- "obligation_id": "obl-signed-bundle-admissible",
- "predicate": "SignedBundleAdmissible",
- "lean_theorem": "PCS.SignedBundleAdmissible",
- "trust_boundary_invariant": "The signed bundle input hash matches the PF verified certified bundle hash.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "signed_science_claim_bundle.json",
- "science_claim_bundle.certified.json"
- ]
- },
- {
- "obligation_id": "obl-rejected-certificate-not-admissible",
- "predicate": "RejectedCertificateNotAdmissible",
- "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
- "trust_boundary_invariant": "A Rejected temporal certificate cannot satisfy an admissible release chain.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "trace_certificate.json"
- ]
- },
- {
- "obligation_id": "obl-stale-certificate-not-admissible",
- "predicate": "StaleCertificateNotAdmissible",
- "lean_theorem": "PCS.StaleCertificateNotAdmissible",
- "trust_boundary_invariant": "A Stale temporal certificate cannot satisfy an admissible release chain.",
- "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
- "source_artifacts": [
- "trace_certificate.json"
- ]
- }
- ],
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
- "signature_or_digest": "sha256:a4d0ea7ba0e702992a0b635fa2a660408e2f0330e259b17a3e2df926a0ff72fb"
-}
+{
+ "schema_version": "v0",
+ "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-rejected",
+ "release_id": "release-pcs-v0.1-scientific-computation-rejected",
+ "release_candidate": "pcs-v0.1-scientific-computation-conformance",
+ "generated_at": "2026-05-22T11:48:44Z",
+ "trust_boundary": "PCS trust-envelope invariants (Lean/PCS.lean)",
+ "obligations": [
+ {
+ "obligation_id": "obl-certificate-matches-runtime",
+ "predicate": "CertificateMatchesRuntime",
+ "lean_theorem": "PCS.CertificateMatchesRuntime",
+ "trust_boundary_invariant": "The temporal certificate trace hash matches the runtime receipt trace hash and the certificate is CertificateChecked.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "trace_certificate.json",
+ "runtime_receipt.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-verification-admits-bundle",
+ "predicate": "VerificationAdmitsBundle",
+ "lean_theorem": "PCS.VerificationAdmitsBundle",
+ "trust_boundary_invariant": "Provability Fabric verification is ProofChecked and admits the certified bundle hash.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "verification_result.json",
+ "science_claim_bundle.certified.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-signed-bundle-admissible",
+ "predicate": "SignedBundleAdmissible",
+ "lean_theorem": "PCS.SignedBundleAdmissible",
+ "trust_boundary_invariant": "The signed bundle input hash matches the PF verified certified bundle hash.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "signed_science_claim_bundle.json",
+ "science_claim_bundle.certified.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-rejected-certificate-not-admissible",
+ "predicate": "RejectedCertificateNotAdmissible",
+ "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
+ "trust_boundary_invariant": "A Rejected temporal certificate cannot satisfy an admissible release chain.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ]
+ },
+ {
+ "obligation_id": "obl-stale-certificate-not-admissible",
+ "predicate": "StaleCertificateNotAdmissible",
+ "lean_theorem": "PCS.StaleCertificateNotAdmissible",
+ "trust_boundary_invariant": "A Stale temporal certificate cannot satisfy an admissible release chain.",
+ "formal_scope": "Formalization covers PCS trust-envelope predicates in the Lean trust kernel (certificate/runtime alignment, PF verification admission, and signed-bundle hash binding). Scientific domain semantics, data quality, and model validity are out of scope.",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ]
+ }
+ ],
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
+ "signature_or_digest": "sha256:a4d0ea7ba0e702992a0b635fa2a660408e2f0330e259b17a3e2df926a0ff72fb"
+}
From 76abb8fb5a0208123b1508dacf5e035d87eb6a0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=A9o=20H=2E=20Petel?=
<113530345+fraware@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:24:27 -0700
Subject: [PATCH 57/57] fix(fixtures): restore signed rejected-release bytes of
lean_check_result.v0.json
---
.../lean_check_result.v0.json | 150 +++++++++---------
1 file changed, 75 insertions(+), 75 deletions(-)
diff --git a/tests/pcs/fixtures/computation-rejected-release/lean_check_result.v0.json b/tests/pcs/fixtures/computation-rejected-release/lean_check_result.v0.json
index 665acda..81abc26 100644
--- a/tests/pcs/fixtures/computation-rejected-release/lean_check_result.v0.json
+++ b/tests/pcs/fixtures/computation-rejected-release/lean_check_result.v0.json
@@ -1,75 +1,75 @@
-{
- "schema_version": "v0",
- "check_result_id": "lean-check-release-pcs-v0.1-scientific-computation-rejected",
- "release_id": "release-pcs-v0.1-scientific-computation-rejected",
- "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-rejected",
- "status": "ProofChecked",
- "lean_version": "leanprover/lean4:v4.24.0",
- "checked_at": "2026-05-22T11:48:44Z",
- "checker": "pcs-core",
- "checker_version": "0.1.0",
- "results": [
- {
- "obligation_id": "obl-certificate-matches-runtime",
- "lean_theorem": "PCS.CertificateMatchesRuntime",
- "status": "ProofChecked",
- "source_artifacts": [
- "trace_certificate.json",
- "runtime_receipt.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:44Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-verification-admits-bundle",
- "lean_theorem": "PCS.VerificationAdmitsBundle",
- "status": "ProofChecked",
- "source_artifacts": [
- "verification_result.json",
- "science_claim_bundle.certified.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:44Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-signed-bundle-admissible",
- "lean_theorem": "PCS.SignedBundleAdmissible",
- "status": "ProofChecked",
- "source_artifacts": [
- "signed_science_claim_bundle.json",
- "science_claim_bundle.certified.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:44Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-rejected-certificate-not-admissible",
- "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
- "status": "ProofChecked",
- "source_artifacts": [
- "trace_certificate.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:44Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- },
- {
- "obligation_id": "obl-stale-certificate-not-admissible",
- "lean_theorem": "PCS.StaleCertificateNotAdmissible",
- "status": "ProofChecked",
- "source_artifacts": [
- "trace_certificate.json"
- ],
- "result": "passed",
- "checked_at": "2026-05-22T11:48:44Z",
- "lean_version": "leanprover/lean4:v4.24.0"
- }
- ],
- "pf_explain": null,
- "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
- "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
- "signature_or_digest": "sha256:c1bd9b9d9b19019e1f8404f12044659b3e92f410b1fc7c12385ac8e14b9b448c"
-}
+{
+ "schema_version": "v0",
+ "check_result_id": "lean-check-release-pcs-v0.1-scientific-computation-rejected",
+ "release_id": "release-pcs-v0.1-scientific-computation-rejected",
+ "obligation_set_id": "obl-set-release-pcs-v0.1-scientific-computation-rejected",
+ "status": "ProofChecked",
+ "lean_version": "leanprover/lean4:v4.24.0",
+ "checked_at": "2026-05-22T11:48:44Z",
+ "checker": "pcs-core",
+ "checker_version": "0.1.0",
+ "results": [
+ {
+ "obligation_id": "obl-certificate-matches-runtime",
+ "lean_theorem": "PCS.CertificateMatchesRuntime",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "trace_certificate.json",
+ "runtime_receipt.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:44Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-verification-admits-bundle",
+ "lean_theorem": "PCS.VerificationAdmitsBundle",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "verification_result.json",
+ "science_claim_bundle.certified.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:44Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-signed-bundle-admissible",
+ "lean_theorem": "PCS.SignedBundleAdmissible",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "signed_science_claim_bundle.json",
+ "science_claim_bundle.certified.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:44Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-rejected-certificate-not-admissible",
+ "lean_theorem": "PCS.RejectedCertificateNotAdmissible",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:44Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ },
+ {
+ "obligation_id": "obl-stale-certificate-not-admissible",
+ "lean_theorem": "PCS.StaleCertificateNotAdmissible",
+ "status": "ProofChecked",
+ "source_artifacts": [
+ "trace_certificate.json"
+ ],
+ "result": "passed",
+ "checked_at": "2026-05-22T11:48:44Z",
+ "lean_version": "leanprover/lean4:v4.24.0"
+ }
+ ],
+ "pf_explain": null,
+ "source_repo": "https://github.com/SentinelOps-CI/pcs-core",
+ "source_commit": "9d105755c9d2668022e11bf8f2c0169ddbca4aec",
+ "signature_or_digest": "sha256:c1bd9b9d9b19019e1f8404f12044659b3e92f410b1fc7c12385ac8e14b9b448c"
+}