Change theme here
Theme
Light Mode
Classic Beige Slate Sakana Botanical Shell White
Dark Mode
Carbon Synthwave Hacker Tidal Viper
Reverse index

What is happening → what to do

Look things up by symptom, not by title. The link under "what to do" jumps to the section that describes the mechanism. The full table of contents is at the bottom.

This table assumes Claude Code (Anthropic's coding agent). hook, CLAUDE.md, subagent and auto memory are the names of its features.

Sponsor
What is happening What to do
Every time the AI runs the tests, tens of thousands of output lines flood the context

Route all test runs through a single wrapper script, write the full output to a log file, and return only a summary of the failures to the AI.

→ What I stopped reading The Art of Not Reading #1: The Art of Not Reading Test Output

context window wrapper script fixed-prefix count line ([observed])

The more knowledge notes the AI saves, the more every future session has to read

Use a PreToolUse hook that runs right before a memory write to make the AI read a checklist first, and keep the instruction file (CLAUDE.md) down to a single line: "read before you write."

→ 読まなくなったもの 読まない技術 第2回:メモリを読まない技術

MEMORY.md loaded at session start context rot

The tests pass, but it's unclear whether they actually protect anything

Write a one-page policy on mutation testing (deliberately breaking the code to see whether the tests catch it), and have the AI read it whenever you ask it to review the tests.

→ 読まなくなったもの 読まない技術 第3回:単体テストを読まない技術

mutation testing positive control vacuous truth

The AI sometimes uses a registered skill and sometimes doesn't

Keep the command as an ordinary script, block incorrect invocations with a PreToolUse hook, and point the AI to the documentation it should read.

→ 読まなくなったもの 読まない技術 第4回:スキルを使わない技術

PreToolUse hook (Bash matcher) hook stderr + exit 2 mission

Once work is handed to a sub-agent, you can't see what's happening until it finishes

Define, in YAML, which tasks may be delegated to a sub-agent and which input files must exist before launch, then check that with a hook before it starts.

→ 仕組みは一つ: 第 4 回と同じものを当てるだけ 読まない技術 第5回:サブエージェントの出力だけは読め

subagent (Agent tool) subagent (no parent context) contract (inputs / outputs / acceptance)

The more rules you add to the instruction file, the less the earlier rules get followed

Rewrite each "don't do X" rule, one at a time, as an automated test (Minitest) that can detect a violation.

→ 読まなくなったもの 読まない技術 第6回:ルールを読まない技術

CLAUDE.md Claude Code hooks (PreToolUse / PostToolUse / Stop / SubagentStop) hook contract (proof of reading)

Memory shared across parallel sessions gets messy, and having them read the policy doesn't help

Move the same policy file into a PostToolUse hook and show it alongside the diff right after the save. Keep the content unchanged — only change the timing.

→ 読まなくなったもの 読まない技術 第7回:共有メモリを整理しない技術

MEMORY.md concurrent test runs hooks / automated tests

Even after writing down how to handle a failure, the AI makes the same mistake again next time

Summarize the retry policy in a few lines in a file, and have a hook that detects the failure insert it automatically.

→ 読まなくなったもの 読まない技術 第8回:修正履歴を読まない技術

auto memory (feedback_*)

Even reading the handoff notes and completion report, the inconvenient parts are missing

Every time, place mechanically obtained numbers — from something like git diff --stat — right next to the completion report.

→ 読まなくなったもの 読まない技術 第9回:引き継ぎを読まない技術

handoff test summary line (full log in a file)

Numbers the machine counted turn into different numbers by the time they reach the report

Attach a fixed prefix to the line with the number, and have a hook check that it was copied verbatim.

→ 読まなくなったもの 読まない技術 第10回:AIに要約しろと言わない技術

machine-counted numbers ([observed] / git diff --stat) test summary line (full log in a file) self-report (bias toward completion)

Interrupting the AI mid-task throws off everything it does afterward

Instead of a person interrupting mid-task, let a PostToolUse hook that returns the policy right after a save, and a hook that detects failure and sends the work back, do the intervening. The person waits for a natural break.

→ 言わなくなったもの 読まない技術 第11回:口を挟まない技術

user message during a task recency context window

At the end of a session, it's undecided what needs reading and what doesn't

Don't read the deliverable or the work log — judge pass or fail solely by the exit code of the tests or linter.

→ 読まなくなったもの 読まない技術 第12回:作業結果を読まない技術

self-report (bias toward completion) machine-counted numbers ([observed] / git diff --stat) exit code (pass / fail)

A proposal you already rejected comes back again in the next session

Consolidate every rejected decision into a single document, using a fixed format.

→ 説明しなくなったもの AIの意見を聞かない技術 第1回:提案を検討しない技術

Even with a one-line prohibition written down, it gets both over- and under-interpreted

In the single document that collects rejected decisions (for example non_goals.md), add a "reason" heading to each prohibition, next to the conclusion.

→ 思い出さなくなったもの AIの意見を聞かない技術 第2回:禁止を書かない技術

The prohibition is written correctly but not followed, and each time someone asks about it

In the rejected-decisions document, add a "scope" heading to each prohibition and list, one line at a time, the borderline cases that cause confusion.

→ 相談されなくなったもの AIの意見を聞かない技術 第3回:禁止ルールを作らない技術

gap between goal pressure and spec rule-to-test mapping

Give the same instructions to several sub-agents and each one comes back in a different shape

In the list of tasks that may be delegated to a sub-agent, explicitly state the input files that must be prepared before launch.

→ 仕組み: 用途カタログに、契約を書く AIの意見を聞かない技術 第4回:サブエージェントの入力だけは、確かめろ

subagent mission catalog + launch hook contract (inputs / outputs / acceptance) required input files

Prohibitions with no automated test pile up, staying nothing more than text on a page

In the rejected-decisions document, add a "machine-checked" heading to the list and mark, item by item, whether a corresponding automated test (Minitest) exists.

→ 読み直さなくなったもの AIの意見を聞かない技術 第5回:自動テストを書かない技術

probabilistic compliance (p^n)

Every piece of AI work ends with "please open the screen and check it"

Prepare a single Playwright smoke test, and judge pass or fail by the record left in the database rather than by how the screen looks.

→ 確認しなくなったもの AIの意見を聞かない技術 第6回:AIの確認依頼を断る技術

automatic error report from users

Every time the AI says something slightly off, you're the one explaining and fixing it

Instead of a person explaining and correcting each slip, write the correction into a hook's stderr (exit 2) and into automated-test failure messages, so that is the route by which it reaches the AI.

→ 指摘しなくなったもの AIの意見を聞かない技術 第7回:AIの話を聞かない技術

SendMessage (retry)

The list of rejected decisions keeps growing and looks headed for the point where nobody reads it

Add a "not adopted" section at the end of the rejected-decisions document, and record rejected proposals there.

→ 整理しなくなったもの AIの意見を聞かない技術 第8回:ルールを整理しない技術

MEMORY.md context rot

The instruction file's "always run this" lines never seem to shrink

Use an automated test to cross-check whether every command the instruction file marks "always run" also exists in a pre-commit hook.

→ 頼まなくなったもの 言わない技術 第1回:検証を指示しない技術

CLAUDE.md Minitest hooks / automated tests

Even after writing out exactly how to do it, the fix doesn't come back that way

Instead of dictating the procedure, define, per use case, the input files that must exist before a sub-agent can be launched.

→ 書かなくなったもの 言わない技術 第2回:具体的な指示を出さない技術

per-mission guide document presupposition launch without a contract

Reporting a bug means writing out the steps and symptoms yourself, every single time

Set up a bug report form where the person only types one sentence describing the symptom, and let JavaScript automatically collect the URL, action history, and browser information.

→ 書かなくなったもの 言わない技術 第3回:不具合詳細を書かない技術

bug report form (JS collects URL / actions / browser)

Typing "give me a plan first" every time is its own recurring chore

No new implementation is needed. Put a single design document in place, and the AI will read the existing documents and follow the same format.

→ 要求しなくなったもの 言わない技術 第4回:計画を書けと言わない技術

The lines you most want followed are written the most emphatically, yet you can't tell whether that helps

Stop trying to measure the effect — instead count the lines in the instruction file that use emphasis, and add an automated test (a ratchet) that fails once that count exceeds a threshold.

→ 押さなくなったもの 言わない技術 第5回:念を押さない技術

emphasis count in CLAUDE.md sycophancy Dir.glob scan

A sub-agent's deliverable comes back in a different shape than you expected

For each sub-agent use case, define the acceptance criteria for its deliverable — file name, format, required fields — in a single document.

→ 仕組み: 完了の形を、1 枚に書き切る 言わない技術 第6回:サブエージェントの出力だけは、細かく指示しろ

subagent (Agent tool) contract (inputs / outputs / acceptance) self-report (bias toward completion)

Finding a mistake makes you want to demand, "did you actually read this?"

Instead of demanding an answer, fix the second sentence of every request to the question template "isn't it the case that ...?".

→ 打たなくなったもの 言わない技術 第7回:AI を問い詰めない技術

sycophancy

Replying "that's not it" to the answer you got back doesn't make it any better

Instead of pointing it out yourself, present prohibitions that come with no alternative through a PostToolUse hook, shown alongside the diff right after the save.

→ 言わなくなったもの 言わない技術 第8回:AI にダメ出ししない技術

SendMessage (retry) guarded_by + marker over-triggering

The AI talks about a file's contents as though it had opened it, when it hasn't

Have the AI write matching markers in both the referenced document and the code, and verify with an automated test that the markers actually exist.

→ 考えさせなくなったもの 言わない技術 第9回:AI に考えさせない技術

hallucination escape hatch (SKIP_*= / --no-verify) marker

The AI keeps asking "A or B?" and work grinds to a halt while you decide

Stop answering on the spot — arrange for the choice to be decided by an automated test or a hook instead.

→ 答えなくなったもの 言わない技術 第10回:質問に答えない技術

The AI is doing the review, but it's unclear what it isn't looking at

Use an outside automated test that counts things to catch any automated test that scans files but has no lower-bound assertion on the count (e.g. assert_operator ... :>=).

→ させなくなったもの 言わない技術 第11回:AI にレビューをさせない技術

Minitest vacuous truth Dir.glob scan

Screenshots keep piling up, but it's unclear which one verified what

Before checking the screen, require answers to two questions — "what is being verified" and "why a cheaper method won't do" — and keep a one-page guideline for trying the cheapest option first, in the order unit test, integration test, then E2E.

→ 眺めなくなったもの 確かめない技術 第1回:スクリーンショットを撮らない技術

Playwright screenshot verification ladder (unit → integration → E2E) verification declaration file + PreToolUse hook

A step that requires writing something down is in place, but you can't count how many runs skipped it

Before a screenshot or an E2E run, have a declaration file written that states what is being verified (for example tmp/visual_verification.md), make its existence a precondition of a PreToolUse hook, and let the screenshot or E2E refuse to start without it.

→ 読まなくなったもの 確かめない技術 第2回:宣言を信じない技術

verification declaration file + PreToolUse hook Claude Code hooks (PreToolUse / PostToolUse / Stop / SubagentStop) PreToolUse hook (Bash matcher)

The same test runs again even though the code hasn't changed, and you wait for it anyway

Add a --last option to the test wrapper script that replays the previous log, so a rerun isn't needed.

→ 待たなくなったもの 確かめない技術 第3回:テストを再実行しない技術

--last (replay the previous result) mtime check expensive entry point (screenshot / E2E / production)

Nothing was broken, yet a wall of unfamiliar errors shows up

Have the test wrapper script take an exclusive lock (using the atomicity of mkdir), and refuse to run if it can't acquire one.

→ 生まれなくなったもの 確かめない技術 第4回:偽の失敗を読まない技術

flaky failure mkdir lock concurrent test runs

A report saying "the tests pass" doesn't mention the parts that never ran

Tag heavy E2E tests by area name and skip them by default, and print the list of areas that didn't run every time.

→ 走らせなくなったもの 確かめない技術 第5回:全部走らせない技術

E2E area (E2E=<area>) skipped-area count line pass / fail by DB record

There's no way to tell afterward whether an instruction specifying how to proceed was actually followed

When you want a procedure followed, don't strengthen the wording of the instruction — instead change it so that following the procedure leaves a trace in the deliverable (for example, having it print one line for every file it opens).

→ 書き直さなくなったもの 動かさない技術 第1回:手順を守らせない技術

sycophancy file existence check tool_use count

A wrapper you put in place gets abandoned partway through, back to the raw command

When you want the wrapper used, don't strengthen the instruction — check instead whether there's still a reason to fall back to the raw command, meaning the wrapper is missing some capability.

→ 書き直さなくなったもの 動かさない技術 第2回:ラッパーを使わせない技術

wrapper script the raw command the model defaults to workaround after exit 2

Asking the same question repeatedly gets a different answer each time, and summarizing loses something

Before merging multiple answers into one, print how often each type of finding appeared — how many out of how many raised it.

→ 集めなくなったもの 動かさない技術 第3回:集めない技術

one subagent run answer key

There's no way to tell whether a line that says "do X if needed" ever actually fired

Don't write conditional instructions like "do X if needed" — instead enforce the step with a hook that blocks progress until it's done.

→ 書かなくなったもの 動かさない技術 第4回:役に立たない技術

rule-to-test mapping Claude Code hooks (PreToolUse / PostToolUse / Stop / SubagentStop) file existence check

Saying "think about it again" changes the answer, but it's unclear whether the AI is actually convinced

Instead of sending it back with "think about it again," point out specifically which premise is wrong.

→ 選び直させなくなったもの 動かさない技術 第5回:選び直させない技術

sycophancy SendMessage (retry) guarded_by + marker

Writing "don't guess" made the AI start coming back having built nothing at all

Don't hand over only a prohibition — pair it with a fallback output, such as "if nothing applies, output 'not applicable'".

→ 塞がなくなったもの 動かさない技術 第6回:逃げ道を塞がない技術

escape hatch (SKIP_*= / --no-verify) hooks + automated tests + ratchet hallucination

The longer a conversation that's going well continues, the more effort it takes to verify

End the session at each task boundary, and start the next task in a new session.

→ 続けなくなったもの 動かさない技術 第7回:セッションを続けない技術

context window input / output / cache read tokens sycophancy

Every deliverable is correct, yet waste that never shows up in them keeps building up

Once the deliverables are complete, run a script to tally the work log (transcript) itself, once.

→ 見なくなったもの 動かさない技術 第8回:成果物で判断しない技術

file existence check machine-counted numbers ([observed] / git diff --stat) Dir.glob scan

Notes left behind for the next person drift out of sync with reality and go stale

Don't leave the knowledge in a document — embed it in an automated test's failure message or a hook's stop message, so it surfaces exactly when it's needed.

→ 残さなくなったもの 動かさない技術 第9回:知見を残さない技術

handoff MEMORY.md mtime check

Digging into the cause continues, and the reading keeps going even after the answer is found

Count, from the work log, runs of reads that never changed anything, and write a one-line stopping condition before you start digging.

→ 深追いしなくなったもの 追わない技術 第1回:深追いしない技術

machine-counted numbers ([observed] / git diff --stat) input / output / cache read tokens Dir.glob scan

The lowest-priced model is made the default without measuring whether it actually fits the use case

Give the same task to both the cheaper and the more expensive model, then decide only after separately counting the turns to completion and the amount newly read, reused (cache read), and written.

→ 既定にしなくなったもの 追わない技術 第2回:一番安いモデルを使わない技術

rule-to-test mapping Minitest machine-counted numbers ([observed] / git diff --stat)

When something isn't working, the fix reached for is a bigger model rather than a better mechanism

Give the same task to both the more expensive and the cheaper model, and turn the spots where only the cheaper one fails into a permanent check.

→ 乗り換えなくなったもの 追わない技術 第3回:最新モデルを使わない技術

rule-to-test mapping Minitest machine-counted numbers ([observed] / git diff --stat)

Research that the main session could finish on its own gets handed to a sub-agent just in case

Before delegating, check whether the parent agent already has that context. If it does, keep going in the parent agent; hand a subagent only the bulk of the reading it doesn't already have.

→ 渡さなくなったもの 追わない技術 第4回:サブエージェントを使わない技術

subagent (Agent tool) context window input / output / cache read tokens

The default move is to split the work into four and run them all at once, just because

Give each subagent only as much as it can return in a single response. What sets the cost isn't how many subagents there are, but how many round trips each split-off subagent makes with the parent agent.

→ 割らなくなったもの 追わない技術 第5回:エージェントチームを使わない技術

subagent (Agent tool) input / output / cache read tokens machine-counted numbers ([observed] / git diff --stat)

"Take a look at this too" gets injected from outside partway through the work

Wait for a natural break in the work, then bring in the extra request with a narrowed scope. When asking the AI itself about gaps, always add: "if it's sufficient, say so explicitly." That gives it an escape hatch, so it doesn't have to invent a gap.

→ 差し込まなくなったもの 追わない技術 第6回:途中でレビューさせない技術

subagent (Agent tool) instruction priority (position / recency / system vs user) over-triggering

Which model to use is being decided by comparing them head to head

Before starting to compare models, count how many hooks or automated tests the comparison would cost in effort. If you can write down more mechanisms than that, put those in place before comparing.

→ 比べなくなったもの 追わない技術 第7回:モデルを選ばない技術

input / output / cache read tokens rule-to-test mapping

"There was no difference" is used as the reason to wrap up the verification

Before wrapping up with "there was no difference", count two things: if any results were excluded from the tally (such as failed subagents), put them back and recount; if more than half the items score zero under every condition, rephrase the task and measure again.

→ 諦めさせなくなったもの 追わない技術 第8回:諦めさせない技術

machine-counted numbers ([observed] / git diff --stat) vacuous truth

All articles

Series by series, from the introduction to the final article.

はじめに —— 3 つの連載を、1 冊に

  1. はじめに —— 3 つの連載を、1 冊に

バイブコーディングにおける読まない技術

  1. The Art of Not Reading — Introduction I Barely Read What the AI Outputs Anymore
  2. The Art of Not Reading #1 The Art of Not Reading Test Output
  3. 読まない技術 第2回 メモリを読まない技術
  4. 読まない技術 第3回 単体テストを読まない技術
  5. 読まない技術 第4回 スキルを使わない技術
  6. 読まない技術 第5回 サブエージェントの出力だけは読め
  7. 読まない技術 第6回 ルールを読まない技術
  8. 読まない技術 第7回 共有メモリを整理しない技術
  9. 読まない技術 第8回 修正履歴を読まない技術
  10. 読まない技術 第9回 引き継ぎを読まない技術
  11. 読まない技術 第10回 AIに要約しろと言わない技術
  12. 読まない技術 第11回 口を挟まない技術
  13. 読まない技術 第12回 作業結果を読まない技術
  14. 読まない技術 最終回 AIの出力を、ほとんど読まなくなった

AIの意見を聞かない技術

  1. AIの意見を聞かない技術 序論 断ったはずの提案が、また来る
  2. AIの意見を聞かない技術 第1回 提案を検討しない技術
  3. AIの意見を聞かない技術 第2回 禁止を書かない技術
  4. AIの意見を聞かない技術 第3回 禁止ルールを作らない技術
  5. AIの意見を聞かない技術 第4回 サブエージェントの入力だけは、確かめろ
  6. AIの意見を聞かない技術 第5回 自動テストを書かない技術
  7. AIの意見を聞かない技術 第6回 AIの確認依頼を断る技術
  8. AIの意見を聞かない技術 第7回 AIの話を聞かない技術
  9. AIの意見を聞かない技術 第8回 ルールを整理しない技術
  10. AIの意見を聞かない技術 最終回 選択肢を選ばない技術

言わない技術

  1. 言わない技術 序論 AI に指示することが、ほとんどなくなった
  2. 言わない技術 第1回 検証を指示しない技術
  3. 言わない技術 第2回 具体的な指示を出さない技術
  4. 言わない技術 第3回 不具合詳細を書かない技術
  5. 言わない技術 第4回 計画を書けと言わない技術
  6. 言わない技術 第5回 念を押さない技術
  7. 言わない技術 第6回 サブエージェントの出力だけは、細かく指示しろ
  8. 言わない技術 第7回 AI を問い詰めない技術
  9. 言わない技術 第8回 AI にダメ出ししない技術
  10. 言わない技術 第9回 AI に考えさせない技術
  11. 言わない技術 第10回 質問に答えない技術
  12. 言わない技術 第11回 AI にレビューをさせない技術
  13. 言わない技術 最終回 何もしない技術

付録

  1. あとがき —— 私は、忘れるのが得意です
  2. 付録 A 1 ターンの解剖 —— リクエストに何が載っているか
  3. 付録 B コンテキストの寿命 —— 圧縮・キャッシュ・サブエージェント
  4. 付録 C hook の契約 —— イベント・exit code・JSON
  5. 付録 D 指示ファイル・ルール・メモリ・スキルの読み込み時点
  6. 付録 E サブエージェントの機構と測定法
  7. 付録 F 自動テストの 8 つの型
  8. 付録 G git とプロセスの機構
  9. 付録 H 画面と本番の検証のはしご
  10. 付録 I AI の性質の出典
  11. 付録 J 用語集 —— 連載の造語と技術名称
  12. 結び —— 依存はどこにあるか

はじめに —— 前巻の続きを、もう 1 冊に

  1. はじめに —— 前巻の続きを、もう 1 冊に

確かめない技術

  1. 確かめない技術 序論 AI のいうことを、もう確かめていない
  2. 確かめない技術 第1回 スクリーンショットを撮らない技術
  3. 確かめない技術 第2回 宣言を信じない技術
  4. 確かめない技術 第3回 テストを再実行しない技術
  5. 確かめない技術 第4回 偽の失敗を読まない技術
  6. 確かめない技術 第5回 全部走らせない技術
  7. 確かめない技術 最終回 その場で決めない技術

動かさない技術

  1. 動かさない技術 序論 確かめるために、プロダクトを動かすことがなくなった
  2. 動かさない技術 第1回 手順を守らせない技術
  3. 動かさない技術 第2回 ラッパーを使わせない技術
  4. 動かさない技術 第3回 集めない技術
  5. 動かさない技術 第4回 役に立たない技術
  6. 動かさない技術 第5回 選び直させない技術
  7. 動かさない技術 第6回 逃げ道を塞がない技術
  8. 動かさない技術 第7回 セッションを続けない技術
  9. 動かさない技術 第8回 成果物で判断しない技術
  10. 動かさない技術 第9回 知見を残さない技術
  11. 動かさない技術 最終回 実験しない技術

追わない技術

  1. 追わない技術 序論 新しいモデルが出ても、もう乗り換えていない
  2. 追わない技術 第1回 深追いしない技術
  3. 追わない技術 第2回 一番安いモデルを使わない技術
  4. 追わない技術 第3回 最新モデルを使わない技術
  5. 追わない技術 第4回 サブエージェントを使わない技術
  6. 追わない技術 第5回 エージェントチームを使わない技術
  7. 追わない技術 第6回 途中でレビューさせない技術
  8. 追わない技術 第7回 モデルを選ばない技術
  9. 追わない技術 第8回 諦めさせない技術
  10. 追わない技術 最終回 振り回されない技術

番外編

  1. 番外編 A-1 整理する技術 —— 記録が増えたときに、何が起きているか
  2. 番外編 A-2 指示を残す技術 —— 「調べるだけ」が通らなかった日
  3. 番外編 A-3 参照するタイミングを変える技術 —— 2,000 行の壁
  4. 番外編 A-4 導出を依頼者の言葉と分ける技術 —— 誰も言っていない条件が、memory に載った日
  5. 番外編 A-5 memory を要約しない技術 —— 整理から、要約を抜く
  6. 番外編 A-6 責務で線を引く技術 —— 仕組みが増えたときに、どれを消すか
  7. 番外編 A-7 読まれたかを確かめる技術 —— 確かめるのをやめて、読めていない形を止めた
  8. 番外編 A-8 面積で数える技術 —— 読ませた量で数えていたら、102 倍外していました
  9. 番外編 A-9 ルールを短くする技術 —— 読みに来るのは、止められた直後の人です
  10. 番外編 B-1 連載を本にする技術 —— 本単位のスイッチでは、足りなかった日
  11. 番外編 C-1 校正の方法に、先に本編を当てる技術 —— 方法を決める文が、本文と同じ地雷を踏んでいた日
  12. 番外編 C-2 仕組みと人を分ける技術 —— 検査を置いたその手で、検査の外側で 2 度転んだ日
  13. 番外編 C-3 要素ごとに観点を変える技術 —— 一様に当てた点検が、要素をまたいだところで数を落としていた
  14. 番外編 C-4 指示の揺れを、事故として残す技術 —— 事故を見て置いた仕組みは、まだ一度も鳴っていない
  15. 番外編 C-5 作業の流れを見る技術 —— 終わりにしたつもりの日に、まだ起きていたこと
  16. 番外編 C-6 作業を進める技術 —— 選ぶ場面が、1 つも残らなかった日
  17. 番外編 C-7 基準の出どころを見る技術 —— 2 分前に開いたページに、答えが書いてありました
  18. あとがき —— 本当の事実はどうでもいい話
Sponsor

Back to the series index

Ad Blocker Detected

TypingTube is supported by ad revenue. Please consider allowing ads to help keep this site running.