agentic-os does not dogfood its own pre-push pr-guard #1192

Open
opened 2026-08-22 22:48:32 +00:00 by coilyco-ops · 0 comments
Member

Found while fixing #1034. Split out rather than folded in, because that issue scopes itself to authoring and says the rollout is not this repo's change.

What is true today

pr-guard is in DEFAULT_HOOK_IDS, so apply-agentic-os-hooks.py installs it into every consumer repo. agentic-os itself does not run it.

This repo declares every catalog hook as a repo: local entry in its own .pre-commit-config.yaml, and all of them carry stages: [pre-commit]. There is no pre-push entry anywhere in the file, and pr-guard does not appear in it at all.

So the one repo that authors the pre-push guard is the one repo where pushing straight to main, or pushing to a branch whose PR already merged, meets nothing.

That contradicts the README/AGENTS claim that this repo "ships and dogfoods the catalog pre-commit suite". It dogfoods the pre-commit half.

Why it may be deliberate

Worth checking before changing: a repo: local pre-push entry runs scripts/pr-guard-pre-push.sh from the working tree, so an in-flight edit to that script would govern the push that lands it. That is a real difference from a consumer, which pins a released rev. It may be why the entry was left out.

If so, the answer is to record that reason next to the config rather than leave the absence looking accidental, which is what it looks like now.

Scope

One repo: local hook entry with stages: [pre-push], or a comment explaining the exemption. Not a fleet rollout: consumers already have it.

Note on effect

FORGEJO_TOKEN is unset in native agent sessions on this host, and the PR half degrades to a notice without it. So installing the entry would give this repo the default-branch refusal immediately and the merged-PR refusal only where the token is present. Worth knowing so the change is not mistaken for full coverage.

Found while fixing #1034. Split out rather than folded in, because that issue scopes itself to authoring and says the rollout is not this repo's change. ## What is true today `pr-guard` is in `DEFAULT_HOOK_IDS`, so `apply-agentic-os-hooks.py` installs it into every consumer repo. agentic-os itself does not run it. This repo declares every catalog hook as a `repo: local` entry in its own `.pre-commit-config.yaml`, and **all of them carry `stages: [pre-commit]`**. There is no `pre-push` entry anywhere in the file, and `pr-guard` does not appear in it at all. So the one repo that authors the pre-push guard is the one repo where pushing straight to `main`, or pushing to a branch whose PR already merged, meets nothing. That contradicts the README/AGENTS claim that this repo "ships and dogfoods the catalog pre-commit suite". It dogfoods the pre-commit half. ## Why it may be deliberate Worth checking before changing: a `repo: local` pre-push entry runs `scripts/pr-guard-pre-push.sh` from the working tree, so an in-flight edit to that script would govern the push that lands it. That is a real difference from a consumer, which pins a released `rev`. It may be why the entry was left out. If so, the answer is to record that reason next to the config rather than leave the absence looking accidental, which is what it looks like now. ## Scope One `repo: local` hook entry with `stages: [pre-push]`, or a comment explaining the exemption. Not a fleet rollout: consumers already have it. ## Note on effect `FORGEJO_TOKEN` is unset in native agent sessions on this host, and the PR half degrades to a notice without it. So installing the entry would give this repo the default-branch refusal immediately and the merged-PR refusal only where the token is present. Worth knowing so the change is not mistaken for full coverage.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#1192
No description provided.