From e50b4466f63b37ea022311201851ed56782bb292 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 6 Aug 2026 12:54:23 +0100 Subject: [PATCH] chore(governance): declare the banned-language migration backlog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Language / package anti-pattern policy" gate is failing on 20 file(s) in banned languages (20 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 Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com> --- .hypatia-ignore | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .hypatia-ignore diff --git a/.hypatia-ignore b/.hypatia-ignore new file mode 100644 index 0000000..8eb7f4e --- /dev/null +++ b/.hypatia-ignore @@ -0,0 +1,44 @@ +# Banned-language exemption ledger — hypatia / governance-reusable.yml +# +# Format: /: +# +# WHY THIS FILE EXISTS +# -------------------- +# The governance "Language / package anti-pattern policy" gate is correct: +# these files really are in languages estate policy bans. The gate's own +# failure message names this file as the sanctioned way to declare an +# intentional exception. +# +# These exemptions HOLD THE LINE WHILE MIGRATION IS IN PROGRESS. Each entry +# is removed as the matching file is ported or deleted. This follows the +# precedent set in hyperpolymath/echidna. +# +# EVERY PATH IS LISTED INDIVIDUALLY — deliberately. A `src/**` wildcard 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. +# +# Inventory taken 2026-08-06 across all 424 estate repositories. +# Files covered: 20 rescript + +cicd_rules/banned_language_file:scripts/CreatePagesProjects.res +cicd_rules/banned_language_file:scripts/DeployAllProjects.res +cicd_rules/banned_language_file:scripts/DeployDeno.res +cicd_rules/banned_language_file:scripts/DeployDirect.res +cicd_rules/banned_language_file:scripts/GenerateProof.res +cicd_rules/banned_language_file:scripts/SetupDomains.res +cicd_rules/banned_language_file:src/Mod.res +cicd_rules/banned_language_file:src/Mod_test.res +cicd_rules/banned_language_file:src/ProvenResult.res +cicd_rules/banned_language_file:src/ProvenSafeUrl.res +cicd_rules/banned_language_file:src/bindings/Deno_Api.res +cicd_rules/banned_language_file:src/bindings/Deno_Std_Fs.res +cicd_rules/banned_language_file:src/bindings/Deno_Std_Path.res +cicd_rules/banned_language_file:src/bindings/Fetch_Api.res +cicd_rules/banned_language_file:telegram-bot/TestMock.res +cicd_rules/banned_language_file:telegram-bot/src/Bot.res +cicd_rules/banned_language_file:telegram-bot/src/Database.res +cicd_rules/banned_language_file:telegram-bot/src/StampMock.res +cicd_rules/banned_language_file:telegram-bot/src/bindings/Grammy.res +cicd_rules/banned_language_file:telegram-bot/src/bindings/Sqlite.res