Skip to content

release: attest exact sealed SBOM evidence - #797

Open
seonghobae wants to merge 44 commits into
mainfrom
release/exact-artifact-sbom-attestation
Open

release: attest exact sealed SBOM evidence#797
seonghobae wants to merge 44 commits into
mainfrom
release/exact-artifact-sbom-attestation

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Purpose

Add an organization-owned reusable SBOM attestation boundary for exact sealed wheel and source-distribution evidence, required by #783 and ContextualWisdomLab/EgressWeave#46.

Exact current stack

  • exact head: 42ebb82c1cba57adea4657c6f4941af8c812091b;
  • protected base/main: e71fdab2ab088001f218765ecb5e3b7fabfee11a;
  • main is an ancestor and GitHub reports the eight-file slice mergeable;
  • all branch-local repair workflows, triggers, and encoded patch machinery are absent;
  • predecessor-head checks and reviews are stale.

Trust boundary

  • Expose only workflow_call with explicit required source, artifact, digest, filename, schema, and predicate inputs.
  • Bind trusted verifier checkout to immutable ${{ job.workflow_repository }} and ${{ job.workflow_sha }} rather than caller-controlled source.
  • Separate a read-only artifact-intake job from the credentialed signing job.
  • Grant the signer only contents: read, id-token: write, attestations: write, and artifact-metadata: write.
  • Use the pinned actions/attest action exactly once for the wheel and once for the sdist.
  • Treat downloaded evidence as inert bounded data and never import, build, install, test, execute, or unpack caller-controlled artifacts.
  • Pass every caller-controlled input through environment variables; no run: block interpolates ${{ inputs.* }}.
  • Require exact six-file cardinality, strict finite RFC 8259 JSON, SHA-256 digest closure, source identity, CycloneDX 1.7 semantics, exact integer document version, root file component and filename property, deterministic UUIDv5 serial identity, and one canonical checksum entry.
  • Pass caller inputs through environment variables rather than shell interpolation.
  • Verify online attestations and export Sigstore bundles, trusted roots, the verified handoff manifest, deterministic SHA256SUMS, and beginner-readable offline verification instructions.
  • Make no unsupported SLSA build-level claim.

Exact-head evidence

For 42ebb82c1cba57adea4657c6f4941af8c812091b, all exact-head workflows completed successfully:

  • Exact Artifact SBOM Attestation Quality 31157759273;
  • CodeQL PR 31157759227;
  • Python Security 31157759232;
  • SAST Semgrep 31157759247;
  • Security Scan 31157759228;
  • Secret Scan 31157759289;
  • OSV-Scanner PR 31157759617;
  • Scorecard PR 31157759246;
  • SBOM Generation 31157759231;
  • CodeRabbit commit status: success.

The exact quality suite on pinned Ubuntu 24.04 and Python 3.14.6 proves:

  • 49 focused contract and hostile-input tests passed;
  • production statement coverage 226/226;
  • production branch coverage 82/82;
  • public-docstring coverage 100%;
  • Python 3.10 compile compatibility;
  • exact-head checkout and hash-locked quality dependencies.

All inline review threads are resolved or outdated; zero actionable unresolved thread remains. Current source also includes the no-shell-interpolation regression, non-finite JSON rejection, exact CycloneDX subject binding, deterministic offline checksums, and scoped size-limit tests.

Formal exact-current-head OpenCode/Noema review and a qualifying independent non-author approval remain required. Queued, cancelled, predecessor-head, status-only, author-only, local-only, or synthetic evidence is not accepted.

Merge gate

Merge only after every required exact-current-head quality, security, supply-chain, automated-review, independent-approval, unresolved-thread, and branch-protection gate succeeds without bypass. Progresses #783.

Copy link
Copy Markdown
Contributor Author

@opencode-agent Implement the bounded GREEN slice for exact current RED head a26f09a9f6c403db1f4db334ec71299a97a4cd7c on branch release/exact-artifact-sbom-attestation.

The permanent exact-head RED workflow is valid:

  • run 31070177006, job Python 3.10 contract, succeeded;
  • run 31070177006, job Python 3.14 exact contract, failed at the contract with exactly 5 failures because the reusable workflow and doctoring were intentionally absent;
  • the failures are anchored to missing .github/workflows/exact-artifact-sbom-attestation.yml and docs/doctoring/exact-artifact-sbom-attestation.md, not syntax, dependency, checkout, or environment errors;
  • exact-head Security Scan, Secret Scan, OSV-Scanner, Scorecard, and SBOM Generation are successful; remaining security checks must still complete on the GREEN head.

Implement the organization-owned exact-artifact SBOM attestation boundary without changing reviewer identities, model credentials, existing review workflows, protected refs, release jobs, or package publication.

Allowed permanent paths

  • .github/workflows/exact-artifact-sbom-attestation.yml
  • .github/workflows/exact-artifact-sbom-attestation-quality.yml
  • scripts/ci/verify_exact_artifact_sbom_handoff.py
  • tests/test_exact_artifact_sbom_attestation_contract.py
  • new focused tests named tests/test_exact_artifact_sbom_*.py
  • docs/doctoring/exact-artifact-sbom-attestation.md
  • the central reusable-workflow catalogue or README only if needed to register this workflow
  • CHANGELOG.md

Do not add temporary, one-shot, self-modifying, branch-writing, repair, generated-patch, encoded-payload, or model-executing workflows.

Reusable workflow contract

Create .github/workflows/exact-artifact-sbom-attestation.yml with only workflow_call. Require every existing contract input as an explicit required string. Do not infer repository, source, file identity, or digests from mutable branches or filenames discovered at runtime.

Keep the workflow-level token read-only. Scope the credentialed attestation job to the reviewed minimum:

permissions:
  contents: read
  id-token: write
  attestations: write
  artifact-metadata: write

Do not grant package, release, pull-request, issue, ref, workflow, security-event, or repository-content write authority. Do not use secrets: inherit, COPILOT_GITHUB_TOKEN, NVIDIA_NIM_API_KEY, or any model provider.

Checkout the trusted verifier only from the immutable called-workflow identity:

repository: ${{ job.workflow_repository }}
ref: ${{ job.workflow_sha }}
persist-credentials: false

Use a separate trusted-control-plane path. Never checkout the caller repository, caller source SHA, a mutable central branch/tag, or downloaded evidence as executable source.

Download only the explicitly named same-run sealed evidence artifact into a separate untrusted-data path with an immutable official action pin. Verify the caller-supplied artifact digest against trusted GitHub artifact metadata or a cryptographically equivalent fail-closed receipt; GitHub's warning-only digest behavior must not be treated as success. If the platform does not expose a trustworthy exact digest without broadening privileges, fail closed and document the required caller receipt rather than silently weakening the contract.

Trusted verifier

Implement scripts/ci/verify_exact_artifact_sbom_handoff.py as standard-library-only, provider-neutral, data-only verification. It must never import distributions, execute hooks, invoke subprocesses, evaluate code, or extract wheel/sdist archives.

Before any attestation, require:

  • one canonical real evidence root with no symlinked final or ancestor component;
  • exactly six regular direct-child files: one canonical wheel, one canonical sdist, paired .cdx.json files, SOURCE_IDENTITY.json, and SHA256SUMS;
  • finite bounded descriptor reads and descriptor/path identity checks;
  • strict RFC 8259 JSON with duplicate-member and non-finite-number rejection;
  • canonical sorted SHA256SUMS covering exactly the five non-checksum payloads;
  • explicit filename and SHA-256 equality for every caller input;
  • canonical source identity whose repository and 40-character lowercase source SHA equal the explicit inputs;
  • exact CycloneDX 1.7 schema, bomFormat, specVersion, and integer document version;
  • exact root-component artifact SHA-256 and filename-property binding for each distribution;
  • canonical RFC UUIDv5 serial identity where applicable;
  • rehashing of every accepted file and checksum snapshot before emitting a deterministic strict verification manifest;
  • stable non-leaking failures and no runner-local paths or secrets in output.

The verifier must expose a narrow documented CLI and be independently testable without OIDC or GitHub APIs.

Signing and verification

Use immutable actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 exactly twice: once per canonical wheel and sdist. Bind each call to the verified subject name, exact sha256: digest, paired SBOM path, and expected CycloneDX predicate type. Do not rebuild or resolve dependencies.

Capture each action's bundle-path. Before any downstream publication can consume the result, run cryptographic verification against:

  • exact source repository;
  • exact source SHA;
  • signer repository;
  • exact reusable-workflow identity;
  • subject filename and digest;
  • expected CycloneDX predicate type.

Use GitHub CLI attestation verification only as a verifier; it must not publish, create releases, move refs, or mutate repository contents.

Offline evidence

Create a deterministic offline-verification directory containing at least:

  • the strict trusted verification manifest;
  • both Sigstore attestation bundles;
  • trusted-root material required for offline gh attestation verify;
  • a canonical SHA-256 manifest for the offline bundle;
  • beginner-readable offline verification commands and expected identity/predicate checks.

Upload this evidence with an immutable official action pin and finite retention. Keep wheel and sdist as the only package-manager publication inputs; SBOMs and bundles are evidence, not packages.

Quality gates

Extend .github/workflows/exact-artifact-sbom-attestation-quality.yml so the exact GREEN head runs:

  • Python 3.10 compatibility;
  • Python 3.14 focused and complete tests;
  • 100% production statement and branch coverage for the verifier;
  • 100% public docstrings for the verifier;
  • compileall for production and contract tests;
  • workflow source/permissions/action-pin tests;
  • malicious fixtures covering symlinks, nested files, oversized payloads, duplicate JSON keys, NaN/infinity, stale source, digest mismatch, filename mismatch, wrong predicate/schema/version, malformed checksum coverage, artifact cardinality drift, caller-code execution attempts, and output mutation.

Do not weaken existing central full-test coverage or security gates to make this slice pass.

Documentation

Write docs/doctoring/exact-artifact-sbom-attestation.md with:

  • architecture and credential-separation diagram;
  • trust boundary and nonclaims;
  • exact-head lifecycle;
  • caller contract and immutable pinning;
  • incident recovery and rollback;
  • workflow versioning;
  • online and offline verification;
  • SLSA wording restricted to SLSA Build Lx (v1.2) only after every normative requirement is mapped;
  • APA 7 references to CycloneDX 1.7, actions/attest v4.1.0 at the reviewed commit, official GitHub artifact-attestation and offline-verification documentation, in-toto, and SLSA 1.2.

Update CHANGELOG.md and the central workflow catalogue. Keep the PR Draft. Reproduce the complete exact-head central quality and security matrix. Do not ready, approve, auto-merge, merge, tag, release, or publish.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 5 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: eb041a37-b026-487b-b2d4-3e91592c8e54

📥 Commits

Reviewing files that changed from the base of the PR and between e71fdab and 42ebb82.

📒 Files selected for processing (8)
  • .github/workflows/exact-artifact-sbom-attestation-quality.yml
  • .github/workflows/exact-artifact-sbom-attestation.yml
  • CHANGELOG.md
  • docs/doctoring/exact-artifact-sbom-attestation.md
  • scripts/ci/verify_exact_artifact_sbom_handoff.py
  • tests/test_exact_artifact_sbom_attestation_contract.py
  • tests/test_exact_artifact_sbom_review_regressions.py
  • tests/test_verify_exact_artifact_sbom_handoff.py
📝 Walkthrough

Walkthrough

정확한 6개 파일 증거를 검증하는 Python 도구와 재사용 가능한 GitHub Actions 워크플로를 추가했습니다. 워크플로는 wheel과 sdist에 CycloneDX SBOM 증명을 생성하고 온라인·오프라인 검증 산출물을 보존합니다. 계약 테스트와 품질 게이트도 추가했습니다.

Changes

정확한 아티팩트 SBOM 증명

Layer / File(s) Summary
증거 handoff 검증기
scripts/ci/verify_exact_artifact_sbom_handoff.py, tests/test_verify_exact_artifact_sbom_handoff.py, tests/test_exact_artifact_sbom_review_regressions.py
검증기는 정확한 6개 파일 집합, SHA-256, GNU 체크섬, source identity 및 CycloneDX 1.7 SBOM을 확인합니다. 엄격한 JSON 처리, 경로 안전성, 심볼릭 링크 거부, 원자적 manifest 기록과 CLI 오류 처리를 구현했습니다. 테스트는 정상 경로와 오류 경로를 검증합니다.
증거 intake 및 SBOM 증명 워크플로
.github/workflows/exact-artifact-sbom-attestation.yml, docs/doctoring/exact-artifact-sbom-attestation.md, CHANGELOG.md, tests/test_exact_artifact_sbom_attestation_contract.py
재사용 가능한 workflow_call 워크플로가 동일 실행의 immutable evidence artifact를 검증합니다. 검증된 wheel과 sdist에 SBOM 증명을 생성하고, Sigstore bundle, trusted root 및 오프라인 검증 manifest를 업로드합니다. 문서와 계약 테스트는 권한, 신뢰 경계, 복구 절차 및 검증 조건을 정의합니다.
품질 게이트와 계약 검증
.github/workflows/exact-artifact-sbom-attestation-quality.yml, tests/test_exact_artifact_sbom_attestation_contract.py
Python 3.10과 3.14 환경에서 체크아웃 무결성, 컴파일, 계약 테스트, 브랜치 커버리지 100% 및 문서화 커버리지 100%를 검사합니다. 워크플로는 동시 실행 취소와 저장소 읽기 권한을 사용합니다.

Estimated code review effort: 5 (Critical) | ~90 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Caller
  participant ExactArtifactWorkflow
  participant EvidenceVerifier
  participant AttestationService
  participant OfflineEvidence
  Caller->>ExactArtifactWorkflow: evidence 메타데이터 제공
  ExactArtifactWorkflow->>EvidenceVerifier: 동일 실행 artifact 다운로드 및 검증
  EvidenceVerifier-->>ExactArtifactWorkflow: 검증 manifest 반환
  ExactArtifactWorkflow->>AttestationService: wheel·sdist와 SBOM 증명 요청
  AttestationService-->>ExactArtifactWorkflow: attestation bundle과 trusted root 반환
  ExactArtifactWorkflow->>OfflineEvidence: 온라인·오프라인 검증 자료 업로드
Loading

Possibly related issues

  • ContextualWisdomLab/EgressWeave#46 — 재사용 가능한 SBOM 증명 워크플로와 sealed-evidence 검증을 다룹니다.
  • ContextualWisdomLab/EgressWeave#63 — 동일한 6개 파일 evidence handoff와 증명 워크플로를 요구합니다.
  • ContextualWisdomLab/.github#783 — 이 PR과 동일한 verifier, 워크플로, 문서 및 계약 테스트 목표를 다룹니다.

Possibly related PRs

Suggested labels: needs-revision, do-not-merge

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 정확히 봉인된 SBOM 증거 증명이라는 변경의 핵심을 간결하게 설명합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/exact-artifact-sbom-attestation

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Contributor Author

@opencode-agent The exact current RED head advanced to 0beb249f1156c9e35c098df990c7f28fb54677f5 through one contract-only refinement; implement against this head, not a26f09a9f6c403db1f4db334ec71299a97a4cd7c.

The refinement closes the artifact-archive identity gap without granting extra authority to the OIDC signer:

  • evidence_artifact_id is now a required explicit input alongside name and digest;
  • a separate verify-evidence-artifact job may hold only actions: read and contents: read;
  • that non-OIDC intake job must query the exact artifact ID in inputs.source_repository and require exact name, SHA-256 digest, non-expired state, and .workflow_run.id == github.run_id before content verification;
  • the credentialed attest-exact-artifacts job must depend on that intake job and retain exactly contents: read, id-token: write, attestations: write, and artifact-metadata: write—no actions: read there;
  • both jobs download the same immutable artifact by exact ID with actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 and independently run the trusted content verifier;
  • content-level explicit digests remain the hard integrity gate after download, so the official action's warning-only archive digest behavior cannot silently authorize signing;
  • offline evidence must use actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a and include gh attestation trusted-root material.

No production, workflow, permission, or documentation implementation was added in this commit. Preserve the earlier immutable RED run and reproduce a new exact-current-head RED result before GREEN implementation. All other requirements in comment 5200275244 remain unchanged.

Copy link
Copy Markdown
Contributor Author

@opencode-agent Fix only the two exact-current-head test-contract failures on 420032697629ffe31eb1943606cf0c346fe8f6e4; stop without writing if the branch head differs.

Root causes are confirmed from Exact Artifact SBOM Attestation Quality run 31132009382:

  1. test_artifact_intake_verifies_exact_immutable_same_run_metadata over-specifies the expression syntax by requiring literal ${{ github.run_id }}. The trusted reusable workflow correctly binds .workflow_run.id through the GitHub-provided immutable GITHUB_RUN_ID environment value (--argjson run_id "$GITHUB_RUN_ID"). Update the contract to require that actual same-run binding instead; do not weaken artifact ID/name/digest/repository/source/expiry checks and do not change the workflow.
  2. _valid_handoff(tmp_path / "again") and tmp_path / "third" fail before the intended cardinality assertions because the test fixture calls root.mkdir() without creating the supplied nested parent. Change the helper to create parents (root.mkdir(parents=True)); preserve all cardinality/non-regular/symlink behavior.

Modify only:

  • tests/test_exact_artifact_sbom_attestation_contract.py
  • tests/test_verify_exact_artifact_sbom_handoff.py

Run the focused contracts, complete verifier statement/branch coverage at 100%, public docstrings, Python 3.10 compilation, complete central test suite, and all current security checks. Do not modify production verifier code, reusable or quality workflows, doctoring, CHANGELOG, dependencies, credentials, permissions, refs, signing/attestation behavior, release/publication behavior, or any other path. Keep the PR draft and unmerged; report the new exact head and verification evidence.

@seonghobae
seonghobae marked this pull request as ready for review August 6, 2026 23:47
@seonghobae
seonghobae marked this pull request as draft August 6, 2026 23:50
@seonghobae
seonghobae marked this pull request as ready for review August 6, 2026 23:51

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Review exact current head 42ebb82c1cba57adea4657c6f4941af8c812091b only. Recheck immutable workflow-source binding, read-only intake/signer separation, exact signer permissions, inert six-file handling, environment-only input transfer, finite RFC 8259 JSON, CycloneDX 1.7 subject/digest closure, deterministic UUID/checksum/offline evidence, two exact attest calls, and SLSA nonclaims. Do not modify or merge.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='42ebb82c1cba57adea4657c6f4941af8c812091b'
base='e71fdab2ab088001f218765ecb5e3b7fabfee11a'
repo='ContextualWisdomLab/.github'

echo '== Exact revision and scope =='
printf 'HEAD: '; git rev-parse HEAD
test "$(git rev-parse HEAD)" = "$head"
git cat-file -e "${base}^{commit}"
git diff --name-status "${base}..${head}"
git diff --check "${base}..${head}"

echo '== Candidate outlines =='
ast-grep outline scripts/ci/verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_exact_artifact_sbom_attestation_contract.py --items all
ast-grep outline tests/test_exact_artifact_sbom_review_regressions.py --items all

echo '== Reusable workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation.yml

echo '== Quality workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation-quality.yml

echo '== Verifier =='
cat -n scripts/ci/verify_exact_artifact_sbom_handoff.py

echo '== Focused tests =='
cat -n tests/test_verify_exact_artifact_sbom_handoff.py
cat -n tests/test_exact_artifact_sbom_attestation_contract.py
cat -n tests/test_exact_artifact_sbom_review_regressions.py

echo '== Documentation and CHANGELOG diff =='
cat -n docs/doctoring/exact-artifact-sbom-attestation.md
git diff --unified=40 "${base}..${head}" -- CHANGELOG.md

echo '== Targeted static checks =='
python3 - <<'PY'
from pathlib import Path
import re

workflow = Path(".github/workflows/exact-artifact-sbom-attestation.yml").read_text(encoding="utf-8")
print("workflow_call_only:", bool(re.search(r"^on:\n\s+workflow_call:", workflow, re.M)))
print("attest_pin_count:", workflow.count("actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26"))
print("trusted_repo_binding:", "repository: ${{ job.workflow_repository }}" in workflow)
print("trusted_sha_binding:", "ref: ${{ job.workflow_sha }}" in workflow)
print("shell_input_interpolation:", "${{ inputs." in "\n".join(
    m.group(0) for m in re.finditer(r"run: \|\n(?: {10,}.*\n)*", workflow)
))
for permission in ("actions: read", "contents: read", "id-token: write", "attestations: write", "artifact-metadata: write"):
    print(f"{permission}: {workflow.count(permission)}")
PY

rg -n -C3 '\$\{\{\s*inputs\.' .github/workflows/exact-artifact-sbom-attestation.yml || true
rg -n -C4 '(CANONICAL|PREDICATE|https://cyclonedx\.org/bom|parse_constant|lstat|symlink|serialNumber|uuid|SHA256SUMS|trusted_root|custom-trusted-root|gh attestation verify|SLSA)' \
  scripts/ci/verify_exact_artifact_sbom_handoff.py \
  tests/test_verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_attestation_contract.py \
  tests/test_exact_artifact_sbom_review_regressions.py \
  .github/workflows/exact-artifact-sbom-attestation.yml \
  docs/doctoring/exact-artifact-sbom-attestation.md

echo '== Prohibited writer and execution patterns =='
rg -n -i -C2 \
  '(git\s+(push|commit|tag|merge)|gh\s+(pr|release|api|workflow)|contents:\s*write|pull-requests:\s*write|issues:\s*write|actions:\s*write|packages:\s*write|secrets:\s*inherit|COPILOT_GITHUB_TOKEN|NVIDIA_NIM_API_KEY|subprocess|os\.system|os\.popen|eval\s*\(|exec\s*\(|tarfile|zipfile|unpack_archive)' \
  .github/workflows scripts/ci/verify_exact_artifact_sbom_handoff.py || true
fd -a -t f . .github/workflows | sort
fd -a -t f . .github/workflows | rg -i '(finalize|repair|trigger|materializ|snapshot|encoded|patch|branch)' || true

echo '== Exact-head PR checks and inline comments =='
gh pr view 797 --repo "$repo" \
  --json headRefOid,baseRefOid,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, (.conclusion // ""), .details_url] | `@tsv`'
gh api "repos/${repo}/pulls/797/comments?per_page=100" \
  --jq '[.[] | select(.position != null) | {path, line, user: .user.login, body}]'

Length of output: 203114


@seonghobae Formal read-only review completed for exact head 42ebb82c1cba57adea4657c6f4941af8c812091b against base e71fdab2ab088001f218765ecb5e3b7fabfee11a.

Verdict: no blocking source-level findings.

I verified these controls:

  • Both trusted verifier checkouts use ${{ job.workflow_repository }} and ${{ job.workflow_sha }} with credentials disabled.
  • The intake job has only actions: read and contents: read.
  • The signing job has only contents: read, id-token: write, attestations: write, and artifact-metadata: write.
  • Caller-controlled values enter shell steps through named environment variables. No multiline run: body contains ${{ inputs.* }}.
  • The verifier treats the evidence as data. It does not import, execute, install, build, test, or unpack caller content.
  • The verifier rejects symlinked evidence-root ancestors, non-regular members, and any evidence set other than the exact six direct-child files.
  • The verifier requires SHA-256 closure for all evidence files.
  • The verifier rejects duplicate JSON keys, malformed UTF-8, oversized JSON, and NaN, Infinity, and -Infinity.
  • The verifier requires the canonical predicate https://cyclonedx.org/bom before evidence-root access.
  • The verifier enforces CycloneDX 1.7, integer document version 1, deterministic UUIDv5 serial identity, exact filename property, and one canonical SHA-256 root-subject hash.
  • The signer has exactly two pinned actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 invocations.
  • The workflow performs online and offline verification. The offline evidence contains both bundles, trusted_root.jsonl, verified-handoff data, deterministic SHA256SUMS, and copyable commands.
  • The doctoring states that the workflow does not claim SLSA Build L3 (v1.2).
  • git diff --check reported no whitespace errors.
  • The exact-head Python 3.10 and Python 3.14 quality checks succeeded. The listed CodeQL, security, SAST, secret, dependency, OSV, Scorecard, SBOM, Strix, OpenCode, and Noema checks also completed successfully, or were explicitly skipped or neutral auxiliary checks.

GitHub currently reports REVIEW_REQUIRED and BLOCKED. The PR is not a draft. These are review and merge-state conditions. They are not source-level defects.

I did not modify files, refs, pull request state, review state, release state, or merge state.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review
@cwl-noema-review
@opencode-agent

Review exact current head 42ebb82c1cba57adea4657c6f4941af8c812091b only. Verify immutable called-workflow checkout, strict six-file inert evidence intake, finite RFC 8259 JSON, exact SHA-256 and CycloneDX 1.7 subject binding, two pinned attestations, deterministic offline bundles/checksums, least-privilege signing permissions, no caller-input shell interpolation, explicit SLSA nonclaims, 100% statement/branch/public-docstring evidence, and absence of temporary branch writers. Reuse no predecessor evidence. Preserve reviewer credentials and protections; do not mutate branches, approve synthetically, merge, release, publish, or bypass policy.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='42ebb82c1cba57adea4657c6f4941af8c812091b'
base='e71fdab2ab088001f218765ecb5e3b7fabfee11a'
repo='ContextualWisdomLab/.github'

echo '== Exact revision and changed scope =='
printf 'checked-out HEAD: '; git rev-parse HEAD
test "$(git rev-parse HEAD)" = "$head"
git cat-file -e "${base}^{commit}"
git diff --name-status "${base}..${head}"
git diff --stat "${base}..${head}"
git diff --check "${base}..${head}"

echo '== Required path availability =='
for path in \
  .github/workflows/exact-artifact-sbom-attestation.yml \
  .github/workflows/exact-artifact-sbom-attestation-quality.yml \
  scripts/ci/verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_attestation_contract.py \
  tests/test_verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_review_regressions.py \
  docs/doctoring/exact-artifact-sbom-attestation.md \
  CHANGELOG.md
do
  test -f "$path"
  printf '%s\n' "$path"
done

echo '== Structure maps =='
ast-grep outline scripts/ci/verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_exact_artifact_sbom_attestation_contract.py --items all
ast-grep outline tests/test_exact_artifact_sbom_review_regressions.py --items all

echo '== Reusable workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation.yml

echo '== Quality workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation-quality.yml

echo '== Verifier =='
cat -n scripts/ci/verify_exact_artifact_sbom_handoff.py

echo '== Focused tests =='
cat -n tests/test_verify_exact_artifact_sbom_attestation_contract.py
cat -n tests/test_verify_exact_artifact_sbom_handoff.py
cat -n tests/test_exact_artifact_sbom_review_regressions.py

echo '== Doctoring and changelog =='
cat -n docs/doctoring/exact-artifact-sbom-attestation.md
git diff --unified=45 "${base}..${head}" -- CHANGELOG.md

echo '== Trust-boundary searches =='
rg -n -C3 '\$\{\{\s*inputs\.' .github/workflows/exact-artifact-sbom-attestation.yml || true
rg -n -C4 \
  '(CANONICAL|PREDICATE|https://cyclonedx\.org/bom|parse_constant|NaN|Infinity|lstat|symlink|serialNumber|uuid|SHA256SUMS|trusted_root|custom-trusted-root|gh attestation verify|SLSA)' \
  scripts/ci/verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_attestation_contract.py \
  tests/test_verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_review_regressions.py \
  .github/workflows/exact-artifact-sbom-attestation.yml \
  docs/doctoring/exact-artifact-sbom-attestation.md

echo '== Authority, execution, and temporary workflow checks =='
rg -n -i -C2 \
  '(git\s+(push|commit|tag|merge)|gh\s+(pr|release|api|workflow)|contents:\s*write|pull-requests:\s*write|issues:\s*write|actions:\s*write|packages:\s*write|secrets:\s*inherit|COPILOT_GITHUB_TOKEN|NVIDIA_NIM_API_KEY|subprocess|os\.system|os\.popen|eval\s*\(|exec\s*\(|tarfile|zipfile|unpack_archive)' \
  .github/workflows scripts/ci/verify_exact_artifact_sbom_handoff.py || true
fd -a -t f . .github/workflows | sort
fd -a -t f . .github/workflows | rg -i '(finalize|repair|trigger|materializ|snapshot|encoded|patch|branch)' || true

echo '== Exact-head GitHub evidence =='
gh pr view 797 --repo "$repo" \
  --json headRefOid,baseRefOid,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, (.conclusion // ""), .details_url] | `@tsv`'
gh api "repos/${repo}/pulls/797/comments?per_page=100" \
  --jq '[.[] | select(.position != null) | {path, line, user: .user.login, body}]'

Length of output: 54696


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='42ebb82c1cba57adea4657c6f4941af8c812091b'
base='e71fdab2ab088001f218765ecb5e3b7fabfee11a'
repo='ContextualWisdomLab/.github'

echo '== Exact revision and changed scope =='
printf 'checked-out HEAD: '; git rev-parse HEAD
test "$(git rev-parse HEAD)" = "$head"
git cat-file -e "${base}^{commit}"
git diff --name-status "${base}..${head}"
git diff --stat "${base}..${head}"
git diff --check "${base}..${head}"

echo '== Required path availability =='
for path in \
  .github/workflows/exact-artifact-sbom-attestation.yml \
  .github/workflows/exact-artifact-sbom-attestation-quality.yml \
  scripts/ci/verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_attestation_contract.py \
  tests/test_verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_review_regressions.py \
  docs/doctoring/exact-artifact-sbom-attestation.md \
  CHANGELOG.md
do
  test -f "$path"
  printf '%s\n' "$path"
done

echo '== Structure maps =='
ast-grep outline scripts/ci/verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_exact_artifact_sbom_attestation_contract.py --items all
ast-grep outline tests/test_exact_artifact_sbom_review_regressions.py --items all

echo '== Reusable workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation.yml

echo '== Quality workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation-quality.yml

echo '== Verifier =='
cat -n scripts/ci/verify_exact_artifact_sbom_handoff.py

echo '== Focused tests =='
cat -n tests/test_exact_artifact_sbom_attestation_contract.py
cat -n tests/test_verify_exact_artifact_sbom_handoff.py
cat -n tests/test_exact_artifact_sbom_review_regressions.py

echo '== Doctoring and changelog =='
cat -n docs/doctoring/exact-artifact-sbom-attestation.md
git diff --unified=45 "${base}..${head}" -- CHANGELOG.md

echo '== Trust-boundary searches =='
rg -n -C3 '\$\{\{\s*inputs\.' .github/workflows/exact-artifact-sbom-attestation.yml || true
rg -n -C4 \
  '(CANONICAL|PREDICATE|https://cyclonedx\.org/bom|parse_constant|NaN|Infinity|lstat|symlink|serialNumber|uuid|SHA256SUMS|trusted_root|custom-trusted-root|gh attestation verify|SLSA)' \
  scripts/ci/verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_attestation_contract.py \
  tests/test_verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_review_regressions.py \
  .github/workflows/exact-artifact-sbom-attestation.yml \
  docs/doctoring/exact-artifact-sbom-attestation.md

echo '== Authority, execution, and temporary workflow checks =='
rg -n -i -C2 \
  '(git\s+(push|commit|tag|merge)|gh\s+(pr|release|api|workflow)|contents:\s*write|pull-requests:\s*write|issues:\s*write|actions:\s*write|packages:\s*write|secrets:\s*inherit|COPILOT_GITHUB_TOKEN|NVIDIA_NIM_API_KEY|subprocess|os\.system|os\.popen|eval\s*\(|exec\s*\(|tarfile|zipfile|unpack_archive)' \
  .github/workflows scripts/ci/verify_exact_artifact_sbom_handoff.py || true
fd -a -t f . .github/workflows | sort
fd -a -t f . .github/workflows | rg -i '(finalize|repair|trigger|materializ|snapshot|encoded|patch|branch)' || true

echo '== Exact-head GitHub evidence =='
gh pr view 797 --repo "$repo" \
  --json headRefOid,baseRefOid,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, (.conclusion // ""), .details_url] | `@tsv`'
gh api "repos/${repo}/pulls/797/comments?per_page=100" \
  --jq '[.[] | select(.position != null) | {path, line, user: .user.login, body}]'

Length of output: 202854


@seonghobae Formal read-only review completed for exact head 42ebb82c1cba57adea4657c6f4941af8c812091b against base e71fdab2ab088001f218765ecb5e3b7fabfee11a.

Verdict: no blocking source-level findings.

I verified these controls:

  • Both trusted verifier checkouts use ${{ job.workflow_repository }} and ${{ job.workflow_sha }}. Both disable persisted credentials.
  • The intake job has only actions: read and contents: read.
  • The signing job has only contents: read, id-token: write, attestations: write, and artifact-metadata: write.
  • The workflow passes caller-controlled values through named environment variables in shell steps. No multiline run: body contains ${{ inputs.* }}.
  • The verifier handles evidence as inert data. It does not import, execute, install, build, test, source, or unpack downloaded content.
  • The verifier rejects symlinked evidence-root ancestors and non-regular members.
  • The verifier requires exactly six direct-child evidence files and validates SHA-256 closure for all six files.
  • The verifier rejects duplicate JSON keys, malformed UTF-8, oversized JSON, NaN, Infinity, and -Infinity.
  • The verifier requires https://cyclonedx.org/bom before evidence-root access.
  • The hostile regression reseals the source identity and checksum closure with a noncanonical predicate. It expects EvidenceError.
  • The verifier enforces CycloneDX 1.7, integer document version 1, deterministic UUIDv5 serial identity, exact filename property, and one canonical SHA-256 root-subject hash.
  • The workflow has exactly two pinned actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 calls.
  • Online verification binds the source repository, source SHA, signer repository, signer workflow, and predicate.
  • Offline evidence includes both Sigstore bundles, trusted_root.jsonl, the verified handoff manifest, deterministic SHA256SUMS, and copyable online and offline commands.
  • The doctoring has explicit SLSA Build L3 (v1.2) nonclaims.
  • The quality workflow enforces 100% verifier statement and branch coverage plus 100% public docstrings. The exact-head Python 3.10 and Python 3.14 checks succeeded.
  • The exact-head CodeQL, SAST, secret, dependency, OSV, SBOM, Scorecard, and Strix checks completed successfully. Auxiliary skipped and neutral checks are identified as such.
  • The eight-file diff adds no temporary repair, finalizer, trigger, materializer, or branch-writing workflow.
  • git diff --check completed without whitespace errors.

GitHub reports REVIEW_REQUIRED and BLOCKED. These are pull request policy states. They are not source-level defects.

I did not modify files, refs, pull request settings, review state, merge state, release state, or reviewer credentials.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

/oc review

Review exact current head 42ebb82c1cba57adea4657c6f4941af8c812091b only. All direct exact-head checks are successful. Revalidate strict finite JSON, shell-input separation, exact CycloneDX subject binding, deterministic offline evidence, least-privilege signing, 100% production statement/branch coverage, and absence of temporary writers. Review only; do not mutate, merge, or release.

Copy link
Copy Markdown
Contributor Author

/oc Review exact current head 42ebb82c1cba57adea4657c6f4941af8c812091b read-only. Verify immutable reusable-workflow source binding, read-only intake versus signer separation, exact signing permissions, inert bounded six-file handling, environment-only caller-input transfer, strict finite RFC 8259 JSON, CycloneDX 1.7 subject/digest/root-component closure, deterministic UUID/checksum/offline evidence, exact wheel/sdist attest calls, and explicit SLSA nonclaims. Exact-head checks are green and threads are resolved. Publish a formal current-head verdict; do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review Independently review exact current head 42ebb82c1cba57adea4657c6f4941af8c812091b only. Exact-head quality, security, supply-chain and coverage evidence is successful and inline findings are resolved. Verify the reviewed feature boundary, adversarial/fail-closed behavior, complete docstrings and statement/branch coverage, least privilege, and absence of temporary writers, self-approval or protected-merge bypass. Submit formal APPROVE only if this exact head has no blocker; otherwise report actionable file-specific findings. Predecessor-head evidence is stale.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review
@cwl-noema-review review
@coderabbitai full review

Final read-only exact-head review for 42ebb82c1cba57adea4657c6f4941af8c812091b. All nine exact-head quality, security, and supply-chain workflows are successful, every actionable thread is resolved, and the permanent eight-file slice contains no repair workflow. Validate immutable trusted-verifier source binding, six-file evidence cardinality and digest closure, inert caller artifacts, separated least-privilege signer authority, exact CycloneDX 1.7 subject binding, deterministic offline checksums/instructions, strict finite JSON, no shell interpolation of caller inputs, and 100% statement/branch/docstring evidence. Submit a formal current-head verdict only; do not mutate, attest real release artifacts, or merge.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='42ebb82c1cba57adea4657c6f4941af8c812091b'
base='e71fdab2ab088001f218765ecb5e3b7fabfee11a'
repo='ContextualWisdomLab/.github'

echo '== Revision and permanent scope =='
git rev-parse HEAD
test "$(git rev-parse HEAD)" = "$head"
git cat-file -e "${base}^{commit}"
git diff --name-status "${base}..${head}"
git diff --check "${base}..${head}"

echo '== Structure maps =='
ast-grep outline scripts/ci/verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_verify_exact_artifact_sbom_handoff.py --items all
ast-grep outline tests/test_exact_artifact_sbom_attestation_contract.py --items all
ast-grep outline tests/test_exact_artifact_sbom_review_regressions.py --items all

echo '== Reusable workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation.yml

echo '== Quality workflow =='
cat -n .github/workflows/exact-artifact-sbom-attestation-quality.yml

echo '== Verifier =='
cat -n scripts/ci/verify_exact_artifact_sbom_handoff.py

echo '== Focused tests =='
cat -n tests/test_exact_artifact_sbom_attestation_contract.py
cat -n tests/test_verify_exact_artifact_sbom_handoff.py
cat -n tests/test_exact_artifact_sbom_review_regressions.py

echo '== Documentation and changelog =='
cat -n docs/doctoring/exact-artifact-sbom-attestation.md
git diff --unified=45 "${base}..${head}" -- CHANGELOG.md

echo '== Targeted trust-boundary checks =='
rg -n -C3 '\$\{\{\s*inputs\.' .github/workflows/exact-artifact-sbom-attestation.yml || true
rg -n -C4 \
  '(CANONICAL|PREDICATE|https://cyclonedx\.org/bom|parse_constant|NaN|Infinity|lstat|symlink|serialNumber|uuid|SHA256SUMS|trusted_root|custom-trusted-root|gh attestation verify|SLSA)' \
  scripts/ci/verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_attestation_contract.py \
  tests/test_verify_exact_artifact_sbom_handoff.py \
  tests/test_exact_artifact_sbom_review_regressions.py \
  .github/workflows/exact-artifact-sbom-attestation.yml \
  docs/doctoring/exact-artifact-sbom-attestation.md

echo '== Authority, execution, and temporary-workflow checks =='
rg -n -i -C2 \
  '(git\s+(push|commit|tag|merge)|gh\s+(pr|release|api|workflow)|contents:\s*write|pull-requests:\s*write|issues:\s*write|actions:\s*write|packages:\s*write|secrets:\s*inherit|COPILOT_GITHUB_TOKEN|NVIDIA_NIM_API_KEY|subprocess|os\.system|os\.popen|eval\s*\(|exec\s*\(|tarfile|zipfile|unpack_archive)' \
  .github/workflows scripts/ci/verify_exact_artifact_sbom_handoff.py || true
fd -a -t f . .github/workflows | sort
fd -a -t f . .github/workflows | rg -i '(finalize|repair|trigger|materializ|snapshot|encoded|patch|branch)' || true

echo '== Exact-head PR metadata, checks, and unresolved review threads =='
gh pr view 797 --repo "$repo" \
  --json headRefOid,baseRefOid,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, (.conclusion // ""), .details_url] | `@tsv`'
gh api graphql -F owner='ContextualWisdomLab' -F name='.github' -F number=797 -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      headRefOid
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          path
          line
          comments(first: 1) { nodes { author { login } body } }
        }
      }
    }
  }
}' --jq '.data.repository.pullRequest'

Length of output: 202666


@seonghobae Formal read-only review completed for exact head 42ebb82c1cba57adea4657c6f4941af8c812091b against base e71fdab2ab088001f218765ecb5e3b7fabfee11a.

Verdict: no blocking source-level findings.

I verified the requested controls:

  • The trusted verifier checkout uses immutable ${{ job.workflow_repository }} and ${{ job.workflow_sha }}. Credential persistence is disabled.
  • The intake job has only actions: read and contents: read.
  • The signer job has only contents: read, id-token: write, attestations: write, and artifact-metadata: write.
  • The verifier treats downloaded evidence as inert data. It does not execute, import, install, build, test, source, or unpack caller artifacts.
  • The verifier rejects symlinked evidence-root ancestors and requires exactly six regular direct-child evidence files.
  • The verifier enforces SHA-256 closure, source identity, CycloneDX 1.7, integer document version, UUIDv5 serial identity, exact filename property, and exact root-subject SHA-256 binding.
  • The verifier rejects duplicate JSON members, malformed UTF-8, oversized JSON, NaN, Infinity, and -Infinity.
  • The verifier requires the canonical predicate https://cyclonedx.org/bom before evidence-root access.
  • The hostile regression reseals a noncanonical predicate and expects EvidenceError.
  • Multiline shell bodies use named environment variables for caller-controlled values. The inspection found no ${{ inputs.* }} interpolation in shell bodies.
  • The signer has exactly two pinned actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 calls.
  • The workflow performs online verification and exports both bundles, trusted_root.jsonl, the verified handoff manifest, deterministic SHA256SUMS, and copyable online and offline verification commands.
  • The doctoring states explicit SLSA Build L3 (v1.2) nonclaims.
  • Python 3.10 contract and Python 3.14 exact contract and complete coverage succeeded.
  • The queried CodeQL, SAST, secret, dependency, OSV, SBOM, Scorecard, and Strix checks succeeded. The remaining listed checks are explicitly skipped or neutral auxiliary checks.
  • All returned review threads are resolved. One superseded documentation thread is outdated.
  • git diff --check completed without whitespace errors.
  • The changed slice contains no temporary repair, finalizer, trigger, materializer, snapshot, encoded-patch, or branch-writing workflow.

GitHub reports REVIEW_REQUIRED and BLOCKED. These are pull request policy states. They are not source-level defects.

I did not modify files, refs, pull request state, reviewer state, release state, or merge state.

⚠️ Action not completed

Review rate limited.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 25 minutes.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review
@cwl-noema-review review

Re-read the exact current head and submit a formal review-only verdict for immutable trusted-verifier source binding, sealed evidence cardinality/digest closure, inert artifact handling, separated least-privilege signer authority, exact CycloneDX subject binding, online/offline attestation evidence, 100% coverage/docstrings, and all current-head security/supply-chain checks. Do not attest real release artifacts, mutate, or merge.

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

Perform a fresh exact-current-head review of trusted-verifier source binding, sealed evidence closure, and signer least privilege. Submit the verdict without mutating or merging.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

@seonghobae I will perform a fresh full review of the exact current head. I will check trusted-verifier source binding, sealed evidence closure, and signer least privilege. I will not modify or merge the pull request.

⚠️ Action not completed

Review rate limited.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 5 minutes.

Copy link
Copy Markdown
Contributor Author

@opencode-agent

Submit a formal current-head GitHub review after the current checks settle. Approve only if all exact-head checks succeed and no actionable finding remains; otherwise post the concrete blocker. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@coderabbitai

Please submit the formal current-head review conclusion after the latest exact-head checks complete. Do not mutate or merge.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/.github'
pr='797'

echo '== Pull request state =='
gh pr view "$pr" --repo "$repo" \
  --json number,headRefOid,baseRefOid,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup

head=$(gh pr view "$pr" --repo "$repo" --json headRefOid --jq '.headRefOid')
echo "== Current head: ${head} =="

echo '== Check runs =='
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, (.conclusion // "in_progress"), .details_url] | `@tsv`'

echo '== Review threads =='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='.github' \
  -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      headRefOid
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          path
          line
          comments(first: 1) {
            nodes { author { login } body }
          }
        }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest'

Length of output: 34249


@seonghobae Formal current-head review conclusion for PR #797:

Verdict: no blocking source-level findings.

I verified the current head 42ebb82c1cba57adea4657c6f4941af8c812091b against base e71fdab2ab088001f218765ecb5e3b7fabfee11a.

The current exact-head quality checks succeeded:

  • Python 3.10 contract
  • Python 3.14 exact contract and complete coverage

The current security and supply-chain checks succeeded, including CodeQL, Semgrep, gitleaks, OSV, dependency review, Trivy, Scorecard, SBOM generation, and Strix. Completed SKIPPED and NEUTRAL auxiliary checks are not failures.

All returned review threads are resolved. The reviewed implementation has no remaining actionable finding for immutable verifier binding, inert six-file evidence verification, CycloneDX subject closure, signer least privilege, caller-input shell isolation, or online and offline attestation evidence.

GitHub still reports REVIEW_REQUIRED and BLOCKED. These are remaining review-policy states. They are not source-level defects.

I did not modify files, refs, PR settings, review state, merge state, or release state.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review

Use the newest exact head only. If every required check is green and there is no actionable finding, submit formal approval; otherwise state the blocker. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review review

Use exact-current-head evidence only. Approve formally only when required checks are green and no actionable finding remains; otherwise identify the blocker. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review
@cwl-noema-review review

Do not post another top-level acknowledgement. Submit the formal exact-head review verdict through the GitHub review API when current-head checks are complete; approve only if no blocker remains. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

Use the exact current head only and submit the review verdict through the formal GitHub review surface; do not post another summary comment, mutate, or merge.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Rate Limit Exceeded

@seonghobae have exceeded the limit for the number of chat messages per hour. Please wait 6 minutes and 36 seconds before sending another message.

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review

Please use the GitHub review API rather than another comment for the final exact-head verdict. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@opencode-agent

Final action expected: use the GitHub review API for the exact current head. Approve only if current required checks are successful and no actionable finding remains; otherwise post one concrete blocking review. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review

Submit one formal exact-current-head review through GitHub's review API. Do not add another discussion comment, mutate, or merge.

Copy link
Copy Markdown
Contributor Author

@opencode-agent

Do not acknowledge. Submit exactly one formal review on the exact current head through GitHub's review API after checks complete. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review

Do not acknowledge. Submit exactly one formal review on the exact current head through GitHub's review API after checks complete. Do not mutate or merge.

Copy link
Copy Markdown
Contributor Author

@coderabbitai

Do not acknowledge. Submit exactly one formal review on the exact current head through GitHub's review API after checks complete. Do not mutate or merge.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/.github'
pr='797'

echo '== Pull request =='
gh pr view "$pr" --repo "$repo" \
  --json number,headRefOid,baseRefOid,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup

head="$(gh pr view "$pr" --repo "$repo" --json headRefOid --jq '.headRefOid')"
printf '== Exact head ==\n%s\n' "$head"

echo '== Check runs =='
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, (.conclusion // "in_progress"), .details_url] | `@tsv`'

echo '== Review threads =='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='.github' \
  -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      headRefOid
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          path
          line
          comments(first: 1) { nodes { author { login } body } }
        }
      }
      reviews(last: 100) {
        nodes {
          author { login }
          state
          commit { oid }
          submittedAt
        }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest'

Length of output: 34543


@seonghobae Formal approval was not submitted.

PR #797 is at 42ebb82c1cba57adea4657c6f4941af8c812091b. The reported quality, security, and supply-chain checks are complete. The returned review threads are resolved.

GitHub reports mergeStateStatus: DIRTY and reviewDecision: REVIEW_REQUIRED. DIRTY is a mergeability blocker. Resolve the merge conflict before a formal approval.

A CodeRabbit approval also requires the explicit top-level command @coderabbitai approve.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review @coderabbitai

No further discussion comments are needed. Complete the formal exact-current-head review through the review API only; do not mutate or merge.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/.github'
pr='797'

echo '== Pull request state =='
gh pr view "$pr" --repo "$repo" \
  --json number,headRefOid,baseRefOid,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup

head="$(gh pr view "$pr" --repo "$repo" --json headRefOid --jq '.headRefOid')"
printf '== Exact current head ==\n%s\n' "$head"

echo '== Check runs =='
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
  --jq '.check_runs[] | [.name, .status, (.conclusion // "in_progress"), .details_url] | `@tsv`'

echo '== Review threads =='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='.github' \
  -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      headRefOid
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          path
          line
          comments(first: 1) {
            nodes { author { login } body }
          }
        }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest'

Length of output: 34267


@seonghobae Formal approval was not submitted.

PR #797 is still at exact head 42ebb82c1cba57adea4657c6f4941af8c812091b.

The required quality, security, and supply-chain checks succeeded. The returned review threads are resolved.

GitHub reports mergeStateStatus: DIRTY. This merge conflict is the current blocker. Resolve it through the normal merge-conflict process. Then request a new exact-head review.

I did not modify the branch, pull request, or merge state.

You are interacting with an AI system.

@opencode-agent
opencode-agent Bot disabled auto-merge August 7, 2026 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant