---
title: 受講者用_ClaudeCode業務自動化講座
tags: 
author: [Yukiko](https://image.docswell.com/user/yukiko_it)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/VJP3XP5VE8.jpg?width=480
description: 受講者用_ClaudeCode業務自動化講座 by Yukiko
published: November 14, 26
canonical: https://image.docswell.com/s/yukiko_it/5L3Y3Q-2026-11-14-194415
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/VJP3XP5VE8.jpg)

うさうさ研修工房 ｜ Udemy講座 受講者用
Claude Codeの拡張機能と
/goal・フックで業務自動化
Skills・Subagents・MCP・Hooks・/goal ｜ Windows / VSCode 対応


# Page. 2

![Page Image](https://bcdn.docswell.com/page/2EV4L2PRJQ.jpg)

この講座で作るもの
「頼む」だけでなく「強制する」自動化
バグ入りコード
テスト4件が失敗
▶
スキル等
手順と役割分担
▶
フック
危険・ズルを強制ブロック
▶
/goal
通るまで続ける
最後は結果を Notionに記録して、 1コマンドで「直す →記録」まで通す
題材：前の講座のダッシュボード（わざとバグを3か所入れてある）
うさうさ研修工房 ｜ Claude Code業務自動化講座
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/57G1XRP6EL.jpg)

はじめに
対象・到達目標・前提
対象
到達目標
前提
Claude Codeを使い始めた
拡張機能を使い分けられる
Windows・VSCode・Node.js 22
開発・DX・業務改善のエンジニア
フックで安全な自動化を作れる
毎回同じ指示を出して疲れている人
/goalに測れる完了条件を書ける
Claude Code（/goalは v2.1.139 以
上）
Notionアカウント（記録の演習用）
うさうさ研修工房 ｜ Claude Code業務自動化講座
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/4EQD8V22JP.jpg)

全体ロードマップ
スロープ設計：知識 → 橋渡し → 実践
前半｜知識編
1
2
3
4
全体地図
環境と安全
スキル・コマンド
サブエージェント
拡張機能の使い分け
権限・最小権限
手順を資産に
役割分担とMCP
橋渡し：/goal を初めて使う（測れる小さなゴール）
後半｜実践編
5
6
7
8
フック基礎
/goal 実践
組み合わせ
安全・コスト
ブロック・検査
条件の書き方
一気通貫
止め方・運用
うさうさ研修工房 ｜ Claude Code業務自動化講座
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/KJ4Z2MLP71.jpg)

PART 1
前半｜知識編
全体地図・安全・スキル・サブエージェント・MCP（Chapter 1〜4）


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LE1RM8LXEG.jpg)

Chapter 1 ｜ 全体地図
拡張機能の 6つの道具
道具
役割
いつ使う
CLAUDE.md
プロジェクトの常識を毎回伝える
ルール・コマンド・禁止事項
スラッシュコマンド
よく使う指示を 1コマンドに
定型の依頼を再利用したい
スキル
手順と知識を必要なときに読ませる
作業の進め方を資産にしたい
サブエージェント
別の文脈・限定した権限で作業
調査・確認を任せ、本流を汚さない
フック
決まった場面でコマンドを必ず実行
ブロック・検査・通知を強制したい
MCP
外部サービスにつなぐ
Notionなど社外のツールを操作
うさうさ研修工房 ｜ Claude Code業務自動化講座
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GEW13ZVK72.jpg)

Chapter 1 ｜ 全体地図
「お願い」と「強制」は別物
お願い（確率的）
強制（確定的）
完了まで続ける
プロンプト・CLAUDE.md・スキル
フック・permissions
/goal・Stopフック
Claudeが読んで従う。守られないこ
ともある
コードや設定が必ず実行・拒否する
条件が満たされるまで、次のターン
に進ませる
使い分けの合言葉：「必ず守らせたいこと」は、フックで強制する
うさうさ研修工房 ｜ Claude Code業務自動化講座
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/47ZPV14NE3.jpg)

Chapter 1 ｜ 全体地図
題材：バグ入りのダッシュボード
状態
npm test の結果
出発点（バグ入り）
62件中 4件失敗（3か所のバグ）
ゴール
62件すべて成功。tests/ は変更しない
•
バグ1：終了日を含めない（期間の境界）
•
バグ2：0件の平均単価が 0 になる（null にすべき）
•
バグ3：空欄の金額を受け入れてしまう
•
テストは仕様。テストを書き換えて通すのは禁止（フックで強制）
うさうさ研修工房 ｜ Claude Code業務自動化講座
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/YJ6M5L397V.jpg)

Chapter 1 ｜ 全体地図
リポジトリの .claude/ を読む
claude-code-automation-lab
.claude/
settings.json
hooks/
skills/
agents/
commands/
.mcp.json.example
権限とフックの設定
フックのスクリプト（ Node.js）
fix-failing-tests
notion-test-recorder
test-runner / code-reviewer
fix-and-record / record-tests
Notion MCP の設定例
うさうさ研修工房 ｜ Claude Code業務自動化講座
•
全部、ファイルで管理（チームで共有できる）
•
コードと同じようにレビュー・履歴管理する
•
フックの設定は、人が読んで確認する
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GJ5ZY1LDE4.jpg)

Chapter 2 ｜ 環境と安全
セットアップ・チェックリスト
項目
確認方法
Node.js 22（LTS）
node -v
Claude Code
claude --version（/goal は v2.1.139 以上）
演習リポジトリ
npm install → npm test（4件失敗が正常）
フックの単体テスト
npm run test:hooks（15件成功）
信頼ダイアログ
このフォルダで claude を起動し、内容を確認して承認
※ 仕様や画面は更新される。迷ったら公式ドキュメントで最新を確認する
うさうさ研修工房 ｜ Claude Code業務自動化講座
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LE3951DQE5.jpg)

Chapter 2 ｜ 環境と安全
permissions：許可と拒否を決める
.claude/settings.json
•
allow：毎回の確認なしで実行してよいもの
{
•
deny：絶対に読ませない・実行させない
•
最小権限：必要なものだけ許可する
•
ルールの書き方は更新されることがある
&quot;permissions&quot;: {
&quot;allow&quot;: [
&quot;Bash(npm test)&quot;,
&quot;Bash(npx vitest run:*)&quot;,
&quot;Bash(git diff:*)&quot;
],
&quot;deny&quot;: [
&quot;Read(./.env)&quot;,
&quot;Read(./.env.*)&quot;
]
}
}
うさうさ研修工房 ｜ Claude Code業務自動化講座
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/8EDGDXPWEG.jpg)

Chapter 2 ｜ 環境と安全
守りを5層に重ねる
層
手段
この講座の例
許可
permissions の allow / deny
.env を読ませない
実行前の検査
PreToolUse フック
rm -rf・tests/ の書き換えをブロック
実行後の検査
PostToolUse フック
編集直後に速いテスト
完了の判定
Stopフック・/goal
npm test が通るまで
人の確認
PRレビュー・git diff
tests/ に変更がないこと
うさうさ研修工房 ｜ Claude Code業務自動化講座
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/V7P3XPNXJ8.jpg)

Chapter 3 ｜ スキルとコマンド
スキル：手順を資産にする
.claude/skills/fix-failing-tests/SKILL.md
•
description が「いつ使うか」の手がかり
--name: fix-failing-tests
description: 失敗しているテストを、テストを
書き換えずに、実装側を最小限で直して
通す手順。「npm test を通して」で使う。
---
•
原則・手順・やってはいけないこと・報告を書
く
•
「通ったはず」ではなく、実行結果を見せさせ
る
## 原則
- テストを書き換えない（直すのは js/）
- 最小の変更で直す
- 直したと言う前に npm test を実行して示す
うさうさ研修工房 ｜ Claude Code業務自動化講座
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/2JV4L2K37Q.jpg)

Chapter 3 ｜ スキルとコマンド
コマンド： 1語で呼び出す
.claude/commands/fix-and-record.md
•
/fix-and-record と打つだけで実行
--description: テストが通るまで実装を直し、
結果をNotionに記録する
---
•
$ARGUMENTS に追加の指示を渡せる
•
スキルを組み合わせて呼び出せる
次の順で進めてください。
1. fix-failing-tests スキルの手順で、
npm test が通るまで実装を直す
2. npm run test:json で結果を出し、
notion-test-recorder の手順でNotionに記録
3. 直した内容と最終結果を報告
追加の指示：$ARGUMENTS
うさうさ研修工房 ｜ Claude Code業務自動化講座
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/5EG1XRQYJL.jpg)

Chapter 4 ｜ サブエージェント・ MCP
サブエージェント：役割と権限を絞る
.claude/agents/test-runner.md
•
別の文脈で動く＝本流の会話を汚さない
--name: test-runner
description: テストを実行して、失敗したテストと
原因の候補を短く報告する専用エージェント。
コードは変更しない。
tools: Bash, Read, Grep, Glob
---
•
tools で道具を絞る（書き込み系を持たせな
い）
•
調査・確認・レビューを任せるのに向く
あなたはテスト実行の担当です。
コードは変更しません。
## 守ること
- ファイルを編集・作成・削除しない
- ログを丸ごと貼らない。要点だけ返す
うさうさ研修工房 ｜ Claude Code業務自動化講座
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4JQD8VK67P.jpg)

Chapter 4 ｜ サブエージェント・ MCP
MCP：Notionにつなぐ
PowerShell / .mcp.json.example
•
登録後、Claude Code内で /mcp から認証
claude mcp add --transport http notion \
https://mcp.notion.com/mcp
•
認証画面でワークスペース名を必ず確認
•
許可するのは対象のDBだけ（最小権限）
•
前の講座の記録スキルと接続する
# または、プロジェクトの設定ファイル
{
&quot;mcpServers&quot;: {
&quot;notion&quot;: {
&quot;type&quot;: &quot;http&quot;,
&quot;url&quot;: &quot;https://mcp.notion.com/mcp&quot;
}
}
}
うさうさ研修工房 ｜ Claude Code業務自動化講座
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/K74Z2MPME1.jpg)

橋渡し ｜ 成功体験
/goal を初めて使う
1
2
3
小さな条件
状態を見る
止め方
1ターンで終わる、測れる条件から始
める
引数なしの /goal で、いまの目標を確
認
/goal clear で解除。まず止め方を知る
最初の /goal（バグを直す前の状態で）
/goal npm test の失敗件数を表示して、4件であることを確認する
※ /goal は Claude Code v2.1.139 以上で使える
うさうさ研修工房 ｜ Claude Code業務自動化講座
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LJ1RM89YJG.jpg)

PART 2
後半｜実践編
フック・/goal・組み合わせ・安全（Chapter 5〜8）


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GJW13ZQ1E2.jpg)

Chapter 5 ｜ フック基礎
フックは「標準入力の JSON → 終了コード」
終了コード / 出力
意味
0
成功。何もブロックしない（ PreToolUseでも「承認」にはならない）
2（標準エラーに理由）
ブロック。理由が Claude に返る（ブロックできるイベントのみ）
1 など
ブロックにならない。ユーザーにエラーが見えるだけ
0 ＋ JSON（decision: block）
PostToolUse・Stop で、理由を Claude に返して続行させる
•
入力：tool_name・tool_input・cwd・session_id などが標準入力にJSONで渡される
•
置き場所：~/.claude/settings.json、.claude/settings.json、.claude/settings.local.json
うさうさ研修工房 ｜ Claude Code業務自動化講座
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EZPV1WXJ3.jpg)

Chapter 5 ｜ フック基礎
PreToolUse：危険なコマンドをブロック
.claude/hooks/block-dangerous.js
•
Bash の実行前に、コマンド文字列を検査
const RULES = [
[/\brm\s+(-[a-z]*r[a-z]*f|...)/i,
&#039;rm -rf（再帰的な強制削除）&#039;],
[/\bgit\s+push\b[^|;&amp;]*(--force\b|\s-f\b)/i,
&#039;git push --force（履歴の上書き）&#039;],
[/\bnpm\s+publish\b/i, &#039;npm publish&#039;],
];
for (const [pattern, label] of RULES) {
if (pattern.test(command)) {
console.error(`ブロックしました：${label}`);
process.exit(2);
}
}
process.exit(0);
•
終了コード2＋理由で、Claudeに別の方法
を考えさせる
•
PowerShellの Remove-Item -Recurse
-Force も対象
うさうさ研修工房 ｜ Claude Code業務自動化講座
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/Y76M5LGPEV.jpg)

Chapter 5 ｜ フック基礎
PreToolUse：テストの書き換えを禁止
.claude/hooks/protect.config.json
•
「テストを書き換えて通した」というズルを防
ぐ
•
秘密情報・CI設定・フック自体も保護
•
設定を変えるだけで、ルールを足せる
{
&quot;protected&quot;: [
{ &quot;pattern&quot;: &quot;^tests/&quot;,
&quot;reason&quot;: &quot;テストを書き換えて通すことは禁止&quot; },
{ &quot;pattern&quot;: &quot;(^|/)\\.env($|\\.)&quot;,
&quot;reason&quot;: &quot;秘密情報&quot; },
{ &quot;pattern&quot;: &quot;^\\.github/workflows/&quot;,
&quot;reason&quot;: &quot;CI設定は人がレビューする&quot; },
{ &quot;pattern&quot;: &quot;^\\.claude/(settings|hooks)&quot;,
&quot;reason&quot;: &quot;自動化の設定を変更させない&quot; }
]
}
うさうさ研修工房 ｜ Claude Code業務自動化講座
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/G75ZY1VPJ4.jpg)

Chapter 5 ｜ フック基礎
PostToolUse：編集直後にテスト
.claude/hooks/post-edit-check.js
•
PostToolUse はもう実行済みなのでブロッ
クできない
•
代わりに decision:block のJSONで理由を
返す
•
失敗した行だけを要約して返す（ログは短く）
if (!/^js\/.+\.js$/.test(file)) process.exit(0);
const r = spawnSync(
&#039;npx vitest run tests/unit --reporter=dot&#039;,
{ shell: true, timeout: 60_000, encoding: &#039;utf8&#039; });
if (r.status === 0) process.exit(0);
const reason = `${file} の編集直後のテストが失敗`
+ &#039;\n&#039; + summarizeFailures(r.stdout + r.stderr);
process.stdout.write(
JSON.stringify({ decision: &#039;block&#039;, reason }));
うさうさ研修工房 ｜ Claude Code業務自動化講座
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/9J2RG13Z7R.jpg)

Chapter 5 ｜ フック基礎
フックは単体でテストできる
.claude/hooks/__tests__/hooks.test.js
•
const run = (script, input, env = {}) =&gt;
spawnSync(process.execPath, [join(hooks, script)], {
input: JSON.stringify(input),
encoding: &#039;utf8&#039;, env: { ...process.env, ...env } });
npm run test:hooks（Node標準のテストラ
ンナー）
•
Claude Code を起動せずに、15件を確認
できる
•
フックもコード。テストを書いて守る
test(&#039;危険なコマンドは終了コード2でブロック&#039;, () =&gt; {
const r = run(&#039;block-dangerous.js&#039;,
bash(&#039;git push --force origin main&#039;));
assert.equal(r.status, 2);
assert.match(r.stderr, /ブロックしました/);
});
うさうさ研修工房 ｜ Claude Code業務自動化講座
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/DEYDVZ1NEM.jpg)

Chapter 6 ｜ /goal 実践
/goal とは：完了条件を 1つ置く
できること
仕組み
注意
完了条件を1つ置くと、条件が満たさ
れるまで、ターンをまたいで作業を続
ける。条件は最大4,000文字
セッション限定のプロンプト型Stopフッ
クのラッパー。ターンが終わるたびに、
小型の高速モデル（既定はHaiku）が
条件を判定する
評価者が見るのは会話に出たものだ
け。条件は「Claudeが出力に示せる
証拠」で書く。信頼ダイアログの承認
が必要
※ v2.1.139 以上。仕様は更新されるので、公式ドキュメントで最新を確認する
うさうさ研修工房 ｜ Claude Code業務自動化講座
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VJN6M32VJ8.jpg)

Chapter 6 ｜ /goal 実践
良い条件の 4要素
要素
意味
例
終了状態
何が真になれば終わりか
npm test が全件成功
確認方法
Claudeが証拠を出せる手段
コマンドを実行し、終了コードと件数を表示
制約
やってはいけないこと
git diff --name-only に tests/ が出ない
安全上限
暴走を止める線
20ターンで止めて、未完了なら理由を報告
うさうさ研修工房 ｜ Claude Code業務自動化講座
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/YE9LN91V73.jpg)

Chapter 6 ｜ /goal 実践
悪い条件を、測れる条件に直す
悪い（測れない）
良い（測れる）
テストをきれいに直して
npm test が終了コード0で、成功件数が全テスト数と一致する
コードを良くして
npm test が通り、変更が js/ 内の3ファイル以内（git diff --stat）
全部終わるまで続けて
…または20ターンに達したら止めて、残りを報告する
曖昧な条件は、終わらない・トークンを使いすぎる。必ず上限ターンを入れる
うさうさ研修工房 ｜ Claude Code業務自動化講座
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/GE8XK944JD.jpg)

Chapter 6 ｜ /goal 実践
演習：4件の失敗を /goal で直す
Claude Code
/goal `npm test` が終了コード0で全件成功し、
`git diff --name-only` の出力に tests/ が
含まれていないこと。毎ターン、npm test の
件数と git diff の結果を表示すること。
20ターンで止めて、未完了なら理由を報告すること。
•
4要素がすべて入っている
•
テストを書き換えるとフックがブロックする
•
途中で /goal で状態を見る
•
終わったら git diff で tests/ が無事か確認
# 状態の確認
/goal
# 解除
/goal clear
うさうさ研修工房 ｜ Claude Code業務自動化講座
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/LEL8ZW6V7R.jpg)

Chapter 7 ｜ 組み合わせ
Stopフック：確定的な完了ゲート
.claude/hooks/stop-gate.js
•
const r = spawnSync(&#039;npm test --silent&#039;,
{ shell: true, cwd, encoding: &#039;utf8&#039; });
if (r.status === 0) process.exit(0); // 終わってよい
モデルでなく、スクリプトが判定＝毎回同じ
結果
•
必ず上限回数を付ける（無限ループ防止）
•
有効化：settings.stopgate.example.json
を参考に追加
const count = readCount() + 1;
if (count &gt; max) {
// 既定は3回
process.exit(0);
// 上限。人が確認する
}
writeCount(count);
process.stdout.write(JSON.stringify({
decision: &#039;block&#039;,
reason: `npm test がまだ失敗（${count}/${max}回目）` }));
うさうさ研修工房 ｜ Claude Code業務自動化講座
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/4JM6V95NEW.jpg)

Chapter 7 ｜ 組み合わせ
/loop・/goal・Stopフックの使い分け
手段
次のターンのきっかけ
終わりを決めるのは
/loop
時間の間隔
人が止める／Claudeが完了と判断
/goal
前のターンの終了
小型モデルが条件を評価
Stopフック
前のターンの終了
自作スクリプト（確定的）またはプロンプト
•
/goal はセッション限定の手軽な近道。Stopフックは設定ファイルに置き、全セッションに効く
•
毎回同じ結果にしたい確認（終了コード）はStopフック、柔軟な判断は /goal
•
両方を有効にすると、どちらも毎ターン動く
うさうさ研修工房 ｜ Claude Code業務自動化講座
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/PJRP2G34E9.jpg)

Chapter 7 ｜ 組み合わせ
一気通貫：直す → 守る → 記録
/fix-and-record
コマンドで開始
/goal / Stop
通るまで続ける
▶
fix-failing-tests
▶
npm test
手順（スキル）
全件成功
▶
test-runner
確認（サブエージェント）
▶
notion-test-recorde
▶
▶
r
スキルで記録
フック
ブロック＋編集直後の検査
Notion
テスト結果DB
拡張機能は、単独でなく「重ねて」使うと強い
うさうさ研修工房 ｜ Claude Code業務自動化講座
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/PEX3DX4ZJX.jpg)

Chapter 8 ｜ 安全・コスト・運用
フックは「任意のコマンドを実行できる設定」
信頼できる設定だけ
確認なしで動く場合
自分で書き換えさせない
他人のリポジトリの
.claude/settings.json を、中身を読ま
ずに信頼しない
コミットされたフックは、非対話の実行
でも確認なしに動くことがある。PRで
必ずレビュー
設定とフック自体を保護する
（protect.config.json）
フックの設定変更は、コードの変更と同じ重さでレビューする
うさうさ研修工房 ｜ Claude Code業務自動化講座
31


# Page. 32

![Page Image](https://bcdn.docswell.com/page/3EKYXWZVJD.jpg)

Chapter 8 ｜ 安全・コスト・運用
コストと「止め方」
状況
止め方
/goal を止めたい
/goal clear（または /clear）
実行中の処理を止めたい
Ctrl+C
フックが暴走している
設定の hooks を外す／disableAllHooks
Stopゲートが止まらない
上限回数で自動停止（STOP_GATE_MAX）
•
/goal はターンごとに評価も動く。曖昧な条件はトークンを使いすぎる
•
目標ごとの予算上限は確認できていない→ 上限ターンを必ず入れる
うさうさ研修工房 ｜ Claude Code業務自動化講座
32


# Page. 33

![Page Image](https://bcdn.docswell.com/page/L73951XQ75.jpg)

確認テストと効果測定
学んだ確認と、導入効果の測り方
確認テスト（例）
効果測定の指標
Q1. 「必ず守らせたい」ことは、どの道具で実現する？
・定型作業にかかる時間（導入前後）
Q2. PostToolUseフックが失敗を伝える方法は？
・手戻り（テストの書き換え・誤操作）の件数
Q3. /goal の条件に必ず入れるものは？
・フックが止めた危険操作の件数
・/goal の1回あたりのターン数
うさうさ研修工房 ｜ Claude Code業務自動化講座
33


# Page. 34

![Page Image](https://bcdn.docswell.com/page/87DGDX2W7G.jpg)

まとめ
任せきるために、守りを先に作る
① 必ず守らせたいことはフックで強制 ② /goal は測れる条件＋上限ターン ③ フックの変更もレ
ビュー ｜ 次の一歩：自分の定型業務を1つ選んで自動化


