format-post
投稿する文章(PR 本文・補足コメント・レビュー返信・課題管理ツールの課題とコメント)の量と流れを整え、散文で書くと長くなるものを別の形へ畳んで書く。量と流れ・読み手の想定・投稿前に拾うもの( references/writing.md )と、表・Mermaid・Alert・`<details>`・脚注・パーマリンク・見出しへのリンク・引用の選び方、投稿先ごとに向いている手段を持つ。PR 本文やコ
SKILL.mdhome/.claude/skills/format-post/SKILL.md
GitHub読み手の手間を減らすために使う。 飾りとして足すと、本当に見てほしいものが埋もれます。量が増えるのは構いません。判定は読み手が「何を・なぜ・何がリスクか・どう検証したか」を拾うまでに、読み返し・探索・組み立て直しが要るかです( /update-pr-description の references/body.md の「読み手が拾う4点を軸にする」)。
量と流れ(過不足なく書く・概要から詳細へ流す・読み手の想定・表と図で畳む)と、投稿前に拾うもの(指す先が決まらない語・読点・1文の長さ・否定)は references/writing.md が持つ。 書き始める前と投稿の直前に開く。下の節はどの手段で畳むかを選ぶためのもの。
描画されるかどうかは、記憶ではなく一次情報で確かめる。
| 資料 | 持っているもの |
|---|---|
| GitHub Flavored Markdown の仕様 | 表・取り消し線・自動リンク・生の HTML( <details> )など、記法の描画規則 |
| 基本的な書き方とフォーマットの構文 | Alert・脚注・見出しへのリンク・メンションなど、仕様の外にある GitHub の拡張と、その使い方の注意 |
手段の選び方
| 手段 | 使う場面 | 詳細 |
|---|---|---|
| 表 | 同じ観点の項目が3件以上 | concise_first_then_detail.md |
| Mermaid | 列挙から読み取れない構造・関係・流れ | 同上 |
| Alert | 読み飛ばすと事故になる1〜2点 | 下記 |
<details> |
その場で開ける形で長い実体を置く | 下記 |
| 脚注 | 本筋から外れる1行の補足 | 下記 |
| パーマリンク | コードの特定の行を指す | 下記 |
| 見出しへのリンク | 本文の別の節を指す(「詳しくは下のテスト内容」を探させない) | 下記 |
引用( > ) |
課題票・仕様・レビュー指摘の原文をそのまま示す | 言い換えると、読み手は原文と食い違っていないかを確かめに行く |
| 別コメント | 本文と独立に参照される情報のかたまり | /create-pr / /update-pr-description |
既存の対応と、この PR で足した分を表で分ける
複数の対象と複数の経路にまたがる PR で、既に対応済みの部分とこの PR で足した部分が混ざるなら、本文の冒頭に表を置く。行に対象、列に経路を取り、各セルを「既存」「この PR」「対象外」で書き分ける。既存のセルには対応したマージ済みの PR 番号を添える。
散文で「〜は既存、〜はこの PR」と並べると、読み手が境界を頭の中で組み立てることになる。対象か経路が1つしかないなら表は1行になるので、置かない。
本文の別の節は、見出しへのリンクで指す
「下記」「上の表」では、読み手が探しに行きます。 GitHub は見出しごとにアンカーを作るので、[テスト内容](#テスト内容) と書けば1クリックで着きます。
アンカーは見出しを小文字にし、空白をハイフンへ置き換え、句読点を除いて作られます。同じ見出しが2つあると、2つ目以降に番号が付きます。見出しを変えたらリンクも直す。 投稿したら描画された本文でリンクを1つずつ押して確かめる。
投稿先で変わるのは量、判断軸は同じ
本文だけの話ではありません。 補足コメントもレビュー返信も、散文だと長くなるなら畳む。
| 投稿先 | 向いている手段 | 注意 |
|---|---|---|
| PR 本文 | 全部 | Alert は1〜2個 |
| 補足コメント | <details>・表・パーマリンク |
長い実体を置く場所なので <details> が最も向いている |
| レビュー返信(非対応の理由) | 表・Mermaid・パーマリンク | 観点が3つ(指摘 / 現状 / 判断)並ぶなら表 |
| ハッシュだけの返信 | 何も足さない | 1行目からハッシュを機械抽出できる形を壊さない |
| コマンドコメント | 何も足さない | 本文がコマンド1行でないと起動しない |
返信でこそパーマリンクが役に立ちます。 「その行は今こうなっている」を示すのに path:line を書くと、相手が開いたときには差分が動いていることがあります。
Alert の1〜2個は本文の話。 コメントや返信は短いので、そもそも1個で足ります。返信に2個並ぶなら、それは返信ではなく別コメントか本文の役目です。
短さは免罪符になりません。 返信3行に表を付けるのは過剰で、散文のままが正解です。
Backlog の図は、本文は素の Mermaid、コメントは画像にする
Backlog は課題の本文では Mermaid を図として描き、コメントでは描きません。 置き場で書き方を分けます。
| 置き場 | 書き方 | 理由 |
|---|---|---|
| 課題の本文 | ```mermaid のコードブロック |
本文では描かれ、後から図を直しやすい |
| 課題へのコメント | Mermaid を PNG にして添付し、![image][<ファイル名>] で埋める |
コメントでは描かれず、ソースのまま出る |
- PNG は
bunx -p @mermaid-js/mermaid-cli@latest mmdc -i x.mmd -o x.png -s 2 -b whiteで描く。@latestを外すと、bunx は以前に取ってきた古いバージョンを使い続け、バージョンによっては図が崩れる。描いたら投稿の前に開いて、崩れていないかを見る - 添付は API の
POST /api/v2/space/attachmentへ上げて返った ID を、bee issue commentの--attachmentに渡す。bee にはアップロードが無い - 図を直すときに使う
.mmdは手元に残す。コメントには PNG しか残らないので、捨てると図を描き直すことになる - コメントの添付はコメントの編集では差し替えられない。 図を直すなら、まだ読まれていないコメントは消して投稿し直し、読まれたコメントには新しいコメントで足す(
keep_records_current.md)
Alert は3種だけ使う
GitHub には5種ありますが、使うのは3種に絞ります。選択肢が多いと毎回迷い、迷った末に強い方を選びがちになります。
| 種類 | 使う場面 |
|---|---|
NOTE |
生成者表示に占有されている( github_note_generated_by_claude.md )。他の用途に使わない |
IMPORTANT |
知らないと動かせない・順序を誤ると壊れる(マージ順、DB の再生成、前提の設定) |
WARNING |
既存の挙動が壊れうる(この経路だけ並行更新に弱い、この条件で値が落ちる) |
TIP は PR に書く場面が無く、CAUTION は WARNING と役割が重なるので使いません。
本文には1〜2個。生成者表示の NOTE は数えません。 GitHub 自身が「1記事あたり1〜2個」としており、生成者表示は末尾の固定節よりさらに後ろにあるので、本文の Alert と注意を奪い合っていません。連続して置かないのは GitHub の指示どおり守ります。
順序を逆にしないでください。 先に 「読み飛ばすと事故になるか」で選び、その結果が2個を超えたときに畳み方を見直す。上限から逆算して落とすと、大事なほうが散文へ戻ります。実際に「手元で DB を初期化しないとテストが落ちる」と「この経路はロックを取るので後から来た更新が待つ」の2点が競合し、後者を落とす判断をして戻した例があります。
3つ目の候補が出たら、それを信号として扱う。 たいてい次のどちらかです。
- 3つ目は警告ではなく説明(読み飛ばしても事故にならない)
- 本文が構造化できていない。同じ主題の危険が分かれているなら1つに束ねるか、表に畳む
Alert は他の要素の中へネストできません。 表のセル・箇条書きの中には置けないので、置くなら独立した位置に。
<details> と別コメントを使い分ける
どちらも「本文を汚さずに詳細を置く」手段なので、基準を持たないと毎回迷います。
<details> |
別コメント | |
|---|---|---|
| 置く場所 | その情報が要る節の直下 | 本文の外 |
| 読み手 | その節を読んでいる人が、その場で開く | 必要になった人が探して開く |
| 例 | 検算の件数表、テスト出力の抜粋、失敗したときのログ、SQL の全文、全件の列挙 | API 契約の全文、調査ログ、他リポジトリ向けの申し送り |
<summary> には中身が分かる名前を付ける。 「詳細」では開くまで判断できません。
畳んだ中身にも本文と同じ基準を当てる。 畳めば何を書いてもよいことにはなりません。
何を畳み、何を見せたままにするか
使えるところでは使う。判定は「読んで判断が変わるか」。 変わるものは見せたまま、それを支える根拠の実体(上の表の <details> の例)は畳む。
| 見せたまま | 畳む |
|---|---|
| 結論・症状・影響範囲・注意点・修正前後の画像 | 結論を支える実体(件数表・ログ・SQL・列挙) |
畳んだら、外に結論を1行置く。 実装を戻したときに落ちるテストの表なら、「6箇所のどれを戻しても1〜2件落ちる」を外に出して表を畳む。<summary> は中身の名前で、結論の代わりにはなりません。開かない読み手に結論が届かないためです。
開かないと筋が追えなくなるなら畳みすぎ。 判断に使うものまで隠すと、短くした分だけ分かりにくくなります。上の「畳んだ中身にも本文と同じ基準を当てる」とは向きが逆で、両側から量を決める。
コードの行を指すときはパーマリンクを使う
path:line は行がずれた瞬間に別の行を指します。レビュー中は差分が動くので、書いた側が正しくても読む側には違う行が見えます。
パーマリンクはコミットに固定されるので、別の行を指すようになりません。 GitHub 上でファイルを開き、行番号をクリックして y を押すと、コミットハッシュを含む URL になります。
https://github.com/OWNER/REPO/blob/<commit>/path/to/file.go#L42-L48
同一リポジトリのパーマリンクは、GitHub がコード片として展開して表示します。引用を貼らずに済むので、その場で読める。
path:line を書いてよいのは、差分の中で位置が自明なとき(インラインコメントの中で同じファイルを指す等)だけ。
自動クローズのキーワードを書かない
Closes #123 / Fixes #123 / Resolves #123 は、マージした時点で対象を閉じます。
閉じる時機は自分で決める。 依存する変更が別 PR に残っている、リリースまで開けておきたい、複数 PR で1つの課題を分けている。いずれもマージしたら完了、ではありません。
参照するだけなら #123 と書けば足ります( github_writing.md )。リンクは張られ、閉じません。
脚注は着地位置に注意する
GitHub は脚注を描画結果の末尾へ集めます。 PR 本文では生成者表示より後ろに出るので、テンプレの節構成とは無関係の位置に着地します。
そのため、節の中で読まれる必要がある補足には使わない。使うのは、読み飛ばしても本筋が通る1行だけです。
括弧書きで済むなら括弧書きにする。脚注は読み手に往復させるので、1行の補足に見合わないことが多い。
やってはいけないこと
Closes/Fixes/Resolvesを書くこと。マージした時点で対象が閉じる。閉じる時機は自分で決める- 本文に Alert を3つ以上置くこと。GitHub 自身が1〜2個に制限している(生成者表示の
NOTEは数えない) - 上限から逆算して落とすこと。先に「読み飛ばすと事故になるか」で選ぶ。数を守って大事なほうを散文へ戻すのは逆
- Alert を表のセルや箇条書きの中へ入れること。ネストできず、記法として壊れる
<summary>を「詳細」で済ませること。開くまで中身が判断できない- 判断に使うもの(結論・症状・影響・画像)を
<details>へ畳むこと。開かない読み手に届かない - 畳んだのに、結論を外に置かないこと。
<summary>は中身の名前で、結論の代わりにならない - 差分が動く箇所を
path:lineで指すこと。行がずれると別の行を指す
関連
github_writing.md(常駐のルール): アノテーションと、フックもスキルも通らない経路の注意はあちらが持つ。本スキルは PR 本文・コメントを書く場面に限った手段の選び方concise_first_then_detail.md(簡潔に): 表と Mermaid の使い分けはあちら。本スキルは GitHub でしか使えない手段を足すgithub_note_generated_by_claude.md(生成者表示):NOTEを占有している。他の Alert と混ざらないよう用途を分けるgithub_writing.md(他リポジトリの参照):#123は参照するだけで閉じないgithub_writing.md(1文ごとに改行): あちらは文の表記、本スキルは構造の選び方/create-pr//update-pr-description//review-pr//resolve-ai-reviews//resolve-human-reviews: 本スキルが土台で、各スキルは投稿先固有の事情を上乗せする