name: cleaning-manual-generator description: 客室写真から清掃マニュアルを生成します
清掃マニュアル自動生成スキル
宿泊施設の室内完成画像から、清掃マニュアルを構造化JSONで自動生成します。
使い方
/cleaning-manual-generator <画像ディレクトリパス> [施設名] [部屋タイプ]
引数:
<画像ディレクトリパス>(必須): 室内完成画像が格納されたディレクトリの絶対パス[施設名](任意): 宿泊施設名(デフォルト: ディレクトリ名から推定)[部屋タイプ](任意): 部屋タイプ(デフォルト: 画像から自動判定)
実行手順
Step 1: 画像の読み込みと分析
- 指定されたディレクトリ内の画像ファイル(jpg, jpeg, png, webp)を Glob ツールで一覧取得する
- 各画像を Read ツールで読み込み、以下を分析する:
- 撮影されているエリア(寝室、バスルーム、キッチン、リビング、玄関、トイレ、バルコニー等)
- 室内の備品・設備(ベッド、テーブル、テレビ、エアコン、冷蔵庫等)
- 清掃が必要なポイント(床材、窓、鏡、水回り等)
- 品質基準となる完成状態の特徴(配置、整頓具合、清潔さの基準)
Step 2: エリア分類
画像を以下のエリアカテゴリに分類する(画像内容から自動判定):
| エリアカテゴリ | 判定基準 |
|---|---|
| 寝室 | ベッド、布団、枕、ナイトテーブル |
| バスルーム | 浴槽、シャワー、洗面台、鏡 |
| トイレ | 便器、トイレットペーパー |
| キッチン | シンク、コンロ、冷蔵庫、調理台 |
| リビング・ダイニング | ソファ、テーブル、テレビ、椅子 |
| 玄関・廊下 | 玄関ドア、靴箱、傘立て |
| バルコニー・テラス | 手すり、物干し、外部家具 |
| 洗面所・脱衣所 | 洗面台、洗濯機、脱衣かご |
| 和室 | 畳、押し入れ、障子、床の間 |
| クローゼット・収納 | ハンガー、棚、引き出し |
Step 3: 清掃マニュアル生成
各エリアについて、宿泊施設清掃の専門知識に基づき以下を生成する:
清掃手順の生成ルール
- 順序: 上から下、奥から手前の原則に従う
- 具体性: 「きれいにする」ではなく「乾いたマイクロファイバークロスで拭き上げる」のように具体的に記述
- チェックポイント: 各手順の完了基準を明確に定義する
- 所要時間: 1人作業を前提に現実的な時間を見積もる(分単位)
エリア別の清掃観点
寝室:
- ベッドメイキング(シーツ交換、枕配置、掛け布団の整え方)
- ナイトテーブル・ヘッドボードの清拭
- 照明器具のほこり除去
- カーテンの整え方
- 床面の清掃(掃除機→拭き掃除)
- エアコンフィルターの確認
バスルーム:
- 浴槽の洗浄・消毒
- シャワーヘッド・ホースの水垢除去
- 鏡の拭き上げ(水垢・曇り除去)
- 排水口の清掃・消毒
- タオル類の配置
- アメニティの補充・配置
トイレ:
- 便器内外の洗浄・消毒
- 床面の消毒清掃
- トイレットペーパーの補充・三角折り
- 換気扇の確認
キッチン:
- シンクの洗浄・水垢除去
- コンロ周りの油汚れ清掃
- 冷蔵庫内外の清拭
- 調理器具・食器の確認
- ゴミ箱の処理・袋交換
リビング・ダイニング:
- テーブル・椅子の清拭
- ソファのクッション整え
- テレビ・リモコンの消毒清拭
- 窓ガラスの拭き上げ
- 床面の清掃
玄関・廊下:
- 靴箱内の清掃
- 玄関マットの交換・清掃
- ドアノブの消毒
- 照明スイッチの消毒清拭
和室:
- 畳の掃除機がけ(目に沿って)
- 障子の汚れ確認
- 押し入れ内の換気・清掃
- 座卓・座布団の配置
Step 4: JSON出力
以下の仕様に準拠した構造化JSONを生成する。
{
"property_name": "施設名",
"room_type": "部屋タイプ",
"generated_at": "ISO 8601形式の日時",
"areas": [
{
"area_name": "エリア名",
"reference_images": ["対応する画像ファイル名の配列"],
"cleaning_steps": [
{
"order": 1,
"task": "作業名(短く明確に)",
"description": "具体的な作業内容と方法",
"checkpoint": "完了基準(目視確認できる基準)",
"estimated_minutes": 5
}
],
"quality_standards": [
"画像から読み取れる品質基準(完成状態の特徴)"
]
}
],
"supplies_needed": ["必要な備品・消耗品のリスト"],
"total_estimated_minutes": 45
}
JSON出力ルール
property_name: 引数で指定された施設名、未指定の場合はディレクトリ名から推定room_type: 引数で指定された部屋タイプ、未指定の場合は画像から自動判定generated_at: 実行時のISO 8601形式日時(タイムゾーン: +09:00)areas: 画像から検出されたエリアごとに生成。画像がないエリアは含めないreference_images: そのエリアに対応する画像のファイル名(パスではなくファイル名のみ)cleaning_steps:orderは1始まりの連番。エリア内で上から下・奥から手前の順estimated_minutes: 各ステップは整数値(分単位)quality_standards: 画像から読み取れる完成状態の具体的な基準supplies_needed: 全エリアで必要な備品を重複なくリスト化total_estimated_minutes: 全ステップのestimated_minutesの合計
Step 5: 結果の出力
- 生成したJSONを画像ディレクトリと同階層に
cleaning_manual.jsonとして Write ツールで保存する - 生成結果のサマリーをユーザーに表示する:
- 検出したエリア数と名前
- 総清掃ステップ数
- 推定所要時間
- 必要備品数
- 出力ファイルパス
API / Web UI 経由での使用方法
Claude Code を使わずにブラウザや curl から清掃マニュアルを生成することもできます。
Web UI
ブラウザで http://localhost:3000/cleaning_manuals/new にアクセスし、画像をドラッグ&ドロップして生成できます。
- 一覧:
http://localhost:3000/cleaning_manuals?client_code=<クライアントコード> - 詳細:
http://localhost:3000/cleaning_manuals/:id
API(curl)
# マニュアル生成
curl -X POST http://localhost:3000/api/v1/cleaning_manuals/generate \
-F "client_code=<クライアントコード>" \
-F "property_name=施設名" \
-F "room_type=部屋タイプ" \
-F "images[]=@画像1.jpg" \
-F "images[]=@画像2.jpg"
# 一覧取得
curl "http://localhost:3000/api/v1/cleaning_manuals?client_code=<クライアントコード>"
# 詳細取得
curl "http://localhost:3000/api/v1/cleaning_manuals/:id?client_code=<クライアントコード>"