Finalize pure-coordinator pivot: stop language-content leakage + resite what leaked#88
Merged
Merged
Conversation
…eakage, resite leaked content nextgen-languages pivoted from monorepo to pure coordinator (submodules removed 2026-06-13), but the AI-facing instruction layer still described a monorepo whose implementations live in-tree — so LLMs kept adding language content back into the hub. This finalizes the pivot. Stop the bleeding (rewrite stale instructions): - 0-AI-MANIFEST.a2ml: lead with a COORDINATOR BOUNDARY section; drop the monorepo/ "languages as submodules" framing and the submodule-update workflow - EXPLAINME.adoc: gut the dead in-tree File Map; fix banned-ReScript refs; add a "where each language lives" pointer table - README.adoc: collapse KitchenSpeak to an external pointer; remove the headingless TypeFix Zero spec dump; fix in-tree nextgen-languages/<lang>/ paths - docs/language-portfolio.md, TOOLING-STATUS.adoc, wiki/Home.md, .claude/CLAUDE.md: rewrite to coordinator reality Enforce it (new boundary guard so it cannot silently recur): - hooks/validate-coordinator-boundary.sh fails on language-source signatures (.agda/.ebnf/.ks/.lean/.idr/…), compiler source trees, or a re-vendored language dir - wired into the contractile Mustfile.a2ml, the K9 must-check.k9.ncl, contractile.just, the root Mustfile, and a hard-gating coordinator-boundary job in dogfood-gate.yml Resite what already leaked: - delete the superseded in-tree kitchenspeak/ snapshot (canonical v2.0 lives at hyperpolymath/kitchenspeak) and purge its dangling contractile/K9/metadata references - stage per-language wiki/ and docs/design/ docs under extraction-queue/ (this session's GitHub scope can't push into the sibling repos) with EXTRACTION-MANIFEST.md mapping each staged path to its destination repo - normalize languages/*.md to thin pointer stubs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MWPX7iyvHf5AuwBAn1sJPy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
This repo pivoted from a monorepo (12 languages vendored as submodules) to a pure coordinator (each language a standalone
hyperpolymath/<lang>repo) in mid-June 2026 — submodules were removed,.gitmodulesis gone, andECOSYSTEM.a2mlrecords it. But the AI-facing instruction layer was never rewritten, so it still told every LLM this was a monorepo whose implementations live in in-tree subdirectories. Agents obeyed those instructions and kept adding language-specific content back into the coordinator. The leakage was the stale manifest's fault, not the models'.This PR finishes the pivot: rewrites the stale instructions, adds a mechanical guard so it can't silently recur, and resites/removes the content that already leaked.
What changed
1. Stop the bleeding — rewrite stale instruction files
0-AI-MANIFEST.a2ml(the universal bot entry point): now leads with a COORDINATOR BOUNDARY section; dropped "this is a monorepo / languages as submodules /git submodule update" framing.EXPLAINME.adoc: gutted the dead File Map that documented ~16 in-tree language dirs that no longer exist; fixed banned-ReScript references; added a "Where each language lives" pointer table.README.adoc: collapsed the long in-tree KitchenSpeak section to an external pointer; removed the headingless "TypeFix Zero / TF0" spec dump (a classic agent paste); fixed in-treenextgen-languages/<lang>/paths; corrected the actively-backwards "this repo focuses on the language implementations themselves".docs/language-portfolio.md,TOOLING-STATUS.adoc,wiki/Home.md,.claude/CLAUDE.md: rewritten to coordinator reality (no/var$REPOS_DIRin-tree paths, no submodule structure diagrams).2. Enforce it — new boundary guard (so it can't recur)
hooks/validate-coordinator-boundary.shfails the build on language-source signatures (*.agda/*.ebnf/*.ks/*.lean/*.idr…), compiler source trees, or a re-vendored language directory (ephapax/, …). Allowlistsextraction-queue/.Mustfile.a2ml([checks.boundary]), the K9must-check.k9.ncl(coordinator_boundary,error-severity),contractile.just(must-no-language-leak), the rootMustfile, and a hard-gatingcoordinator-boundaryjob indogfood-gate.yml..agdafile +ephapax/src/lib.rs+ anephapax/dir all trip it (exit 1).3. Resite what leaked
kitchenspeak/snapshot (canonical v2.0 lives athyperpolymath/kitchenspeak; its ownMOVED.adocpre-authorized removal) and purged every dangling reference — including the hard-break contractile[checks.kitchenspeak]and K9 checks that would otherwise fail CI. Removed the now-obsoletescripts/elevate-kitchenspeak.sh.wiki/languages/*anddocs/design/*docs underextraction-queue/<lang>/(seeextraction-queue/typefix-zero/.languages/*.mdto thin pointer stubs.EXTRACTION-MANIFEST.mdmapping every removed/staged path → destination repo → disposition.This session's GitHub access was scoped to
hyperpolymath/nextgen-languagesonly — it could not push into the sibling language repos. So per-language docs that aren't already superseded upstream were staged inextraction-queue/rather than deleted (no data loss; git history preserves everything). Landing them in eachhyperpolymath/<lang>repo, then deleting the queue, is a follow-up for a session/maintainer with those repos in scope.EXTRACTION-MANIFEST.mdis the actionable map.Verification
hooks/validate-coordinator-boundary.sh→ exits 0 on this tree; exits 1 on planted leaks.*.agda/*.ebnf/*.ksremain in-tree; no livekitchenspeak/path references (only historical CHANGELOG lines + the manifest).0-AI-MANIFEST.a2ml/EXPLAINME.adoc(only the new "this is NOT a monorepo" clarifications).[accepted-findings]header preserved inNEUROSYM.a2ml.🤖 Generated with Claude Code
https://claude.ai/code/session_01MWPX7iyvHf5AuwBAn1sJPy
Generated by Claude Code