feat(pre-commit): outbound-link-hygiene, the offline half dead-cross-links skips #1229
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1229
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/ve67"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes coilyco-flight-deck/agentic-os#1228 (hook 1). Hook 2 stays deferred per the issue; hook 3's scheduled job is tracked separately.
What lands
outbound-link-hygiene, an offline pre-commit hook for the linksdead-cross-linksdeliberately skips. Four checks, all readingagentic_os/outbound_link_rules.jsonso a rename edits a table rather than a validator:ward-mcp,Ward MCP,cli-guard,agent-guard) and thecoilysiren.me/orgs/path that never resolved. Each failure names its replacement.canonical_repo_hostwhen a repo declares one. Unset means no opinion, so nothing is imposed on repos where Forgejo is the right outward ref.[tap](.../homebrew-tap)is not a false positive.example.com,localhost,TODO, empty targets, bare#.Also
check-link-liveness: hook 3's checker half, a report-only CLI deliberately absent from.pre-commit-hooks.yamlalongside the other authored-but-not-hooked validators. Reports non-2xx and non-3xx only, tolerates rate limiting and transport failure, never edits.Use versus mention
Fenced and inline code are stripped before the name scan, so a doc narrating a rename backticks the retired name and a doc still using it does not. I measured this across agentic-os, agentic-os-kai, coilysiren and infrastructure before committing to it: that one rule exempts every legitimate historical mention found, including SSM parameter paths and IAM ARNs that keep a pre-rename spelling on purpose. Zero allowlist entries needed.
Verification
Against
coilysiren/coilysiren:9c259e5~2it reports both defect classes -ward-mcp,Ward MCPandcli-guardin the README, and the threecoilysiren.me/orgs/links9c259e5^the README half is already fixed, so it reports the three org links pluscli-guardin the portfolio skillmainit still finds two live ones: the portfolio skill names and linkscli-guard, which is nowumbra716 tests green, full
pre-commit run --all-filesgreen.Two things worth a reviewer's eye
The issue says both defects sit at
9c259e5^. The org-path half does; the retired-name half was already fixed by77a54fband sits one commit earlier at9c259e5~2. Both classes still reproduce, so the criterion holds, but the revision in the issue is off by one for that half.No cap was raised.
docs/pre-commit-hygiene.mdwas exactly at its 120-line cap anddocs/*.mdis exactly at its 40-file cap, so a new page and a bigger page were both closed. The new section is paid for by compressing the leak-guard half in place. No rule or fact was removed - five H2s became two and restated sentences went. Worth checking that I did not cut something you wanted kept.Rollout stays out per the authoring-vs-rollout split: no
DEFAULT_HOOK_IDSentry. The fleet fan-out is ansible's.