Skip to content

ci(agent-policy): re-vendor the canonical lifecycle workflow - #129

Merged
willgriffin merged 1 commit into
mainfrom
claude/128-revendor-lifecycle-workflow
Jul 28, 2026
Merged

ci(agent-policy): re-vendor the canonical lifecycle workflow#129
willgriffin merged 1 commit into
mainfrom
claude/128-revendor-lifecycle-workflow

Conversation

@willgriffin

Copy link
Copy Markdown
Contributor

Why

This repository's vendored .github/workflows/agent-policy.yml had fallen behind canonical, failing the fleet drift check on happyvertical/have-config:

ERROR happyvertical/ocr: …/agent-policy.yml differs from the canonical lifecycle workflow

What changed

Replaced with the canonical bytes. Against the old copy that drops a concurrency: block canonical no longer declares, renames the job from lifecycle / diagnostic to lifecycle, refreshes the pr_number input description, and — the part that actually matters — replaces sigstore/cosign-installer@v4 with a direct, checksum-pinned cosign v3 install.

cosign-installer v4 shells out to envsubst, which is not part of the provider-neutral general runner contract the brokered pool provides. The old vendored copy was therefore a latent failure on those runners. Canonical downloads the publisher-compatible binary directly and verifies its pinned SHA-256, so lifecycle enforcement has identical dependencies on every provider (have-config@c855132).

Nothing else is touched — one file, 35 insertions, 3 deletions.

Verification

This repository declares agent_lifecycle_stage: diagnostic with no runner override, so canonical is have-config's templates/github/agent-policy.yml verbatim; the runner substitution is a no-op. The result is byte-equal both to that template and to what happyvertical/smrt already runs:

canonical / smrt / this PR : 50d04dbd8024067861c448a13c1cff5b9a3ca540864b4f72b7d25144497124ad
previous                   : 143c05c4f5f286c3…

actionlint clean.

Generation safety

templates/github/agent-policy.yml is byte-identical at generation 15 (6a565d6), generation 16 (a129dcf) and current have-config main (15d61d2). This repository resolves the stable channel — generation 15 — today, so the same bytes satisfy both the artifact it runs now and the candidate it will run once the generation-16 rollout finalizes. This change does not need sequencing around that rollout.

Closes #128
Parent: happyvertical/have-config#329

{"schema":"hv-agent-run:v1","runtime":"claude","session":"claude-revendor-ocr-9a1d24","issue":"128","policy_revision":"1.0.0","validation":["byte-equality verified against have-config templates/github/agent-policy.yml","byte-equality verified against the copy happyvertical/smrt already runs","actionlint clean","canonical template confirmed unchanged across generations 15, 16 and current main","single-file diff confirmed"]}

The vendored copy had fallen behind canonical and was failing the fleet drift
check on happyvertical/have-config. It still carried a concurrency block
canonical no longer declares, the lifecycle / diagnostic job name, a stale
pr_number description, and sigstore/cosign-installer@v4.

The cosign change is the one that matters: cosign-installer v4 shells out to
envsubst, which is not part of the provider-neutral general runner contract the
brokered pool provides, so the old copy was a latent failure on those runners.
Canonical downloads the publisher-compatible cosign v3 binary directly and
verifies its pinned SHA-256.

This repository declares agent_lifecycle_stage: diagnostic with no runner
override, so canonical is have-config's templates/github/agent-policy.yml
verbatim. The result is byte-equal to what happyvertical/smrt already runs.

Closes #128
@willgriffin
willgriffin enabled auto-merge July 28, 2026 06:35
auto-merge was automatically disabled July 28, 2026 13:35

Pull request was closed

@willgriffin willgriffin reopened this Jul 28, 2026
@willgriffin
willgriffin added this pull request to the merge queue Jul 28, 2026
Merged via the queue into main with commit 4c3ea36 Jul 28, 2026
7 of 15 checks passed
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.

ci(agent-policy): re-vendor the canonical lifecycle workflow

1 participant