スタイルガイド¶
本ページは、SONiC 非公式日本語ドキュメント (docs/) を執筆する際の文体・構造・タグ・引用ルールをまとめた執筆者向けリファレンスである。Writer / Reviewer / Verifier いずれのロールでも、本ガイドに沿って差分を作る。例外を設ける場合は本文または PR 説明にその理由を明示する。
概要¶
本リポジトリは AI エージェントによる継続的な再構成を前提としている。文体・frontmatter・引用形式が揃っていない場合、機械的な品質監査 (frontmatter_lint.py / Reviewer prompt) が落ちて merge が止まる。したがって本ガイドは「人間の好みを揃える」よりも「機械チェックが通る最低ライン」を定義することを目的とする。
frontmatter ルール¶
frontmatter のフィールド定義は meta/templates/SCHEMA.md を一次情報源とする。以下は実務的な抜粋である。
| キー | 必須 | 値 |
|---|---|---|
title |
はい | 表示タイトル (40 字目安) |
area |
はい | routing / switching / overlay / acl-qos / system / management / platform / architecture / internals / reference |
verification |
はい | hld-only / issue-confirmed / code-verified / discrepancy-found / runbook-verified / stub / meta |
last_verified |
はい | YYYY-MM-DD |
sources |
はい | 一次情報のリスト。meta ページは空配列可 |
monitor |
条件付 | verification: discrepancy-found のとき必須 |
page_kind |
optional | chapter-index / split-hub / split-child |
related.{config_db,cli,yang} |
optional | 空配列でも合格。推測で埋めてはならない |
新規ページを書く際は meta/templates/page.md をコピーして雛形にする。frontmatter_lint.py を走らせ、必須フィールドが揃っていることを確認してから commit する。
title 規約¶
- 40 字を目安に収める。長い注釈は本文 H1 直下の段落で扱う
- 「機能名 + 短い注釈」を基本形にする。例:
BGP unnumbered(IPv6 LLA を用いた BGP セッション) - nav に出る文字列はこの
titleがそのまま使われるため、ナビ崩れに注意する - 章扉 (
page_kind: chapter-index) は番号付きで章のスコープを示す。例:08 VXLAN / EVPN / VNET
本文構造¶
通常解説ページは以下の見出し順を標準とする。
# <title と同じ> <- H1 は 1 つだけ
## 概要 <- 何のためのページか、対象機能の一行サマリ
## 動作仕様 <- フロー / コンポーネント / DB スキーマ
## 設定 <- CLI / CONFIG_DB の最小設定例
## 制限事項 <- 既知の制約・未実装・platform 依存
## 関連 <- 隣接機能・関連ページへのリンク
## 引用 <- 一次情報 / 脚注定義
- 章扉 (
chapter-index) は## 概要のあと、配下ページへのリンク集を中心にする split-hubは冒頭でsplit-childへの導線(concepts / operations / internals / limitations)を提示するdiscrepancy-foundページは## 動作仕様の代わりに## 実装との乖離を立てる。SCHEMA.mdの軸 6 評価基準 (a)〜(d) を満たす構造で書く
mermaid 使い方¶
画像は原則 mermaid のみ許可する(後述)。記法の使い分けは次の通り。
flowchart LR— パケット経路・データプレーンの流れ・状態の左→右遷移flowchart TD— レイヤ構造・コンポーネント階層・「上位 → 下位」関係sequenceDiagram— orchagent / syncd / SAI / kernel をまたぐ呼び出し順序stateDiagram-v2— BGP / LACP / BFD などのプロトコル状態機械
ノードラベル内では絵文字を使わない(PDF / 一部レンダラで文字化けする)。代わりに [警告: ...] のような括弧表記を使う。色指定 (classDef) は最小限にとどめる。
admonition 使い方¶
MkDocs Material の admonition は次の用途に絞って使う。
!!! note— 補足情報。読み飛ばしても主旨に影響しない!!! tip— 運用 Tips / コツ!!! warning— 既知の落とし穴・設定ミスしやすい点!!! danger— データ損失・ループ・サービス停止に直結する操作!!! diff— HLD と実装の乖離を示す専用ブロック (discrepancy-foundページのみ)
!!! diff は必ず HLD 側の主張・現行 master の状態・読み手への影響を 3 段で書く。
glossary 用語¶
技術用語は docs/reference/glossary.md に定義する。本文中での扱いは次の通り。
- 初出時のみ glossary anchor へのリンクを張る
- リンクの自動付与は CI の
inject_glossary_links.pyが行うため、Writer は手書きしない - glossary に未登録の重要用語に遭遇したら、同 PR か別 PR で
glossary.mdに追加する
脚注 / evidence¶
主張の裏取りは脚注と HTML コメントの二段構えで行う。
- 込み入った主張・数値・実装挙動には脚注
[^1]を付け、ページ末で commit パーマリンクを定義する - 脚注の直前または該当段落の直下に
<!-- evidence: source: <repo>/<path>#L<start>-L<end> ... -->の HTML コメントでコード抜粋と判定理由を埋める - evidence の行範囲は「該当行を含む」程度の精度で良い。完全一致は要求しない
- Reviewer / Verifier はこの evidence コメントを根拠に
code-verified/discrepancy-foundを判定する
コードブロック¶
- 言語タグを必ず付ける (
```bash,```yaml,```c++,```jsonなど) - CLI 出力は
```textを使う - 長すぎる出力は
# ... (省略) ...のコメントで途中を省略し、要点だけ残す - フル設定例を載せたい場合は、別ファイルではなく折りたたみ admonition (
??? example) を使う
画像¶
- 原則 mermaid のみとする。PNG / SVG は base platform 図 / hardware 図のように構造が固定で mermaid で表現できない場合にのみ許可する
- スクリーンショットは禁止 (
meta仕様外) - 図中の文字は日本語可。ただし固有名詞(プロトコル名・コマンド名)は原綴で書く
日本語スタイル¶
- 文体は「である調」で統一する。「ですます調」は本ガイドおよび README 等の対人向けページに限定する
- 技術用語は原則カタカナ表記とする。例: ルータ / スイッチ / オーケストレータ / オーバーレイ
- 固有名詞・プロダクト名・コマンド名は原綴のままにする。例: SONiC / orchagent / syncd / FRR / Mellanox
- 助詞「は / が / を / に」の重複を避ける。長い修飾句は読点で区切る
- 半角英数字と日本語の間にスペースは入れない(MkDocs の表示で間延びするため)
- 箇条書きは「、」「。」を統一する。文の集まりは句点で終え、語句の列挙は句読点なしで揃える
page_kind の使い分け¶
| 値 | 用途 |
|---|---|
chapter-index |
22 章扉 (docs/topics/NN-slug/index.md)。配下ページへの導線が本体 |
split-hub |
大型 HLD を分割した際の元概要ハブ。<base>.md に付与し、split-child 群への導線を持つ |
split-child |
上記から派生した <base>-concepts.md / -operations.md / -internals.md / -limitations.md 等 |
| 未指定 | 通常の単一解説ページ |
split-hub と split-child は同じ HLD ソースを共有するため、verification / sources を一致させる。split-child は本文ボリューム単独では評価されず、ハブとの導線・主張の網羅性で評価される。
関連¶
引用¶
本ページはプロジェクト内ルールを集約した meta ページであり、SONiC 一次情報源を持たない。スキーマ・テンプレートの正本は meta/templates/ 配下のファイルである。