chore(governance): declare the banned-language migration backlog - #97
Conversation
The "Language / package anti-pattern policy" gate is failing on 726
file(s) in banned languages (726 rescript).
The gate is CORRECT — these really are languages estate policy bans. But
deleting them would destroy working code without porting it, so this uses the
mechanism the gate's own failure message names:
(declare an exemption via .hypatia-ignore ... if intentional)
Every path is listed individually rather than by wildcard. A `src/**` entry
would silently absorb NEW banned files added later, turning a migration ledger
into a permanent blind spot. Listing each path means a newly added file still
fails the gate: this ledger can only shrink as work is done.
It therefore doubles as the migration worklist.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
|
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review ✅ ApprovedDeclares the banned-language migration backlog by explicitly listing 726 legacy file paths to bypass the anti-pattern policy gate without using wildcards. No issues found.
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Important Your trial ends in 4 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more. Was this helpful? React with 👍 / 👎 | Gitar |
|
|



The Language / package anti-pattern policy gate is failing on 726 file(s) in languages estate policy bans.
The gate is correct. These really are banned languages. But deleting the files would destroy working code without porting it, and porting is a project rather than a sweep — so this uses the mechanism the gate's own failure message names:
following the precedent already set in
hyperpolymath/echidna.Every path is listed individually, never a wildcard. A
src/**entry would silently absorb new banned files added later, turning a migration ledger into a permanent blind spot. Listing each path means a newly added file still fails the gate — this ledger can only shrink as work is done, never quietly grow. It therefore doubles as the migration worklist.Inventory taken 2026-08-06 across all 424 estate repositories: 13,206 banned-language files in 117 repos, though ~9,800 of those are vendored upstream copies (the ReScript toolchain, github/linguist) rather than estate code.
🤖 Generated with Claude Code