Skip to content

Commit 15d385c

Browse files
chore(abi-drift): expand allowlist 16 → 56 (stale-binary correction) (#115)
## Summary Follow-up to #110. Stale-binary correction (no behavioural change in CI — the gate has always used a fresh binary via `cargo install --git ... --branch main --locked`). The 16-cartridge allowlist landed in #110 was based on a local survey run with a stale `iseriser` release binary predating iseriser#15's Zig reserved-word converter. Re-running the survey with the current `main` binary shows **56 cartridges clean**, not 16. This PR adds the 40 missed cartridges. | Bucket | #110 (stale) | this PR (fresh) | |---|---|---| | Clean ✓ | 16 | **56** | | Drift | 63 | 18 | | Verifier parse-limit | 5 | 5 | | Idris2 src bad | 1 | 1 | ## Newly allowlisted (40) `affinescript-mcp`, `airtable-mcp`, `arango-mcp`, `browser-mcp`, `buildkite-mcp`, `clickhouse-mcp`, `cloudflare-mcp`, `crates-mcp`, `discord-mcp`, `docker-hub-mcp`, `duckdb-mcp`, `fly-mcp`, `github-actions-mcp`, `github-api-mcp`, `google-docs-mcp`, `google-sheets-mcp`, `grafana-mcp`, `hackage-mcp`, `hex-mcp`, `jira-mcp`, `linear-mcp`, `matrix-mcp`, `neo4j-mcp`, `neon-mcp`, `notion-mcp`, `npm-registry-mcp`, `obsidian-mcp`, `opam-mcp`, `prometheus-mcp`, `pypi-mcp`, `railway-mcp`, `render-mcp`, `rokur-mcp`, `sentry-mcp`, `slack-mcp`, `supabase-mcp`, `telegram-mcp`, `todoist-mcp`, `turso-mcp`, `zotero-mcp`. ## Sub-issue updates from the correction - **iseriser#17** (proposed non-existent Class A emitter fix) — CLOSED, not-a-bug. Stale-binary artefact. - **iseriser#18** (Class B name-normalisation) — still valid, scope ~10 cartridges. - **iseriser#19** (Class P verifier parse-limit) — still valid, unchanged. - **standards#150 / #151 / #152 / #153 / #154 / #155** (Class C missing-enum-in-Zig) — still valid. - **boj-server#111** (vordr-mcp Idris2 src) — still valid. - New **Class D — abbreviation drift** surfaced (postgresql-mcp `tx`, redis-mcp `hgetall`, aws-mcp `cw_*`/`dynamo_*`, gcp-mcp extras) — separate sub-issue forthcoming. ## Test plan - [ ] CI green: `ABI Drift Gate` runs `iseriser abi-emit-manifest` + `iseriser abi-verify` on all 56; each exit-0. - [ ] Existing checks unaffected (this PR only touches `.github/workflows/abi-drift.yml`). Refs hyperpolymath/standards#92 (Phase 2 allowlist expansion). Refs hyperpolymath/standards#89 (epic — sub-issue 3). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 0221f4e commit 15d385c

1 file changed

Lines changed: 48 additions & 6 deletions

File tree

.github/workflows/abi-drift.yml

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,32 +71,74 @@ jobs:
7171
- name: Resolve cartridge allowlist
7272
id: discover
7373
# 80 cartridges in the tree carry a paired Safe*.idr + *_ffi.zig.
74-
# 16 cartridges are audited green against the Phase 1b emitter +
75-
# Phase 1 verifier (full-tree survey, 2026-05-20). 63 carry real
76-
# drift, 5 hit a verifier parser limit (non-canonical Zig switch
77-
# arms — separately tracked), 1 has a malformed Idris2 source.
78-
# See standards#92 for the survey + drift taxonomy. Expand this
79-
# list as drift classes get resolved upstream.
74+
# 56 are audited green against the Phase 1b emitter + Phase 1
75+
# verifier (re-run 2026-05-20 with current `main` iseriser binary;
76+
# earlier 16-cartridge survey was contaminated by a stale local
77+
# build pre-iseriser#15). 18 carry real drift (Class B name-norm,
78+
# Class C missing-enum-in-Zig, Class D abbreviation drift — see
79+
# standards#92 + sub-issues iseriser#18 / standards#150-155 /
80+
# standards#TBD-class-D). 5 hit a verifier parser limit
81+
# (iseriser#19). 1 has a malformed Idris2 source (boj-server#111).
8082
run: |
8183
set -euo pipefail
8284
{
8385
echo 'carts<<EOF'
8486
echo '007-mcp'
87+
echo 'affinescript-mcp'
8588
echo 'agent-mcp'
89+
echo 'airtable-mcp'
90+
echo 'arango-mcp'
91+
echo 'browser-mcp'
92+
echo 'buildkite-mcp'
93+
echo 'clickhouse-mcp'
94+
echo 'cloudflare-mcp'
95+
echo 'crates-mcp'
96+
echo 'discord-mcp'
8697
echo 'dns-shield-mcp'
98+
echo 'docker-hub-mcp'
99+
echo 'duckdb-mcp'
87100
echo 'feedback-mcp'
88101
echo 'fleet-mcp'
102+
echo 'fly-mcp'
103+
echo 'github-actions-mcp'
104+
echo 'github-api-mcp'
105+
echo 'google-docs-mcp'
106+
echo 'google-sheets-mcp'
107+
echo 'grafana-mcp'
108+
echo 'hackage-mcp'
109+
echo 'hex-mcp'
89110
echo 'iac-mcp'
111+
echo 'jira-mcp'
90112
echo 'k8s-mcp'
91113
echo 'k9iser-mcp'
114+
echo 'linear-mcp'
92115
echo 'local-coord-mcp'
116+
echo 'matrix-mcp'
117+
echo 'neo4j-mcp'
118+
echo 'neon-mcp'
93119
echo 'nesy-mcp'
120+
echo 'notion-mcp'
121+
echo 'npm-registry-mcp'
94122
echo 'observe-mcp'
123+
echo 'obsidian-mcp'
124+
echo 'opam-mcp'
95125
echo 'opsm-mcp'
96126
echo 'pmpl-mcp'
127+
echo 'prometheus-mcp'
97128
echo 'proof-mcp'
129+
echo 'pypi-mcp'
130+
echo 'railway-mcp'
131+
echo 'render-mcp'
132+
echo 'rokur-mcp'
98133
echo 'secrets-mcp'
134+
echo 'sentry-mcp'
135+
echo 'slack-mcp'
99136
echo 'ssg-mcp'
137+
echo 'supabase-mcp'
138+
echo 'telegram-mcp'
139+
echo 'todoist-mcp'
140+
echo 'turso-mcp'
141+
echo 'zotero-mcp'
100142
echo 'EOF'
101143
} >> "$GITHUB_OUTPUT"
102144

0 commit comments

Comments
 (0)