もう半分
存在してほしいと思ったから作ったもの。
PANTHEON が本業です。これは、誰も成果にお金を払っていないときに同じ感覚が生み出すものです。デスクトップ上の本物の空、依存関係のない天体暦、そして描画できるターミナル。規律は同じで、変わるのは懸かっているものだけです。
GNOME Shell · GPL-2.0 · ★3
TerraFirma: 壁紙の上に本物の空を。
空のアニメーションではありません。あなたの緯度、経度、時計に基づいて天体暦から計算された、実際の空です。
ホットループは意図的に計測可能にしています
投影と大気の計算は skymath.js にあり、GNOME Shell からは何もインポートしていません。セッション内でしか動かないファイルは推測するしかありませんが、単体で動くファイルは計測できます。この境界は、PANTHEON のコアをアプリ層から切り離しておく純粋性 lint と同じ考え方です。
星表と天体暦はサードパーティのもので、NOTICE.md にクレジットを記載しています。日付を指定して、空を見上げてください。この種のソフトウェアにとって、意味のあるテストはそれだけです。
抽出し、公開
そこから生まれた 3 つのパッケージ。
PANTHEON の 6 つと同じパターンです。まず作り、本当に再利用できる部分を見つけ、切り出し、独立した形で公開する。3 つとも MIT ライセンスで、今すぐインストールできます。
braillecanvas v0.4.0 · MIT
点字は1 文字セルあたり 2×4 ドットを扱えるため、80×24 のターミナルは実質 160×96 のキャンバスになります。これがレンダリングと ASCII アートの違いです。
面白いのは色です。各セルは2つの色を持ちます。点灯したドット用と隙間用です。そのため、肌と空の境目のようにエッジにまたがるセルでも、平均化して濁らせることなくエッジを保てます。この画像でのドットあたりの平均色誤差は45.7から21.3に下がります。
固定のディザグリッドからパターンを取るのではなく、セルごとにどのドットを点灯させるかを選ぶことで、テクスチャのないセルが35.1%から1.6%に減ります。
README 自体に記載されている2つの制限: 約90列未満では写真が機能しなくなり、モノクロではこの画像をまったく描画できません。彼女の顔の輝度は159で、背後の空は192です。そのため1ビットのレンダリングは構造上シルエットになります。
skymaths v0.1.2 · MIT
依存関係のない位置天文学。太陽、月、惑星、薄明、出没。TerraFirma の暦計算から抽出し、その後修正しました: 使われていた Espenak–Meeus の多項式は 1900–1920 年のみを対象に公開されたもので、それが 1986 年に適用されており、1950 年について実測値 +29 秒に対し −534 秒を出していました。自身と照合するのではなく、公開されている天体暦と照合して発見しました。
このサイトで実際に動いています。ダークモードの背景は、ペルセウス座流星群の夜、13 August 2026 のカーディフの夜空で、ブラウザ上で計算しています。5,044 個の星を実際の色で表示し、月の満ち欠けと、その時点での惑星の位置も再現しています。スクロールすると向きが変わります。
npm i skymaths · npm ↗ · ソース ↗
/proc データ(CPU、メモリ、ロードアベレージ)をローリングウィンドウでプロットします。チャートはもともと高コントラストなので、写真に必要な90列の下限を大きく下回っても機能します。このページで、今まさに
アートは生成され、シードは外に出られません。
このサイトのすべてのアート: 上のヒーロー、ファビコン、ソーシャルカード、アバターは、PANTHEON 自身のジェネレーターから生成されています。決定的でシード付きです: 同じシードからは毎回同じ画像が得られます。
両側で同じ契約
サーバーサイドのエンジンがソーシャルカードとテナントサイトを描画し、ブラウザのエンジンが今ご覧のアニメーション版を描画します。ルールは同じです: シードを入れると、再現可能なアートが出てきます。
構造的にインジェクション安全
シードは PRNG に渡されるだけで、それ以外には一切使われません。マークアップやスタイルに埋め込まれることはありません。実際にはペイロードであるテナント名は、別の絵を描くだけで、script タグを描くことはありません。システムの他の部分と同じ発想を、装飾に適用したものです。
読むだけでなく、インストール可能
6つの保証を抽出し、公開しました。
それぞれがPANTHEONから単一の検証可能な約束として切り出され、単体で成り立つようPyPIに公開されました。敵対的なAIエージェント(自前で実行したもので、独立したものではありません)が1行ずつ確認し、実際の欠陥を見つけました。以下のバージョンはそれらを修正した後のもので、ビルドログを信用するのではなく、クリーンな環境にレジストリからインストールし、レビュアー自身の再現手順を再実行して検証しています。
pantheon-guardrails v0.3.2 · Apache-2.0
高リスクな返答にだけLLMジャッジを使い、そのジャッジが生成側とは異なるモデルであることを要求するconstitutionスコアラーです。両者が盲点を共有しないようにするためです。以前は範囲外のスコアを上方向に丸めていました。{"clarity": 99} を返すジャッジは満点の1.0となり、すべての閾値を通過していました:フェイルオープンするガードレールです。現在は、例外を投げる、ハングする、無意味な値を返すジャッジは明示的な評価失敗として扱われ、デフォルトでブロックされます。
pantheon-ssrf-guard v0.2.1 · Apache-2.0
DNS リバインディングに耐える 2 層構成の SSRF 送信ガードです。接続時にソケットが実際に到達した IP を再確認するため、パブリックに解決された後にループバックやクラウドメタデータへリバインドされるホストは拒否されます。レビューで、Python がデフォルトで他のスキームのハンドラをインストールするため、オープナーが依然として file:// URL を読み取ってしまうことが判明しました。現在は境界に明示的な http/https 許可リストがあり、リダイレクトにも適用されます。また、環境変数のプロキシは明示的に要求しない限り無効です。
pantheon-tool-sanitizer v0.3.0 · Apache-2.0
信頼できない MCP ツールのテキストから、エージェントのプロンプトに届く前にツールプロトコルのマークアップと Unicode スマグリングを除去します。スコープは正直に限定しています:平文によるインジェクションを防ぐとは主張しません。それは文字列の問題ではなくアーキテクチャの問題だからです。レビューで 2 つを修正しました:256 kB の敵対的入力が 26 秒の CPU 時間を消費していた問題は現在は即座に拒否され、"Read\nthe\tfile" は "Readthefile" にならなくなりました。改行は単語境界だからです。
credit-ledger v0.3.0 · Apache-2.0
Postgres 上で残高超過を防ぐ計量を約150行で実装:残高50に対して100件の並列課金を行うと、ちょうど50件が成功し、Webhook の再送下でも課金は厳密に1回だけ行われ、分離は行レベルセキュリティで強制されます。公開済みのビルドはかつて負の課金を受け付けており、それは顧客への支払いになっていました。また、カラムの精度を下回る金額も受け付け、成功を報告しながら 0.0000 を課金していました。現在は一つの金額ルールがすべての経路をカバーしており、既存のデータベース向けにはテスト済みのマイグレーションがあります。
pantheon-ical v0.3.1 · Apache-2.0
予約カレンダー向けの iCal (RFC 5545) の往復変換を 200 行未満で実装しています。取りこぼした予定ありの期間は空きとして読まれるため、沈黙こそが危険な失敗です。サイズ超過のカレンダーは切り詰めずに拒否し、上限を超える繰り返しルールは短いリストを返すのではなく、超過したことを明示します。直近の修正では、結果だけでなく処理量にも上限を設けました。以前は 1 行の悪意あるルールが、拒否されるまでに 76 秒かけて 3400万件の発生を生成していましたが、現在は 401 件で停止します。
上記の修正はすべて同じ方法で行いました: まず欠陥を再現し、症状ではなく境界を修正し、バグを戻すと新しいテストが失敗することを証明します。失敗しえないテストは証拠になりません。
何の上で動いているか
スタックは退屈です。境界はそうではありません。
Python 3.12、FastAPI、Postgres、Redis、React(Vite)、nginxの背後にDockerfile 1つ。どれも称賛に値する決定ではありません。重要なところに注意を向けられるように選ぶ部品です。
146 ファイル · 14,002 行
pantheon-core: 基盤です。契約上ドメイン非依存で、residents や bundles からインポートしてはならず、インポートすると 2 つの独立したチェックが CI を失敗させます。
210 ファイル · 24,216 行
テスト。対象はPythonの38,816行です。実装は手書きしないので、テストスイートはセーフティネットではありません。それは仕様であり、私が実際に書く成果物です。
5つのレイヤー、1つの方式
architect · runtime · guardrails · substrate · primitives。providersはあえてスタックの外に置いています。2つの層の下に同時に位置するためで、契約は無理に曲げるのではなく、そのことを明示しています。
その境界があったからこそ、6 つのコンポーネントを切り出して独立したライブラリとして公開できました。抽出作業の大半は、下位層への依存を一度も許されていなかったファイルを移動するだけでした。詳しい話(私が間違えた部分も含む)→
同じ人間、同じルール、より低いリスク。
壁紙を監査する人はいません。これらがこのように作られているのは、それが私の知る唯一の作り方だからです。計測し、再利用できる部分を抽出し、限界も合わせて公開し、数値をプログラムの外にある何かと照合する。
この取り組みのどれについてでも質問してください。
- Isaac はどのような職種を探していますか?
- このうち本番環境で稼働しているものはどれですか?
- 彼が見つけて修正した実際のバグを見せてください