Skip to content

Track S: 学習ループ — SRS 0→1 と人間側の回路

目的: エージェントが量産した足場(辞書カード573枚・章ノート・証明の骨子・Lean)の上に、人間が毎日回せる想起・再導出・誤解記録の回路を作る。成果物生産の管理(progress.md)と記憶の維持(Anki)を分離し、後者を 0→1 で立ち上げる。

原則:

  • 足場の生産はエージェントのまま(独学の設計方針)。人間の仕事は「読む・想起する・間違える・記録する」に絞る。
  • 毎日の床(floor)は Anki を開くこと のみ。それ以外はすべて機会的(opportunistic)。学習時間は不定のため中断耐性を最優先する。
  • SRS 0→1(インポート可能なデッキ + 初回実レビューの journal 記録)を最初の 4 issue で達成する。

GitHub トラッキング: #96

現状とギャップ(2026-07-07 時点)

Section titled “現状とギャップ(2026-07-07 時点)”
既存層内容不足
辞書カード 573枚#Card + Back/Meaning/Lean想起可能な粒度でない。SRS レビュー履歴が graph 全体で 0 件
journal テンプレ復習(SRS) 欄あり一度も記入されていない。「床」の定義なし
progress.md生産状態(✅)学習状態と混同(読了⬜×カード化✅)。卒業条件なし
pages/10_Fleeting / 20_Literature / cards00_System / 30_Concepts 層なし。書籍横断の翻訳表なし
検証Lean(形式化済み範囲)カード⇔原著の忠実性監査なし。誤解台帳なし
生産(エージェント) 消費(人間)
───────────────── ─────────────────
辞書カード(既存573) ──選別──→ recall/ (~250) ──anki_export.py──→ .apkg
章ノート・証明の骨子 ──選別──→ reprove/ (15–25) ──────┘ │
import/再import(GUID固定)
mistake-ledger ←──2連続Again── Anki(mac) ⇄ AnkiWeb ⇄ AnkiDroid/iOS
journal 床✅ ←──毎日1行──────────┘ (レビュー状態の正本 + .colpkg 月次)
30_Concepts / curriculum ←── 卒業条件は recall デッキ成熟度を参照
パス役割
辞書層(既存)cards/<topic>/<id>.md参照用の正本。変更しない
想起層(新設)cards/<topic>/recall/<parent-id>-r<n>.md1問1答。Anki に流す唯一の層(reprove と共に)
再導出層(新設)cards/<topic>/reprove/<thm-id>.md主要定理の証明再構成プロンプト
システム層(新設)pages/00_System/本プラン・operations・mistake-ledger・curriculum・audit-log
概念層(新設)pages/30_Concepts/書籍横断の概念ノート・用語翻訳表
  • 配置: cards/<topic>/recall/<parent-id>-r<n>.md(例 cards/topology/recall/filter-r1.md)。サブディレクトリ方式 — エクスポートが glob 一発、既存索引を汚さない。
  • frontmatter: card-id::不変、Anki GUID の種)/ card-type:: recall / parent-card::(辞書カードへのリンク、必須)/ section:: / public:: false(1問1答は公開サイトでは雑音。方針が変われば反転可)。deck ルーティングはパスから導出(frontmatter に持たせない)。
  • 本文レイアウトは既存カードと同型(- 表題 #Card = Front、## Back = Back)— パーサ共通化のため。
  • 内容ルール: 1カード=1想起対象(名前→主張 / 主張→名前 / 公理の個数と内容 / 反例 / 仮定 のいずれか1つ)。Back は 3行・約150字以内 + 親カードリンク1行。Lean 注記・caveat・複数命題・Meaning は書かない(親の仕事)。Front は文脈自立(指示語禁止)。
  • 選定: guide.md ロードマップ準拠(必須 II–IV → 重要 VII–X → 本命 XII/XV/XXII§9/XXIV。V/VI 等の辞書章は対象外)。definition 全部 + 「章の背骨」級定理。辞書カードの 30–40% に 1–2 枚 → 総計 ~250 枚。
  • 正本規約は skills/recall-cards/SKILL.md(新設)+ templates/study-book/recall-card.md同期ルール: 辞書カードを編集するエージェントは recall/ 配下の子カードの整合確認を完了条件に含める。
  • genanki 採用(AnkiConnect 却下: Anki デスクトップ起動中前提でエージェント無人実行不可。genanki は git→.apkg のバッチ変換で決定的)。
  • スクリプト: scripts/anki_export.py。出力 build/anki/antigravity.apkgbuild/.gitignore)。依存は pip3 install --user genanki のみ(Python 3.9 可)。
  • GUID は guid_for(f"{topic}/{card-id}") に固定オーバーライド(最重要。genanki 既定はフィールド内容ハッシュのため、本文編集のたびに重複ノート化しレビュー履歴が分断される)。モデル ID・デッキ ID もスクリプト内固定定数(ランダム生成禁止)。
  • モデル2種: AntigravityRecall(Front/Back/Source/CardId)、AntigravityReprove(Statement/ProofSketch/Source/CardId)。
  • デッキ: 数学::<topic>::recall / 数学::<topic>::reprove。ノートに <book-slug>chNN タグを付与(filtered deck 用)。
  • LaTeX: $..$\(..\)$$..$$\[..\](MathJax。mac/AnkiDroid/iOS で追加設定不要)。エスケープ済み \$ とコードスパンは除外。Markdown→HTML は最小変換、[[cards/...]] リンクは末尾スラッグのプレーン表示に落とす。
  • 更新は再エクスポート+再インポート(GUID 一致で本文更新・履歴保持)。削除は .apkg で伝搬しない → カードに status:: retired を付けエクスポート除外 + Anki ブラウザで CardId 検索して手動削除(手順は operations.md)。
  • レビュー状態の正本は AnkiWeb。月1回 .colpkg を repo 外(~/Documents/anki-backups/)へ手動エクスポート。git には入れない
  • journal 復習(SRS) 欄を構造化: - 復習(SRS): {{枚数}}枚 / Again {{n}} / {{分}}分 — 床✅「床✅」= その日 Anki を開いた、が唯一の日次必須項目。統計の真値は Anki 側(二重記帳しない)。
  • 誤解台帳: グローバル1ファイル [[00_System/mistake-ledger]](誤解は概念単位で書籍横断のため書籍別にしない)。エントリ: 日付 / カードリンク / 誤解:: / 訂正:: / 出典::。記入トリガー: 同一カード2回連続 Again
  • 再入プロトコル(operations.md): 中断後は ①溜まった Anki を消化(新規カード0でよい)→ ②mistake-ledger を読み直す → ③journal の「明日の最初の一手」から再開。
  • Anki 統計の repo 逆輸入(AnkiConnect で journal 自動追記)は任意の後回し issue(S-23)。初期スコープ外。
  • cards/<topic>/reprove/<thm-id>.mdcard-type:: reprove。Front = 定理の主張、Back = 証明の骨子 1–3 行 + 親カードリンク(骨子が無い定理は追記とセット)。
  • スコープ: 本命章の主要定理 + 必須章のキー定理(Baire・Tychonoff 級)で合計 15–25 枚のみ。デッキは new/day=1 の低負荷設定。
  • 運用: 紙で5分以上想起してからめくる。失敗は journal 気づき → 必要なら mistake-ledger。
  • pages/30_Concepts/<concept-slug>.md。テンプレ templates/study-book/concept.mdstandard-term:: / mathlib:: / aliases:: / related:: + 各書籍カードへのリンク節)。
  • 翻訳表 30_Concepts/topology-terminology-map: Royal Road 独自用語 ↔ 標準用語 ↔ Mathlib 名の3列。symbol-index とカードから 30–50 行をシード。
  • パイロット概念ノート10枚(測度論・関数解析で再登場が確実なもの): filter / convergence / compactness / completeness / continuity / metric / uniform structure / countability / separation / product。
  • リンク規則: 概念ノート → カードの下向きリンクが正。既存573枚への concept:: 一括追記はしない(新規カードから必須化、既存は機会的バックフィル)。
  • 2冊目衝突規約(templates/study-book/README.md に追記): cards/<topic>/ はフラット維持・card-id は topic 内一意。同一概念は再カード化せず既存カードへ索引からリンク。定義が実質異なる場合のみ <id>--<book-slug>.md を併存させ、30_Concepts ノートから比較参照する。
  • [[00_System/curriculum]]: 系列 = Royal Road(位相)∥ LADR(線形代数)→ 測度論(書籍は候補列挙に留め、選定は独立の意思決定)→ 測度論的確率 → 関数解析。
  • Royal Road 卒業条件(検証可能な形): (a) 必須+重要+本命章の読了✅、(b) recall デッキ成熟度: 対象カードの90%が interval ≥ 21日、(c) 本命章の選別演習 各5問、(d) capstone 完了。capstone 候補: 「フィルター収束による Tychonoff の証明を書籍を見ずに再構成し Lean 検証」「XXIV の主要定理を標準用語で書き直した 30_Concepts ノート群」。
  • progress.md の ✅ は生産セマンティクスのまま。記憶の減衰は Anki が所有。凡例に1行追記のみ(✅ の自動減衰は作らない)。mistake-ledger に同一章のエントリが3件溜まったら最終レビュー列に 🚩+日付。

忠実性監査(相関エラー対策)

Section titled “忠実性監査(相関エラー対策)”
  • 章バッチごとに max(5, 辞書カード数の10%) 枚を無作為抽出。pdftotext で該当ページを取得し、逐語引用 + ページ番号必須で「主張・仮定・記号・出典」の4点照合。recall カードは親との整合も同時チェック。
  • 監査は model:opus + 逐語引用プロトコルで担保(生成と同系列モデルのため、PDF 原文引用を機械的裏付けにする)。
  • 所見はカード修正コミット + [[00_System/audit-log]] に1行記録。サンプル誤り率 >20% でその章の全数監査 issue を追加起票。ケイデンスは recall 化バッチ直後のみ(常設化しない)。

1 issue ≒ 1 コミット。トラッキング: #96。

S-A: SRS 0→1(最優先)

Phase内容ラベル依存
S-000_System 新設(plan・operations 骨子)+ recall テンプレ + skills/recall-cards/SKILL.mdmeta, srs, difficulty:2, model:sonnet
S-1recall 試作: 第II章 ~30枚topology, cards, srs, difficulty:2, model:sonnetS-0
S-2scripts/anki_export.py + .gitignoremeta, srs, difficulty:2, model:sonnetS-0
S-30→1 検証(import・LaTeX 目視・モバイル同期・初回実レビューの journal 記録・再import 重複ゼロ)meta, srs, difficulty:1, model:haiku(+人間参加)S-1, S-2
S-4recall: 第III・IV章 ~60枚 → 必須章デッキ完成topology, cards, srs, difficulty:2, model:sonnetS-3

S-B: 運用計装

Phase内容ラベル依存
S-5operations.md 完成(床・再入・バックアップ・retire)+ journal テンプレ更新 + progress 凡例meta, srs, difficulty:1, model:haikuS-3
S-6mistake-ledger.md + 記入トリガー規則meta, srs, difficulty:1, model:haikuS-3
S-7reprove カード 15–25枚(骨子欠落分の追記込み)topology, cards, srs, difficulty:2, model:sonnetS-4
S-8忠実性監査パイロット(II–IV サンプル・逐語引用)+ audit-log.mdtopology, cards, difficulty:2, model:opusS-4

S-C: 知識層と出口(S-A と並行可)

Phase内容ラベル依存
S-930_Concepts scaffold + concept テンプレ + 2冊目衝突規約meta, difficulty:2, model:sonnetS-0
S-10topology-terminology-map(Royal Road↔標準↔Mathlib)topology, difficulty:2, model:opusS-9
S-11パイロット概念ノート ×10topology, difficulty:2, model:sonnetS-10
S-12curriculum.md(系列・卒業条件・capstone)meta, difficulty:2, model:opusS-0

S-D: 展開(ゲート: S-3 完了から2週間、journal で床✅の継続を確認してから起票)

Phase内容概算
S-13〜16recall VII / VIII / IX / X(章ごと1 issue)各15–20枚
S-17〜20recall 本命 XII / XV / XXII§9 / XXIV(章ごと1 issue)各20–25枚
S-21LADR ch1–2 recall + linear-algebra デッキ(GitHub ラベル要新設)~25枚
S-22監査バッチ: VII–X・本命章(2 issue, model:opus)
S-23(任意)AnkiConnect で Anki 統計を journal に自動追記
S-0 ─┬→ S-1 ─┬→ S-3 ─┬→ S-4 ─┬→ S-7, S-8
├→ S-2 ─┘ ├→ S-5, S-6
├→ S-9 → S-10 → S-11 └(2週間ゲート)→ S-13..21 → S-22, S-23(任意)
└→ S-12
役割推奨理由
recall / reprove 生成Sonnet前例あり・判断中程度(difficulty:2)
exporter 実装・scaffoldSonnet / Haiku定型
翻訳表・卒業条件Opus数学的判断
忠実性監査Opus生成モデルと役割分離 + 逐語引用プロトコル

最初のユニット(S-0〜S-3)スコープ詳細

Section titled “最初のユニット(S-0〜S-3)スコープ詳細”
  • S-0: 本ページ(計画正本)+ 00_System/operations.md 骨子 + templates/study-book/recall-card.md + skills/recall-cards/SKILL.md(選定基準・1問1答ルール・Back 上限・同期ルール・親リンク必須・card-id rename 禁止)。
  • S-1: 第II章の definition 全部 + 骨格命題(prop-ii-1-1 級)から ~30枚。1辞書カードから最大2枚。
  • S-2 受け入れ条件: python3 scripts/anki_export.pybuild/anki/antigravity.apkg 生成、GUID 固定オーバーライド、モデル/デッキ ID 定数、$ 変換のサンプル出力検証。
  • S-3 は人間参加 issue: mac Anki インポートでノート数一致 → \operatorname/\mathcal/大型演算子を含む数式カード5枚を目視 → AnkiWeb 同期 → モバイルで1枚レビュー → 再エクスポート+再インポートでノート数が増えない(GUID 検証) → journal に 復習(SRS): N枚 / 床✅ の実記録。ここが Track S の 0→1 到達点

品質チェック(各 issue 完了時)

Section titled “品質チェック(各 issue 完了時)”
  • recall カードの Back が3行以内で親リンクを持つ
  • card-id が既存と非衝突・不変(rename 禁止)
  • 再エクスポート→再インポートで Anki のノート数が増えない(GUID 検証)
  • 数式サンプルが mac/モバイル両方でレンダリング
  • journal に床✅行。progress.md は生産セマンティクスのまま
  • 監査所見は逐語引用 + ページ番号付き
  1. トラッキング issue #96 を開き、未クローズの最上流 issue(S-0)から着手する。
  2. 着手時に issue の「状態」を実リポジトリと突き合わせ、ずれていればコメントで訂正してから作業する。
  3. .worktrees/issue-<N>/ で作業し、1コミット・push・issue クローズ(skills/plan-to-issues/SKILL.md 準拠)。
  4. S-D は #96 に床✅の2週間継続を確認するコメントを残してから起票する。
  1. genanki GUID の既定挙動(最重要): 既定はフィールドハッシュ。オーバーライドを忘れると本文編集のたびに重複ノート化しレビュー履歴が分断される。S-2/S-3 の完了条件に再インポート検証を必須化済み。
  2. MathJax 非対応マクロ: S-3 で \operatorname\mathcal・大型演算子を含むサンプルの目視を必須化。画像・メディアはスコープ外。
  3. 辞書カード変更時の recall 陳腐化: SKILL の同期ルール + 監査での親子整合チェックで対応。件数が増えたら parent-rev:: による lint を検討(現時点では過剰)。
  4. recall の public:: false 既定は暫定。公開サイト方針が変われば反転可。
  5. .apkg で削除が伝搬しない: status:: retired + 手動削除の運用で許容。
  6. 測度論の書籍未選定: curriculum.md では候補列挙に留める。
  7. linear-algebra の GitHub ラベル未存在: S-21 起票前に作成。