# AGENTS.md - 備品管理ハンズオン

複数のAIコーディングツールで共有する指示書です。本研修の主軸は Claude Code です。Claude Code はプロジェクト直下の `CLAUDE.md` を起動時に自動で読み込み、`.claude/settings.json` でふるまいを調整します。ツール固有の設定は `.github/` `.cursor/` `.codex/` に分けています。

## プロジェクト情報

- 名前: handson（生成AIプログラミング入門 受講者配布プロジェクト）
- 構成: kadaiA（CRUDアプリをゼロから作る作業フォルダ）+ kadaiB（Spring Boot バグ修正題材）
- 課題Bのパッケージ: com.example.equipment
- 課題Bの技術スタック
  - Java 17
  - Spring Boot 3.4
  - Spring Data JPA
  - H2 Database（インメモリ）
  - Thymeleaf
  - Maven（Maven Wrapper 同梱）

## 課題Bの構造

レイヤードアーキテクチャです。

```
controller → service (interface) → serviceImpl → repository → model (JPA Entity)
```

- controller: 画面コントローラ（EquipmentController、Thymeleaf の一覧・詳細）
- service: ビジネスロジックのインターフェースと実装
- repository: データアクセス（Spring Data JPA）
- model: JPA エンティティ（Equipment）

## ビルド

kadaiB フォルダで Maven Wrapper を使います。

```
./mvnw spring-boot:run    # 起動（Windows PowerShell は .\mvnw.cmd）
./mvnw clean package      # ビルド
./mvnw test               # テスト
```

起動後は http://localhost:8080/equipments で一覧画面が開きます。

## 業務ルール

- 在庫が5個以下の備品は「要補充」
- 貸出で在庫を0未満にしない
- 画面の日付表示は yyyy/MM/dd に統一
- 存在しないIDはエラー画面でなく「見つかりません」表示

## 規約

- コメントは日本語、識別子は英語
- サービスはインターフェース + Impl パターン
- マジックナンバーは名前付き定数にする
- 詳細は docs/コーディング規約.md

## 禁止事項

- kadaiA/dummy_data.csv と kadaiB の data.sql の書き換え
- 実在する社名・個人情報・機密情報の入力
