agentsclimarketplace

Learn from book

Skill noine32/learn-from-book/skills/learn-from-book

プログラミング技術書PDFから技術を1つずつ「実装→テスト→§6客観検証→承認→skill化」で学ぶ体験的学習パイプライン。読むだけで終わらせず、コード実行とミューテーションで"本当に落とし込めたか"を客観検証する。node ランタイム対応(excel-vba は将来)。「本から学んで」「この技術書を検証して」「技術書のこの章を試して」で発動。From its SKILL.md

Install
npx -y skills add noine32/learn-from-book --skill learn-from-book

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.7 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

learn-from-book

技術書を「読む」だけでなく「実装して・試して・検証済みの技術を増やす」ための体験的学習パイプライン。核心は §6 の客観検証(トートロジー/echo テストを機械的に弾く)。

いつ使うか

  • プログラミング技術書のPDFを渡され、「読んで・試して・検証済みの技術として蓄積したい」時。

手順(node ランタイム)

  1. 抽出: PDF をテキスト抽出(スキャン/画像PDFは非対応と明示)。人が抽出結果を目視してから進む。
    • ⚠ 日本語(Adobe-Japan1 等の CID フォント)PDFは pdftotext(poppler) だと文字化けする。PyMuPDF(pip install pymupdf)推奨fitzpage.get_text())。
    • 設定・命名規則・ショートカット・コメント等の"慣習/practice"系は実行検証の対象外(テストで pass/fail を作れない)。検証できるのは「コードで観測可能な振る舞いを持つ技術」のみ。それ以外は該当なしとして扱う。
  2. backlog 化: 技術候補を1件=1行で台帳化。1技術 = 独立に真偽判定できる1つの検証可能な主張(章やコードブロック単位ではない)。schema: { id, name, source, claim, experimentIdea, runtime, dependsOn, status }。dedup は正規化名(src/ledger.ts)。
  3. 実験: 各技術ごとに作業ディレクトリ(例 learning-lab/<book>/<technique>/)に impl.tsimpl.test.ts を書く。テストは §6 規約に従う:
    • ./impl を import している(ハードコード値を assert するだけの自作自演は不可)
    • アサート ≥ 1
    • 実装をミューテーションすると落ちる(ハーネスが全 export を throw 化して確認する)
  4. 検証: npx tsx src/cli.ts <technique-dir> を実行。VerifyResult(JSON) が返り、verified=true かつ exit 0 なら客観検証OK。
    • verified=falsefailure_classimpl-bug / env-missing / claim-limit / bad-test)を付けて記録。環境エラー(env-missing)はリトライ対象外。
  5. 承認ゲート(人): 技術名・主張・テスト・pass結果・negative-sanity の効き・why/limits/pitfalls 草稿・SKILL.md 草稿・名前衝突を提示。人が「このテストは主張を本当に検証しているか」を確認して 承認 / 却下 / 修正要求。
  6. 昇格: 承認された技術のみ ~/.claude/skills/<technique>/ へ(このリポジトリには置かない)。knowledge(why/limits/pitfalls・失敗)は Obsidian(非公開)へ。

§6 検証の客観性(このスキルの生命線)

verified には positive pass + アサート≥1 + 実装import + negative-sanity(ミューテーションで落ちる) の全てが必要。「pass+言語化」だけでは満たさない。完全自動化しきれない「期待値が echo でない」等は手順5の人チェックが backstop する。

厳守

  • 本のPDF/本文/本由来の個別 skill・knowledge を、このリポジトリに絶対コミットしない.gitignorelearning-lab/*.pdfbooks/ 除外)。
  • 生成コードは実行前にレビューする(作業ディレクトリ隔離であって実行隔離ではない。任意コードがユーザ権限で走る)。

excel-vba ランタイム(Windows専用・対応済み)

  • 技術ディレクトリ構成: impl.basAttribute VB_Name 付き・対象は Function または Sub)+ cases.json
  • cases.json スキーマ(setup/expect/expectCells は任意):
    {
      "fn": "GetEndRow",
      "cases": [
        {
          "setup": { "A1": 10, "A2": 20 },        // 実行前にセルへ値を書く(ワークシート操作系に必須)
          "args":  [ 5, { "range": "A1" }, [1,2] ], // スカラ/{ "range": "アドレス" }でRange/JSON配列でVariant配列
          "expect": 5,                             // 戻り値(スカラ)の期待値(任意)
          "expectCells": { "B1": "done" },         // 実行後のセル状態の期待値(副作用系。任意)
          "expectArray": [1, 2, 3]                 // 戻り値(1次元配列)の期待値(順序込み。任意)
        }
      ]
    }
    
  • 検証: npx tsx src/cli.ts <dir>impl.bas を検出して excel-vba で実行。新規Excelインスタンスを生成.bas を Import→ケースごとにシート初期化→setup書込→Application.Run(Range引数対応)→expect/expectCells照合、型対応ミューテーション(Function=戻り値 sentinel/Sub=空本体)で negative-sanity を確認。既存Excelは触らず自分のインスタンスのみ後始末。VBA実行時エラーのハングは timeout ガードで fail 化。
  • 前提: AccessVBOM(VBAプロジェクトへのアクセスを信頼)有効。Mac では実行不可(読む/参照のみ)。

参考

  • 検証ハーネス: src/verify.tsverifyTechnique)/ node アダプタ: src/adapters/node.ts
  • 台帳: src/ledger.ts / 型: src/types.ts
  • デモ: demo/debounce/(自作・著作権フリー)

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most learn study skills give in ~2.0k tokens

Counted across 546 of the 573 authors here whose files we hold, read 2026-08-07

  • Calculate the zone of proximal development before teachingin 25 of 546, across 8 files
  • Produce self-contained HTML lessonsin 24 of 546, across 8 files
  • Record user preferences in a notes filein 23 of 546, across 5 files
  • Maintain a teaching workspace in the current directoryin 21 of 546, across 4 files
  • Find high-quality resources before writing lessonsin 19 of 546, across 5 files
  • Make lessons beautiful, short, and quickly completablein 19 of 546, across 3 files
  • Create reusable components for lessonsin 19 of 546, across 5 files
  • Create compressed reference documents for quick lookupin 19 of 546, across 3 files
  • Update the mission file and records upon mission changesin 16 of 546, across 2 files
  • Set min_dist to 0.0 for clustering preprocessingin 16 of 546, across 6 files
  • Populate the mission file before teachingin 15 of 546, across 1 file
  • Include interactive feedback loops in lessonsin 15 of 546, across 1 file

Said here and by no other author read

  • Extract text from PDF using PyMuPDF
  • Have a human visually inspect extraction results
  • Create a ledger of testable technical claims
  • Write implementation and test files per technique
  • Import the implementation in tests
  • Ensure tests fail when implementation is mutated

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.