de andere helft
Dingen die ik heb gebouwd omdat ik wilde dat ze bestonden.
PANTHEON is het werk. Dit is wat dezelfde instincten opleveren als niemand voor de uitkomst betaalt: een echte sterrenhemel op een desktop, een efemeride zonder dependencies en een terminal die kan tekenen. De discipline is identiek; alleen wat er op het spel staat verandert.
GNOME Shell · GPL-2.0 · ★3
TerraFirma: een echte hemel over je achtergrond.
Geen animatie van een hemel. De echte, berekend uit een efemeride voor jouw breedtegraad, lengtegraad en klok.
De hot loop is bewust meetbaar
De projectie en de atmosfeer staan in skymath.js, dat niets uit GNOME Shell importeert. Naar een bestand dat alleen binnen een sessie kan draaien, kun je alleen gissen; een bestand dat zelfstandig draait, kun je timen. Die grens volgt dezelfde redenering als de purity-lint die de kern van PANTHEON buiten de app-laag houdt.
Sterrencatalogus en efemeriden komen van derden en worden vermeld in NOTICE.md. Richt het op een datum en kijk dan omhoog: voor dit soort software is dat de enige test die telt.
geëxtraheerd en gepubliceerd
Drie packages die eruit zijn voortgekomen.
Hetzelfde patroon als bij de zes van PANTHEON: bouw het ding, vind het deel dat echt herbruikbaar is, haal het eruit en publiceer het op eigen voorwaarden. Alle drie zijn MIT en nu direct te installeren.
braillecanvas v0.4.0 · MIT
Braille adresseert 2×4 punten per tekencel, dus een terminal van 80×24 is eigenlijk een canvas van 160×96. Dat is het verschil tussen een rendering en ASCII-art.
Het interessante deel is kleur. Elke cel draagt twee kleuren, één voor de verlichte punten, één voor de tussenruimtes, zodat een cel die over een rand valt, huid tegen lucht, de rand behoudt in plaats van die uit te middelen tot modder. De gemiddelde kleurfout per punt op deze afbeelding daalt van 45.7 naar 21.3.
Per cel kiezen welke puntjes oplichten, in plaats van het patroon uit een vast dither-raster te halen, verlaagt het aandeel cellen zonder textuur van 35.1% naar 1.6%.
Twee beperkingen die in de eigen README staan: onder ongeveer 90 kolommen werken foto's niet meer, en monochroom kan deze afbeelding helemaal niet weergeven, haar gezicht meet 159 luminantie tegenover 192 voor de lucht achter haar, dus een 1-bit render is per constructie een silhouet.
npm i braillecanvas · npm ↗ · broncode ↗
skymaths v0.1.2 · MIT
Positionele astronomie zonder dependencies: zon, maan, planeten, schemering, op- en ondergang. Geëxtraheerd uit de efemeride van TerraFirma en daarna gecorrigeerd: de Espenak–Meeus-polynoom die het gebruikte is alleen gepubliceerd voor 1900–1920 en werd toegepast op 1986, wat voor 1950 −534 seconden gaf tegenover een gemeten +29. Gevonden door het te toetsen aan een gepubliceerde almanak in plaats van aan zichzelf.
Het draait op deze site: in de donkere modus is de achtergrond de hemel boven Cardiff in de nacht van de Perseïden, 13 augustus 2026, berekend in je browser: 5,044 sterren in hun echte kleuren, de fase van de maan en de planeten waar ze stonden. Scroll om rond te draaien.
npm i skymaths · npm ↗ · broncode ↗
starwheel v0.2.3 · MIT · ★4
Een live planisfeer in je terminal, echte sterposities voor jouw locatie en minuut, getekend op braillecanvas. Mijn repository met de meeste sterren, en degene die me leerde dat een fix die gepubliceerde pixels verschuift niet twee keer dezelfde fix is: deze begrenst iteraties waar zijn zusterproject clipt, bewust.
npx starwheel · npm ↗ · broncode ↗
/proc-data, CPU, geheugen en load average over een rollend venster. Grafieken werken ver onder de ondergrens van 90 kolommen die foto's nodig hebben, omdat ze al een hoog contrast hebben.op deze pagina, nu
De kunst wordt gegenereerd, en de seed kan niet ontsnappen.
Alle kunst op deze site: de hero hierboven, de favicon, de social cards, de avatars, komt uit PANTHEONs eigen generator. Deterministisch en geseed: dezelfde seed geeft elke keer hetzelfde beeld.
Hetzelfde contract aan beide kanten
Een server-side engine rendert de social cards en tenant-sites; een browser-engine tekent de geanimeerde versie waar je nu naar kijkt. Zelfde regel: seed erin, reproduceerbare kunst eruit.
Injectieveilig door constructie
De seed voedt de PRNG en verder niets. hij wordt nooit in markup of een style geïnterpoleerd. Een tenantnaam die eigenlijk een payload is, tekent een ander plaatje; hij tekent geen script-tag. Hetzelfde instinct als in de rest van het systeem, toegepast op decoratie.
installeerbaar, niet alleen leesbaar
Zes garanties, losgemaakt en gepubliceerd.
Elk ervan kwam uit PANTHEON voort als één verifieerbare belofte en ging daarna naar PyPI, zodat het op zichzelf staat. Adversariële AI-agents, zelf gedraaid, niet onafhankelijk, liepen ze regel voor regel door en vonden echte defecten; de versies hieronder zijn die na die fixes, elk geverifieerd door vanuit het register in een schone omgeving te installeren en de eigen reproductie van de reviewer opnieuw te draaien, niet door op het buildlog te vertrouwen.
pantheon-guardrails v0.3.2 · Apache-2.0
Een constitutie-scorer die alleen bij antwoorden met veel op het spel een LLM-judge inzet, en eist dat die judge een ander model is dan de generator, zodat de twee geen blinde vlekken delen. Vroeger klemde hij een score buiten het bereik omhoog: een judge die {"clarity": 99} teruggaf, scoorde een perfecte 1.0 en haalde elke drempel: een guardrail die open faalde. Nu is een judge die een fout gooit, blijft hangen of onzin teruggeeft een expliciet mislukte evaluatie die standaard blokkeert.
pip install pantheon-guardrails · PyPI ↗ · broncode ↗
pantheon-ssrf-guard v0.2.1 · Apache-2.0
Een SSRF-egress-guard in twee lagen die DNS-rebinding overleeft: hij controleert opnieuw het IP dat de socket bij het verbinden daadwerkelijk bereikte, zodat een host die publiek resolvet en daarna rebindt naar loopback of cloud-metadata wordt geweigerd. De review ontdekte dat de opener nog steeds file://-URL's las, omdat Python standaard handlers voor andere schemes installeert; er is nu een expliciete http/https-allowlist op de grens, redirects inbegrepen, en proxies uit de omgeving staan uit tenzij je erom vraagt.
pip install pantheon-ssrf-guard · PyPI ↗ · broncode ↗
pantheon-tool-sanitizer v0.3.0 · Apache-2.0
Verwijdert tool-protocolmarkup en Unicode-smokkel uit onbetrouwbare MCP-tooltekst voordat die de prompt van een agent bereikt. Eerlijk afgebakend: het claimt niet dat het injectie in gewoon proza tegenhoudt, want dat is een architectuurprobleem en geen stringprobleem. Twee fixes uit de review: een adversariële input van 256 kB kostte 26 seconden CPU en wordt nu direct geweigerd, en "Read\nthe\tfile" wordt niet langer "Readthefile", omdat een regeleinde een woordgrens is.
pip install pantheon-tool-sanitizer · PyPI ↗ · broncode ↗
credit-ledger v0.3.0 · Apache-2.0
Metering die niet rood kan staan, bovenop Postgres in ongeveer 150 regels: 100 parallelle afschrijvingen tegen een saldo van 50 en er slagen er precies 50, exactly-once facturering bij herhaalde webhooks, isolatie afgedwongen door row-level security. De gepubliceerde build accepteerde vroeger een negatieve afschrijving, die de klant uitbetaalde, en bedragen onder de precisie van de kolom, die 0.0000 factureerden terwijl succes werd gemeld. Eén bedragregel dekt nu elk pad, en er is een geteste migratie voor databases die al bestaan.
pip install credit-ledger · PyPI ↗ · broncode ↗
pantheon-ical v0.3.1 · Apache-2.0
Round-trip iCal (RFC 5545) voor boekingsagenda's in minder dan 200 regels. Een weggevallen bezette periode leest als vrij, dus stilte is de gevaarlijke faalwijze: een te grote agenda wordt geweigerd in plaats van afgekapt, en een herhalingsregel die overloopt meldt dat in plaats van een te korte lijst terug te geven. De laatste fix begrensde zowel het werk als het resultaat: een vijandige herhalingsregel van één regel bouwde vroeger 34 miljoen voorkomens op in 76 seconden voordat hij werd afgewezen; nu stopt hij bij 401.
pip install pantheon-ical · PyPI ↗ · broncode ↗
pantheon-rls v0.1.1 · Apache-2.0
Tenantisolatie als Postgres-garantie in plaats van een applicatiegewoonte: force-RLS plus least-privilege-grants, zodat de database zelf lees- en schrijfacties tussen tenants weigert. Fail-closed door constructie: zonder tenantcontext krijg je nul rijen, nooit alle rijen, en dat is de faalwijze die telt wanneer een bug om 3 uur 's nachts productie bereikt.
Elke fix hierboven kwam op dezelfde manier tot stand: eerst het defect reproduceren, de grens repareren in plaats van het symptoom, en dan bewijzen dat de nieuwe test faalt als de bug wordt teruggezet. Een test die niet kan falen, is geen bewijs.
waar het op draait
De stack is saai. De grens niet.
Python 3.12, FastAPI, Postgres, Redis, React met Vite, één Dockerfile achter nginx. Geen van die keuzes verdient bewondering, het zijn de onderdelen die je kiest zodat je aandacht naar iets kan gaan wat ertoe doet.
146 bestanden · 14,002 regels
pantheon-core: het substraat. Per contract domeinonafhankelijk: het mag niet importeren uit residents of bundles, en twee onafhankelijke checks laten CI falen als het dat wel doet.
210 bestanden · 24,216 regels
Tests, tegenover 38,816 regels Python. Ik schrijf de implementatie niet met de hand, dus de suite is geen vangnet. Het is de specificatie, en het is het artefact dat ik daadwerkelijk schrijf.
Vijf lagen, één weg
architect · runtime · guardrails · substrate · primitives, met providers bewust buiten de stack, omdat die onder twee lagen tegelijk zit en het contract dat hardop zegt in plaats van te buigen.
Door die grens konden zes componenten eruit worden gelicht en als losse libraries worden gepubliceerd; extractie was vooral het verplaatsen van bestanden die nooit naar beneden hadden mogen reiken. De lange versie, inclusief het deel dat ik fout had →
Dezelfde persoon, dezelfde regels, minder op het spel.
Niemand auditeert behang. Deze zijn zo gebouwd omdat het de enige manier is waarop ik weet hoe ik moet bouwen: meten, het herbruikbare deel extraheren, de grenzen erbij publiceren en de getallen toetsen aan iets buiten het programma.
Vraag naar elk onderdeel van dit werk.
- Naar welke rol zoekt Isaac?
- Welke hiervan draait in productie?
- Laat me een echte bug zien die hij heeft gevonden en opgelost