店長エージェント MVP 要件定義書

REQ-TENCHO-MVP-001 作成日: 2026-04-02 ステータス: ドラフト AI経営共創パートナーズ株式会社

1. プロジェクト概要

1.1 背景

パチンコホールの店長は「数値管理」「シフト作成」「報告書作成」等の膨大な事務作業に追われ、本来注力すべき接客サービス向上や戦略立案に時間を割けていない。本プロジェクトでは、キクヤ向けに開発した「SETTING OPTIMIZER」をベースに、パチンコホール業界向けSaaSとして横展開する。

1.2 目的

1.3 MVPスコープ

MVP(Basicプラン相当)として以下の4機能を実装する。

#機能概要優先度
F-01計数管理売上分析、台設定最適化(SETTING OPTIMIZER移植)必須
F-02労務管理アルバイトのシフト自動作成・調整必須
F-03報告書作成店舗フォーマットに合わせた日次/週次報告書の自動生成必須
F-04効果測定イベント・ライター来店企画のROI自動算出推奨

1.4 MVPに含めないもの(Phase 2以降)


2. システムアーキテクチャ

2.1 全体構成

┌─────────────┐     ┌──────────────────────┐     ┌──────────────┐
│  Frontend   │────▶│  Backend API         │────▶│  Database    │
│  React/TS   │◀────│  FastAPI (Python)    │◀────│  PostgreSQL  │
│  TailwindCSS│     │                      │     │              │
└─────────────┘     │  ┌────────────────┐  │     └──────────────┘
                    │  │ Claude API     │  │
                    │  │ (AI Analyzer)  │  │
                    │  └────────────────┘  │
                    └──────────────────────┘

2.2 既存資産の再利用方針(キクヤ SETTING OPTIMIZER)

Backend(Python / FastAPI)

モジュール役割方針
core/scoring.py台ごとの5指標スコアリングそのまま移植
core/profit_adjuster.py粗利目標ベースの設定最適化そのまま移植
core/application/smart_optimizer.py複数候補生成そのまま移植
core/application/optimization.py実行結果オブジェクトそのまま移植
core/ai_analyzer.pyClaude API AI分析・Q&Aそのまま移植
core/csv_loader.pyホルコンCSV読み込みそのまま移植
core/config_loader.py設定ファイル読み込みテナント別に拡張
core/models.pyデータモデルテナント対応に拡張
core/auth.pyJWT認証マルチテナント対応
core/database.pyDB接続マルチテナント対応
app/routers/*APIエンドポイントテナント分離追加

Frontend(React 19 / TypeScript / Vite / TailwindCSS 4)

モジュール役割方針
components/optimizer/*最適化UIF-01として移植
components/layout/*ナビ・認証ガードSaaS用に拡張
pages/OptimizerPage.tsx設定最適化ページ移植
pages/LoginPage.tsxログインテナント選択追加
store/*Zustand状態管理移植
api/*APIクライアント移植

2.3 技術スタック

レイヤー技術バージョン
FrontendReact + TypeScript + Vite + TailwindCSS19.x / 5.9 / 8.x / 4.x
FrontendZustand + TanStack Table5.x / 8.x
BackendPython + FastAPI3.14 / 0.135.x
BackendSQLAlchemy + Alembic2.0.x / 1.18.x
AIClaude Sonnet 4claude-sonnet-4-*
DBPostgreSQL16.x

3. 機能要件

3.1 F-01: 計数管理(SETTING OPTIMIZER移植)

キクヤ向けに開発済みの台設定最適化システムをそのまま移植。ホールコンピュータからエクスポートしたCSVと粗利目標を入力し、AIが翌日の台別推奨設定を提案する。

入力

データ形式説明
日次実績CSVCSVホルコンから出力。1行=1台x1日(過去30日分)
粗利目標数値(円)店舗全体の翌日粗利目標

CSVカラム: date, machine_no, model_name, in_medals, out_medals, diff_medals, sales, bonus_count, utilization

処理フロー

  1. データ整形: CSVの列マッピング・正規化(csv_loader.py)
  2. スコアリング: 台ごとに5指標(平均稼働率30%・トレンド25%・機種人気度15%・台個別偏差15%・ボーナス率15%)を算出
  3. 粗利最適化: 全台設定1→低稼働台から設定引上げ→粗利目標に収束
  4. スマート最適化: 複数候補(バランス/見せ場/テコ入れ/安定運用)から最適案選定
  5. AI分析: Claude APIで自然言語解説・対話Q&A

出力

項目説明
台別推奨設定一覧台番号、機種名、推奨設定(1-6)、信頼度(A/B/C)、想定粗利、稼働率、トレンド
KPIサマリー総台数、想定粗利合計、平均設定、設定配分グラフ
機種別サマリー機種ごとの平均設定・想定粗利
AI分析レポートトレンド分析、設定根拠解説、対話型Q&A
CSV出力設定一覧CSVダウンロード

画面構成

┌─────────────────────────────────────────────────┐ │ ヘッダー: [テナント名] 設定オプティマイザ [日付] │ ├─────────────────────────────────────────────────┤ │ コントロール行: [CSV▼] 粗利目標:[¥___] [算出] │ ├─────────────────────────────────────────────────┤ │ KPIストリップ: 総台数 | 想定粗利 | 平均設定 | 配分 │ ├─────────────────────────────────────────────────┤ │ 台別設定テーブル(画面の60%以上) │ │ 台番号 | 機種名 | 設定[バッジ] | 粗利 | 稼働率 │ ├─────────────────────────────────────────────────┤ │ ▶ 機種別サマリー(折りたたみ) │ │ ▶ AI分析レポート(折りたたみ) │ ├─────────────────────────────────────────────────┤ │ [CSV出力] │ └─────────────────────────────────────────────────┘

APIエンドポイント(既存)

MethodPath説明
POST/api/optimization/run最適化実行
POST/api/optimization/analyzeAI分析実行
POST/api/data-import/uploadCSVアップロード
GET/api/decisions決定履歴一覧
POST/api/decisions決定保存

3.2 F-02: 労務管理(シフト作成)

アルバイトスタッフのシフトを自動作成・調整。希望シフト・スキル・法定労働時間を考慮してAIが最適なシフト表を提案する。

入力

データ形式説明
スタッフマスタDB登録名前、雇用形態、時給、スキル、契約時間上限
希望シフトWeb入力スタッフ本人が希望日時を登録
営業カレンダーDB登録営業日、イベント日、必要人数パターン

制約条件

出力

項目説明
シフト表日別xスタッフのマトリクス表示
人件費サマリー日別/週別の人件費合計・予算比較
未充足アラート人数不足の時間帯を警告
PDF/Excel出力印刷用シフト表

APIエンドポイント(新規)

MethodPath説明
GET/api/shifts/{year}/{month}月次シフト取得
POST/api/shifts/generateシフト自動生成
PUT/api/shifts/{shift_id}シフト手動修正
GET/POST/api/staffスタッフ一覧/登録
POST/api/staff/{id}/availability希望シフト登録
GET/api/shifts/{year}/{month}/exportPDF/Excel出力

DBテーブル(新規)

-- スタッフマスタ
CREATE TABLE staff (
    id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL REFERENCES tenants(id),
    name VARCHAR(100) NOT NULL,
    employment_type VARCHAR(20) NOT NULL,
    hourly_rate INTEGER,
    max_weekly_hours INTEGER DEFAULT 40,
    skills JSONB DEFAULT '[]',
    is_active BOOLEAN DEFAULT true,
    created_at TIMESTAMPTZ DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW()
);

-- 希望シフト
CREATE TABLE staff_availability (
    id UUID PRIMARY KEY,
    staff_id UUID NOT NULL REFERENCES staff(id),
    date DATE NOT NULL,
    available_from TIME,
    available_to TIME,
    preference VARCHAR(20) DEFAULT 'available',
    created_at TIMESTAMPTZ DEFAULT NOW()
);

-- シフト
CREATE TABLE shifts (
    id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL REFERENCES tenants(id),
    staff_id UUID NOT NULL REFERENCES staff(id),
    date DATE NOT NULL,
    shift_type VARCHAR(20) NOT NULL,
    start_time TIME NOT NULL,
    end_time TIME NOT NULL,
    break_minutes INTEGER DEFAULT 60,
    status VARCHAR(20) DEFAULT 'draft',
    created_at TIMESTAMPTZ DEFAULT NOW()
);

-- 営業カレンダー
CREATE TABLE business_calendar (
    id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL REFERENCES tenants(id),
    date DATE NOT NULL,
    day_type VARCHAR(20) NOT NULL,
    required_staff JSONB,
    note TEXT
);

3.3 F-03: 報告書作成

日次・週次の営業報告書を、計数データ(F-01)とシフト実績(F-02)から自動生成。テンプレート対応。

処理ロジック

  1. テンプレートに定義された項目を各データソースから自動収集
  2. Claude APIで自然言語のサマリー文を生成
  3. テンプレートに流し込んで報告書を生成

APIエンドポイント(新規)

MethodPath説明
POST/api/reports/generate報告書自動生成
GET/api/reports/{id}報告書詳細
GET/api/reports/{id}/exportPDF/Excel出力
GET/POST/api/report-templatesテンプレート管理

3.4 F-04: 効果測定(ROI自動算出)

イベント・ライター来店企画等の施策のROIを自動算出。施策前後の売上比較で投資効果を可視化。

処理ロジック

  1. 施策実施日の売上を取得
  2. 比較基準(直近4週間の同曜日平均)を算出
  3. 増分売上 = 施策日売上 - 比較基準
  4. ROI = (増分売上 - 施策費用) / 施策費用 x 100
  5. Claude APIで施策の評価コメントを生成

APIエンドポイント(新規)

MethodPath説明
GET/POST/api/campaigns施策一覧/登録
GET/api/campaigns/{id}/roiROI算出結果

4. マルチテナント要件

論理分離(共有DB + tenant_id)を採用。MVPフェーズでは店舗数が限定的(〜10店舗)のため、インフラコスト最小化を優先。

CREATE TABLE tenants (
    id UUID PRIMARY KEY,
    name VARCHAR(200) NOT NULL,
    slug VARCHAR(50) UNIQUE NOT NULL,
    plan VARCHAR(20) DEFAULT 'basic',
    config JSONB DEFAULT '{}',
    is_active BOOLEAN DEFAULT true,
    created_at TIMESTAMPTZ DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW()
);

CREATE TABLE users (
    id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL REFERENCES tenants(id),
    email VARCHAR(255) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    name VARCHAR(100) NOT NULL,
    role VARCHAR(20) DEFAULT 'user',
    is_active BOOLEAN DEFAULT true,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

認証・認可: JWT認証(既存拡張)、トークンにtenant_id含有、全APIでtenant_id分離強制。ロール: admin / manager / user


5. 非機能要件

5.1 性能要件

項目要件
最適化実行500台のデータに対し10秒以内
AI分析応答30秒以内
シフト生成30名・1ヶ月分を30秒以内
報告書生成10秒以内
同時接続50ユーザー

5.2 可用性・セキュリティ

項目要件
稼働率99.5%
バックアップ日次自動
通信HTTPS必須
認証JWT + bcrypt
データ分離tenant_idフィルタ強制
APIキー管理サーバーサイドのみ

5.3 インフラ構成(推奨)

構成要素推奨月額目安
アプリサーバーAWS Lightsail or Railway3,000〜10,000円
データベースSupabase or Railway PostgreSQL0〜3,000円
ファイルストレージS3 or R2〜500円
Claude APISonnet 4約1,000円/店舗/月
ドメイン/SSLCloudflare無料
合計(5店舗)約20,000円/月

6. API原価試算

~10回
APIコール/日/店舗
250回
APIコール/月/店舗
$8.25
API費/月/店舗
約1,240円
JPY換算(@150円)
操作回数/日APIコール/日
設定算出(F-01)1-2回1回
AI分析・Q&A(F-01)3-5回5-8回
報告書AI生成(F-03)1回1-2回
効果測定AI評価(F-04)0-1回0-1回

7. 画面一覧

#画面名機能認可
S-01ログインテナント選択+ログイン全ユーザー
S-02ダッシュボード本日のKPIサマリーmanager以上
S-03計数管理F-01(設定オプティマイザ)manager以上
S-04シフト管理F-02manager以上
S-05シフト希望入力F-02(スタッフ用)全ユーザー
S-06報告書管理F-03manager以上
S-07効果測定F-04manager以上
S-08スタッフ管理マスタCRUDadmin
S-09テナント設定CSV列マッピング等admin

8. データモデル概要

tenants ──┬── users
          ├── daily_data (日次実績CSV)
          ├── optimization_runs (最適化実行履歴)
          ├── decisions (設定決定履歴)
          ├── staff ──── staff_availability (希望シフト)
          ├── shifts (確定シフト)
          ├── business_calendar (営業カレンダー)
          ├── reports (報告書)
          ├── report_templates (報告書テンプレート)
          ├── campaigns (施策)
          └── campaign_results (ROI結果)

9. 開発フェーズ

Phase 1(MVP): 2ヶ月

W1-2
マルチテナント基盤構築(DB設計、認証拡張、テナント管理)
W3-4
F-01移植(SETTING OPTIMIZER → SaaS化)
W5-6
F-02実装(シフト管理)
W7
F-03実装(報告書作成)
W8
F-04実装(効果測定)+ 結合テスト + デプロイ

Phase 2(Proプラン): 1ヶ月

Phase 3(Business Ownerプラン): 1ヶ月


10. 受入基準

10.1 機能テスト

#テスト項目合格基準
T-01CSV取込→最適化→結果表示500台30日分のCSVで正常に設定一覧を出力
T-02AI分析・Q&AClaude APIにリクエストし自然言語で回答が返る
T-03シフト自動生成30名1ヶ月分が法定制約を満たして生成
T-04報告書生成テンプレートに沿った報告書がPDF出力
T-05ROI算出施策登録→ROIが正しく計算
T-06テナント分離テナントAのデータがテナントBから参照不可
T-07認証・認可role別アクセス制御が機能

10.2 非機能テスト

#テスト項目合格基準
T-08負荷テスト50同時ユーザーで応答時間が要件内
T-09セキュリティSQLi, XSS, CSRF対策の確認

11. 納品物

#成果物形式
D-01ソースコード一式GitHubリポジトリ
D-02DB設計書(ER図)Draw.io or Mermaid
D-03API仕様書OpenAPI (Swagger)
D-04デプロイ手順書Markdown
D-05運用マニュアルMarkdown
D-06テスト結果報告書Markdown

12. 前提条件・制約

#項目内容
C-01既存コードキクヤのSETTING OPTIMIZERのコードベースを提供
C-02Claude APIAPIキーは当社提供。コスト負担は当社
C-03ドメインサブドメイン(例: app.tencho-agent.jp)を当社が手配
C-04デザインキクヤ版のUIデザイン仕様に準拠。新規デザイン不要
C-05テストデータキクヤの匿名化サンプルデータを提供

付録A: 用語集

用語説明
ホルコンホールコンピュータ。パチンコ店の台データを集約管理するシステム
計数パチンコ業界用語。売上・稼働率・設定等の数値管理全般
設定パチスロ台の出玉率を決める1〜6の段階。6が最も出やすい
機械割設定ごとの理論上の出玉率(%)
パチンコ台が並ぶ列の呼称
IN枚数/OUT枚数投入メダル数/払出メダル数
差枚数IN - OUT。ホール側の利益に相当