docs: CLAUDE.md追加

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Akira
2026-02-21 16:15:10 +09:00
parent 76db14cf10
commit 2d00dd6beb

94
CLAUDE.md Normal file
View File

@@ -0,0 +1,94 @@
# Windmill Workflow プロジェクト
白皇集落営農組合 統合システム向けの Windmill ワークフロー管理リポジトリ。
## 環境
| 項目 | 値 |
|------|-----|
| Windmillサーバー | https://windmill.keinafarm.net |
| ワークスペース | `admins` |
| APIトークン | `wm-api.sh` に設定済み |
| Gitリモート | https://gitea.keinafarm.net/akira/windmill_workflow.git |
## 重要な制約
- **`wmill` CLIは使用不可**CE版のグローバルAPI認証制限`wm-api.sh` または curl で直接REST APIを叩く
- **フローの PUT更新は 405**Windmill CE版の制限→ DELETE してから POST で再作成する
- **`wmill.get_state()` はインラインフロースクリプトで永続化されない**→ 状態管理は必ず `wmill.get_variable()` / `set_variable()` を使う
- **`python3` コマンドは Windows環境で失敗する**→ curl の出力は grep等で直接処理する
## ディレクトリ構成
```
windmill_workflow/
├── flows/ # フロー定義JSON
│ ├── system_heartbeat.flow.json # Windmill自己診断フロー
│ └── shiraou_notification.flow.json # 白皇集落 変更通知フロー
├── docs/
│ └── shiraou/ # 白皇集落営農組合関連ドキュメント
│ ├── 19_windmill_通知ワークフロー連携仕様.md # API仕様書
│ └── 20_マスタードキュメント_Windmill通知ワークフロー編.md # マスタードキュメント
├── .agent/workflows/ # エージェント作業手順
│ ├── windmill-push.md # サーバーへのpush手順
│ ├── windmill-pull.md # サーバーからのpull手順
│ └── windmill-new-script.md # 新規スクリプト作成手順
├── wm-api.sh # Windmill REST APIヘルパー
└── wmill.yaml # wmill設定defaultTs: bun
```
## 登録済みワークフロー
| パス | 概要 | スケジュール |
|------|------|-------------|
| `f/app_custom/system_heartbeat` | Windmill自己診断 | なし(手動) |
| `f/shiraou/shiraou_notification` | 白皇集落営農 変更通知 | 5分毎JST |
| `u/antigravity/git_sync` | Git同期 | 30分毎 |
## wm-api.sh コマンド一覧
```bash
./wm-api.sh version # サーバーバージョン確認
./wm-api.sh flows # フロー一覧
./wm-api.sh schedules # スケジュール一覧
./wm-api.sh get-flow <path> # フロー詳細取得
./wm-api.sh create-flow <json-file> # フロー作成
./wm-api.sh create-schedule <json-file> # スケジュール作成
./wm-api.sh run-flow <path> # フロー手動実行
./wm-api.sh job-status <job-id> # ジョブ状態確認
```
## フローのデプロイ手順
```bash
# 1. flows/*.flow.json を編集
# 2. 削除して再作成PUTは405のため
curl -sk -X DELETE \
-H "Authorization: Bearer qLJ3VPZ61kTDiIwaUPUu1dXszGrsN1Dh" \
"https://windmill.keinafarm.net/api/w/admins/flows/delete/<path>"
curl -sk -X POST \
-H "Authorization: Bearer qLJ3VPZ61kTDiIwaUPUu1dXszGrsN1Dh" \
-H "Content-Type: application/json" \
-d @flows/<file>.flow.json \
"https://windmill.keinafarm.net/api/w/admins/flows/create"
# 3. コミット&プッシュ
git add flows/<file>.flow.json
git commit -m "..."
git push origin main
```
## Windmill Variables
| 変数パス | Secret | 説明 |
|---------|--------|------|
| `u/admin/NOTIFICATION_API_KEY` | ✅ | shiraou APIキー |
| `u/admin/LINE_CHANNEL_ACCESS_TOKEN` | ✅ | LINE Messaging APIトークン |
| `u/admin/LINE_TO` | ✅ | LINE通知先IDユーザーまたはグループ |
| `u/admin/SHIRAOU_LAST_CHECKED_AT` | ❌ | 前回確認時刻(ワークフローが自動更新) |
## マスタードキュメント
- [白皇集落 Windmill通知ワークフロー](docs/shiraou/20_マスタードキュメント_Windmill通知ワークフロー編.md)