Living document. Order within tiers is priority, not schedule.
The project has explicit external-validation goals. Each is measured, not
claimed; src/reach.py and the status feed report the
numbers.
| goal | measured by | status |
|---|---|---|
3–5 unrelated hook projects installing chaosxcode/hookguard@v1 |
public code search (src/reach.py) |
0 / 5 — advisories now include a one-line install ask |
| maintainers responding to findings, confirming usefulness | author-outreach ledger | 2 advisories live, awaiting response |
| one external pull request or contributor | git history | contributor path documented (CONTRIBUTING.md, issue templates) |
| one integration: registry, incubator cohort, audit workflow, or security team | links from this repo | UHI application submitted before Sep 21 deadline |
| public testimonials from identifiable builders | quoted in ledger/README | follows responses above |
| usage metrics excluding own repositories | reach.py excludes chaosxcode/* by design |
tracked since day one |
| case study: HookGuard caused a real fix or documented risk decision | written up in findings/ | candidate pending any author response |
-
✅ SHIPPED — Registry resync cadence. Weekly workflow refreshes snapshot + artifacts, commits drift, files a rolling drift-report issue.
-
✅ SHIPPED — PyPI distribution.
pip install hookguard(0.9.1); tag-push releases via trusted publishing. -
✅ SHIPPED — Comment-driven public scans.
/hookguard-scan owner/reporeturns a full scored report — zero-install surface. -
✅ SHIPPED — In-browser scanner. Client-side JS port, parity-tested on 38 real bundles.
-
✅ SHIPPED — HookScore spec draft 1.0 (HOOKSCORE-SPEC.md).
-
Author responses. Five advisories live; responses logged verbatim in author-outreach.md.
-
Author responses. Two advisories are live (Uniderp #1, VII-Finance #30). Responses get logged verbatim in author-outreach.md; silence is recorded as silence.
-
Registry resync cadence. The Aug 23 refresh showed the hooklist moving 486 → 551 entries (and 4 of our named hooks registering) inside one week. A weekly scheduled Action should re-run
risk.py, diff the numbers, and open an issue when anything material moves — the gap is only useful if its changes are watched.
- ✅ SHIPPED — Library-aware validation (sibling delegation + zero-state guards; auto-clears the Bunni pattern).
Library-aware corpus analysis.BunniHook was flagged and then manually cleared because its guard lives inBunniHookLogic, not the analyzed file. Corpus fetch should follow imports into sibling files of the same bundle; scanner validation checks should see them.- Bytecode pass v2: prove upgradeability instead of implying it. For each
DELEGATECALL, classify the target: storage-derived (live-upgradeable in practice) vs constant (fixed delegation — and in shared-code families, one implementation serving every clone). This upgrades Finding 2 of the bytecode pass from opcode-presence to mechanism. - Wave-3 outreach cohort. After a registry resync, whoever is still unregistered with 2+ pools becomes the next cohort; channels via deployer fields, contract natspec contacts, and code search.
- Base full-history census — 150/12,514 ranges checkpointed, resumable in
one command:
./scripts/base-census.sh. Infrastructure done and tested (checkpoint/resume every 50 ranges, 2k-block windows to dodge server-side getLogs timeouts, drpc endpoint). Only blocker: this author's sandbox reaps detached background processes and throttles parallel egress. From any normal terminal it runs unattended (~1–2h), thenCHAIN=base python3 src/verify_status.pyfinishes chain #2.
- A real false-positive rate. Once author responses reach a meaningful N, publish it per-rule — this is the number that separates a scanner from a toy, and precision.md has promised it since day one.
- Machine-readable hook status feed. Everything this project computes — registered? source? audit? bytecode signals? author-confirmed intent? — as one queryable record per address. That is the assessment layer "Hook Safety as a Service" underwrites against, and the natural bridge to the insurance track.
- Scanner v2. Structural rules throughout (the guard rewrite was the pilot): library-aware validation detection, delta-flag semantics checked against actual return construction, severity claims limited to what the rule can demonstrate.
The LP value-leakage meter (UHI10) needs exactly this measurement layer: you cannot price order flow you haven't measured, and you cannot underwrite a hook you can't score. Hook scoring → status feed → underwriting inputs is the through-line from static analysis to insurance.