Skip to content

2026-07-06 学習ログ

やったこと(Track K プラン文書化・issue 起票)

Section titled “やったこと(Track K プラン文書化・issue 起票)”
  • 記号論理に慣れた数学未経験読者向けレビューを受け、PDF 由来の数学的意味層(Track K) のプランを文書化し GitHub issue に分割起票した。
  • プラン正本: logseq-graph/pages/20_Literature/royal_road_to_topology/track-k-meaning-from-pdf.md(/clear 後もここと tracking issue #61 から追跡可能)
  • トラッキング issue: #61 Track K: PDF 由来の数学的意味
  • 子 issue: #54(K-0 フォーマット), #55(K-1 第II章), #56(K-2 第III章), #57(K-3 第IV章), #58(K-4 第VII章), #59(K-5 第VIII–X章), #60(K-6 🎯本命章)
  • progress.md に「意味(PDF)」列を追加(全章 ⬜、Track K 完了時に各 issue が更新)
  • _home.md に track-k プランへのリンクを追加
  • #54 ✅ 完了(本ログに追記)
  • #55 ✅ 完了(本ログに追記)
  • #56 ✅ 完了(本ログに追記)
  • #57 から着手: 第IV章 L2/L3 意味追記
  • skills/pdf-meaning-notes/SKILL.mdreferences/meaning-layer-format.md を新設
  • skills/pdf-logseq-flashcards/references/logseq-card-format.md## Meaning とメタデータ規約を追記
  • reader-guide.md を新設(Preface p.vii–x 抜粋和訳、脚注2、次に読むもの表)
  • templates/study-book/README.md 学習サイクルに Track K を追記
  • _home.md に reader-guide リンクを追加
  • 出典 PDF: 2024-front-matter.pdf Preface pp.vii–x
  • 第II章 L2: chapter2.md## 数学的意味(原著より)(章冒頭 p.17、II.1 Def (A)→(B)→(C)、$\mathcal{N}(x)$/$\Gamma_\varphi$、II.2 動機)と ## 章の背骨(列→フィルター→完備束)を追加
  • 第II章 L3: 7 枚に ## Meaning を追加(sequence, neighborhood-of-x, filter-of-cofinite-preimages, filter, prop-ii-1-1, sequential-filter, ultrafilter
  • progress.md 第II章「意味(PDF)」列を ✅ に更新
  • 出典 PDF: chp2-2024-from-convergence-of-sequences-to-the-concept-of-filter.pdf pp.17–29
  • ブランチ: cursor/issue-55-ch2-meaning-9925(worktree .worktrees/issue-55
  • 第III章 L2: chapter3.md## 数学的意味(原著より)(III.1 公理化、Example III.1.1–1.4 対比、近傍系・pretopology 文脈)を追加。既存「章の背骨」と整合
  • 第III章 L3: 7 枚に ## Meaning を追加(convergence, discrete-convergence, chaotic-convergence, standard-sequential-convergence, standard-convergence, vicinity-filter, pretopology
  • progress.md 第III章「意味(PDF)」列を ✅ に更新
  • 出典 PDF: chp3-2024-convergence-of-filters.pdf pp.35–38
  • ブランチ: cursor/issue-56-ch3-meaning-9925(worktree .worktrees/issue-56

やったこと(policy.md に運用契約4節を明文化 / Track C-1・issue #63)

Section titled “やったこと(policy.md に運用契約4節を明文化 / Track C-1・issue #63)”
  • 先行レビューで「運用契約(判断・検証・方針転換・エスカレーション)が policy.md に不在」と判明していた件に対処。.ai-harness/policy.md の既存3節(1.コミットポリシー / 2.機密パス一覧 / 3.Done の定義)の後に、記事の観点に対応する4節を追記した。
    • §4 判断契約: コード・設定に触れる前に「成功条件・変更範囲(対象パス/変更ファイル数の目安)・検証手順」を宣言してから着手する。宣言と実変更が食い違い始めたら立ち止まる(§6 参照)。
    • §5 検証契約: 完了主張は感想でなく証跡で行う。完了報告に実行コマンドとその出力(テスト/lint/typecheck/スモーク)を添え、§3「Done の定義」を満たしたことを示す。失敗・スキップは正直に報告。
    • §6 方針転換契約: 同一目標で2回失敗したら同じ手を繰り返さず実装を止め、失敗内容(コマンド+エラー出力)・原因仮説・選択肢を添えてユーザーに相談。自動ループしない。
    • §7 エスカレーション基準: 対象は Sonnet↔Opus のみ、Fable は不使用でエスカレーション対象外と明記。既定 Sonnet 継続/(a)2回連続失敗・(b)危険操作の判断・(c)宣言予算の大幅超過で Opus 昇格を検討。
  • AGENTS.md → policy.md のポインタ参照([.ai-harness/policy.md](.ai-harness/policy.md) を正本とする の行)が有効なことを grep で確認。policy.md への追記は AGENTS.md 経由で全エージェントに届くため、AGENTS.md 側の追記は不要。
  • 制約「Fable 不使用・エスカレーションは Sonnet→Opus のみ」を §7 に明記した。記事の一般論では複数モデルの段階昇格を語るが、本ハーネスの不可侵制約に合わせて Fable を対象外と釘を刺すことで、後続の Claude 機構配線(#65)や doctor(#68)が §7 を根拠に判断できるようにした。
  • §4(宣言)と §5(証跡)と §3(Done の定義)を相互参照で接続し、「着手前の宣言 → 完了時の証跡 → Done 判定」が一本の線で辿れる構造にした。

やったこと(pre-write 用ガードスクリプト2本を新設 / Track C-2・issue #64)

Section titled “やったこと(pre-write 用ガードスクリプト2本を新設 / Track C-2・issue #64)”
  • .env 読取・rm -rf 等を事前に止める機構がゼロ」だった件に対処。PreToolUse 等の「書込み/実行前」判定に使えるガードスクリプトを .ai-harness/scripts/ に2本新設した。既存 check_sensitive_files.shgit diff --name-only を見る「書込み後」判定のため事前遮断には使えない、という状態を実際に確認した上での新規。
    • check_sensitive_path.sh: 引数 or stdin で渡された個々のパスを policy.md §2 の機密リストと突合。case パターンは既存 check_sensitive_files.sh と同一に保ち二重管理を回避(正本は policy.md §2)。該当なら日本語メッセージを stderr+exit 2、非該当は無出力 exit 0(check_uncommitted.sh の出力規約準拠)。相対・絶対の両パスを拾うため機密ディレクトリ照合は先頭 / を足して */dir/* で判定。
    • check_dangerous_command.sh: コマンド文字列を破壊的パターンと突合。rm -rf(-rf/-fr/-R f/分離指定)・git push --force/-f--force-with-lease は除外)・dd of=/dev/mkfs・デバイスへのリダイレクト・chmod 777 / 再帰・curl|wget ... | sh(未検証スクリプト実行)を検出し exit 2。
  • 両スクリプトに実行権限を付与し、該当/非該当の両ケースで手動スモークテスト(結果は issue #64 コメントに記録)。check_sensitive_path.sh.env/secrets/credentials/pem/infra/terraform/.github/workflows を BLOCK、.env.example/README.md/notsecrets/ を通過。check_dangerous_command.sh は危険10種を BLOCK、安全8種(rm file.txtgit push--force-with-lease 等)を通過。
  • set -u 下で "...$p(policy...)" と全角括弧を変数直後に置くと、$p( の括弧のバイトが変数名に巻き込まれて p<byte>: unbound variable になった。${p}( と明示ブレースで区切って解決。日本語メッセージを含むシェルスクリプトの落とし穴。
  • echo "rm -rf ..." のような引用された文字列も check_dangerous_command.sh は BLOCK する(誤爆)。引用の判別にはシェルパースが必要で、事前ガードは安全側に倒す方針(degrade は policy.md の文章契約で吸収)。旧 check_sensitive_files.sh/check_diff_budget.sh との統合可否の最終決定は #68 に委ねる。