ask-later 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +9 -0
- package/LICENSE +21 -0
- package/README.en.md +125 -0
- package/README.md +311 -0
- package/bin/ask-later.mjs +12 -0
- package/docs/field-log.md +182 -0
- package/docs/manual-free/01-why-it-stops.html +151 -0
- package/docs/manual-free/01-why-it-stops.md +192 -0
- package/docs/manual-free/README.md +26 -0
- package/docs/manual-free/index.html +53 -0
- package/docs/manual-free/templates/CLAUDE.snippet.md +20 -0
- package/docs/manual-free/templates/INBOX.md +22 -0
- package/docs/manual-free/templates/PENDING.md +59 -0
- package/docs/manual-free/templates/settings.hooks.json +45 -0
- package/hooks/hooks.json +19 -0
- package/lib/cli.mjs +213 -0
- package/lib/config.mjs +75 -0
- package/lib/hook-entry.mjs +20 -0
- package/lib/hook.mjs +220 -0
- package/lib/inbox.mjs +46 -0
- package/lib/install.mjs +282 -0
- package/lib/messages.mjs +125 -0
- package/lib/notify.mjs +51 -0
- package/lib/pending.mjs +115 -0
- package/lib/queue.mjs +147 -0
- package/lib/sentinel.mjs +65 -0
- package/lib/text.mjs +151 -0
- package/package.json +53 -0
- package/templates/CLAUDE.snippet.en.md +21 -0
- package/templates/CLAUDE.snippet.ja.md +20 -0
- package/templates/INBOX.en.md +22 -0
- package/templates/INBOX.ja.md +22 -0
- package/templates/PENDING.en.md +59 -0
- package/templates/PENDING.ja.md +59 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# ask-later — 実データで動かした記録(field log)
|
|
2
|
+
|
|
3
|
+
生成: 2026-09-16 00:22(`npm run fieldlog`)。入力はこの道具の移植元である lab の `PENDING_USER.md`(503 行・項目 27 件)と `INBOX.md`(25 行)の固定したコピー。2026-09-10 から実運用しているファイルで、テスト用に作ったものではない。個人情報(メールアドレス・長い数字・利用者名)は伏せ字にしてある。項目の題名は著者の環境の実題名のまま(FX のデモ口座・別商品の公開・文書名など)で、この道具とは関係ない。一般化すると「実データ」でなくなるので残している。
|
|
4
|
+
|
|
5
|
+
## 1. 入力の集計(フックを走らせる前)
|
|
6
|
+
|
|
7
|
+
- PENDING: 依頼 27 件(見出し `## [P-nnn]` で状態行を持つもの)。未処理 **5 件**、完了・取り下げ 22 件、状態行が崩れている 0 件。状態行を持たない見出し(報告 `## [R-nnn]`)9 件は依頼ではないので数えない
|
|
8
|
+
- P-024 商品ページ(LP)と有償版の受け取りページを置く場所を決める(Cloudflare Pages の URL)
|
|
9
|
+
- P-025 特定商取引法に基づく表記に載せる「販売者名」と「連絡先」を決める
|
|
10
|
+
- P-026 clip-layer-tidy の公開リポジトリを GitHub に作るか(無ければ無いまま出せる。急がない)
|
|
11
|
+
- P-027 デモ口座で USDJPY 0.01 を成行 Buy して放置する(番人 EA の残り 2 試験。クリック 1 回)
|
|
12
|
+
- P-015 `.claude/` 配下の2ファイルと `CHARTER.md` を対話セッションで直す(1行ずつ。急がない)
|
|
13
|
+
- INBOX: 未読 **0 件**(区切り線より後ろの記載 1 行のうち、✔ 付き 1 行は既読)
|
|
14
|
+
|
|
15
|
+
## 2. 独立した実装(移植元 tools/queue.ps1・PowerShell 5.1)との照合
|
|
16
|
+
|
|
17
|
+
- queue.ps1: 未処理 5 件・INBOX 未読 0 件・ID P-024, P-025, P-026, P-027, P-015
|
|
18
|
+
- ask-later: 未処理 5 件・INBOX 未読 0 件・ID P-024, P-025, P-026, P-027, P-015
|
|
19
|
+
- 照合: **一致**
|
|
20
|
+
|
|
21
|
+
## 3. フックの実行(本物のファイルに対して。stdin は Claude Code が渡す形の JSON)
|
|
22
|
+
|
|
23
|
+
### 3-1. SessionStart(そのまま)
|
|
24
|
+
|
|
25
|
+
`SessionStart` ← stdin `{"source":"startup"}`
|
|
26
|
+
|
|
27
|
+
出力(exit 0): hookSpecificOutput.additionalContext(359 文字)
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
【未処理の利用者依頼: 5件】PENDING.md を参照。
|
|
31
|
+
- P-024 商品ページ(LP)と有償版の受け取りページを置く場所を決める(Cloudflare Pages の URL)
|
|
32
|
+
- P-025 特定商取引法に基づく表記に載せる「販売者名」と「連絡先」を決める
|
|
33
|
+
- P-026 clip-layer-tidy の公開リポジトリを GitHub に作るか(無ければ無いまま出せる。急がない)
|
|
34
|
+
- P-027 デモ口座で USDJPY 0.01 を成行 Buy して放置する(番人 EA の残り 2 試験。クリック 1 回)
|
|
35
|
+
- P-015 `.claude/` 配下の2ファイルと `CHARTER.md` を対話セッションで直す(1行ずつ。急がない)
|
|
36
|
+
これらに依存しない作業は続行してよい。
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
番兵: !pending_5.txt
|
|
40
|
+
|
|
41
|
+
SessionStart 後の PENDING ヘッダ行: `未処理: 5件 / INBOX未読: 0件 / 最終集計: 2026-09-16 00:22`
|
|
42
|
+
|
|
43
|
+
### 3-2. PostToolUse(未読 0 なので何も出ない)
|
|
44
|
+
|
|
45
|
+
`PostToolUse` ← stdin `{"tool_name":"Read","tool_input":{"file_path":"STATUS.md"}}`
|
|
46
|
+
|
|
47
|
+
出力なし(exit 0)——期待どおり
|
|
48
|
+
|
|
49
|
+
番兵: !pending_5.txt
|
|
50
|
+
|
|
51
|
+
### 3-3. Stop(未読 0 なので通す)
|
|
52
|
+
|
|
53
|
+
`Stop` ← stdin `{"stop_hook_active":false}`
|
|
54
|
+
|
|
55
|
+
出力なし(exit 0)——期待どおり
|
|
56
|
+
|
|
57
|
+
番兵: !pending_5.txt
|
|
58
|
+
|
|
59
|
+
> ここで人が INBOX.md の末尾に 1 行書く: `P-024 A https://example.pages.dev`
|
|
60
|
+
|
|
61
|
+
### 3-4. PostToolUse(未読 1 → 注入)
|
|
62
|
+
|
|
63
|
+
`PostToolUse` ← stdin `{"tool_name":"Read","tool_input":{"file_path":"STATUS.md"}}`
|
|
64
|
+
|
|
65
|
+
出力(exit 0): hookSpecificOutput.additionalContext(161 文字)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
【INBOX.md に利用者の記載: 1件】チャットの発言と同じ扱いで読み、実行する。
|
|
69
|
+
> P-024 A https://example.pages.dev
|
|
70
|
+
P-xxx の完了報告なら PENDING.md の該当項目を解消する。命令・質問・提案ならそのまま扱う。
|
|
71
|
+
処理した行の行頭に ✔ を付ける(行は消さない)。
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
番兵: !pending_5.txt
|
|
75
|
+
|
|
76
|
+
### 3-5. PostToolUse(同じ集合 → 繰り返さない)
|
|
77
|
+
|
|
78
|
+
`PostToolUse` ← stdin `{"tool_name":"Read"}`
|
|
79
|
+
|
|
80
|
+
出力なし(exit 0)——期待どおり
|
|
81
|
+
|
|
82
|
+
番兵: !pending_5.txt
|
|
83
|
+
|
|
84
|
+
### 3-6. UserPromptSubmit(未読があれば毎回)
|
|
85
|
+
|
|
86
|
+
`UserPromptSubmit` ← stdin `{"prompt":"続けて"}`
|
|
87
|
+
|
|
88
|
+
出力(exit 0): hookSpecificOutput.additionalContext(161 文字)
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
【INBOX.md に利用者の記載: 1件】チャットの発言と同じ扱いで読み、実行する。
|
|
92
|
+
> P-024 A https://example.pages.dev
|
|
93
|
+
P-xxx の完了報告なら PENDING.md の該当項目を解消する。命令・質問・提案ならそのまま扱う。
|
|
94
|
+
処理した行の行頭に ✔ を付ける(行は消さない)。
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
番兵: !pending_5.txt
|
|
98
|
+
|
|
99
|
+
### 3-7. Stop(未読 1 → 差し止め)
|
|
100
|
+
|
|
101
|
+
`Stop` ← stdin `{"stop_hook_active":false}`
|
|
102
|
+
|
|
103
|
+
出力(exit 0): **decision: block**
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
停止前に INBOX.md の未読 1 件を処理すること。
|
|
107
|
+
【INBOX.md に利用者の記載: 1件】チャットの発言と同じ扱いで読み、実行する。
|
|
108
|
+
> P-024 A https://example.pages.dev
|
|
109
|
+
P-xxx の完了報告なら PENDING.md の該当項目を解消する。命令・質問・提案ならそのまま扱う。
|
|
110
|
+
処理した行の行頭に ✔ を付ける(行は消さない)。
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
番兵: !pending_5.txt
|
|
114
|
+
|
|
115
|
+
### 3-8. Stop(stop_hook_active → 通す。無限ループ防止)
|
|
116
|
+
|
|
117
|
+
`Stop` ← stdin `{"stop_hook_active":true}`
|
|
118
|
+
|
|
119
|
+
出力なし(exit 0)——期待どおり
|
|
120
|
+
|
|
121
|
+
番兵: !pending_5.txt
|
|
122
|
+
|
|
123
|
+
> ここでエージェントが処理し、行頭に ✔ を付ける
|
|
124
|
+
|
|
125
|
+
### 3-9. Stop(✔ 後は未読 0 → 通す)
|
|
126
|
+
|
|
127
|
+
`Stop` ← stdin `{"stop_hook_active":false}`
|
|
128
|
+
|
|
129
|
+
出力なし(exit 0)——期待どおり
|
|
130
|
+
|
|
131
|
+
番兵: !pending_5.txt
|
|
132
|
+
|
|
133
|
+
### 3-10. SessionEnd(番兵の更新。出力は使われない)
|
|
134
|
+
|
|
135
|
+
`SessionEnd` ← stdin `{"reason":"other"}`
|
|
136
|
+
|
|
137
|
+
出力なし(exit 0)——期待どおり
|
|
138
|
+
|
|
139
|
+
番兵: !pending_5.txt
|
|
140
|
+
|
|
141
|
+
### 番兵ファイルの中身
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
利用者にお願いしたいことが 5 件あります。
|
|
145
|
+
|
|
146
|
+
内容 : PENDING.md を開いてください
|
|
147
|
+
完了報告 : INBOX.md に1行書いてください(例: P-003 done)
|
|
148
|
+
|
|
149
|
+
未処理の項目:
|
|
150
|
+
- P-024 商品ページ(LP)と有償版の受け取りページを置く場所を決める(Cloudflare Pages の URL)
|
|
151
|
+
- P-025 特定商取引法に基づく表記に載せる「販売者名」と「連絡先」を決める
|
|
152
|
+
- P-026 clip-layer-tidy の公開リポジトリを GitHub に作るか(無ければ無いまま出せる。急がない)
|
|
153
|
+
- P-027 デモ口座で USDJPY 0.01 を成行 Buy して放置する(番人 EA の残り 2 試験。クリック 1 回)
|
|
154
|
+
- P-015 `.claude/` 配下の2ファイルと `CHARTER.md` を対話セッションで直す(1行ずつ。急がない)
|
|
155
|
+
|
|
156
|
+
このファイルは自動生成されます。消しても構いません(次回の集計で再生成されます)。
|
|
157
|
+
最終更新: 2026-09-16 00:22:28
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### hook.log(.ask-later/hook.log)
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
2026-09-16 00:22:28 SessionStart [fieldlog] 注入(未処理 5・未読 0)
|
|
164
|
+
2026-09-16 00:22:28 PostToolUse [fieldlog] -(未処理 5・未読 0)
|
|
165
|
+
2026-09-16 00:22:28 Stop [fieldlog] -(未処理 5・未読 0)
|
|
166
|
+
2026-09-16 00:22:28 PostToolUse [fieldlog] 注入(未処理 5・未読 1)
|
|
167
|
+
2026-09-16 00:22:28 PostToolUse [fieldlog] -(未処理 5・未読 1)
|
|
168
|
+
2026-09-16 00:22:28 UserPromptSubmit [fieldlog] 注入(未処理 5・未読 1)
|
|
169
|
+
2026-09-16 00:22:28 Stop [fieldlog] 差し止め(未読 1)
|
|
170
|
+
2026-09-16 00:22:28 Stop [fieldlog] -(未処理 5・未読 1)
|
|
171
|
+
2026-09-16 00:22:28 Stop [fieldlog] -(未処理 5・未読 0)
|
|
172
|
+
2026-09-16 00:22:28 SessionEnd [fieldlog] -(未処理 5・未読 0)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 4. 読み方
|
|
176
|
+
|
|
177
|
+
- 3-1 で未処理の一覧が注入され、番兵 `!pending_N.txt` が置かれる。件数は 1 節の集計と一致する
|
|
178
|
+
- 3-4 → 3-5 で「同じ未読集合は繰り返さない」が、3-6 で「人の入力の直後は毎回」が効いている
|
|
179
|
+
- 3-7 → 3-8 → 3-9 が差し止めの往復。`stop_hook_active` で通し、✔ を付ければ通る
|
|
180
|
+
- 期限切れの自動取り下げ: この入力では 該当なし(期限行を持つ未処理が無い)
|
|
181
|
+
|
|
182
|
+
実行環境: Node 24.19.0 / win32。再現は `npm run fieldlog`(tests/fixtures/real/ に実データが要る)。
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="ja">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<meta name="robots" content="noindex,nofollow">
|
|
7
|
+
<title>第 1 章 なぜ止まるか——承認待ちの構造 — 無人運転の設計書(無料版)</title>
|
|
8
|
+
<style>
|
|
9
|
+
:root{--paper:#fcfcfa;--ink:#16181d;--soft:#5c6068;--rule:#dcdcd6;--blue:#a4c8e1;--reg:#c8102e}
|
|
10
|
+
*{box-sizing:border-box}
|
|
11
|
+
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic Medium",system-ui,sans-serif;font-size:16px;line-height:1.9;font-feature-settings:"palt" 1}
|
|
12
|
+
main{max-width:44rem;margin:0 auto;padding:3rem 1.25rem 6rem}
|
|
13
|
+
h1{font-size:1.9rem;line-height:1.35;margin:0 0 .5rem}
|
|
14
|
+
h2{font-size:1.25rem;margin:2.5rem 0 .8rem;padding-top:1.2rem;border-top:1px solid var(--rule)}
|
|
15
|
+
h3{font-size:1.05rem;margin:1.8rem 0 .5rem}
|
|
16
|
+
p{margin:0 0 1rem}
|
|
17
|
+
pre{background:var(--ink);color:var(--paper);padding:.9rem 1.1rem;border-radius:2px;overflow-x:auto;font-size:.86rem;line-height:1.6}
|
|
18
|
+
code{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:.92em}
|
|
19
|
+
p code,li code,td code{background:#eeeee9;padding:.05em .35em;border-radius:2px}
|
|
20
|
+
blockquote{margin:0 0 1rem;padding:.2rem 1rem;border-left:3px solid var(--blue);color:var(--soft)}
|
|
21
|
+
table{border-collapse:collapse;width:100%;font-size:.92rem;margin:0 0 1.2rem}
|
|
22
|
+
th,td{text-align:left;vertical-align:top;padding:.45rem .5rem;border-bottom:1px solid var(--rule)}
|
|
23
|
+
th{color:var(--soft);font-weight:700}
|
|
24
|
+
ul,ol{margin:0 0 1rem;padding-left:1.4rem}
|
|
25
|
+
li{margin-bottom:.35rem}
|
|
26
|
+
hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}
|
|
27
|
+
a{color:var(--ink)}
|
|
28
|
+
nav.toc{font-size:.92rem;margin:0 0 2rem;padding:1rem 1.2rem;border:1px solid var(--rule)}
|
|
29
|
+
nav.toc ol{margin:0;padding-left:1.2rem}
|
|
30
|
+
nav.toc ol ol{padding-left:1rem}
|
|
31
|
+
.meta{color:var(--soft);font-size:.9rem;margin:0 0 2rem}
|
|
32
|
+
footer{border-top:1px solid var(--rule);margin-top:3rem;padding-top:1rem;color:var(--soft);font-size:.85rem}
|
|
33
|
+
</style>
|
|
34
|
+
</head>
|
|
35
|
+
<body>
|
|
36
|
+
<main>
|
|
37
|
+
<p class="meta"><a href="index.html">目次</a></p>
|
|
38
|
+
<nav class="toc"><ol><li><a href="#1-1-止まった実例から始める">1-1. 止まった実例から始める</a></li><li><a href="#1-2-判断の留保と-作業の停止は別のもの">1-2. 判断の留保と、作業の停止は別のもの</a></li><li><a href="#1-3-承認待ちの-3-つの型">1-3. 承認待ちの 3 つの型</a></li><li><a href="#1-4-依存範囲-を都度の判断に委ねない">1-4. 「依存範囲」を都度の判断に委ねない</a></li><li><a href="#1-5-なぜエージェントは-念のため-を選ぶのか">1-5. なぜエージェントは「念のため」を選ぶのか</a></li><li><a href="#1-6-無人実行-p-モード-で特に起きること">1-6. 無人実行(<code>-p</code> モード)で特に起きること</a></li><li><a href="#1-7-棚上げが作る新しい失敗">1-7. 棚上げが作る新しい失敗</a></li><li><a href="#1-8-機械に守らせる場所">1-8. 機械に守らせる場所</a></li><li><a href="#この章の要点">この章の要点</a></li></ol></nav>
|
|
39
|
+
<h1 id="第-1-章-なぜ止まるか-承認待ちの構造">第 1 章 なぜ止まるか——承認待ちの構造</h1>
|
|
40
|
+
<h2 id="1-1-止まった実例から始める">1-1. 止まった実例から始める</h2>
|
|
41
|
+
<p>2026 年 9 月 7 日、著者の環境で、あるエージェントのセッションがこう終わりました。</p>
|
|
42
|
+
<blockquote><p>サイジングの式を変更してよいか判断できないため、利用者の確認を待ちます。</p></blockquote>
|
|
43
|
+
<p>セッションはそこで終わりました。判断を要していたのは「サイジングの式」という <strong>1 点</strong>です。
|
|
44
|
+
一方、そのとき進められたはずの作業はこれだけありました。</p>
|
|
45
|
+
<pre><code>バックテストの実行・データの品質検査
|
|
46
|
+
監査(検証監査・判断監査)
|
|
47
|
+
実装・デバッグ・リファクタリング
|
|
48
|
+
別の戦略の設計
|
|
49
|
+
販売する道具の企画・生成・実装・測定</code></pre>
|
|
50
|
+
<p>どれもサイジングの式とは関係がありません。<strong>1 点の留保が、無関係な全作業を止めていました。</strong>
|
|
51
|
+
しかもエージェントは正しいことをしたと思っています。「確認を取るべきことは確認を取る」は、対話で使っているときは美徳だからです。</p>
|
|
52
|
+
<p>無人で回すとき、この美徳がそのまま最大の故障になります。答える人がいないのだから、「確認を待つ」は「永久に止まる」と同じです。</p>
|
|
53
|
+
<h2 id="1-2-判断の留保と-作業の停止は別のもの">1-2. 判断の留保と、作業の停止は別のもの</h2>
|
|
54
|
+
<p>ここが本書全体の土台です。</p>
|
|
55
|
+
<pre><code>判断の留保 ある 1 点について「自分では決めない」と決めること
|
|
56
|
+
作業の停止 セッション全体が進むのをやめること</code></pre>
|
|
57
|
+
<p>対話で使っているとき、この 2 つは同じに見えます。人が横にいて、聞けばすぐ答えが返るからです。
|
|
58
|
+
「聞く」と「止まる」の間の時間がほぼゼロなので、区別する必要がありません。</p>
|
|
59
|
+
<p>無人にした瞬間、この 2 つの間の時間が数時間〜数日に伸びます。すると、</p>
|
|
60
|
+
<pre><code>留保するべきもの その 1 点に依存する作業だけ
|
|
61
|
+
続けるべきもの それ以外の全部</code></pre>
|
|
62
|
+
<p>という分割が要ります。分割しなければ、留保が停止に化けます。</p>
|
|
63
|
+
<p>「そんなことは分かっている」と思うかもしれません。しかし分割は、<strong>都度の判断に任せると必ず安全側に倒れて全部止まります</strong>。
|
|
64
|
+
エージェントは「念のため」を選ぶ立場にいるからです(1-5)。だから分割は、都度の判断ではなく、<strong>あらかじめ書いた規則</strong>として置く必要があります。</p>
|
|
65
|
+
<h2 id="1-3-承認待ちの-3-つの型">1-3. 承認待ちの 3 つの型</h2>
|
|
66
|
+
<p>止まる場面を分けると、実際には 3 種類しかありません。</p>
|
|
67
|
+
<table><thead><tr><th>型</th><th>例</th><th>正しい扱い</th></tr></thead><tbody><tr><td>A. 取り消せない外部関係</td><td>新しい販売プラットフォームへの登録、口座開設、決済手段の導入、規約違反の疑いがある行為</td><td><strong>本当に人の判断が要る。</strong>起票して、それに依存する作業だけ止める</td></tr><tr><td>B. 人の物理操作</td><td>ボタンを押す、書類を出す、本人しか知らない値を答える、端末で 1 回クリックする</td><td>人の判断は要らない。<strong>人の手が空くまでの待ち</strong>であり、起票して他を進める</td></tr><tr><td>C. 権限設定による遮断</td><td>ツール側の許可リストに無いコマンド、編集を許可していないファイル</td><td>判断の問題ではなく設定の問題。<strong>遮断された内容を報告して、できる範囲を続ける</strong></td></tr></tbody></table>
|
|
68
|
+
<p>A 以外は「確認」の対象ですらありません。B は待ちで、C は設定です。
|
|
69
|
+
ところが、対話に慣れたエージェントは A・B・C を全部「確認を取るべき場面」として扱います。
|
|
70
|
+
そして A ですら、止めるべきなのは<strong>その契約に依存する作業だけ</strong>であって、セッションではありません。</p>
|
|
71
|
+
<p>著者の環境では、A に該当するのは 2 種類だけと決めてあります(第 7 章 CHARTER の骨子 §4)。</p>
|
|
72
|
+
<pre><code>① 資金やリスクの前提そのものを変えるとき(式の構造・係数・許容度・資金ベース)
|
|
73
|
+
② 利用者の名義で新しい外部関係を結ぶとき(販路・口座・決済・規約違反の疑い)</code></pre>
|
|
74
|
+
<p><strong>それ以外は全部、エージェントの裁量で進めてよい</strong>と書いてあります。設計も実装も監査も公開も価格設定も。
|
|
75
|
+
「これをやっていいか」を聞く必要はなく、やってから記録すればよい、と。</p>
|
|
76
|
+
<p>これは大胆に見えますが、逆です。A の範囲を狭く固定しなければ、B と C が A に混ざり、全部が「念のため」になります。
|
|
77
|
+
<strong>裁量の範囲を広く明文化することは、止まらないための前提条件です。</strong></p>
|
|
78
|
+
<h2 id="1-4-依存範囲-を都度の判断に委ねない">1-4. 「依存範囲」を都度の判断に委ねない</h2>
|
|
79
|
+
<p>A に該当したとき、何を止めて何を続けるかも、あらかじめ書いておきます。書かないと、安全側に倒して全部止める挙動に必ず戻ります。</p>
|
|
80
|
+
<p>著者の環境の実際の記述(第 7 章 CHARTER の骨子 §4「依存範囲の限定」)はこうです。</p>
|
|
81
|
+
<pre><code>① 資金・リスクの前提が保留中のとき
|
|
82
|
+
|
|
83
|
+
棚上げする(これだけ)
|
|
84
|
+
実発注
|
|
85
|
+
ロットサイズの変更
|
|
86
|
+
保留中の前提に依存するサイジング計算
|
|
87
|
+
|
|
88
|
+
続行する
|
|
89
|
+
バックテスト・データ取得・品質検査
|
|
90
|
+
監査(検証監査・判断監査とも)
|
|
91
|
+
実装・デバッグ・リファクタリング
|
|
92
|
+
戦略の着想・設計・事前登録の作成と改訂
|
|
93
|
+
デモ稼働(実弾を伴わないもの)
|
|
94
|
+
販売側の全作業
|
|
95
|
+
|
|
96
|
+
② 新規の外部関係が保留中のとき
|
|
97
|
+
|
|
98
|
+
棚上げする(これだけ)
|
|
99
|
+
その契約・登録の実行そのもの
|
|
100
|
+
その契約が成立していることを前提とする公開・出品・入金導線
|
|
101
|
+
|
|
102
|
+
続行する
|
|
103
|
+
同じ商品・戦略の企画・生成・実装・測定
|
|
104
|
+
既に持っている販路・口座を使う公開と出品
|
|
105
|
+
他の販路・他の商品・他の戦略の作業
|
|
106
|
+
調査・比較検討・提案の作成</code></pre>
|
|
107
|
+
<p>そして最後に一行。<strong>「列挙にないものは続行してよい。迷ったら続行し、記録する。」</strong></p>
|
|
108
|
+
<p>この一行が無いと、列挙は「これ以外は止める」と読まれます。既定を「進める」に倒すのは、ここです。</p>
|
|
109
|
+
<h2 id="1-5-なぜエージェントは-念のため-を選ぶのか">1-5. なぜエージェントは「念のため」を選ぶのか</h2>
|
|
110
|
+
<p>エージェントが確認を選ぶのは、能力の問題ではなく<strong>立場</strong>の問題です。</p>
|
|
111
|
+
<ul><li>進めて壊したときの責任は目に見える。止まって進まなかったときの損失は目に見えない</li><li>対話の訓練では「確認を取る」が褒められる。「聞かずに進んで正解だった」は褒められない</li><li>無人実行では、止まったことに気づく人が数時間いない。止まった側のコストが、エージェントには一切返ってこない</li></ul>
|
|
112
|
+
<p>したがって「念のため確認します」で終わるのは、<strong>エージェントにとって常に合理的</strong>です。
|
|
113
|
+
説得で直りません。直すには、</p>
|
|
114
|
+
<pre><code>1. 「念のため確認します」で終わるのは規律違反である、と明文化する
|
|
115
|
+
2. 聞きたいことを置く場所(PENDING)と、答えが返る経路(INBOX+フック)を用意する
|
|
116
|
+
3. 終了しようとしたとき、未読があれば機械が差し止める</code></pre>
|
|
117
|
+
<p>の 3 つが要ります。1 は文書、2 と 3 は機構です。文書だけでは守られません(第 6 章 6-9)。</p>
|
|
118
|
+
<h2 id="1-6-無人実行-p-モード-で特に起きること">1-6. 無人実行(<code>-p</code> モード)で特に起きること</h2>
|
|
119
|
+
<p>Claude Code を <code>-p</code>(print モード)で起動すると、対話の質問系ツールは無効になります。
|
|
120
|
+
つまり<strong>エージェントが人に質問する手段は、設計上もう存在しません</strong>。それでもモデルは質問文を書き、そこで応答を終えます。
|
|
121
|
+
応答が終わればプロセスは終わり、次に人が起動するまで何も起きません。</p>
|
|
122
|
+
<p>著者の環境の規則は、無人実行についてこう書いています。</p>
|
|
123
|
+
<pre><code>□ 棚上げ条件(1-3 の A)以外の確認質問をしない(「コミットしますか」等)。判断して進めること
|
|
124
|
+
□ A に該当する場合は PENDING に書いて棚上げし、依存しない作業を続ける。終了しない
|
|
125
|
+
□ ツール側の権限設定でブロックされた場合、それは A ではない。可能な範囲で作業を続け、ブロックされた内容を報告に含める</code></pre>
|
|
126
|
+
<p><strong>「念のため確認します」で終了するのは違反である。無人実行では特に、A 該当を理由に終了してはならない。答えられる者がいないのだから、棚上げして進む以外に正しい挙動はない。</strong></p>
|
|
127
|
+
<h2 id="1-7-棚上げが作る新しい失敗">1-7. 棚上げが作る新しい失敗</h2>
|
|
128
|
+
<p>ここまでで「止まらない」形はできます。しかし棚上げは、新しい失敗モードを 1 つ作ります。</p>
|
|
129
|
+
<p><strong>承認待ちを忘れる。</strong></p>
|
|
130
|
+
<p>停止は嫌でも目に入ります。止まっていれば人は気づきます。棚上げは違います。放っておいても作業が進むので、
|
|
131
|
+
聞かれたことに答えないまま何日も経ちます。そして棚上げの山が積み上がったとき、どれに依存する作業が止まっていたのか分からなくなります。</p>
|
|
132
|
+
<p>したがって棚上げには、<strong>両側に気づかせる機構</strong>が必要です。</p>
|
|
133
|
+
<pre><code>人の側 音を出さない手段を第一にする
|
|
134
|
+
1. 番兵ファイル ルートに「!pending_3.txt」。名前そのものが件数。0 件で消える。
|
|
135
|
+
ファイル一覧を開くだけで目に入り、夜間でも何も鳴らない
|
|
136
|
+
2. 通知 新規の未処理が発生したときだけ。同じ集合に二度鳴らさない。夜は翌朝に持ち越す
|
|
137
|
+
3. ログの末尾 自動再開スクリプトの終了サマリに未処理件数を書く
|
|
138
|
+
|
|
139
|
+
エージェント側 4. セッション開始時のフックが未処理の件数と項目名を文脈に注入する
|
|
140
|
+
5. 区切りごとに INBOX を読む。処理した行の行頭に ✔ を付ける(消さない)</code></pre>
|
|
141
|
+
<p>「気づく仕組みのない棚上げは、ただの取りこぼしである」——著者の環境の CHARTER はそう書き、
|
|
142
|
+
<strong>この機構が動かなくなったら棚上げ運用をやめて、停止条件に戻す</strong>とまで書いています。機構が規律の前提条件だからです。</p>
|
|
143
|
+
<p>第 2 章で、この機構をファイル 2 つとフック 5 つで作ります。</p>
|
|
144
|
+
<h2 id="1-8-機械に守らせる場所">1-8. 機械に守らせる場所</h2>
|
|
145
|
+
<table><thead><tr><th>規則</th><th>文書に書く</th><th>機械に置く</th></tr></thead><tbody><tr><td>裁量の範囲と A の 2 種類</td><td>CHARTER §3・§4</td><td>(文書のみ。ここは判断そのもの)</td></tr><tr><td>依存範囲の固定</td><td>CHARTER §4「依存範囲の限定」</td><td>PENDING の書式が「棚上げする作業」「続行する作業」の両方を必須にする(第 2 章)</td></tr><tr><td>「念のため確認します」の禁止</td><td>CHARTER §4「無人実行時」・§7</td><td>Stop フックが未読を差し止める(第 2 章)。権限は allow を広く・deny を厳しく(第 6 章 6-1)</td></tr><tr><td>承認待ちに気づく</td><td>CHARTER §5-9</td><td>番兵ファイル・SessionStart の注入・通知(第 2 章)</td></tr></tbody></table>
|
|
146
|
+
<h2 id="この章の要点">この章の要点</h2>
|
|
147
|
+
<ul><li>止まる原因は「確認を取る」という美徳そのもの。無人では美徳が故障になる</li><li>判断の留保と作業の停止を分ける。留保は 1 点、停止は依存する作業だけ</li><li>何が留保の対象かを 2 種類に狭く固定し、それ以外は裁量と明文化する</li><li>依存範囲を都度の判断に委ねず、書いておく。「列挙にないものは続行」を既定にする</li><li>棚上げは「忘れる」を生む。両側に気づかせる機構が無ければ、棚上げをしてはいけない</li></ul>
|
|
148
|
+
<footer>無人運転の設計書 — ask-later 同梱。© 2026 metamol0627。無断転載を禁じます。Claude および Claude Code は Anthropic, PBC の商標です。本書と道具は非公式で、Anthropic とは無関係です。</footer>
|
|
149
|
+
</main>
|
|
150
|
+
</body>
|
|
151
|
+
</html>
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# 第 1 章 なぜ止まるか——承認待ちの構造
|
|
2
|
+
|
|
3
|
+
## 1-1. 止まった実例から始める
|
|
4
|
+
|
|
5
|
+
2026 年 9 月 7 日、著者の環境で、あるエージェントのセッションがこう終わりました。
|
|
6
|
+
|
|
7
|
+
> サイジングの式を変更してよいか判断できないため、利用者の確認を待ちます。
|
|
8
|
+
|
|
9
|
+
セッションはそこで終わりました。判断を要していたのは「サイジングの式」という **1 点**です。
|
|
10
|
+
一方、そのとき進められたはずの作業はこれだけありました。
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
バックテストの実行・データの品質検査
|
|
14
|
+
監査(検証監査・判断監査)
|
|
15
|
+
実装・デバッグ・リファクタリング
|
|
16
|
+
別の戦略の設計
|
|
17
|
+
販売する道具の企画・生成・実装・測定
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
どれもサイジングの式とは関係がありません。**1 点の留保が、無関係な全作業を止めていました。**
|
|
21
|
+
しかもエージェントは正しいことをしたと思っています。「確認を取るべきことは確認を取る」は、対話で使っているときは美徳だからです。
|
|
22
|
+
|
|
23
|
+
無人で回すとき、この美徳がそのまま最大の故障になります。答える人がいないのだから、「確認を待つ」は「永久に止まる」と同じです。
|
|
24
|
+
|
|
25
|
+
## 1-2. 判断の留保と、作業の停止は別のもの
|
|
26
|
+
|
|
27
|
+
ここが本書全体の土台です。
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
判断の留保 ある 1 点について「自分では決めない」と決めること
|
|
31
|
+
作業の停止 セッション全体が進むのをやめること
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
対話で使っているとき、この 2 つは同じに見えます。人が横にいて、聞けばすぐ答えが返るからです。
|
|
35
|
+
「聞く」と「止まる」の間の時間がほぼゼロなので、区別する必要がありません。
|
|
36
|
+
|
|
37
|
+
無人にした瞬間、この 2 つの間の時間が数時間〜数日に伸びます。すると、
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
留保するべきもの その 1 点に依存する作業だけ
|
|
41
|
+
続けるべきもの それ以外の全部
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
という分割が要ります。分割しなければ、留保が停止に化けます。
|
|
45
|
+
|
|
46
|
+
「そんなことは分かっている」と思うかもしれません。しかし分割は、**都度の判断に任せると必ず安全側に倒れて全部止まります**。
|
|
47
|
+
エージェントは「念のため」を選ぶ立場にいるからです(1-5)。だから分割は、都度の判断ではなく、**あらかじめ書いた規則**として置く必要があります。
|
|
48
|
+
|
|
49
|
+
## 1-3. 承認待ちの 3 つの型
|
|
50
|
+
|
|
51
|
+
止まる場面を分けると、実際には 3 種類しかありません。
|
|
52
|
+
|
|
53
|
+
| 型 | 例 | 正しい扱い |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| A. 取り消せない外部関係 | 新しい販売プラットフォームへの登録、口座開設、決済手段の導入、規約違反の疑いがある行為 | **本当に人の判断が要る。**起票して、それに依存する作業だけ止める |
|
|
56
|
+
| B. 人の物理操作 | ボタンを押す、書類を出す、本人しか知らない値を答える、端末で 1 回クリックする | 人の判断は要らない。**人の手が空くまでの待ち**であり、起票して他を進める |
|
|
57
|
+
| C. 権限設定による遮断 | ツール側の許可リストに無いコマンド、編集を許可していないファイル | 判断の問題ではなく設定の問題。**遮断された内容を報告して、できる範囲を続ける** |
|
|
58
|
+
|
|
59
|
+
A 以外は「確認」の対象ですらありません。B は待ちで、C は設定です。
|
|
60
|
+
ところが、対話に慣れたエージェントは A・B・C を全部「確認を取るべき場面」として扱います。
|
|
61
|
+
そして A ですら、止めるべきなのは**その契約に依存する作業だけ**であって、セッションではありません。
|
|
62
|
+
|
|
63
|
+
著者の環境では、A に該当するのは 2 種類だけと決めてあります(第 7 章 CHARTER の骨子 §4)。
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
① 資金やリスクの前提そのものを変えるとき(式の構造・係数・許容度・資金ベース)
|
|
67
|
+
② 利用者の名義で新しい外部関係を結ぶとき(販路・口座・決済・規約違反の疑い)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**それ以外は全部、エージェントの裁量で進めてよい**と書いてあります。設計も実装も監査も公開も価格設定も。
|
|
71
|
+
「これをやっていいか」を聞く必要はなく、やってから記録すればよい、と。
|
|
72
|
+
|
|
73
|
+
これは大胆に見えますが、逆です。A の範囲を狭く固定しなければ、B と C が A に混ざり、全部が「念のため」になります。
|
|
74
|
+
**裁量の範囲を広く明文化することは、止まらないための前提条件です。**
|
|
75
|
+
|
|
76
|
+
## 1-4. 「依存範囲」を都度の判断に委ねない
|
|
77
|
+
|
|
78
|
+
A に該当したとき、何を止めて何を続けるかも、あらかじめ書いておきます。書かないと、安全側に倒して全部止める挙動に必ず戻ります。
|
|
79
|
+
|
|
80
|
+
著者の環境の実際の記述(第 7 章 CHARTER の骨子 §4「依存範囲の限定」)はこうです。
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
① 資金・リスクの前提が保留中のとき
|
|
84
|
+
|
|
85
|
+
棚上げする(これだけ)
|
|
86
|
+
実発注
|
|
87
|
+
ロットサイズの変更
|
|
88
|
+
保留中の前提に依存するサイジング計算
|
|
89
|
+
|
|
90
|
+
続行する
|
|
91
|
+
バックテスト・データ取得・品質検査
|
|
92
|
+
監査(検証監査・判断監査とも)
|
|
93
|
+
実装・デバッグ・リファクタリング
|
|
94
|
+
戦略の着想・設計・事前登録の作成と改訂
|
|
95
|
+
デモ稼働(実弾を伴わないもの)
|
|
96
|
+
販売側の全作業
|
|
97
|
+
|
|
98
|
+
② 新規の外部関係が保留中のとき
|
|
99
|
+
|
|
100
|
+
棚上げする(これだけ)
|
|
101
|
+
その契約・登録の実行そのもの
|
|
102
|
+
その契約が成立していることを前提とする公開・出品・入金導線
|
|
103
|
+
|
|
104
|
+
続行する
|
|
105
|
+
同じ商品・戦略の企画・生成・実装・測定
|
|
106
|
+
既に持っている販路・口座を使う公開と出品
|
|
107
|
+
他の販路・他の商品・他の戦略の作業
|
|
108
|
+
調査・比較検討・提案の作成
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
そして最後に一行。**「列挙にないものは続行してよい。迷ったら続行し、記録する。」**
|
|
112
|
+
|
|
113
|
+
この一行が無いと、列挙は「これ以外は止める」と読まれます。既定を「進める」に倒すのは、ここです。
|
|
114
|
+
|
|
115
|
+
## 1-5. なぜエージェントは「念のため」を選ぶのか
|
|
116
|
+
|
|
117
|
+
エージェントが確認を選ぶのは、能力の問題ではなく**立場**の問題です。
|
|
118
|
+
|
|
119
|
+
- 進めて壊したときの責任は目に見える。止まって進まなかったときの損失は目に見えない
|
|
120
|
+
- 対話の訓練では「確認を取る」が褒められる。「聞かずに進んで正解だった」は褒められない
|
|
121
|
+
- 無人実行では、止まったことに気づく人が数時間いない。止まった側のコストが、エージェントには一切返ってこない
|
|
122
|
+
|
|
123
|
+
したがって「念のため確認します」で終わるのは、**エージェントにとって常に合理的**です。
|
|
124
|
+
説得で直りません。直すには、
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
1. 「念のため確認します」で終わるのは規律違反である、と明文化する
|
|
128
|
+
2. 聞きたいことを置く場所(PENDING)と、答えが返る経路(INBOX+フック)を用意する
|
|
129
|
+
3. 終了しようとしたとき、未読があれば機械が差し止める
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
の 3 つが要ります。1 は文書、2 と 3 は機構です。文書だけでは守られません(第 6 章 6-9)。
|
|
133
|
+
|
|
134
|
+
## 1-6. 無人実行(`-p` モード)で特に起きること
|
|
135
|
+
|
|
136
|
+
Claude Code を `-p`(print モード)で起動すると、対話の質問系ツールは無効になります。
|
|
137
|
+
つまり**エージェントが人に質問する手段は、設計上もう存在しません**。それでもモデルは質問文を書き、そこで応答を終えます。
|
|
138
|
+
応答が終わればプロセスは終わり、次に人が起動するまで何も起きません。
|
|
139
|
+
|
|
140
|
+
著者の環境の規則は、無人実行についてこう書いています。
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
□ 棚上げ条件(1-3 の A)以外の確認質問をしない(「コミットしますか」等)。判断して進めること
|
|
144
|
+
□ A に該当する場合は PENDING に書いて棚上げし、依存しない作業を続ける。終了しない
|
|
145
|
+
□ ツール側の権限設定でブロックされた場合、それは A ではない。可能な範囲で作業を続け、ブロックされた内容を報告に含める
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**「念のため確認します」で終了するのは違反である。無人実行では特に、A 該当を理由に終了してはならない。答えられる者がいないのだから、棚上げして進む以外に正しい挙動はない。**
|
|
149
|
+
|
|
150
|
+
## 1-7. 棚上げが作る新しい失敗
|
|
151
|
+
|
|
152
|
+
ここまでで「止まらない」形はできます。しかし棚上げは、新しい失敗モードを 1 つ作ります。
|
|
153
|
+
|
|
154
|
+
**承認待ちを忘れる。**
|
|
155
|
+
|
|
156
|
+
停止は嫌でも目に入ります。止まっていれば人は気づきます。棚上げは違います。放っておいても作業が進むので、
|
|
157
|
+
聞かれたことに答えないまま何日も経ちます。そして棚上げの山が積み上がったとき、どれに依存する作業が止まっていたのか分からなくなります。
|
|
158
|
+
|
|
159
|
+
したがって棚上げには、**両側に気づかせる機構**が必要です。
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
人の側 音を出さない手段を第一にする
|
|
163
|
+
1. 番兵ファイル ルートに「!pending_3.txt」。名前そのものが件数。0 件で消える。
|
|
164
|
+
ファイル一覧を開くだけで目に入り、夜間でも何も鳴らない
|
|
165
|
+
2. 通知 新規の未処理が発生したときだけ。同じ集合に二度鳴らさない。夜は翌朝に持ち越す
|
|
166
|
+
3. ログの末尾 自動再開スクリプトの終了サマリに未処理件数を書く
|
|
167
|
+
|
|
168
|
+
エージェント側 4. セッション開始時のフックが未処理の件数と項目名を文脈に注入する
|
|
169
|
+
5. 区切りごとに INBOX を読む。処理した行の行頭に ✔ を付ける(消さない)
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
「気づく仕組みのない棚上げは、ただの取りこぼしである」——著者の環境の CHARTER はそう書き、
|
|
173
|
+
**この機構が動かなくなったら棚上げ運用をやめて、停止条件に戻す**とまで書いています。機構が規律の前提条件だからです。
|
|
174
|
+
|
|
175
|
+
第 2 章で、この機構をファイル 2 つとフック 5 つで作ります。
|
|
176
|
+
|
|
177
|
+
## 1-8. 機械に守らせる場所
|
|
178
|
+
|
|
179
|
+
| 規則 | 文書に書く | 機械に置く |
|
|
180
|
+
|---|---|---|
|
|
181
|
+
| 裁量の範囲と A の 2 種類 | CHARTER §3・§4 | (文書のみ。ここは判断そのもの) |
|
|
182
|
+
| 依存範囲の固定 | CHARTER §4「依存範囲の限定」 | PENDING の書式が「棚上げする作業」「続行する作業」の両方を必須にする(第 2 章) |
|
|
183
|
+
| 「念のため確認します」の禁止 | CHARTER §4「無人実行時」・§7 | Stop フックが未読を差し止める(第 2 章)。権限は allow を広く・deny を厳しく(第 6 章 6-1) |
|
|
184
|
+
| 承認待ちに気づく | CHARTER §5-9 | 番兵ファイル・SessionStart の注入・通知(第 2 章) |
|
|
185
|
+
|
|
186
|
+
## この章の要点
|
|
187
|
+
|
|
188
|
+
- 止まる原因は「確認を取る」という美徳そのもの。無人では美徳が故障になる
|
|
189
|
+
- 判断の留保と作業の停止を分ける。留保は 1 点、停止は依存する作業だけ
|
|
190
|
+
- 何が留保の対象かを 2 種類に狭く固定し、それ以外は裁量と明文化する
|
|
191
|
+
- 依存範囲を都度の判断に委ねず、書いておく。「列挙にないものは続行」を既定にする
|
|
192
|
+
- 棚上げは「忘れる」を生む。両側に気づかせる機構が無ければ、棚上げをしてはいけない
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 無人運転の設計書(無料版)— 第 1 章と最小テンプレ
|
|
2
|
+
|
|
3
|
+
`ask-later`(MIT・無料の道具)に同梱している、有償の設計書「無人運転の設計書 — AI コーディングエージェントを止めずに回す規律(Claude Code での実装例つき)」の無料部分です。
|
|
4
|
+
|
|
5
|
+
## 入っているもの
|
|
6
|
+
|
|
7
|
+
| ファイル | 内容 |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `01-why-it-stops.md` / `.html` | 第 1 章「なぜ止まるか——承認待ちの構造」。判断の留保と作業の停止は別のもの。承認待ちの 3 つの型。依存範囲を都度の判断に委ねない。棚上げが作る新しい失敗 |
|
|
10
|
+
| `templates/PENDING.md` | 依頼の台帳の雛形(`npx ask-later init` が置くものと同じ) |
|
|
11
|
+
| `templates/INBOX.md` | 人からの 1 行の雛形(同上) |
|
|
12
|
+
| `templates/CLAUDE.snippet.md` | CLAUDE.md に貼る規律の断片(`npx ask-later snippet` と同じ) |
|
|
13
|
+
| `templates/settings.hooks.json` | `.claude/settings.json` の断片。非同期キューの 5 つのフック・台帳のフック・権限の allow / deny の骨子 |
|
|
14
|
+
|
|
15
|
+
## 有償版に入っているもの(¥1,480・Markdown+HTML の ZIP)
|
|
16
|
+
|
|
17
|
+
- 第 2 章 棚上げキュー——PENDING / INBOX / 番兵 / フック。なぜその形か。依存する作業と続行する作業を両方書く書式
|
|
18
|
+
- 第 3 章 無人実行の 4 つのブレーキ——回数・費用・無進捗・不可逆操作の前の昇格。どこに置くか(外部プロセス/フック/文書)
|
|
19
|
+
- 第 4 章 独立セッションの監査——判断監査と検証監査の型。渡すもの/渡さないもの。結果を受け取った直後にファイルへ書く理由
|
|
20
|
+
- 第 5 章 記録は機械が書く——SubagentStop → CSV の台帳。モデル・トークン・概算コスト
|
|
21
|
+
- 第 6 章 失敗の記録(中核)——60 回の確認で無人実行が壊れた/監査結果が会話にしか無くて消えた/フック出力の文字化け/期限切れ項目の自動取り下げ/「念のため確認します」問題/dry-run 通過=配管が動く、ほか 14 件
|
|
22
|
+
- 第 7 章 テンプレ一式——CHARTER の骨子・監査役の定義(agents/*.md 3 本)・STATUS / NEXT の骨子(無料版の 4 ファイルを含む)
|
|
23
|
+
|
|
24
|
+
入手方法は道具の README(「有償版」の節)にあります。
|
|
25
|
+
|
|
26
|
+
Claude および Claude Code は Anthropic, PBC の商標です。本書と道具は非公式で、Anthropic とは無関係です。
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="ja">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<meta name="robots" content="noindex,nofollow">
|
|
7
|
+
<title>無人運転の設計書(無料版)</title>
|
|
8
|
+
<style>
|
|
9
|
+
:root{--paper:#fcfcfa;--ink:#16181d;--soft:#5c6068;--rule:#dcdcd6;--blue:#a4c8e1;--reg:#c8102e}
|
|
10
|
+
*{box-sizing:border-box}
|
|
11
|
+
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic Medium",system-ui,sans-serif;font-size:16px;line-height:1.9;font-feature-settings:"palt" 1}
|
|
12
|
+
main{max-width:44rem;margin:0 auto;padding:3rem 1.25rem 6rem}
|
|
13
|
+
h1{font-size:1.9rem;line-height:1.35;margin:0 0 .5rem}
|
|
14
|
+
h2{font-size:1.25rem;margin:2.5rem 0 .8rem;padding-top:1.2rem;border-top:1px solid var(--rule)}
|
|
15
|
+
h3{font-size:1.05rem;margin:1.8rem 0 .5rem}
|
|
16
|
+
p{margin:0 0 1rem}
|
|
17
|
+
pre{background:var(--ink);color:var(--paper);padding:.9rem 1.1rem;border-radius:2px;overflow-x:auto;font-size:.86rem;line-height:1.6}
|
|
18
|
+
code{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:.92em}
|
|
19
|
+
p code,li code,td code{background:#eeeee9;padding:.05em .35em;border-radius:2px}
|
|
20
|
+
blockquote{margin:0 0 1rem;padding:.2rem 1rem;border-left:3px solid var(--blue);color:var(--soft)}
|
|
21
|
+
table{border-collapse:collapse;width:100%;font-size:.92rem;margin:0 0 1.2rem}
|
|
22
|
+
th,td{text-align:left;vertical-align:top;padding:.45rem .5rem;border-bottom:1px solid var(--rule)}
|
|
23
|
+
th{color:var(--soft);font-weight:700}
|
|
24
|
+
ul,ol{margin:0 0 1rem;padding-left:1.4rem}
|
|
25
|
+
li{margin-bottom:.35rem}
|
|
26
|
+
hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}
|
|
27
|
+
a{color:var(--ink)}
|
|
28
|
+
nav.toc{font-size:.92rem;margin:0 0 2rem;padding:1rem 1.2rem;border:1px solid var(--rule)}
|
|
29
|
+
nav.toc ol{margin:0;padding-left:1.2rem}
|
|
30
|
+
nav.toc ol ol{padding-left:1rem}
|
|
31
|
+
.meta{color:var(--soft);font-size:.9rem;margin:0 0 2rem}
|
|
32
|
+
footer{border-top:1px solid var(--rule);margin-top:3rem;padding-top:1rem;color:var(--soft);font-size:.85rem}
|
|
33
|
+
</style>
|
|
34
|
+
</head>
|
|
35
|
+
<body>
|
|
36
|
+
<main>
|
|
37
|
+
|
|
38
|
+
<h1 id="無人運転の設計書-無料版-第-1-章と最小テンプレ">無人運転の設計書(無料版)— 第 1 章と最小テンプレ</h1>
|
|
39
|
+
<p><code>ask-later</code>(MIT・無料の道具)に同梱している、有償の設計書「無人運転の設計書 — AI コーディングエージェントを止めずに回す規律(Claude Code での実装例つき)」の無料部分です。</p>
|
|
40
|
+
<h2 id="入っているもの">入っているもの</h2>
|
|
41
|
+
<table><thead><tr><th>ファイル</th><th>内容</th></tr></thead><tbody><tr><td><code>01-why-it-stops.md</code> / <code>.html</code></td><td>第 1 章「なぜ止まるか——承認待ちの構造」。判断の留保と作業の停止は別のもの。承認待ちの 3 つの型。依存範囲を都度の判断に委ねない。棚上げが作る新しい失敗</td></tr><tr><td><code>templates/PENDING.md</code></td><td>依頼の台帳の雛形(<code>npx ask-later init</code> が置くものと同じ)</td></tr><tr><td><code>templates/INBOX.md</code></td><td>人からの 1 行の雛形(同上)</td></tr><tr><td><code>templates/CLAUDE.snippet.md</code></td><td>CLAUDE.md に貼る規律の断片(<code>npx ask-later snippet</code> と同じ)</td></tr><tr><td><code>templates/settings.hooks.json</code></td><td><code>.claude/settings.json</code> の断片。非同期キューの 5 つのフック・台帳のフック・権限の allow / deny の骨子</td></tr></tbody></table>
|
|
42
|
+
<h2 id="有償版に入っているもの-1-480-markdown-html-の-zip">有償版に入っているもの(¥1,480・Markdown+HTML の ZIP)</h2>
|
|
43
|
+
<ul><li>第 2 章 棚上げキュー——PENDING / INBOX / 番兵 / フック。なぜその形か。依存する作業と続行する作業を両方書く書式</li><li>第 3 章 無人実行の 4 つのブレーキ——回数・費用・無進捗・不可逆操作の前の昇格。どこに置くか(外部プロセス/フック/文書)</li><li>第 4 章 独立セッションの監査——判断監査と検証監査の型。渡すもの/渡さないもの。結果を受け取った直後にファイルへ書く理由</li><li>第 5 章 記録は機械が書く——SubagentStop → CSV の台帳。モデル・トークン・概算コスト</li><li>第 6 章 失敗の記録(中核)——60 回の確認で無人実行が壊れた/監査結果が会話にしか無くて消えた/フック出力の文字化け/期限切れ項目の自動取り下げ/「念のため確認します」問題/dry-run 通過=配管が動く、ほか 14 件</li><li>第 7 章 テンプレ一式——CHARTER の骨子・監査役の定義(agents/*.md 3 本)・STATUS / NEXT の骨子(無料版の 4 ファイルを含む)</li></ul>
|
|
44
|
+
<p>入手方法は道具の README(「有償版」の節)にあります。</p>
|
|
45
|
+
<p>Claude および Claude Code は Anthropic, PBC の商標です。本書と道具は非公式で、Anthropic とは無関係です。</p>
|
|
46
|
+
<h2 id="files">収録ファイル</h2>
|
|
47
|
+
<ol>
|
|
48
|
+
<li><a href="01-why-it-stops.html">第 1 章 なぜ止まるか——承認待ちの構造</a>(<a href="01-why-it-stops.md">Markdown</a>)</li>
|
|
49
|
+
</ol>
|
|
50
|
+
<footer>無人運転の設計書 — ask-later 同梱。© 2026 metamol0627。無断転載を禁じます。Claude および Claude Code は Anthropic, PBC の商標です。本書と道具は非公式で、Anthropic とは無関係です。</footer>
|
|
51
|
+
</main>
|
|
52
|
+
</body>
|
|
53
|
+
</html>
|