Fable 5 を活用した Agentic OS の構築方法(開発者ガイド)

@Av1dlive
英語1 日前 · 2026年7月06日
333K
311
41
41
1.1K

TL;DR

本書は、Claude Fable 5 を使用して自律型エージェントシステムを構築するための 8 ステップのフレームワークを解説した技術ガイドです。決定論的ゲートと段階的な信頼モデルの構築に焦点を当てています。

以下が、提供されたガイドラインに従って翻訳された日本語版です。

これは、Claude Fable 5 の完全な A–Z 解説です。その正体と、100 倍のエンジニアのように使いこなす方法を解説します。

これにより、Claude との連携方法がすべて変わります。

忘れる前に、これら 8 つのビルドをブックマークしてください

はじめに

あなたは、これまでに一般公開された中で最も高性能なモデルを手にしているのに、まだ一度に一つずつプロンプトを入力しています。このガイドがそれを解決します。

2026 年 7 月時点の状況はこうです。Fable 5 は、無人で何時間も実行でき、自身のサブエージェントを派遣し、一晩で一週間分の仕事をこなせます。また、従量課金制(使用クレジットで入力 $10/M、出力 $50/M)であり、スコープが明確に区切られていないと過剰に成果を出し、自分の間違いを、ほとんどの人が正しい答えを主張するよりも説得力を持って主張します。

カジュアルに使うと、印象的な間違ったものを生成するための高価な方法です。システム内で使うと、1 日 3 ドルでレンタルできる、従業員に最も近い存在です。

このガイドは、そのシステムを構築します。哲学ではありません。実際のファイルを、順番に、各チェックポイントを設けて、次のピースを積み重ねる前に機能することを確認しながら進めます。

最終的に得られるもの:

  • モデルが交渉できない CLAUDE.md(ビルド 1)
  • Fable 5 がすべての決定を行うが、ほとんどトークンを書かず、安価なモデルが作業を行い、独立した検証者が採点し、bash スクリプトが最終投票を行うデイリーループ(ビルド 2-3)
  • 測定された合格率に基づいて、スキルごとに自律性を自動的に付与および剥奪する信頼台帳(ビルド 4)
  • 完了したすべての成果物が毎日、永久に再検証され、何も静かに腐敗しない目標ディレクトリ(ビルド 5)
  • あなたを驚かせるのではなく、自動的に執行される予算(ビルド 6)
  • 4 つのオプションループ(クォーラム、ラチェット、スパーリング、コンポスト)。それぞれに、いつインストールすべきかを示す条件が付いています(ビルド 7)
  • cron スケジュール、システムが発生させる可能性のあるすべてのアラームのランブック、および監視下から自己拡張へと移行する 30 日間の信頼スケジュール。

対象読者。 リポジトリ、ターミナル、Claude Code サブスクリプションまたは API キーを持つすべての人。例はコード寄りですが(ループがコードベースを中心に発展してきたため)、目標システムとループの半分は、請求書、レポート、読書リストでも同様に機能します。述語は単なるシェルコマンドです。

読み方。 順番に、チェックを行いながら。ビルド 0 は公式の Anthropic 設定とプロンプト言語です。それ以降はすべて、その上に構築されるシステムです。各ビルドは 10 ~ 20 分です。最後の 30 日間は読書時間ではありません。システムがあなたなしで実行する権利を獲得するまでの、段階的信頼スケジュールです。実際の作業時間: 約 2 時間。

すべての根底にある 3 つの原則。 読む前に、あらゆる設計上の決定を予測できるようになります。

  1. ヒントではなく、ルール。 すべてのルールには、番号、「絶対にしない」、またはそれをチェックするコマンドがあります。それより弱いものは最適化されて消えます。
  2. 自分の宿題を自分で採点させない。 プランナー、ワーカー、検証者、ゲートは 4 つの異なる関係者であり、最後のものは決定論的です。
  3. 一度合格したものは監視されないままにしない。 完了した作業は、再検証される不変条件に昇格します。一度だけ検証した目標は、タイムスタンプ付きの仮定に過ぎません。

これ以降、エッセイはありません。8 つのビルド。それぞれにファイル、コマンド、チェックポイントがあります。

前提条件

bash
1claude CLI (Claude Code) with Fable 5 access # usage credits enabled, /usage-credits cap set
2llm CLI + OpenRouter key # llm install llm-openrouter
3jq, gh, git, make, cron
4a repo with a test command

構築するもの

markdown
1your-repo/
2 CLAUDE.md # BUILD 1: the constitution
3 loop/
4 loop.sh # BUILD 3: the heartbeat
5 conductor.md # BUILD 3: routing prompt
6 triage.md # BUILD 3: cheap reader prompt
7 contract.md # BUILD 2: the three lists
8 workers/implement.md # BUILD 3
9 workers/verify.md # BUILD 3
10 guardrails/verify.sh # BUILD 2: deterministic gate
11 scripts/trust-log.sh # BUILD 4
12 scripts/log-cost.sh # BUILD 6
13 scripts/cost-check.sh # BUILD 6
14 quorum.sh # BUILD 7 (optional)
15 verify-goals.sh # BUILD 5
16 goals/ # BUILD 5: standing goals
17 skills/ # BUILD 4: one file per employee
18 memory/
19 STATE.md trust.tsv goal-ledger.tsv dispatch.tsv usage.log
20 Makefile # BUILD 8: tick / queue / trust / audit / dream

ビルド 0: エンジンの設定(公式 Fable 5 ドキュメントより)

このビルドのすべては、Anthropic 自身のドキュメントからのものです。独自のファイルを作成する前に、これらを設定してください。

スペックシート:

設定

ソース

モデル文字列

claude-fable-5

models overview

コンテキスト / 出力

1M トークン / リクエストあたり最大 128k 出力

intro docs

価格

入力 $10/M、出力 $50/M

intro docs

思考

適応型、常時オン;

thinking: {type:"disabled"}

は REJECTED されます。思考出力は要約のみ

intro + effort docs

努力度

low

medium

high

xhigh

max

;

high

= デフォルト = パラメータ省略時

effort docs

API 形状

output_config: {"effort": "..."}

on the Messages API

effort docs

構築方法を変える 5 つの公式事実:

  1. max_tokens は、思考 PLUS 応答テキストのハードキャップです。 high および xhigh では、大きく設定してください(64k から開始)。そうしないと、Fable が思考の途中でスペース不足になります。これは、このガイドのすべての claude -p 呼び出しに適用されます。
  2. xhigh は公式には「トークン予算が数百万単位の長時間実行エージェントタスク(30 分以上)」向けです。 このシステムでは、コンダクターの座とそれ以外には使用しません。ドキュメントには、Fable 5 の低い努力度は「以前のモデルの xhigh パフォーマンスを超えることが多い」とも記載されているため、ワーカーのアップグレードは控えてください。
  3. 拒否は HTTP 200 です。 Fable 5 はセーフティ分類子(攻撃的サイバー、生物学/生命科学、推論抽出)を実行します。拒否されたリクエストは、SUCCESS 応答として stop_reason: "refusal" を返します。スクリプトは、終了コードではなく、停止理由をチェックする必要があります。公式の対処法: サーバーサイドのフォールバックまたは SDK ミドルウェアを構成して、Opus 4.8 に再ルーティングします。
  4. Fable に推論をエコーするように決して依頼しないでください。 「考えを示してください」や「応答で推論を説明してください」と言うプロンプトやスキルは、reasoning_extraction 拒否カテゴリをトリガーし、フォールバックを引き上げます。移行する際は、すべての古いスキルをこれについて監査してください。代わりに、構造化された思考ブロックを読んでください。
  5. ターンは設計上長くなります。 難しいタスクは、より高い努力度でリクエストあたり数分実行されます。自律実行は何時間も続きます。クライアントのタイムアウトを調整し、非同期的に実行を確認してください(ブロッキング待機ではなく、スケジュールされたジョブ)。これが、ハートビートが cron であり、ブロッキングループではない理由です。

公式プロンプトパック。 Anthropic は、Fable 5 の既知の動作に対してテスト済みのプロンプト言語を提供しています。これらはそのままプロンプトに含めてください。言い換えて薄めないでください。

  1. 過剰計画防止(コンダクターおよび対話セッション用):
markdown
1When you have enough information to act, act. Do not re-derive facts already
2established in the conversation, re-litigate a decision the user has already
3made, or narrate options you will not pursue. If you are weighing a choice,
4give a recommendation, not an exhaustive survey.
  1. 過剰品質防止(すべてのワーカープロンプト用。これは過剰成果の公式フェンスです):
markdown
1Don't add features, refactor, or introduce abstractions beyond what the task
2requires. A bug fix doesn't need surrounding cleanup. Don't design for
3hypothetical future requirements: do the simplest thing that works well.
4Don't add error handling or validation for scenarios that cannot happen.
5Only validate at system boundaries.
  1. 根拠のある進捗報告(長時間実行用。Anthropic のテストでは、これにより捏造されたステータスレポートがほぼ排除されました):
markdown
1Before reporting progress, audit each claim against a tool result from this
2session. Only report work you can point to evidence for; if something is not
3yet verified, say so explicitly. If tests fail, say so with the output; if a
4step was skipped, say that.
  1. 自律パイプラインリマインダー(すべての cron 駆動プロンプト用。「それでは X を実行します」という早期停止を排除します):
markdown
1You are operating autonomously. The user is not watching and cannot answer
2questions mid-task. For reversible actions that follow from the original
3request, proceed without asking. Before ending your turn, check your last
4paragraph: if it is a plan, a question, or a promise about work you have not
5done, do that work now with tool calls. End only when the task is complete
6or you are blocked on input only the user can provide.
  1. 公式メモリ形式(ドリーマーおよび memory/learnings/ 用):
markdown
1Store one lesson per file with a one-line summary at the top. Record
2corrections and confirmed approaches alike, including why they mattered.
3Don't save what the repo already records; update existing notes rather than
4duplicating; delete notes that turn out to be wrong.
  1. 公式検証者指示(ドキュメントには直接「分離された、新しいコンテキストの検証者サブエージェントは、自己批判よりも優れたパフォーマンスを発揮する傾向がある」と記載されています):
markdown
1Establish a method for checking your own work at an interval of [X] as you
2build. Run this every [X interval], verifying your work with subagents
3against the specification.

従う価値のあるドキュメントからの 2 つのスキャフォールディング順序: 難易度範囲の上限から始める(簡単なワークロードだけで Fable をテストするのは過小評価です。最も難しい未解決の問題を与えて、スコープを決めさせてください)、そして古いスキルをリファクタリングする(以前のモデル用に書かれた指示は、Fable 5 には過度に規範的であることが多く、出力を低下させます。指示がない場合のデフォルトのパフォーマンスが優れている場合は、その指示を削除してください)。

チェック 0: スクリプト内のすべての claude -p 呼び出しに、サポートされている場合は明示的な大きな max_tokens が設定されていること。スクリプトが stop_reason: "refusal" をチェックしていること。プロンプトやスキルのどこにも「考えを示してください」と書かれていないこと。

ビルド 1: 憲法(CLAUDE.md)

なぜか、一言で言えば: Fable は法則に従い、ヒントを最適化するため、すべての行に番号、「絶対にしない」、またはそれをチェックするコマンドが必要です。

ファイルのルール: 4 つのブロック、150 行未満、「段階的に考える」は禁止(推論は常にオンです。それらは有料トークンです)、事前定義されたエージェントペルソナは禁止(Fable はあなたが事前定義できるよりも優れたチームを設計します)、ほとんどがストップサインです。

CLAUDE.md を作成:

markdown
1# CLAUDE.md
2
3## NEVER (laws; exceptions require asking first)
4- Never exceed 200 changed lines in one commit without asking.
5- Never touch src/auth/, src/billing/, migrations/, or prod config unattended.
6- Never report work as done from your own assessment. Done = the check passed.
7- Never invent a secret, an endpoint, or a convention. Stop and ask.
8- Never add a dependency. Propose it in STATE.md and stop.
9- Never exceed effort high inside any loop. xhigh is for one-shot reviews only.
10- Never edit or delete a test to make it pass. That is a fail, always.
11- Never echo, transcribe, or explain your internal reasoning in response
12 text. (Official: triggers reasoning_extraction refusals on Fable 5.)
13- When a /goal condition passes, write goals/<name>.md with the condition as
14 its predicate before reporting success.
15
16## DISPATCH (route every task; first match wins; log to memory/dispatch.tsv)
17| model | marginal | appetite | intelligence | taste |
18|-----------------|----------|----------|--------------|-------|
19| claude-fable-5 | 2 (credits) | 3 | 10 | 10 |
20| claude-opus-4-8 | 7 (sub) | 6 | 8 | 9 |
21| claude-sonnet-5 | 9 (sub) | 8 | 7 | 7 |
22| codex (2nd sub) | 9 | 10 | 9 | 5 |
231. Decision (plan/review/route/standoff) -> fable-5, effort high, read-only.
242. Reads >50k tokens (logs/PDFs/screenshots) -> codex. Never fable.
253. Ships to users (UI/API/copy) -> taste >= 8 gets final pass.
264. Spec complete -> sonnet-5, effort medium.
275. Else sonnet-5; escalate one rung on a miss without asking.
28
29## WORDS
30- "intelligence" = hardest problem handled unsupervised
31- "taste" = UI/UX, code quality, API design, copy
32- "done" = the predicate passes; nothing else
33- "small" = under 50 changed lines; "quick" = under 10 minutes of your time
34- "cleanup" = behavior identical, verify.sh green before and after
35
36## DONE
37- Every task has a machine-checkable done_when before work starts.
38- A fresh-context agent that saw neither plan nor draft verifies against it.
39- guardrails/verify.sh has the final vote.
40- Deviations: conservative option, log to IMPLEMENTATION.md, continue.
41- Maker and checker disagree twice -> stop, queue for a human.

数字とパスを自分のものに編集してください。ワークフロー固有の内容(PR 手順、リリースチェックリスト)は、ここではなく skills/ に配置します。

チェック 1: すべての行について自問してください: モデルは 80% 準拠して成功を主張できるか? はいの場合、番号または「絶対にしない」を付けて書き直してください。 wc -l CLAUDE.md が 150 未満であること

ビルド 2: 壁とゲート

理由: 爆発半径は最初のティックの前に宣言されなければならず、bash スクリプトが最終投票を保持しなければなりません。

loop/contract.md を作成:

markdown
1## acts alone
2draft PRs on branches; fix lint/test debt; update STATE.md; label issues
3
4## queues for me
5auth, payments, migrations; any skill below "auto" tier; any diff > 400 lines
6
7## wakes me up
8verify fails twice on the same item
9safeguard router swapped models mid-run
10daily budget breached
11anything requests a secret
12a standing goal is VIOLATED

loop/guardrails/verify.sh を作成(スタックに合わせて編集):

bash
1#!/usr/bin/env bash
2set -e
3npm run typecheck --if-present
4npm test --if-present
5npm run lint --if-present

チェック 2: ./loop/guardrails/verify.sh が実行され、現在のリポジトリで終了コード 0 で終了すること。今失敗した場合は、まずそれを修正してください。システム全体がこのスクリプトに依存しています。

ビルド 3: ハートビート

理由、3 行で: ワーカーとしての Fable は 4 桁の請求額になります(出力 $50/M で 500k-1M トークンセッション)。コンダクターとしての Fable は、100% の決定を行いながら、トークンの 10-20% を出力します。$0.01 のモデルが静かなティックを読み取ります。エージェントは JSON スキーマを介して引き継ぐため、どのモデルもどの座席にも適合します。

loop/triage.md を作成:

markdown
1You receive recent commits, open issues, and CI runs. Output ONLY findings:
2- finding: <one line>
3 evidence: <commit/issue/run id>
4 status: actionable | informational
5No fixes, no opinions. Nothing to report = output exactly "status: quiet".
6Anything touching auth, payments, migrations, secrets = always actionable,
7noted "contract-sensitive".

loop/conductor.md を作成:

markdown
1You are the conductor. You do not write code. You do not edit files.
21. Read STATE, TRUST LEDGER, CONTRACT below. Do not trust memory of them.
32. Pick the ONE highest-value actionable item.
4 contract-sensitive, ambiguous, or likely >400-line diff -> action: queue
5 nothing worth doing -> action: stop
63. Else action: execute, with a spec a mediocre model can follow.
7Output ONLY this JSON:
8{ "action": "execute|queue|stop", "item": "...", "skill": "<kebab-case,
9stable across runs>", "spec": "...", "done_when": ["<verifiable>", ...] }
10You are expensive. Be brief. Your output is a decision, not an essay.

loop/workers/implement.md を作成:

markdown
1You receive a work order (JSON). Execute the spec exactly.
2Do the ONE next step toward done_when. Small diffs win.
3Missing credential or undocumented decision -> STOP, write the question to
4IMPLEMENTATION.md. Never invent secrets or conventions.
5Record what you did and why in IMPLEMENTATION.md (3 lines max).

loop/workers/verify.md を作成:

markdown
1You receive a SPEC and a DIFF, nothing else. Judge only what is in front of you.
21. Does the diff satisfy every done_when? Cite lines.
32. Anything outside the spec's scope? Instant fail. Deleted/skipped tests? Instant fail.
4Output exactly one line: "PASS: <reason>" or "FAIL: <reason>".
5The maker was confident. That is not evidence.

loop/loop.sh を作成:

bash
1#!/usr/bin/env bash
2set -euo pipefail
3cd "$(dirname "$0")"
4MAX_ITERS="${MAX_ITERS:-10}"
5DAILY_BUDGET_USD="${DAILY_BUDGET_USD:-5}"
6CHEAP="${CHEAP:-openrouter/deepseek/deepseek-v4-flash}"
7WORKER="${WORKER:-openrouter/moonshotai/kimi-k2.6}"
8
9./scripts/cost-check.sh --budget "$DAILY_BUDGET_USD" || exit 3
10
11for ((i=1; i<=MAX_ITERS; i++)); do
12 # 1 TRIAGE: quiet-tick gate, ~$0.01
13 { git log --oneline -20; gh issue list --limit 20 2>/dev/null || true; \
14 gh run list --limit 10 2>/dev/null || true; } \
15 | llm -m "$CHEAP" -s "$(cat triage.md)" >> memory/STATE.md
16 ./scripts/log-cost.sh triage 0.01
17 grep -q "status: actionable" memory/STATE.md || { echo quiet; exit 0; }
18
19 # 2 CONDUCT: Fable, xhigh, fresh context, read-only, JSON out
20 claude -p "$(cat conductor.md)
21STATE: $(cat memory/STATE.md)
22TRUST: $(./scripts/trust-log.sh --render)
23CONTRACT: $(cat contract.md)" \
24 --model claude-fable-5 --effort xhigh --allowedTools "Read" \
25 --output-format json > /tmp/c.json
26 ./scripts/log-cost.sh conductor 0.35
27
28 # 2a ROUTE-TOLERANCE: never iterate on a model you didn't choose
29 SERVED=$(jq -r '.modelUsage | keys[0] // "claude-fable-5"' /tmp/c.json)
30 [[ "$SERVED" != *fable* ]] && { echo "rerouted" >> memory/STATE.md; exit 2; }
31
32 jq -r '.result' /tmp/c.json > work-order.json
33 SKILL=$(jq -r .skill work-order.json); ACTION=$(jq -r .action work-order.json)
34 [[ "$ACTION" == stop ]] && exit 0
35 [[ "$ACTION" == queue ]] && { echo "queued: $SKILL" >> memory/STATE.md; continue; }
36
37 # 3 EXECUTE: cheap worker, isolated worktree
38 WT="../wt-$i"; git worktree add "$WT" -b "loop/$SKILL-$i" >/dev/null
39 ( cd "$WT" && llm -m "$WORKER" -s "$(cat "$OLDPWD/workers/implement.md")" \
40 "$(cat "$OLDPWD/work-order.json")" > IMPLEMENTATION.md )
41 ./scripts/log-cost.sh worker 0.10
42
43 # 4 VERIFY: fresh Fable, no tools, sees only spec + diff
44 V=$(claude -p "$(cat workers/verify.md)
45SPEC: $(jq -r .spec work-order.json)
46DIFF: $(cd "$WT" && git diff)" \
47 --model claude-fable-5 --effort high --allowedTools "" \
48 --output-format json | jq -r .result)
49 ./scripts/log-cost.sh verifier 0.40
50
51 # 5 GATE: deterministic; then ledger; ship only at auto tier
52 if [[ "$V" == PASS* ]] && ( cd "$WT" && "$OLDPWD/guardrails/verify.sh" ); then
53 ./scripts/trust-log.sh "$SKILL" pass
54 if [[ "$(./scripts/trust-log.sh --tier "$SKILL")" == auto ]]; then
55 ( cd "$WT" && git add -A && git commit -qm "loop: $SKILL" && gh pr create --fill || true )
56 echo "- shipped: $SKILL" >> memory/STATE.md
57 else
58 echo "- review: $SKILL in $WT" >> memory/STATE.md
59 fi
60 else
61 ./scripts/trust-log.sh "$SKILL" fail
62 echo "- FAILED: $SKILL in $WT" >> memory/STATE.md
63 fi
64 ./scripts/cost-check.sh --budget "$DAILY_BUDGET_USD" || exit 3
65done
66exit 1 # iteration cap without stop: check STATE.md

終了コードマップ: 0 静か/完了、1 上限、2 再ルーティング、3 予算超過。すべてラベル付きで、意図的です。

チェック 3: chmod +x loop.sh guardrails/verify.sh を実行し、./loop.sh を手動で 1 回実行します。確認: 静かなリポジトリは約 1 セントで終了コード 0 を返すこと。アクション可能なリポジトリは、5 つのフィールドすべてと STATE.md 内の判定行を含む work-order.json を生成すること。

ビルド 4: 信頼台帳

理由: 「信頼が高まるにつれて自律性を高める」はメカニズムではありません。階層ルールを持つ TSV がメカニズムです。自律性はループごとではなく、スキルごとに付与されます。

loop/scripts/trust-log.sh を作成:

bash
1#!/usr/bin/env bash
2# usage: trust-log.sh <skill> <pass|fail> | --render | --tier <skill>
3set -euo pipefail
4F="$(dirname "$0")/../memory/trust.tsv"; touch "$F"
5tier_of() { awk -v r="$1" -v p="$2" 'BEGIN{
6 rate=(r>0)?p/r:0
7 if (r>=20 && rate>=0.95) print "auto"
8 else if (r<10 || rate<0.90) print "watch"
9 else print "queue"}'; }
10case "${1:-}" in
11 --render)
12 printf "%-20s %5s %5s %6s %s\n" skill runs pass rate tier
13 while IFS=$'\t' read -r s r p; do [ -z "$s" ] && continue
14 printf "%-20s %5s %5s %5s%% %s\n" "$s" "$r" "$p" \
15 "$(awk -v r="$r" -v p="$p" 'BEGIN{printf "%.0f",(r>0)?p/r*100:0}')" \
16 "$(tier_of "$r" "$p")"; done < "$F";;
17 --tier)
18 line=$(grep -P "^${2}\t" "$F" || echo -e "${2}\t0\t0")
19 tier_of "$(cut -f2 <<<"$line")" "$(cut -f3 <<<"$line")";;
20 *)
21 awk -v s="$1" -v r="$2" -F'\t' 'BEGIN{OFS="\t"; f=0}
22 $1==s {f=1; print s,$2+1,$3+(r=="pass"); next} {print}
23 END{if(!f) print s,1,(r=="pass")?1:0}' "$F" > "$F.t" && mv "$F.t" "$F"
24 if [ "$2" = fail ]; then
25 runs=$(grep -P "^${1}\t" "$F" | cut -f2)
26 [ "$("$0" --tier "$1")" = watch ] && [ "$runs" -ge 10 ] \
27 && echo "ALERT: $1 demoted to watch after $runs runs" >&2 || true
28 fi;;
29esac
  • 階層ルール: auto = 20 回以上の実行 AND 95% 以上の合格率、無人で出荷。 queue = 検証済みのドラフトがあなたを待つ。 watch = 10 回未満の実行または 90% 未満、ドラフトのみ。降格は自動で、stderr に出力され、cron があなたにメールします。
  • ロスターをシード: 繰り返し発生する雑務(fix-lint-debt、fix-flaky-test、bump-deps、triage-issues が標準の 4 つ)ごとに loop/skills/<name>/SKILL.md を作成します。各ファイル: フロントマター(名前、説明、タイミング)、手順、「絶対にしない」リスト、検証可能な完了条件。すべてのスキルは watch から開始します。

チェック 4: ./scripts/trust-log.sh demo pass を 21 回実行し、--tier demo が auto と表示することを確認します。10 回以上実行したスキルで fail を記録し、stderr に ALERT が表示されることを確認します。リセット: > memory/trust.tsv。

ビルド 5: 常設目標 + 目標台帳

理由、一言で言えば: 一度だけ検証した目標は、タイムスタンプ付きの仮定に過ぎません。そのため、完了した目標は、毎日再検証され記録される不変条件に昇格します。

完了したものごとに 1 つのファイル、goals/<name>.md を作成:

markdown
1predicate: cd $REPO && npm test -- tests/auth 2>&1 | tail -1 | grep -q passing
2born: 2026-07-06
3source: /goal session 2026-07-06 (fix auth flake)
4status: satisfied
5last-pass: 2026-07-06
6on-violation: wake me. Do not auto-fix.
7retire-when: auth module deleted. Retirement is a human decision, logged.

loop/verify-goals.sh を作成:

bash
1#!/usr/bin/env bash
2set -uo pipefail
3LEDGER="memory/goal-ledger.tsv"; VIOLATIONS=0
4for g in goals/*.md; do
5 [ -e "$g" ] || continue
6 grep -q '^status: retired' "$g" && continue
7 pred=$(grep '^predicate:' "$g" | cut -d' ' -f2-); name=$(basename "$g" .md)
8 start=$(date +%s%3N)
9 if timeout 60 bash -c "$pred" >/dev/null 2>&1; then r=pass
10 sed -i "s/^status:.*/status: satisfied/; s/^last-pass:.*/last-pass: $(date +%F)/" "$g"
11 else r=FAIL; VIOLATIONS=$((VIOLATIONS+1)); sed -i "s/^status:.*/status: VIOLATED/" "$g"; fi
12 echo -e "$(date -Is)\t$name\t$r\t$(( $(date +%s%3N) - start ))" >> "$LEDGER"
13done
14[ "$VIOLATIONS" -gt 0 ] && { grep -l '^status: VIOLATED' goals/*.md; exit 1; }
15echo "all standing goals hold"

センチネルを開始(検出のみ。修正は通常のパイプラインを経由):

bash
1/loop 1d Run ./verify-goals.sh. If non-zero: for each violated goal, read its
2last-pass date and list what merged since (git log --oneline --since=<date>).
3Report goal, suspects, on-violation policy. Do not fix anything.

昇格の法則はすでに CLAUDE.md(ビルド 1)にあります。合格した /goal はすべて、自身の常設目標を書き込みます。完了することが登録です。

実際に使用する台帳クエリ:

bash
1awk -F'\t' '$3=="FAIL"{n[$2]++} END{for(g in n) print n[g],g}' memory/goal-ledger.tsv | sort -rn | head -5 # 最も不安定なもの
2grep <goal> memory/goal-ledger.tsv | awk -F'\t' '$3=="FAIL"' | head -1 # いつ壊れたか

不安定な述語: quarantine (ステータス: retired、注記 "より良い述語が必要")、削除しない。

CHECK 5: 述語が true の目標と false の目標をそれぞれ 1 つ追加する。./verify-goals.sh が終了コード 1 で終了し、2 つ目の目標が VIOLATED に変わり、両方が台帳に表示される。ダミーを削除する。

BUILD 6: 予算

理由: 1 日あたりのコスト = ティック数 × トリアージ + ヒット数 × (コンダクター + ワーカー + 検証者)。実際の価格 (トリアージ $0.01、コンダクター $0.35、ワーカー $0.10、検証者 $0.40) では、1 日あたりの清掃係は約 $2.56/日。トリアージ席に Fable を置いた 15 分のベビーシッターは、同じ結果で $34/日。静かなティックを読むモデルが請求額を決める。

loop/scripts/log-cost.sh を作成:

bash
1#!/usr/bin/env bash
2echo -e "$(date -Is)\t$1\t$2" >> "$(dirname "$0")/../memory/usage.log"

loop/scripts/cost-check.sh を作成:

bash
1#!/usr/bin/env bash
2set -euo pipefail
3F="$(dirname "$0")/../memory/usage.log"; touch "$F"; TODAY=$(date +%F)
4case "${1:-}" in
5 --budget)
6 spent=$(awk -F'\t' -v d="$TODAY" '$1 ~ d {s+=$3} END{printf "%.2f",s}' "$F")
7 awk -v s="$spent" -v b="$2" 'BEGIN{exit (s>=b)?1:0}' \
8 || { echo "spent \$$spent of \$$2" >&2; exit 1; };;
9 --report)
10 awk -F'\t' -v since="$(date -d '7 days ago' +%F)" \
11 '$1>=since{s[$2]+=$3;t+=$3} END{for(k in s) printf " %-10s $%.2f\n",k,s[k]; printf " TOTAL $%.2f\n",t}' "$F";;
12esac

フラットに保つルール: ケイデンスはコストの決定 (間隔を半分にすると下限が 2 倍になる)。静かなティックはセント単位でなければならない。ループ内での努力は high を超えてはならない (xhigh は 1 回限りのレビュー用。努力はステップごとであり、実行ごとではない)。

CHECK 6: 1 週間のティック後、./scripts/cost-check.sh --report がノイズの範囲内で計算式と一致することを確認する。DAILY_BUDGET_USD を、無駄にしても構わない金額に設定する。

BUILD 7: オプションのループ (条件が発生したときにインストール)

  • Quorum (ディスパッチがアクションを生成した Fable の起動を示したときにインストール: 停止)。3 つの安価なモデルが投票。Fable は 3 分の 2 で起動。投票者は互いの回答を見ることはない。
bash
1V=0
2for m in deepseek/deepseek-v4-flash qwen/qwen-3.6 moonshotai/kimi-k2.6; do
3 llm -m "openrouter/$m" -s "$(cat triage.md)" < /tmp/signals.txt \
4 | grep -q "status: actionable" && V=$((V+1))
5done
6[ "$V" -ge 2 ] && exec ./conduct.sh || echo "quorum: quiet ($V/3)"
  • Ratchet (1 つの数値が重要な場合にインストール)。単調な改善または自己復元。メトリクスは操作できない。完了した下限が恒久的な目標になる。
markdown
1/goal `npm run lint 2>&1 | grep -c warning` を 0 に減らす。
2権限: src/ を編集。修正ごとにコミット。変更のたびに再測定。
3壁: 数値は決して上がらない。数値を上げたりテストを壊したりする変更は元に戻す。lint 設定を編集して数値を下げることは決してしない。
4時間制限: 3 回の試行で進捗がない場合は停止。残存者を報告。
  • Sparring (毎日コードを出荷する場合にインストール)。ビルダーとブレーカー、対立。互いの出力には触れない。争いはあなたに委ねられる。
markdown
1/loop 1d [breaker] 昨日マージされた差分を読む。実際の弱点を露呈する 1 つの失敗テストを書く。tests/sparring/ に @sparring タグを付けてコミットする。何も修正しない。堅牢なコード = その旨を述べ、何も書かない。
2/loop 1d [builder] @sparring テストが失敗した場合、合格するまで CODE を修正する。スパーリングテストを編集、弱体化、削除することは決してしない。争いは私にキューイングする。
  • Compost (常にインストール、毎週)。失敗がルールになる。提案は最大 3 つ。人間の署名が必要。
markdown
1/loop 7d 今週の排出物を読む: STATE.md の FAILED、trust.tsv の fails、goal-ledger.tsv の FAIL、マージされずにクローズされた PR。最大 3 つの提案を抽出する: 新しい CLAUDE.md ルール (インシデントを引用)、スキル修正 (同じ失敗の繰り返し)、または不足していた恒久的な目標。提案のみ。クリーンな週 = その旨を述べる。

CHECK 7: 各オプションのループには、そのインストール条件がノートに書かれている。推測でインストールすることは、システムを肥大化させる方法である。

BUILD 8: 運用

Makefile を作成:

text
1tick: ; ./loop/loop.sh
2queue: ; @grep -E "review:|queued:|FAILED:|rerouted" loop/memory/STATE.md || echo empty
3trust: ; @./loop/scripts/trust-log.sh --render
4audit: ; @./loop/scripts/cost-check.sh --report
5goals: ; @./loop/verify-goals.sh
6clean-worktrees: ; @git worktree list | awk '/wt-/{print $$1}' | xargs -rn1 git worktree remove --force

Cron、2 週目開始時:

markdown
10 7 * * 1-5 cd /path/to/repo/loop && ./loop.sh >> memory/cron.log 2>&1
230 7 * * * cd /path/to/repo/loop && ./verify-goals.sh >> memory/cron.log 2>&1

30 日間の信頼スケジュール

卒業をスキップしないこと。それぞれが次のステップを解放する。

レベル

あなたの作業

卒業条件

1

L1 レポート

Build 1-6;

make tick

を毎日手動で実行。すべてを読む

3 回連続の実行が、あなたが行ったであろう方法とまったく同じルーティングになる

2

L2 ドラフト

cron を有効化。

make queue

をコーヒーと共に実行。レビューが台帳にフィードされる

2 つのスキルが 20 回のログ実行を超える

3

L3 出荷

make audit

を計算式と比較。最高のスキルを無人で運用

1 週間、介入ゼロ

4

L4 成長

compost の承認。1 つの提案されたスキルを承認。削除パスを実行する

何かを削除しても何も壊れなかった

ランブック。 各アラームの意味と対処法:

シグナル

意味

アクション

exit 2 (reroute)

セーフガードルーターが実行中にモデルを交換した

チェックポイントを読む。アイテムを明日再実行する。交換された出力を反復処理しない

stop_reason: refusal

セーフティ分類器が拒否 (HTTP 200、エラーではない)

公式パス: fallbacks またはミドルウェアを介して Opus 4.8 にフォールバック。1 つのスキルで繰り返される場合、そのスキルを reasoning-echo または cyber/bio 関連の表現について監査する

exit 3 (budget)

1 日の支出が上限に達した

make audit

を実行。どのステージが増加したかを見つける。予算ではなく努力マップを修正する

ALERT demoted

確立されたスキルが 90% を下回った

最後の 3 つの失敗を読む。通常はワーカーではなく、仕様パターンが原因

goal VIOLATED

完了したものが真実でなくなった

センチネルが容疑者を提示。修正は通常のパイプラインを経由する

maker/checker standoff x2

どちらも正しいと推定されない

あなたが決定するか、standoff-breaker を実行する (3 人目の新しいレビュー担当者、証拠を判断、差を分割しない場合がある)

verify-goals timeout

述語が高すぎる

それは違反である。述語を安価にする

ルール (これを印刷)

  1. ヒントではなくルール: 数値、決して〜しない、またはそれをチェックするコマンド。
  2. コンダクターが計画し、ワーカーが実行し、どちらも検証しない。--allowedTools がそれを強制する。
  3. エージェントは作業指示書で話す。done_when = 仕様 + 停止条件 + 将来の不変条件。
  4. ループが分岐する場所に努力を費やす。ループ内で high を超えてはならない。
  5. 静かなティックは 1 ペニー、そうでなければループは 1000 ドルかかる。
  6. シェルスクリプトでチェックできないなら、目標として書くな。
  7. 目標は卒業する。終了しない。verify-goals.sh は毎日、永久に実行される。
  8. スキルごとの自律性: 20 回の実行、95%、自動。降格は自動かつ大々的に行われる。
  9. 2 つの台帳: trust (ワーカー) と goals (作業)。両方をコーヒーと共に読む。
  10. cron を設定する前に代謝を計算する。
  11. リポジトリ内の契約: 単独行動 / キューイング / 私を起こす。
  12. 自分で選んでいないモデルの出力を決して反復処理しない。
  13. センチネルが検出し、パイプラインが修正する。
  14. Fable を起こす前にクォーラム。ラチェットしてから溶接。毎日スパーリング。毎週コンポスト。
  15. 一度に 1 つの卒業基準。毎月、何かを削除する。
  16. 公式ドキュメントより: max_tokens は思考とテキストを制限、拒否は HTTP 200、推論のエコーを要求しない、古いスキルは Fable を劣化させる、新しいコンテキストの検証者は自己批判より優れている。Anthropic がそう言っている。システムがそれを強制する。

閉会の言葉

今から 30 日後、チェックを実行したなら: 1 つのループが退屈な作業を無人で出荷し、goals ディレクトリが完了したすべてのものを再検証し、2 つの台帳がワーカーと作業について真実を伝え、毎週のコンポスト実行がシステム自身の次の改善をあなたの署名のために提案する。

  • モデルは決して難しい部分ではなかった。難しい部分は、あなたが見ていないときに正直であり続ける何かをその周りに構築することだった。それがあなたが今構築したものだ。
  • 今夜、それを証明する 20 分から始めよう: BUILD 2 の verify.sh、BUILD 3 の最初の手動ティック、そして最後に完了したものに対する 1 つの恒久的な目標。
  • verify-goals.sh が、完了したと思っていた何かで初めて静かな退行をキャッチしたとき、残りの部分について納得するのに説得は必要ないだろう。

免責事項

この記事は、ユーザーのメモを使用して作成され、Claude Opus 4.8 max によって編集されました。

YouMindで再制作

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
クリエイターのために

あなたの Markdown をきれいな 𝕏 記事に

自分の長文を投稿するとき、画像・表・コードブロックを 𝕏 向けに整形するのは手間がかかります。YouMind は Markdown 全体を、そのまま投稿できるきれいな 𝕏 記事に変換します。

Markdown → 𝕏 を試す

解読すべきパターンをもっと

最近のバイラル記事

バイラル記事をもっと見る