
---

## 課題B の進め方（演習B から追加）

課題B は初見の Java プロジェクトです。次の順で進めます。

1. 動かして現状を掴む（`kadaiB` で `./mvnw spring-boot:run`）
2. Plan モードで調べさせ、計画だけ出させる（コードはまだ変更しない）
3. 見つけた不具合を `kadaiB/issues/` に Issue として起票する
4. Issue を根拠に修正し、ブラウザで直ったことを確認する
5. 同じ壊れ方を二度しないためのテストを書き、`./mvnw test` を緑にする

到達の基準は **バグ2件の修正** です。3件目以降は発展課題です。

## Issue の書き方（課題B）

- 置き場所: `kadaiB/issues/`
- ファイル名: `ISSUE_00N_内容がわかる名前.md`（例: `ISSUE_002_在庫5個の備品に要補充が出ない.md`）
- 見出しは `kadaiB/issues/ISSUE_TEMPLATE.md` の5つを使います。増やしも減らしもしません。
  1. 現象
  2. 期待する動作
  3. 発生箇所
  4. 再現手順
  5. 修正方針
- 「期待する動作」は `## 業務ルール（課題B）` の5項目のどれに当たるかを明記します。
- 修正が終わったら、Issue ファイルの末尾に `## 修正結果` の見出しを足し、変更したファイルと確認方法を書きます。

Issue はローカルの Markdown ファイルです。本研修では Git と GitHub を使いません。

## 修正するときの決まり（課題B）

- 修正の根拠は Issue と `## 業務ルール（課題B）` に置きます。「なんとなく直した」を残しません。
- 1つの Issue につき1つの修正にします。ついでの整形やリファクタリングを混ぜないでください。差分が読めなくなります。
- `Optional` を `.get()` で開かず、値が無い場合の振る舞いを決めてから書きます。
- 例外を握りつぶしません（`catch` して何もしない、を書かない）。
- `kadaiB/src/main/resources/data.sql` は変更しません。データを変えて症状を消すのは修正ではありません。

## テストの決まり（課題B）

- 置き場所: `kadaiB/src/test/java/com/example/equipment/`
- クラス名は対象クラス名 + `Test`（例: `EquipmentServiceImplTest`）
- テストメソッドには、何を確かめているかがわかる日本語コメントを1行添えます
- 直したバグ1件につき、最低1つのテストを残します
- 実行は `kadaiB` フォルダで `./mvnw test`（Windows PowerShell は `.\mvnw.cmd test`）

## 追加した Skill（演習B から）

`.claude/skills/` に3つ増えています。名前を指定しなくても、依頼の言い方に応じて自動で選ばれます。どれが使われたかは、実行サマリーの「従った設定」欄で確認できます。

- `claude-automation-recommender`: プロジェクトに合う自動化を提案します。提案するだけで、ファイルは書き換えません。実際に作らせたいときは、提案を1つ選んで別途依頼してください。
- `skill-creator`: 自分の作業手順を Skill として書き出します。
- `threat-model`: コードベースの脅威モデルを作ります。静的な読み取りだけで、対象コードは実行しません。

## 追加したコマンド（演習B から）

- `/regression-check`: `kadaiB/issues/` の全 Issue をなぞり直し、`./mvnw test` を実行して、結果を1枚の表にまとめます。修正が一通り終わったあとに使ってください。

（実行サマリーの規定は上の `## 応答の最後に必ず出すもの` のとおりです。この追記のあとも、引き続き応答の最終行に必ず出してください。）
