Research log 2026-09-02 — sougou-connectors catalog 公開 arc

Date: 2026-09-02 · STEPs: 1677 (+ 3 follow-up) / 1678 (+ 1 corrigendum) · Repo: fc0web/rei-aios · Review: chat-Claude 4 round 独立検証

要約 (1 分)

『学問・技術 総合一覧』(2026-08-19、 藤本伸樹 単独著作) 446 項目の 構造化 索引データを 公開 URL 1 本 (通常版) + 1 本 (軽量版) として 発行。 chat-Claude 4 round 独立 review で 3 系統の 隠れた 設計欠陥 (immutable 手前警告 / 手書き keyConcepts drift / 契約分岐 過剰) を 発見・修正。 副産物として 3 本の 再利用可能 discipline (write-once / derive-from-data / mutable-only fix mode) を feedback memory に 記録。

公開 URL (3 本、 CF Pages で live)

種類URLサイズ用途
通常版 (mutable)catalog.json~162KBプログラムから 読む
通常版 (pinned)catalog-2.0.0.json~162KB論文引用 (immutable)
軽量版 (mutable)catalog-lite.json~28KBAI テキスト欄に 貼る
軽量版 (pinned)catalog-lite-2.0.0.json~28KB論文引用 (immutable)
READMEREADME.md~5KB命名規約 + 完全性 SHA-256

実データ chapter × 件数 (独立検算 可能)

読者が catalog-lite.json を 開いて 実際に 数えられる 数字。 keyConcepts は generator が 実データから 導出 するので drift しない。

#chapter件数#chapter件数
01学校教科3609装置34
02学問分野3710回路52
03資格5111コネクタ48
04教育学1512ソフトウェア57
05哲学2313PC完結メーター一覧 (付録 A)5
06理論3114空気中からの発電 (付録 B)3
07思想2515Rei 向けコネクタ候補 (付録 C)10
08倫理19TOTAL446
36 + 37 + 51 + 15 + 23 + 31 + 25 + 19 + 34 + 52 + 48 + 57 + 5 + 3 + 10 = 446

Arc 時系列 (5 commit)

STEPcommit内容
1677 initiale77443712catalog.json + catalog-2.0.0.json + README.md + _headers + test 44/44 PASS。 STEP 1676 自己記述契約 の 初 外部 instance
1677 hardening6ad4089dcchat-Claude 観察 ② 応答: verifier 型 check 実測命題化 (test §9 8 型 mismatch 追加、 44→56 PASS)、 章別内訳独立検算 §10 追加
1677 immutablea806efceechat-Claude 3rd round 警告応答: generator write-once discipline + README 命名規約 lock (56→71 PASS)
1678 initialeda100167catalog-lite (40KB 未満 列形式) + immutable template first reuse (72 PASS)
1678 corrigendum65ef01abdchat-Claude 4th round drift 応答: keyConcepts を 実データ Counter(items[].chapter) から 導出、 mutable のみ 更新 pinned 生涯保存、 STEP 1677 71→102 + STEP 1678 72→104 PASS

STEP 1677 — sougou-connectors catalog 公開

目的

『学問・技術 総合一覧』 の 索引データ 1 本を 「実行されない 静的 JSON」 として 公開。 Python コネクタ 本体 (446 file) は 非公開。 STEP 1676 で 定義した 自己記述契約 8 field (name/version/step/purpose/publicApi/keyConcepts/relatedModules/honestScope) を 外部公開データに 適用する 初回。

実装

chat-Claude review 経緯 (3 round)

Round 1 (実装直後): 独立 fetch 3 URL + 章別内訳 独立検算 (36+37+51+15+23+31+25+19+34+52+48+57+18=446、 当時は 「付録 A-C 18」 要約経由で 数字 一致) + 観察 ① 「version=2.0.0 の 意味論 drift」 (module 自身版 vs 元データ版) + 観察 ② 「type check の 有無」 推測

Round 2 (私の 応答): 観察 ② を empirical probe で 検証 (verifier は 既に 全 8 field で 型 check 済 実測 → test §9 に 8 型 mismatch case 明示化)、 観察 ① の 判定基準 3 段 記録 (自身版 → 元データ 同期意図なら明示 → 別 field 分離)

Round 3 (chat-Claude 訂正): 私の 「次 STEP で catalog-2.0.0.json の keyConcepts に 追記 検討」 提案 を 直接警告 — 「immutable として 公開、 SHA を README に 記載、 note で 公約済、 追記すると 公開約束破り」。 加えて 契約分岐 (evolutionKind: 'external-instance') は 却下、 sourceVersion field 追加を 推奨 (「契約は 分岐が 増えるほど 適合判定 が 読みにくい」)

fix (STEP 1677 hardening + immutable arc)

STEP 1678 — catalog-lite 公開

目的

catalog.json (162KB / 14 万字) は 添付は 可能だが AI テキスト欄 貼付には 重すぎる (無料プラン ChatGPT / Gemini で 止まる)。 note を 除外 + 列形式化 で 27,627 bytes / 17,321 chars の 軽量版を 発行、 catalog-2.0.0.json から 機械派生。

hybrid formatter 設計

形式bytes可読性採用
indent=2 (spec 案 A オブジェクト形式)~50KB✗ 40KB 超
indent=None (compact 1 line)~24KB低 (1 line)✗ 読解不能
indent=2 列形式 (fields+rows)~42KB✗ 40KB 超
hybrid (top pretty + rows 1 行/row compact)27.6KB✓ 採用

「軽い」 を test で assert

bytes  < 40,960  (現状 27,627、 margin 13,333)
chars  < 40,000  (現状 17,321、 margin 22,679)

spec §0 の 目的 (「AI 貼付可能」) を 意図ではなく 検証可能な命題 として test 化。 目的が サイズ そのもの の 場合、 目的を 測らないと 「作った」 としか 言えない。

chat-Claude review 4th round — 手書き keyConcepts drift 露呈

chat-Claude が 独立読取で 発見:
= note 記事の 「読者が 自分で 確かめられる」 検算 が grep 不能。 「学校教科」 で 実データに ヒットしない、 「付録 A-C」 は 章名でない。 確かめようとした 読者が 確かめられない。

fix (STEP 1678 corrigendum)

mutable / pinned SHA-256 (immutable 保証)

fileSHA-256 (先頭 16 桁)状態
catalog-2.0.0.json (pinned)1bab78389e2332bb…公開初日 (STEP 1677 initial commit) から 生涯不変 = drifted keyConcepts 保存
catalog-lite-2.0.0.json (pinned)dcfcdb11e1fd75e8…公開初日 (STEP 1678 initial commit) から 生涯不変 = drifted keyConcepts 保存
catalog.json (mutable)直近 = cf599cf7a59d607d…derive-from-data 修正済、 各回 生成で 更新
catalog-lite.json (mutable)直近 = cf599cf7a59d607d…derive-from-data 修正済、 各回 生成で 更新

pinned に 修正版が 必要なら catalog-2.0.1.json / catalog-lite-2.0.1.json別 file 名で 新規発行 (別 STEP 判断)。 現状 は 公開初日の drift bug が 文書化されて 残る = STEP 1677 immutable discipline が 「retroactively 修正 不能」 を 型 level で 実演。

Test 結果 (最終)

testassertion 数結果
step1676 (self-description contract)3535/35 PASS (regression 全通過)
step1677 (catalog publish)102 (初 44)102/102 PASS
step1678 (catalog-lite)104 (初 72)104/104 PASS

成果物 3 本の 再利用 discipline (feedback memory)

Honest scope

Failure mode (未来 Claude 引き当て pattern)

症状Prevention
immutable 公開 file の 中身が 「便利な追記」 の 名目で 書き換わるgenerator level SystemExit + README で 公約明記 + test §11 で 3 経路 subprocess 検証
手書き keyConcepts と 実データ の 表記 ズレgenerator で Counter(items) 導出 + test で labels ⊆ actual chapter set assert + drift 語句 negative assert
「作った」 と 言いたい 目的 が サイズ の 場合、 意図だけで assert 無しbytes/chars 上限を test §2 で 実測 assert、 目的 = 検証可能命題 化
4 file バイト一致 test が corrigendum で 破綻pair invariants (mutable pair + pinned pair) + pair 間 分岐 許容 + pinned first-write 生涯一致 assert に refactor

関連 STEP + 参照


Generated 2026-09-02 · Rei-AIOS · fc0web/rei-aios · Claude Opus 4.7 (Claude Code session)
公開 URL: https://rei-aios.pages.dev/tools/research-log-2026-09-02-sougou-catalog-arc/