SPI模試と同じ形式で、公務員ライン(/komuin-webtest/)の中身を棚卸ししたものです。コンテンツ/出題の仕組み/供給システム/課題を、2026-07-23 時点の一次現物(本番URL実測・コード・データファイル)で確認しました。確認できなかったものは unknown と明記しています。
v1.1(2026-07-26 追加)=「§1 全体像」を新設し、その後の改修(配信のサーバ一本化・解説の恒久修正)を本番実測で反映しました。§2 以降は 7/23 時点の記録としてそのまま残していますので、§1 末尾の対比表で読み替えてください。
公務員模試も「①問題を作る」「②正本として版を固める」「③配る」の3層で構成されています。SPIラインと同じ製造基盤・同じ正本・同じ出題workerを共有し、試験種と分野の指定だけが違う、という関係です。この節の記載はすべて 2026-07-26 に本番URL・本番R2を叩いて実測したもので、§2 以降(2026-07-23 時点)より新しい状態を表します。差分は節末にまとめました。
exam_family = komuin)exam(試験種)や family=komuin の指定で公務員問題だけを返す。出題セットには署名トークン(set_token)が付き、採点はサーバ側。SpiMockTest 約56KB+questions-api 約10KB で、問題IDの同梱はゼロ(本番バンドルを取得して実測)。educare-cbt-ingest は外部提供API(キヨさん向け /v1/*)と同じworker上にありますが、フロントが叩くのは /ingest だけで別経路です。| 系統 | 実体 | いま何が起きているか(2026-07-26 実測) |
|---|---|---|
| (A) 出題worker | spi-questions.komuin-sukima.workers.dev | fact稼働中・公務員の唯一の出題元。api/exam/set を叩くと questions/meta/set_token が返り、問題オブジェクトのキーは stem・choices・figures・passage… のみで answer も explanation も含まれないことを確認。返る問題はすべて exam_family=komuin・bank_release_id=qb-r2-20260724d。 |
| (B) 自社フロント | educarelog.net/komuin-webtest/ | fact稼働中・一般公開。本番バンドル(ExamSetupController→questions-api)が (A) の api/exam/set/api/spi/questions/api/grade/finish を叩く実装であることを、配信中のJSを取得して確認。問題IDの同梱ゼロ。 |
| (C) 周辺 | educare-poc…/auth/lineeducare-cbt-ingest…/ingest | fact会員登録(LINEログイン)と受験ログ送信。問題データは通らない。 |
公務員ラインには4つのモードがあります。試験種別モード(8種から選ぶ・紙試験式)、科目別演習モード(分野と難易度を指定)、体験モード(登録なしで受けられる)、AI公務員試験モードです。試験種別と体験は api/exam/set、科目別演習は api/spi/questions を使います。
| 試験種(画面表示) | 制限時間 | 出題 | 単元重みの配分表 | 備考 |
|---|---|---|---|---|
| 国家一般職 | 40分 | 200 | gyosei にマップ | 出題実績(1,500問ぶん)から単元ごとの重みを算出した配分表に紐づいている |
| 地方上級 | 75分 | 200 | gyosei にマップ | |
| 特別区 | 40分 | 200 | gyosei にマップ | |
| 東京都Ⅰ類B | 45分 | 200 | gyosei にマップ | |
| 消防 | 45分 | 200 | keisho にマップ | 画面上の値 shobo はフロントが tokyo-fire-1 に変換して送る |
| 市役所 | 60分 | 200 | 未マップ | 科目ごとの配分(現代文1・判断推理2…)は存在し出題はできるが、単元レベルの重み配分表が無い。§7 の課題として残っている |
| 警察 | 50分 | 200 | 未マップ | |
| 警視庁 | 35分 | 200 | 未マップ |
※ 8種すべてについて実際に api/exam/set を叩き、全種が HTTP 200 で規定数を返すことと、meta.mapped_series の値を確認しました。「選択できるのに出題できない試験種」は現時点では存在しません。
以下の3点は、7月24〜25日の改修(Phase C = 配信のサーバ一本化/解説の番号非依存化)で状況が変わっています。§2 以降の本文は当時の記録としてそのまま残していますので、読み替えてください。
| §2 以降の記述(7/23時点) | 現在(7/26 実測) |
|---|---|
| 問題バンクはSPIと同一ファイルを共有し、SPI受験者の端末にも公務員2,377問が一緒にダウンロードされる | 解消。ブラウザへの同梱を全廃し、(A) 出題workerから都度取得する方式へ切替済み。公務員は正本リリース上も exam_family=komuin として独立して収載されている |
| 公務員として出題されるのは 2,377問 | 正本リリース qb-r2-20260724d 上は 2,209問。図から積み木の総数を一意に数えられない「積み木数え」40問を暫定で配信除外したほか、重複や旧世代分の除外がかかっている(除外の内訳は manifest に記録) |
| 選択できる6試験種のうち2つ(市役所・警察)には配分表が存在しない | 画面から選べるのは8試験種で、全種が出題可能(実測)。ただし市役所・警察・警視庁の3種は単元重みの配分表が未マップのまま(科目配分はある) |
※ このほか、第三者監査で見つかった解説の選択肢番号のずれ(答えは正しいが解説文中の「選択肢3」が別の並びを指す)は、番号参照そのものを廃して選択肢本文の引用に置き換える形で 7/25 に恒久修正済みです。公務員538問を変換し、版を出す前に機械照合するゲートを常設しました。
fact公務員模試は https://educarelog.net/komuin-webtest/(「公務員♾️オンライン模試」)で本番稼働中です。SPI体験模試(/spi-taiken/)とは別商品ですが、実装を共有しています。
| 要素 | 共有の状況 |
|---|---|
| 問題バンク | 同一ファイルを共有。1本のJSON(6,536問)にSPIと公務員の両方が入っており、分野タグで振り分けている。公務員専用の問題ファイルは存在しない |
| 出題エンジン | 同一コンポーネント。モードで分岐する |
| 出題の混在 | fact混ざらない。エンジンに排他フィルタが実装されており、「公務員モードは公務員問題のみ/SPIモードは公務員問題を除外」とコード上で明示されている |
| 配布のされ方 | 混ざる。同一JSファイルとして配信されるため、SPI受験者の端末にも公務員2,377問が一緒にダウンロードされる(§7-9) |
※ 当社の方針として、SPI/公務員/SCOA/適性はサービスとしては別ライン、問題製造だけ共通基盤という整理に確定しています。現状は「製造の共通化」ではなく「配信の相乗り」になっているため、配信経路を分ける改修を予定しています。
| 分野 | 問題数 | トピック内訳 |
|---|---|---|
| 判断推理 | 955 | 空間把握134/位置関係106/対応関係103/順位100/嘘つき100/試合100/方位100/集合100/命題100/順序関係6/発言推理6 |
| 資料解釈 | 519 | 実数割合144/構成比141/増加率125/指数109 |
| 文章理解 | 351 | 現代文191/英文160 |
| 数的処理(非言語) | 210 | 推論62/損益算・旅人算・仕事算・料金割引・割合と比・確率・表の読み取り・整数の性質 各15/集合14/場合の数14 |
| 自然科学 | 110 | 生物37/地学35/化学26/物理12 |
| 社会科学 | 110 | 経済37/法律29/政治28/社会14/国際2 |
| 人文科学 | 110 | 日本史35/世界史26/思想23/地理20/文学芸術6 |
| 時事 | 12 | 人口推計2/労働力調査2/米国雇用統計2/日銀1/米国物価1/FRB1/米国GDP1/米国貿易1/大阪関西万博1 |
| 合計 | 2,377 | 全問5択 |
| 項目 | 実測値 |
|---|---|
| 難易度分布 | 1:89/2:402/3:984/4:583/5:319(SPI正本より難度が高い側に寄っている) |
| 解説 | 欠落ゼロ(全2,377問が解説ステップを保持) |
| 図解 | 267問が解説図(SVG)を保持 |
| 長文本文 | 331問が passage を保持(文章理解351問のうち20問は問題文に本文を埋め込む形式) |
| 試験種タグ | 134問のみ:地方上級72/警察56/消防56/国家一般54/特別区54/市役所52(重複計上) |
| 年度タグ | 211問のみ |
| 出所 | generated 1,250/original/educare 906/ai-original 209/外部URL 12(時事のみ・政府統計/BLS/FRB等の実ソース) |
fact試験種ごとに科目の相対ウェイトを持ち、比例配分で出題します。1回の出題数は40問固定で、下表の合計値とは一致しません(あくまで比率)。
| 試験種 | 現代文 | 英文 | 国語 | 判断推理 | 空間把握 | 数的推理 | 資料解釈 | 人文 | 社会 | 自然 | 時事 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 国家一般職 | 5 | 5 | – | 5 | 2 | 4 | 3 | – | – | – | 6 |
| 特別区 | 5 | 4 | – | 6 | 4 | 5 | 4 | 4 | 4 | 8 | 4 |
| 東京都 | 4 | 4 | – | 2 | 4 | 6 | 4 | 4 | 3 | 4 | 5 |
| 消防 | 5 | 4 | 5 | 6 | 2 | 6 | 2 | 3 | 4 | – | 3 |
| 地方上級 | 3 | 5 | – | 6 | 4 | 6 | 1 | 6 | 6 | 8 | 5 |
| 汎用(体験用) | 5 | 3 | – | 6 | 3 | 5 | 3 | 1 | 1 | 1 | 2 |
課題市役所・警察には配分表が存在しません(§7-3)。
| モード | 仕様 |
|---|---|
| 体験(16問16分) | 汎用の分野ウェイトで出題。冒頭3問を文章理解に固定、最終問を実データ資料解釈に固定、空間把握は図形バリエーションを2系統以上混ぜる、という並べ替えルールを実装 |
| 試験種別 | 上記ブループリント+単元別ウェイトで40問 |
| AI公務員試験 | 全分野から難易度指定でランダム。ブループリントは適用されない |
| 科目別演習 | 1科目のみ抽出。単元ウェイトは適用されない |
| 制限時間 | 国家一般職40分/地方上級75分/特別区40分/市役所60分/警察50分/消防45分 |
数的処理系4分野(数的推理・判断推理・空間把握・資料解釈)は単元ごとの重み表を持ち、不足度を追跡しながら比例配分します。この重みは試験種によらず共通です。自然科学のみ試験種別の重み表を持ちますが、実データがあるのは消防と警視庁の2試験種だけです。文章理解・社会科学・人文科学・時事には単元ウェイトがありません(科目レベルの配分のみ)。
スコア = Σ(正解した設問について 8 + 難易度×3)
ペナルティ = 不正解数 × 1.8
推定偏差値 = clamp(37 + スコア×0.92 − ペナルティ, 28, 76)
段位(1〜7) = 偏差値を7段階に量子化(≥70→7 / ≥62→6 / ≥55→5 / ≥48→4 / ≥42→3 / ≥35→2 / 未満→1)
分野別スコア(8分野それぞれ)
weighted = Σ(正解: 8+難易度×4 / 不正解: −4)
偏差値 = clamp(42 + weighted/該当設問数, 30, 72)
factUI上でも「偏差値(参考値)」と明記しています。SPIの性格検査と同様、受験者集団の統計から算出した偏差値ではなく、設計式による推定値です。結果画面には正答率・7段階評価・分野別レーダー・診断ラベル(7種の演出)を表示します。
SPIと同じくビルド時にバンクをJSに同梱して配布する方式です。実行時に問題APIを叩くコードはありません。
[生成器 spi_generator]
判断推理 → e3/handan*.py(ルールベース制約生成+CSPソルバーで解の一意性を担保)
資料解釈 → e3/shiryo.py(パラメトリックSVG+データ表)
文章理解 → reading/generator.py(2段LLM:出題者→別モデルが正答と根拠を独立検証→不一致は却下)
自然/社会/人文 → knowledge_generator.py(生成+独立AI監査・VALID必須)
時事 → current_affairs_generator.py(生成+7項目の事実監査が全てTrueでないと不採用)
│
▼
spi-questions.bank.json(SPIと共有・6,536問)
│ ビルド時に静的import
▼
[Web] educarelog.net/komuin-webtest/ … 同梱配布
[LIFF] LINE内受験 /webtest … 別スナップショット(後述)
│
└→ 受験結果のみサーバへ送信(educare-poc worker)
spi のみで、公務員問題は1問も載っていません。つまり正本側に実装済みの品質ゲート(正答位置の一様性検査・重複遮断・ID一意性)が、公務員ラインには一度も適用されたことがありません。§7の欠陥が見つかったのはそのためです。
fact時事の全12問で正答が選択肢index 0。100%。クライアントに選択肢シャッフルの実装が無いため、並び順のまま表示されます。
factindex2に151問(43%)が集中し、index4はわずか12問(3%)。自然科学34%・社会科学31%・人文科学30%にも緩やかな偏りがあります。判断推理・資料解釈・数的処理は22〜23%で健全です。
SPI正本側では同種の欠陥(文章理解の84%偏り)を本日是正し、再発防止のゲートも入れましたが、公務員ラインは正本の外にあるためゲートが届いていません。
factUIで選べるのは国家一般職・地方上級・市役所・警察・消防・特別区の6種ですが、科目配分表があるのは4種のみ。市役所と警察を選ぶと、SPI用の汎用配分(算術6:推論3:言語3)にフォールバックします。LPは「試験種別モードは選択区分の出題比率で出題」と謳っているので、この2試験種では説明と実装が一致しません。
さらに警察は、自然科学の単元配分だけ警視庁のデータを流用しつつ、科目配分はSPI風になるという、ねじれた状態です。
fact問題文(NFKC正規化後)が完全一致する重複が479問。内訳は文章理解215/資料解釈105/判断推理103/自然科学27/社会科学16/人文科学13。選択肢まで含めて完全一致するものは6問なので、多くは「同じ問題文で選択肢だけ差し替えた」水増しです。
factコードに FREE_UNTIL = 2026-08-01 という定数が入っており、この日を過ぎると「登録せずに受験する」導線が消え、試験種別・AI・科目別の各モードが登録必須になります。体験モード(16問)だけは対象外で登録不要のままです。
LPは「登録は無料」「登録すると分野別レポートをLINEに保存」と任意の付加価値としてのみ記載しており、日付での必須化に触れていません。
unknownこの日付が意思決定されたものか暫定値かは、コード上の定数として確認できるだけで経緯の記録が見つかりませんでした。
factLPは「国家一般職、地方上級、市役所、警察、消防、特別区、東京都、警視庁」の8種を掲げていますが、選択可能なのは6種です。「東京都」と「警視庁」はUIに到達経路がありません(東京都の配分表はデータとしては存在しますが呼び出されません)。
fact2,377問のうち試験種タグが付いているのは134問(各試験種50〜72問)。残りは試験種を問わない汎用出題です。40問の模試を試験種別に組もうとしても、その試験種固有の問題はほとんど混ざりません。
factLINE内受験のバンクは5,343問で、公務員系は1,502問(判断推理800/資料解釈400/文章理解50/自然科学10/社会科学10/人文科学10/時事12/数的処理210)。Web版の2,377問と総数も内訳比率も異なる別スナップショットで、最終更新は2026-06-22です。特に文章理解が50問(Web版は351問)と大きく欠けています。
factバンクが1ファイルなので、SPI体験模試を開いただけの利用者にも公務員問題が一緒にダウンロードされます(全体で展開16.4MB/gzip転送1.6MB、うち約3分の1が公務員系)。答えと解説も含まれています。
fact出所が generated としか記録されていない問題が1,250問(全体の53%)あり、どの生成器・どの世代の産物か辿れません。original/educare や ai-original と混在しています。
fact時事は12問のみで、全問が2026年7月時点の内容。生成器には「直近12ヶ月の確立した事実に限る」という制約と事実監査(7項目すべてTrueで採用)が実装されていますが、月次で自動更新する仕組みは計画段階のまま未実装とコード内に明記されています。人手での再生成に依存しています。
fact紛らわしい点として、/komuin-spi/(SPI方式で受けられる公務員試験まとめ)と /komuin-webtest/(本模試)は名前が似ていますが完全に独立しており、相互リンクが1本もありません。前者は自治体情報の静的まとめページで、受験機能はありません。
本仕様書が定義するAPI・バンクに共通する契約です。「選択肢を何番目として数えるか」「正答値の基準」「送信する回答値の意味」「宣言の在り処」を、実装側の解釈違いを防ぐために明文化します(2026-07-31 確定・ANSWER_BASE_MIGRATION_PLAN_20260730.md §10-8)。
| ID | 項目 | 定義 |
|---|---|---|
| DC-1 | 選択肢の数え方 | 選択肢配列は先頭を0とする配列添字で数えます。choices[0] が1番目の選択肢です。画面表示の「選択肢1」は添字0の投影(表示専用の変換)です。 |
| DC-2 | 正答の基準 | バンク内部の answer は1基準へ切替済みです(2026-08-01 完了)。切替は当社内部の是正であり、本仕様のAPI挙動・採点結果は切替前後で同一であることを機械検査(全問題×全choice点の突合)で保証済みです。 |
| DC-3 | 解答送信の意味 | choice は当APIが返した choices 配列の位置(0始まりの配列添字)です(2026-07-31 確定)。-1 は「未回答」を表す正規のセンチネル値です。 |
| DC-4 | 宣言の在り処 | 正答を含むデータは manifest トップレベルの answer_base 宣言と同伴でのみ解釈します。宣言の無いデータは読みません(fail-closed・既定値で補いません)。 |
※ この節は共有済みの4仕様書(SPI/公務員/SCOA/適性)すべてに同一内容で追記しています。