← 一覧に戻る

自動シフト表・送迎表システム ── 要件定義/基本設計/詳細設計/工程 v0.1

対象: FDE養成研修(60分×12回)の共通題材2本の参照実装。 前提の正本は fde-curriculum-v4.1.md。本書はその実装計画である。 作成 2026-08-10 / 明日の運営会議での提示を目的とする。


0. 着手前に判明した事実(推測でなく実測)

# 事実 影響
0-1 この2本はカリキュラムで既に詳細に仕様が決まっている。前半6回=自動シフト表/後半6回=送迎表の自動システム。型は【入力表+ルールブック+プロンプト→たたき台→点検→仕上げ】 ゼロから設計しない。カリキュラムが要件定義書そのもの
0-2 教材一式(様式15〜22)は1つも実ファイルとして存在しない。カリキュラム内で参照されているだけ 本件の実質は「様式16〜22の実体を作る」こと
0-3 ~~カリキュラムの分布は再現できなかった。要訂正~~ ← この判断は誤りだった。2026-08-10 に撤回する(下記)
0-4 個人情報は入力しない設計が明文化されている(スタッフA〜F/利用者A〜F/架空地点) 実データを扱う設計は最初から検討対象外

【重要な訂正】0-3 の判断は誤りだった(2026-08-10)

当初「カリキュラムの所要時間分布(26×2・28×4・29×2・30×6・31×6・33×4)は再現できない、 よってカリキュラム側が要訂正」と書いた。これは誤りである。

原因: 所要時間表を対称(行きと帰りが同じ分数)と仮定して探索した。 実際の様式19(原典 L1744-1769)は7地点の非対称表であり、 コンビニ北→小学校東門=5分/小学校東門→コンビニ北=3分 という 一方通行の設定が1組だけ仕込まれている

検証: 原典の表をそのまま用いて全24順路を計算したところ、分布は {26:2, 28:4, 29:2, 30:6, 31:6, 33:4}原典の記載と完全に一致した。 合計時間がいちばん短いのは 小学校東門→コンビニ北→公園西口→スーパー南 の 26分

原典の設計のほうが優れている。 非対称の組があることで 「表は出発→到着の向きで引く」という技能が教えられる。 本書 §3.2 で作った対称5地点の町は、この教育的仕掛けを消してしまっていた。

したがって §3.2 の町は破棄し、原典 様式19 を正本とする。 波及して直すもの: ①ワークブック様式19 ②送迎ツールの初期データと自己テスト ③送迎ツールの所要時間表を非対称に対応させる(実際の道にも一方通行はあるため、 本番運用ツールとしても対称前提は誤り)④様式16の目印地点を原典の地点名に揃える。


1. 要件定義

1.1 このシステムは何のためにあるか

受講者が研修中に自分の手で作り上げる「型」の、講師側の参照実装である。 現場の本番運用システムではない。ここを取り違えると設計が全部ずれる。

1.2 いちばん大事な要件 ── 「自動」の意味

カリキュラムは 「AIが出した答えを信じて終わりにしない」 を中核の教育目標に置いている。 したがって本システムは 全自動で最適解を出す道具ではない

やること(自動化する) やらないこと(人間に残す)
入力の型を決める(表の形を固定する) 誰をどのシフトに入れるかの最終判断
AIのたたき台をルールに照らして機械点検する 「この人は今月しんどそう」という配慮
夜勤・土日の回数を数える(公平カウント) 不公平が出たときの調整方針
順路の所要時間を正しく合計する(検算) 実際の道路事情・下見
違反箇所を指摘する 違反を許容するかの判断

設計の芯: 自動化するのは「数える・照らす・検算する」。判断は人に残す。 これはカリキュラムの思想であり、同時に福祉現場で受け入れられる唯一の形でもある。

1.3 機能要件

共通 - F-1 個人情報を1文字も入力せずに完成すること(記号のみ) - F-2 インストール不要・ネット接続不要で動くこと(研修会場の環境に依存しない) - F-3 入力データが外部に送信されないこと(画面上で完結) - F-4 受講者がそのまま持ち帰れる形であること(1ファイル)

シフト表(前半6回) - F-5 スタッフA〜Fの勤務希望を入力できる(休み希望・勤務可能な区分) - F-6 職場ルールを箇条書きで持てる(ルールブック・見本7か条) - F-7 AIに渡すプロンプトを生成できる - F-8 AIが返したシフト表を貼り付けると、ルール違反を機械検出する - F-9 夜勤回数・土日出勤回数を数えて偏りを可視化する(公平カウント)

送迎表(後半6回) - F-10 利用者A〜F・車両1〜3・地点の一覧を持てる - F-11 送迎ルールブック(見本8か条)を持てる - F-12 AIが返した乗車割当表を貼り付けると、定員・添乗・時間の違反を検出する - F-13 順路の所要時間を所要時間表から正しく合計する(検算) - F-14 全順路を総当たりで計算し、AIの答えが本当に最短かを判定できる(講師用)

1.4 非機能要件

# 要件 理由
N-1 1ファイルのHTML。ダブルクリックで開く 会場PCに何も入れられない前提。ブース用デモで実績あり
N-2 外部通信ゼロ(fetch・CDN・フォント全て禁止) 個人情報が万一入っても外に出ない構造的担保
N-3 文字は14px以上 専門学校生の指摘(実測で本体アプリは11px以下が56件あった)を最初から回避
N-4 印刷してA4で配れること 現場は紙で回る。送迎表は車に持ち込む
N-5 絵文字を使わない 業務書類として配る前提

1.5 スコープ外(明示的にやらない)


2. 基本設計

2.1 全体構成 ── 3点セット × 2題材

【紙】入力表        …… 記号データを書き込む表(様式16・17 等)
【紙】ルールブック   …… 職場の決まりごとを箇条書きに(様式18 等)
【紙】プロンプト     …… AIへの頼み方(プロンプト集7〜10番)
        │  ①人がAIに貼る
        ▼
      生成AI(ChatGPT等) …… たたき台を返す
        │  ②人が答えを貼り戻す
        ▼
【ツール】点検・検算ツール(HTML 1ファイル)
        …… ルール違反の検出/公平カウント/順路の検算
        │
        ▼
      人が判断して仕上げる → 印刷して現場へ

なぜAIを内蔵しないのか: 受講者に「AIに頼む」体験そのものを持たせるため。 ツールがAIを呼んでしまうと、研修の中核である「頼み方」の訓練が消える。 またAPIキーの管理という、現場に渡せない負債が発生する。

2.2 ツールは2本、構造は同一

シフト点検ツール 送迎点検ツール
入力1 勤務希望表(スタッフA〜F × 日付) 利用者一覧・車両一覧
入力2 ルールブック(7か条) ルールブック(8か条)
入力3 AIが返したシフト表 AIが返した乗車割当表・順路
出力1 ルール違反の一覧 ルール違反の一覧
出力2 公平カウント(夜勤・土日) 順路の所要時間合計
出力3 全24順路の総当たり結果(AIの答えは何番目か)

同じ構造にすることで、前半で学んだ型が後半でそのまま効く(カリキュラムの「2周する」設計に一致)。

2.3 明日の会議で見せるもの(最小の説得セット)

  1. 送迎ツールで AIの答えが4分損していることを検算で暴くデモ(§3.2の罠)
  2. シフトツールで 「夜勤がスタッフCに偏っている」を数字で出すデモ
  3. 教材一式(様式16〜22)の実物が揃っていること

3. 詳細設計

3.1 シフト点検ツール

入力データ形式(貼り付け想定・タブ区切り)

        8/1(木)  8/2(金)  8/3(土)  8/4(日) ...
スタッフA  日勤     夜勤     明け     休み
スタッフB  休み     日勤     日勤     夜勤

勤務区分: 日勤 夜勤 明け 休み の4種(見本)。

ルールブック 見本7か条(カリキュラム記載のものを実装) | # | ルール | 機械判定 | |---|---|---| | 1 | 夜勤の翌日は必ず「明け」 | 可 | | 2 | 「明け」の翌日は「休み」 | 可 | | 3 | 連続勤務は5日まで | 可 | | 4 | 各日、日勤は2名以上 | 可 | | 5 | 各日、夜勤は1名 | 可 | | 6 | 希望休は必ず反映する | 可 | | 7 | 土日の休みは公平に | 数えるのみ・判断は人 |

出力: 違反した行を赤で列挙(何日の誰が、どのルールに)+公平カウント表。

7条だけ「判定しない・数えるだけ」にしているのが設計の要点。 公平は数字で見えるが、何が公平かは職場が決める。

3.2 【破棄】送迎点検ツール ── 独自生成したあおぞら町

この節の町は使わない。 上記の訂正のとおり、原典 様式19(7地点・非対称)が正本である。 以下は誤った判断にもとづく記録として残す(同じ間違いを繰り返さないため)。

地点: 事業所/公民館前/コンビニ北/郵便局前/駅西口

公民館前 コンビニ北 郵便局前 駅西口
事業所 8 3 8 3
公民館前 10 3 12
コンビニ北 12 9
郵便局前 4

(単位=分・対称。事業所を出て4地点を回り事業所へ戻る=全24順路)

機械計算した全24順路の分布 | 合計 | 23分 | 27分 | 33分 | 35分 | 37分 | 39分 | 45分 | 49分 | |---|---|---|---|---|---|---|---|---| | 順路数 | 2 | 2 | 4 | 4 | 4 | 4 | 2 | 2 |

教材としての仕掛け(ここが本設計の肝)

貪欲法(=拠点から近い順に回る。AIが最も出しやすい答え)は コンビニ北 → 駅西口 → 郵便局前 → 公民館前 = 27分最短より4分長い。

つまり AIが自信たっぷりに出す答えが、実は4分損しているという状況を、 受講者が所要時間表の足し算だけで発見できる。 「AIの提案は良いたたき台だが、最適の保証はない」を体験で理解させる装置になっている。 この4分は、教材として意図的に作り込んだ差である(差が小さいと学びにならないため3分以上を要件にした)。

ルールブック 見本8か条(案・第7回の聞き取り演習で受講者が導出する前提のため、講師用正解として保持) | # | ルール | 機械判定 | |---|---|---| | 1 | 1台の定員は4名まで | 可 | | 2 | 車いす利用者は車両1のみ | 可 | | 3 | 運転はP・Qのみ | 可 | | 4 | 添乗が必要な利用者には R または S を付ける | 可 | | 5 | 1便あたり所要45分以内 | 可(§3.2の表で計算) | | 6 | 同乗の相性(利用者CとEは同便にしない) | 可 | | 7 | 降車時の所在確認サインは人が書く | 判定しない・欄を出すのみ | | 8 | 実名・実住所は入力しない | ツール側で入力欄を設けない |

出力: 違反一覧/便別の所要時間合計/AIの順路が24通り中で何番目に短いか

3.3 教材一式(様式)の対応

様式 内容 本設計での実体
16 利用者一覧表(利用者A〜F) 送迎ツール内の初期データ+印刷用A4
17 車両一覧表(車両1〜3) 同上
18 送迎ルールブック 見本8か条 §3.2の表
19 あおぞら町マップ・所要時間表 §3.2で生成済み
20 ルート検算ワークシート(+講師用正解表) 送迎ツールの検算画面+印刷
21 意地悪テスト記録(送迎版) 印刷用A4
22 使い方メモ(点検10項目) 印刷用A4

4. 工程

4.1 明日の運営会議まで(本日中)

やること 規模 完了の証拠
1 送迎点検ツール(HTML1枚)を作る 実ブラウザで検算が動き、貪欲の27分と最短23分を出し分ける
2 シフト点検ツール(HTML1枚)を作る 7か条の違反検出と公平カウントが動く
3 様式19(町マップ・所要時間表)を印刷用に A4で読める
4 会議用の説明1枚 何を見せるかの順番が書いてある

4-1 を先に作る。明日いちばん効くのは「AIの誤りを検算で暴く」デモであり、 これが動けば会議の目的は達せられる。シフト側が間に合わなくても致命傷にならない。

4.2 会議後(研修開講まで)

段階 やること 備考
A 様式16・17・18・20・21・22 の実体作成 印刷用A4一式
B プロンプト集7〜10番の実機検証 カリキュラム§14で未実施と明記されている
C カリキュラムの所要時間分布の記述を訂正 §0-3。同じPRで直す(Doc-as-Code)
D 認定リハーサルでの実測読み 第11回の手検算18分は地点数に強く依存すると自ら書いている

4.3 リスクと打ち手

リスク 中身 打ち手
R1 スコープ誤認 「本番運用システム」と思われると、個人情報・法規制の話が噴出して会議が壊れる 冒頭で「これは研修の教材で、記号だけで動く」と明言する
R2 全自動への期待 「ボタン1つで完成」を期待されると、カリキュラムの思想と衝突する §1.2の表(自動化する/人に残す)をそのまま見せる
R3 検算18分に収まらない 地点数を増やすと手計算が破綻する 4地点で固定。増やさない
R4 教材未完成の露呈 様式が1つも無い状態が知られると信頼を損なう 隠さず「今日この2本を作った、残りは工程表のとおり」と出す

5. 判断を仰ぎたいこと

  1. この2本は「研修の教材」で合っているか。 自社の本番運用システムを作る話であれば、 個人情報の扱い・規程整備が前提になり、設計も工程も全く別物になる。
  2. 明日は動くツールを見せるか、設計だけ見せるか。 ツールを優先すると§4.1の順で進める。
  3. カリキュラムの所要時間分布の記述(§0-3)は訂正してよいか。

【v0.2 追記】本番運用前提への変更(2026-08-10 吉本さん指示)

指示: 「本番運用システムを作る前提。受講生にも本番運用できるのを作ってもらう。 おもちゃ作っても意味ない」

この指示により v0.1 の前提(研修用の記号だけのおもちゃ)は破棄する。以下が新しい正本。

A. 何が変わったか

論点 v0.1(教材前提) v0.2(本番運用前提)
扱うデータ 記号のみ 実名・実住所・実勤務
保存 不要 必須(消えたら業務が止まる)
印刷 あれば良い 必須(現場は紙で回る。車に持ち込む)
個人情報 発生しない 要配慮個人情報に隣接する(障害福祉サービス利用の事実)
失敗の重さ 演習が滞る 送迎事故・労務トラブル・個人情報漏えい

B. 個人情報とAIの分離(本設計の中核)

送迎表は氏名・住所・障害の状況が集まる、事業所で最も機密性の高いデータである。 一方この仕組みは途中でAIに依頼する。実データをそのままAIに送れば、外部事業者へ 要配慮個人情報を渡すことになる。

カリキュラムはこれを「記号で作り、実名は紙の対応表で人が置き換える」と解決していた。 思想は本番でも正しい。ただし紙の運用は現場で必ず崩れる。よって変換をツールが自動で行う

段階 扱うデータ 所在
① 入力 実名・実住所 その端末のブラウザ内のみ(外に出ない)
② AIへ依頼 記号へ自動変換(利用者A〜) AIには記号しか渡らない
③ AIの答え 記号のまま
④ 印刷 実名へ自動で戻す 現場で使える表になる

構造的な担保: ツールは外部通信を一切持たない(fetch/CDN/外部フォント等ゼロ)。 実名を入れても物理的に外へ出る経路が存在しない ── これが「本番で使ってよい」根拠である。

カリキュラムとの差分: 実名⇔記号の置き換えを「紙」から「ツールの自動変換」へ変更した。 漏えい経路は減るが、カリキュラム本文の記述と食い違うため同じ PR で改訂すること。 なお研修の演習自体は引き続き記号データで行う(実データ演習は各社の規程整備後)。

C. 本番運用で新たに必須になった要件

# 要件 理由
P-1 localStorage 保存+JSONの書き出し/読み込み 消えたら業務が止まる。ブラウザ変更・履歴削除で消えることを画面で警告する
P-2 壊れた保存データで落ちない 業務停止を起こさない
P-3 印刷A4・降車時の所在確認サイン欄 送迎の事故防止の要。ツールでなく人の仕事として欄を残す
P-4 印刷物に「個人情報を含む・取扱注意」 紙の管理責任を明示する
P-5 勤務区分・ルールを画面で編集可能 事業所ごとに決まりが違う。固定するとどこでも使えない
P-6 総当たりの限界を正直に出す 地点が増えると階乗で破綻する。嘘の「最適」を出さない

D. 事業所側で必要になる整備(ツールでは解決できない)

本番運用の前に、事業所側で以下が要る。ツールを渡すだけでは不十分であり、 受講生に配る際も同じ説明を添えること。

  1. 個人情報の取扱規程(保存場所・持ち出し・削除の手順)
  2. 端末の管理(共有PCなら別アカウント。ブラウザに他人が触れない状態)
  3. バックアップ運用(JSON書き出しを定期的に。どこに置くかを決める)
  4. 紙の管理(印刷した送迎表の保管・廃棄)
  5. 利用者・職員への説明(何をどこに保存するか)

E. 工程(v0.2)

段階 内容 状況
1 送迎ツール・シフトツールの実装(本番仕様) 本日実施中
2 個人情報漏えい経路の検品(外部通信0・AI文面への実名混入なし) 実装と対で実施
3 明日の運営会議で提示
4 カリキュラム本文の改訂(記号運用の記述・所要時間分布の数値) 会議後
5 事業所向け「導入前チェックリスト」(D項)の作成 会議後・配布の必須添付

F. 明日の会議で必ず伝えるべきこと

  1. 実名を入れても外に出ない構造であること(通信を持たない)
  2. AIには記号しか渡らないこと(変換は自動)
  3. D項の整備が終わるまで実データを入れないこと ── ここを飛ばすと事故になる
  4. 総当たりには限界があり、「最短保証」とは言わないこと

v0.1→v0.2 / 2026-08-10 / 正本はカリキュラム v4.1。本書は実装計画であり、カリキュラムと矛盾したらカリキュラムが優先する。