---
name: report-design-system
description: 表形式の数値データを、記述・比較・分解・可視化・意思決定支援の単一 HTML レポートにするスキル。数値はコードで再現し、根拠の強さと限界を示す。レポートの打ち手を、ユーザーへのヒアリングを往復して、現場で動く人向けの「目的・ゴール・やること」の資料にもする。因果推論や高度な予測は対象外。「レポートを作って」「分析して」「データから何が言えるか」「月次レポート」「現場向けの資料」「実行部隊に渡す」「アクションプランにして」などで使う。アプリの画面には使わない。
---

# 分析レポート

読み手が、結論の数字→大きい要因→根拠と限界→次の判断を1本の流れで追える単一 HTML を作る。扱えるのは、手元データから決定的に再計算できる記述・比較・分解・可視化と、それに基づく意思決定支援である。

背景の説明は証拠の強さに合わせて「データで確認」「公表資料」「想定」を分ける。相関や時間的な前後だけで因果を断定しない。根拠が足りない場合は、主張を弱め、限界と次に必要なデータを示す。

## Quickstart

通常は **init → build** で終了する。`build` は計算、HTML生成、数値・依存関係の検査まで行い、ブラウザや別 context を起動しない。ユーザーが厳格検証を明示しない限り、`verify`、独立 review、`done` を追加しない。

```bash
R=<スキルの場所>/scripts/report.mjs
node $R init  <出力ルート> <YYYY-MM> <slug> <データ...>
node $R build <フォルダ>
```

1. **init**: データを渡し、`profile.json`、入力欄つきの `brief.json`、`analysis.mjs` を作る。情報量の初期値は `標準`。既存フォルダで失敗したら、表示された回復手順に従う。
2. **設計・実装**: `prompts/analyst.md` に従って `brief.json` を埋め、`analysis.mjs` に計算・判定・文言・図を集約する。途中で早く誤りを見たいときだけ `report.mjs check <フォルダ>` を使う。外部の背景が本当に必要な場合だけ調査する。
3. **build**: HTMLを生成し、静的検査と数値・仮説の接続検査を通す。合格した `<name>.html` を成果物として渡せる。

## 厳格検証（依頼されたときだけ）

ユーザーが厳格レビューを明示した場合だけ使う。`verify` は build を内包するため、先に `build` を実行しなくてよい。

```bash
node $R verify <フォルダ>  # build + 4幅の実描画 + 証跡記録
# 別 context で prompts/review.md を実行
node $R done   <フォルダ>
```

review 後に must を修正した、または HTML を変えたときは、再度 `verify` し、別 context が最終成果物を再 review する。`done` は実描画済み証跡、最終HTMLのSHA-256、4条件PASS、未解決must 0件に加え、担当・期限が未確定の `pending` 打ち手が残っていないことを確認する。通常 `build` は意思決定ドラフトとして `pending` を警告に留める。

## 実行部隊向け資料（依頼されたときだけ）

レポートの打ち手を、現場で動く人向けの「目的・ゴール・やること」の資料にする。数字の根拠や統計は載せない。AI が `hearing.md` に下書きを書き、ユーザーには決めてほしいことだけを聞く。手順は `prompts/handout.md`。

```bash
node $R hearing <フォルダ>  # 下書きを作る / AI が直すことと聞くことを出す (回答待ちは終了コード 3)
node $R handout <フォルダ>  # 了承済みのシートから <フォルダ名>-handout.html を作る
```

## 工程ごとに読むもの

| 工程 | 読むもの |
|---|---|
| 設計・build | `prompts/analyst.md`、`references/statistics.md`、`references/thinking.md`。背景を説明するときだけ `references/causes.md` |
| 図を選ぶ | `references/charts.md` |
| 外部調査 | 別の調査役が `prompts/research.md` |
| 厳格検証の独立 review | 別 context が `prompts/review.md`。初回と再 review のどちらも同じ |
| 実行部隊向け資料 | `prompts/handout.md` |
| スキル自体の保守 | `references/maintenance.md` |

上限・列挙値が prompt の記述と `report.mjs` の診断で食い違って見えたら、診断を優先する。

## 作成の原則

- 数値と仮説の判定は LLM が手入力せず、`analysis.mjs` で再現する。
- 結論の直後に、初心者向けの「対象・比較／数字で分かったこと／どう読むか／言えないこと」を4行だけ置く。各行は48字以内とし、専門値は要因へ残す。
- 各要因では、再計算できる「統計的事実」と、そこから読める「解釈」を常に分ける。仮説を使ったときだけ、反証可能で判定つきの「仮説・主張」を別枠で追加する。原因や行動を統計的事実へ混ぜない。
- 専門用語と図の読み方の説明は、常時表示にしない。用語マーク (本文の点線 + `?`)、「この図の読み方」、末尾の用語集は build が自動で付けるので、ソースに説明文を書き足さない。文言を直すときは `scripts/glossary.mjs` を直す。
- 情報量は `要点`・`標準`・`詳細` から選べる。指定がなければ `標準` で完成させ、情報量の確認だけで生成を止めない。
- 外部の数値は、出典 URL つきの `背景データ*.csv` からだけ使う。覚えている数字は書かない。
- 修正は `brief.json` と `analysis.mjs` に集約し、生成された `.src.html` と `.html` は手で直さない。
- 打ち手は、ユーザーが求めた場合、または判断に次の行動が必要な場合だけ追加する。背景の説明が十分に検証できないときは運用上の行動を断定せず、必要なら検証・計測・次データの取得と `caution` に留める。
- 高度な予測、重回帰・機械学習、因果推論、生存分析など対象外の手法が必要なら、限界と次に必要な分析を書いて止まる。

## 成果物の流れ

セクションは1つずつ枠で囲んだパネルにし、上端の見出し帯 (種類のチップ + h2) と種類ごとの色で区切る。見出し帯と色は build が付けるので、ソースには書かない。出力は「結論→要因」を必須とし、ユーザーが求めた場合、または判断に必要な場合だけ末尾に「打ち手」を置く。打ち手を置く場合は、根拠の強さに応じて業務上の行動、検証、または追加データ取得の指示にする。要因は影響の大きい順に絞り、根拠の強さ、判断への意味、図、統計の要約、計算元を結び付ける。

専門知識が無くても読めるように、説明は3段に分けて「触ったときだけ」出す。(1) 本文の専門用語には点線と小さな `?` だけを付ける、(2) カーソルを合わせる・キーボードで移る・押すと、その場に「何の値か / どう読むか」の2行が出る、(3) 図には閉じた「この図の読み方」を、文書の末尾には使った用語だけの用語集を置く。JS が無い環境では (1) は用語集へのリンクとして働き、(2) の代わりに用語集へ飛んで同じ説明が読める。印刷時は (3) がすべて開いた状態で出る。

## 完了条件

- 通常: `report.mjs build` が合格し、`<name>.html` が生成されている。
- 実行部隊向け資料: `report.mjs handout` が合格し、`<フォルダ名>-handout.html` が生成されている。
- 厳格検証を依頼された場合だけ: `verify`、独立 review、`done` が合格している。
- スキル自体を変えた場合: `references/maintenance.md` の検査 (smoke-test、必要なら selftest) が合格している。
