← Files 立地診断 mini|ROGNALIAARCHIVED FILE

skills/location-diagnosis-mini/references/component-library.md

8.96 KB · Oct 5, 2026 · 18:31 UTC

↓ Download file

# Plugin report component library

この文書は、固定[`scripts/render_report.py`](../scripts/render_report.py)が生成するvisual componentと検査項目の参照です。HTMLを手動生成・再実装するための仕様ではありません。固定renderer runtimeを展開・検証できない場合は、ここにある断片から似たHTMLを作らず、`SKILL.md`のdelivery mode選択に従います。text diagnosis modeでは、このcomponentを再現しません。

## 1. Template placeholders

`assets/report-template.html`で置換できるplaceholderは3つだけです。

| placeholder | 内容 |
|---|---|
| `{{DOCUMENT_TITLE}}` | escape済みのdocument title |
| `{{SVG_SPRITE}}` | `assets/report-icons.svg`のinline SVG sprite |
| `{{REPORT_PAGES}}` | `.sheet.report-page`要素の並び(8〜10ページ) |

未解決placeholder、HTML comment、remote assetを完成品へ残しません。

## 2. Page shell

```html
<section class="sheet report-page" data-page="1" aria-label="01 判定">
  <div class="tk tk-tl"></div><div class="tk tk-tr"></div>
  <div class="tk tk-bl"></div><div class="tk tk-br"></div>
  <header class="hd">
    <span class="hd-l">
      <span class="header-wordmark" aria-label="ROGNALIA"><!-- traced SVG --></span>
      <span class="hd-sep">|</span><span>立地診断 mini</span>
    </span>
    <span class="hd-r">住所|調査日 YYYY.MM.DD <b>01 判定</b></span>
  </header>
  <p class="kick">01|VERDICT</p>
  <h1 class="pt">初期スクリーニング判定</h1>
  <p class="lead">このページで答える問いを一文で示す。</p>
  <main class="page-content"><!-- page body --></main>
  <footer class="ft">
    <p class="disc">固定免責</p>
    <div class="meta">
      <span class="fl"><span class="footer-wordmark" aria-label="ROGNALIA"><!-- traced SVG --></span><span>立地診断 mini</span></span>
      <span class="pg"><b>1</b> / 8</span>
    </div>
  </footer>
</section>
```

Rules:

- `.sheet`はA4 1枚。`overflow:hidden`を前提に、本文を縮小せずcopyを契約内へ収める。
- `.tk-*`は四隅のtrim mark。削除しない。
- `.hd`と`.ft`は全ページ共通。正式wordmarkを小さくinline挿入する。
- `.disc`は固定免責を完全一致で全ページに1件置く。
- `.pg`は実page数と一致する連番にする。
- header、footer以外へwordmarkを追加しない。大きなlogo、`Powered by`、copyrightを置かない。

## 3. Fixed page story

| 順番 | section | 主要component |
|---:|---|---|
| 1 | 判定 | `.idg`, `.vgrid`, `.scale-wrap`, `.conf`, `.concl`, `.assump`, `.legend`, `.toc` |
| 2 | 論拠 | `.ev`, `.st`, `.src`, `.plan`, `.chips`, `.note-line` |
| 3 | 基礎数値 | `.dstrip`, `.acq`, `.mrow`, `.metric`, `.bar-chart`, `.stacked-bar`, `.nochart` |
| 4 | 調査軸 | `.rt`と`data-research-id="R1"`〜`R8` |
| 5 | 業態適合 | `.lens`, `.fig-h`, `.demand-diagram`, `.dnode`, `.obs` |
| 6 | 競合・相乗 | `.ct`, `.kind`, `.obs`, `.missing-state` |
| 7 | 反証監査(条件付き) | `.cov`, `.risk-list`, `.risk-item`, `.risk-level` |
| 7または8 | 検証計画 | `.cond`, `.fc`, `.at` |
| 最終1〜2枚 | 出典・監査 | `.cov`, `.sreg`, `.sr`, `.method-note`, `.handoff`, `.closing-qr` |

risk合計が3件以上なら反証監査pageを追加します。sourceは16件まで1ページ、17〜32件は2ページへ均等分割します。最終pageだけに`.handoff`を置きます。

## 4. Shared headings and evidence

```html
<div class="blk-h">
  <span class="no">支持</span>
  <span class="t">判定を押し上げる3要因</span>
  <span class="note">状態記号と出典は01の凡例に対応</span>
</div>
```

```html
<div class="ev">
  <p class="et">短い論点名</p>
  <p class="ed">確認した事実と判断への意味を混ぜず、110字以内で説明する。</p>
  <div class="em">
    <span class="st is-confirmed">確認済み</span>
    <span class="src">S1・S3</span>
  </div>
</div>
```

Status class:

| status | class | label |
|---|---|---|
| `confirmed` | `.is-confirmed` | 確認済み |
| `estimated` | `.is-estimated` | 推定 |
| `reference` | `.is-reference` | 参考情報 |
| `not_found` | `.is-notfound` | 公開情報では確認できず |
| `field_check` | `.is-fieldcheck` | 現地・資料確認 |

色だけで状態を表さず、必ずlabelを併記します。confirmed / estimatedの主張には実在するS番号を付けます。

## 5. Verdict

- `.scale`は1件だけ置き、`.cell`を1〜5の5区分にする。
- 選択中の区分だけ`.cell.sel`と`aria-current="true"`を持つ。
- labelは1=`見送り推奨`、2=`見送り寄り`、3=`条件次第`、4=`前向きに検討`、5=`積極検討`で固定する。
- `.conf`はratingとは別の根拠確度。低・中・高のうち1件だけ`.on`にする。
- `.concl`の左罫線はviolet。結論を装飾cardへ埋めず、短い宣言として見せる。
- `.toc`は実際のsection番号へ合わせ、risk pageがない時に空の07を残さない。

## 6. Baselines and charts

各D1〜D4は`<section class="dstrip" data-baseline="D1">`として1件ずつ置きます。

- `.metric`はname、display value、時点、範囲、S番号を同じblockへ置く。
- `bar_pair`は同一定義・同一境界の2時点値だけを`.bar-chart`で表示する。barは原点0。
- `stacked_share`は同一出典・同一年次・同一範囲で合計100の時だけ`.stacked-bar`を表示する。
- 比較できない時は`.nochart`へ取得状態と理由を置き、0値のchartを作らない。
- 上位地域代替、地点照合が必要、初期診断では未取得を`.acq`の文字で明示する。

## 7. Research table

`.rt`は列を`軸 / 確認した事実 / 判断への含意`の3つに固定します。各rowへ`data-research-id="R1"`〜`R8`を1件ずつ付けます。

- findingは140字以内、meaningは100字以内。
- 未確認を不存在や自動減点へ変えない。
- `.hl`は未取得または現地確認が必要なrowに使う。警告色で煽らない。

## 8. Demand connection diagram

`.demand-diagram`は次を線で接続します。

```text
アクセス ─┐                  ┌→ 来店目的
          ├→ 想定業態 ──────┤
相乗施設 ─┘                  └→ 需要時間帯
```

node textはR2、相乗施設、business、customer purpose、demand periodsから作ります。decorativeな数値や根拠のない顧客像を追加しません。SVG pathはconnectorとしてのみ使い、意味のあるnode textはHTMLに残します。

## 9. Risk and verification

- riskは`重大阻害 / 不一致 / 要確認`へ分け、`.risk-level`の文字を必ず表示する。
- riskが3件以上なら専用pageへ置く。0〜2件なら検証計画pageの先頭へ置く。
- `.cond`は判定反転条件と対応する現地確認・追加dataを結ぶ。
- `.fc`は必ず5件。紙面上でcheckできる空欄を残す。
- `.at`は`取得するもの / 方法 / 意思決定への使い方`の3列にする。

## 10. Sources and handoff

```html
<li class="sr">
  <span class="sid2">S1</span>
  <div>
    <a class="t2" href="完全URL">出典title</a>
    <p class="u2">短縮表示URL</p>
    <p class="m2">発行主体 | 情報時点 | 支持 <b>R1・R3</b></p>
  </div>
</li>
```

- sourceは1〜32件。実際に開いて本文を確認したURLだけを載せる。
- 最終source pageのleadは`主要な判断根拠は、N件の公開出典から確認できる。`とする。
- `.handoff`は最終pageだけに置き、page contentの15%以内にする。固定免責の上へ最低3mmの安全余白を残し、source件数が上限でも重ねない。
- CTAは固定URLと静的QRを使う。価格、申込、`有料版なら取得可能`、成果保証を置かない。

## 11. Print action

画面上に次のbuttonを1件だけ置きます。

```html
<button class="print-action" type="button" onclick="window.print()">
  <span class="print-action-label">PDFとして保存</span>
</button>
```

`script`要素、追加event handler、PDF変換library、canvas、blob生成は使いません。`@media print`でbuttonを完全に消します。

## 12. Completion checklist

1. `.report-page`が8〜10件で、page numberが1から連番、分母が実page数と一致する。
2. 全pageにheader wordmark、固定免責、footer wordmark、`立地診断 mini`が各1件ある。
3. 一次判定scaleが5区分、選択中が1件、根拠確度が独立して表示される。
4. R1〜R8とD1〜D4が各1件ある。
5. source IDが欠番なく、全参照S番号が存在する。
6. 現地確認が5件あり、flip conditionと追加dataが接続されている。
7. placeholder、絵文字、remote asset、`Powered by`、copyright、radar chartが0件。
8. `onclick="window.print()"`が1件、`script`要素が0件。
9. A4 print previewでHTML page数とPDF page数が一致し、白紙、clipping、重なりがない。
10. 文字を縮めて収めず、risk pageまたはsource continuationの条件で8〜10ページに収めている。

SHA-256: 41df3a2f4a14c6d7c0c3282a44b60e2fb1b4f018b798bee194842ea9a2c5b5a0