Skip to content

各パッケージのREADMEにコンポーネントのデザインドキュメントを同梱 - #101

Open
nio-nio-nio wants to merge 13 commits into
mainfrom
enrich-readme-with-design-docs
Open

各パッケージのREADMEにコンポーネントのデザインドキュメントを同梱#101
nio-nio-nio wants to merge 13 commits into
mainfrom
enrich-readme-with-design-docs

Conversation

@nio-nio-nio

@nio-nio-nio nio-nio-nio commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

概要

コンポーネントごとのデザインドキュメント(概要・構成要素・使い分け・バリエーション・ステート・アクセシビリティ・ライティング)を、対応する 32パッケージ の README 末尾に「デザインドキュメント」セクションとして同梱しました。

目的

npm パッケージページや GitHub 上で、パッケージ単体でもコンポーネントの使い方・使い分けを参照できるようにするためです。特に AI エージェント(Claude Code など)がパッケージを参照した際に、実装 API だけでなくデザイン意図・使い分け・a11y 要件まで理解できるようになります。

内容

  • 各セクションの内容は markdown に変換したうえで掲載しています
    • 実装デモは ```html コードブロック化
    • カラーチップは flavor 名のみを残す(カラーコードは flavor token ごとに変わるため README に固定値を書かない)
    • コンポーネント間の相互参照は、このリポジトリ内の各パッケージ README への相対リンク
    • 見出しは1段下げて既存 README(Usage / Mixins)の階層に整合
  • あわせて各パッケージに CLAUDE.md / AGENTS.md を追加し、AI エージェントが README のデザインドキュメント節へ誘導されるようにしています

メンテナンスについて

同梱範囲は <!-- design-doc:start --> / <!-- design-doc:end --> マーカーで囲んであり、このセクションは自動生成されます(冪等)。マーカー間は直接編集しないでください。

🤖 Generated with Claude Code

design.pepabo.com の src/pages/inhouse/components/*.mdx にある
コンポーネントごとのデザインドキュメント(概要・構成要素・使い分け・
バリエーション・ステート・アクセシビリティ・ライティング)を、
対応する32パッケージの README 末尾に「デザインドキュメント」
セクションとして追加。

npm パッケージページや AI エージェントがパッケージ単体で
コンポーネントの使い方・使い分けを理解できるようにするのが目的。

- mdx の frontmatter / import / script は除去し、GitHub で
  レンダリング可能な Markdown に変換
- code-preview のデモは html コードブロック化
- 画像・リンクは design.pepabo.com への絶対 URL に変換
- 転載範囲は design-doc:start/end マーカーで囲み、再生成可能に

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@nio-nio-nio nio-nio-nio self-assigned this Jul 27, 2026
README へのデザインドキュメント転載(#101)は node_modules に届くものの、
エージェントの既定検索(.gitignore 尊重)では発見されず、README を
頭から部分読みした場合も末尾の転載節に到達しない問題があった。

- 各パッケージ README の冒頭に、末尾のデザインドキュメント節への導線を追加
- 各パッケージに CLAUDE.md / AGENTS.md を同梱(files フィールド未指定のため
  publish に自動で含まれる)。エージェントがパッケージ内のファイルを読んだ
  瞬間に自動注入され、README のデザインドキュメント節へ誘導する
  (プロジェクト cwd 配下の node_modules で自動注入の発火を実測済み)
- ルート README に、利用側リポジトリの CLAUDE.md へ貼るコピペ用
  スニペットを記載した「AI エージェントと使う場合」節を追加

Co-Authored-By: Claude <noreply@anthropic.com>

@itoh4126 itoh4126 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nio-nio-nio ありがとうございます。
design-doc:start マーカーで使われる変換スクリプトは含めないんですかね?

Comment thread packages/textfield/README.md Outdated
<tr>
<th>Negative</th>
<td><code>.-color-negative</code></td>
<td>Pepper Red (#c25d5d)</td>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これはpepperのredにない値ですね(今回がというより元のページもそうなっていたのでそれを持ってきたのだろうと思われますが)、
元のページにはカラーコードはないのでカラーコードは無くてもよいのではないでしょうか…(flavor tokenごとに違いますし)

Comment thread packages/snackbar/README.md Outdated
Comment on lines +71 to +72
```
</div>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

フェンス閉じた後にdiv要素が記述されててレンダリング崩れるはずなので逆にしましょう!

Comment thread packages/snackbar/README.md Outdated
>
<span class="in-icon" data-icon="check" />
<span>Neutral</span>
<div class='trailing'>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<div class='trailing'>
<div class='_trailing'>

のはず…(他にも同様のtypoがありました)

Comment thread packages/app-bar/AGENTS.md Outdated

このコンポーネントを使った UI の実装・変更を行う前に、同ディレクトリの README.md 末尾にある「デザインドキュメント (Design Documentation)」節を必ず読むこと。コンポーネントの使い分け・バリエーション・ステート・アクセシビリティ・ライティングの規約が全文記載されている(https://design.pepabo.com/inhouse/components/app-bar/ からの転載)。

SCSS mixin の使い方(`style($options)` によるエイリアシング等)は README.md 冒頭の Usage 節を参照。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

全体的に、README冒頭のUsageにscss mixinベースの使い方が書かれていないので実態と違った記述になってました。この文章は無くてもいいのではないでしょうか(READMEを参照せよという旨は先の段落で示せているし)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

いや、buttonだけはUsageにmixinの使い方が書いてありました(が、これはこれで実装セクションと内容的な重複にも捉えられるのでどちらかへ集約するのが良いけれども)

kunio-terada and others added 5 commits August 3, 2026 15:14
レビュー指摘(#101)への対応。

- 全32パッケージの CLAUDE.md / AGENTS.md から「SCSS mixin の使い方は
  README.md 冒頭の Usage 節を参照」の段落を削除。Usage 節に mixin の
  説明があるのは button のみで、他31パッケージでは実態と不一致だった
- button の README から、デザインドキュメント「実装」節と重複する
  style($options) の使用例コードブロックを削除し、実装節へのアンカーに
  置き換え。skeleton-style / style-with-variants の説明はここにしか
  ないため保持

Co-Authored-By: Claude <noreply@anthropic.com>
design.pepabo.com からの転載時、Trailing 節のデモ HTML の閉じ </div> が
コードフェンスの外に出てレンダリングが崩れていたため、フェンス内に移動。
全32パッケージを走査し、同様の崩れは他にないことを確認済み。
再生成時に再発しうるため、原本 mdx または変換スクリプト側の確認が必要。

Co-Authored-By: Claude <noreply@anthropic.com>
レビュー指摘(#101 r3701299651)への対応。

要素クラスは `_trailing`(アンダースコア付き)が正しい:
- packages/snackbar/_mixins.scss が `._trailing { margin-left: auto; }` を定義
- stories-web/src/components/Snackbar.tsx も `_trailing` を使用
- Mixin-based(エイリアシング)でも、独自名を付けるのはルート要素だけで
  内部の要素クラスは `_` を維持するのが規約(app-bar / card の例も同様)

- `class='trailing'` 5箇所を `_trailing` に修正
- Mixin-based の SCSS 例から `> .trailing { margin-left: auto; }` を削除。
  typo を補うための手書きルールで、`_trailing` に直すと mixin が同じ宣言を
  出力するため不要になる
- Color / Inline 節のコードフェンスが途中で閉じ、2例目以降が生 HTML として
  流出していたのを修正(原本の code-preview ラッパーの変換漏れ)。
  正しく変換されている card README と同じ形(1ブロック1フェンス、
  <br /> はフェンス内)に揃えた

原本の design.pepabo.com 側 snackbar.mdx にも同じ typo があるため別途修正する。

Co-Authored-By: Claude <noreply@anthropic.com>
design.pepabo.comの原本にはカラーコードの記載がなく、flavor tokenごとに
値が異なるため、flavor名のみの記載に修正した。

Co-Authored-By: Claude <noreply@anthropic.com>
レビュー指摘(#101)への対応。

start/endマーカーは「自動転載。手動編集しないでください」と記載していたが、
転載を行う変換スクリプトはリポジトリに存在せず、CIにも同期ジョブがない。
そのため design.pepabo.com の更新に追従する手段がなく、修正する唯一の手段
である手動編集をマーカー自身が禁じている状態だった(本PRのカラーコード
削除もこの禁止に反する編集だった)。

実態に合わせて「design.pepabo.com からの転載。更新は手動」に変更する。
start/endマーカー自体は、将来スクリプト化する際の領域指定として残す。

Co-Authored-By: Claude <noreply@anthropic.com>
kunio-terada and others added 4 commits August 5, 2026 20:13
全32パッケージで原本を「design.pepabo.com リポジトリの
src/pages/inhouse/components/<name>.mdx」と記載していたが、このパスの
存在を確認できなかった。pepabo/design.pepabo.com は main / test の
どちらのブランチも直下がビルド成果物のみで src/ が存在せず、org 内を
コード検索してもヒットしない。

実際に参照できる原典は公開ページなので、そちらを指すよう修正する。
差し替えた32本のURLはいずれもHTTP 200を確認済み。

Co-Authored-By: Claude <noreply@anthropic.com>
#101 の説明で「変換スクリプトを再実行すると該当セクションだけが差し替わる」
と書いていたが、実際にはスクリプトが無く手作業で転載していた。レビュー指摘
(#101)への対応として実装する。

design.pepabo.com リポジトリの src/pages/inhouse/components/<name>.mdx を
入力に、各パッケージ README の design-doc マーカー間を冪等に差し替える。
mdx は Astro 依存のため以下の変換をかける。

- frontmatter / import / export const components / <script> を除去
- <div class="code-preview"> → ```html コードブロック化。閉じタグは列0の
  </div> と1:1対応しないため、div の深さを数えて対応を取る
- <ColorPreview color="..." /> を除去し flavor 名のみ残す。カラーコードは
  flavor token ごとに変わるため README に固定値を書かない(1f93bee の再発防止)
- <span class="element-mark">A</span>Foo → A. Foo(1見出しに複数並ぶ場合も対応)
- <span class="note-default">*</span> → *
- <a href target=_blank> → markdown リンク、相対パスは絶対URL化
- <img src="/..."> はコード例をそのまま動かせるようフェンス内も絶対URL化
- 見出しを1段下げて README の階層に整合(フェンス内は除外)

現在の32パッケージの README に対して差分ゼロ(バイト一致)を確認済み。
冪等性、および --check が差分なしで exit 0 になることも確認した。

原典パスは --source または DESIGN_DOC_SRC で指定する。原典は社内 GHE
(git.pepabo.com)側にあり、github.com の pepabo/design.pepabo.com は
公開ビルド成果物のみのため参照できない。

Refs #102

Co-Authored-By: Claude <noreply@anthropic.com>
6e2f0c1 では変換スクリプトが存在しなかったため「更新は手動」としていたが、
94b865d でスクリプトを追加したので、再生成の手段を指す文言に変更する。

CI での自動同期はまだ無いので実行自体は手動だが、読み手が「どうやって
更新するか」に辿れる方が有用なため、スクリプトのパスを示す。

文言はスクリプト内の START_MARKER 定数で管理しており、32パッケージへの
反映は npm run sync:design-docs で行った(差分はマーカー行のみ)。

Co-Authored-By: Claude <noreply@anthropic.com>
@nio-nio-nio

nio-nio-nio commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

@itoh4126 コメントありがとうございます!
マーカーだけ置いてスクリプトを含めていませんでした(転載は手作業でした)。
94b865d で scripts/sync_design_docs.mjs としてスクリプトを追加し、npm run sync:design-docs で再生成できるようにしました。

現在の32パッケージの README に対して実行し、差分ゼロ(バイト一致)を確認しています。
原典は社内GHE側の mdx を --source で渡す形です。

カラーコードの件は の prop をテキストに出していたのが原因だったので、スクリプトでは flavor 名のみを出力するようにしました。

@nio-nio-nio
nio-nio-nio requested a review from itoh4126 August 7, 2026 02:44
@nio-nio-nio nio-nio-nio changed the title 各パッケージのREADMEにdesign.pepabo.comのコンポーネントドキュメントを転載 各パッケージのREADMEにコンポーネントドキュメントを転載 Aug 11, 2026
kunio-terada and others added 2 commits August 11, 2026 12:42
このリポジトリはオープンソースであるため、同梱するデザイン
ドキュメントから公開範囲外のドメインへの言及とリンクを取り除く。

- コンポーネント間のリンクは、このリポジトリ内の各パッケージ
  README への相対リンク(../<slug>/README.md)に置き換える。
  対応パッケージが無いリンクはリンク解除してテキストのみ残す
- ドキュメント内の画像埋め込みは除去する。画像の除去で空になった
  ギャラリー用 div とその直前のラベル行もあわせて取り除く
  (コードフェンス内の <img> 例は相対パスのまま残す)
- 「〜からの転載」「原本: 〜」といった出所の記述を、内容の説明と
  再生成手段(scripts/sync_design_docs.mjs)の案内に置き換える
- 変換スクリプト・ルート README・各 CLAUDE.md / AGENTS.md の
  文言からも同様に除去する

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
デザインドキュメントの生成・同期はドキュメントのソース側で管理する
ことにし、このリポジトリからはスクリプトと npm scripts のエントリを
削除する。生成物のマーカー・注記もスクリプトパスに依存しない文言に
更新した。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@nio-nio-nio nio-nio-nio changed the title 各パッケージのREADMEにコンポーネントドキュメントを転載 各パッケージのREADMEにコンポーネントのデザインドキュメントを同梱 Aug 11, 2026
@nio-nio-nio
nio-nio-nio marked this pull request as ready for review August 12, 2026 07:36
@nio-nio-nio
nio-nio-nio requested a review from a team as a code owner August 12, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants