This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
D-ZERO 株式会社のフロントエンド開発ガイドラインを公開する VitePress 製の静的ドキュメントサイト(@d-zero/frontend-guidelines)。HTML / CSS / JavaScript / 識別子命名 / Git 運用などのコーディング規約を Markdown で管理し、GitHub Pages で公開する。
作業前に以下のファイルを確認し、プロジェクトの状態を把握すること:
package.json— scripts、Volta(Node 26 / Yarn 4)、packageManagersrc/.vitepress/config.js— VitePress のサイト設定(nav/sidebar)src/— ガイドライン本文(Markdown)。新規ページを追加した場合はconfig.jsのsidebarにも追記すること.github/renovate.json— Renovate 設定
yarn dev— VitePress 開発サーバー起動yarn build— VitePress ビルド(.distに出力)yarn lint— eslint / prettier / textlint / cspell を一括実行yarn release:major/yarn release:minor/yarn release:patch—npm versionでバージョンを更新し tag を作成する(tag push で.github/workflows/static.ymlが GitHub Pages へデプロイする)yarn up—yarn upgrade-interactive --latest
このリポジトリに yarn test は存在しない(.github/workflows/test.yml は lint と build のみを実行する)。
- yarn のみ使用: npm / pnpm / bun / deno によるコマンド実行は禁止(
yarn release:*の内部でnpm versionを呼ぶのは規定の挙動) - コマンドの連続実行禁止:
&&、;、改行によるコマンド連結をしない。1回の Bash 呼び出しで1コマンドのみ実行する。連結されたコマンドは settings.json の permissions allow/deny でパターンマッチできず、毎回ユーザーの手動承認が必要になり効率が大幅に低下する - main / dev ブランチでの作業・コミット禁止: 作業開始前に
git branch --show-currentで現ブランチを確認し、main/devにいる場合はgit switch -c <topic>でトピックブランチを作ってから作業する。PR はdev向けに送る(.github/workflows/test.yml参照)
- バージョンは固定で追加する(
yarn add foo@1.2.3)。^/~を付けない - 追加したら
.github/renovate.jsonのpackageRulesを確認する。そのパッケージが既存のgroupNameグループに入るべきか、新しいグループを作るべきかを判断するconfig:recommendedはgroup:monoreposを含むため、同一 monorepo から公開されるパッケージ群(@vitest/*、@tiptap/*、playwright系など)は設定なしで自動的に束ねられる。手で書く必要はない- 手当てが必要なのは Renovate が推測できないベンダー横断の結合:
- 本体と型定義のペア(
debug+@types/debug)。DefinitelyTyped は別リポジトリで公開されるため自動グループ化されない - peer dependency で結ばれた別ベンダーのパッケージ(
hono+zod+@hono/zod-validator) resolutionsで固定しているパッケージとその利用側- 自前の
@d-zero/*パッケージ群
- 本体と型定義のペア(
- 判断基準は「片方だけバージョンが上がった状態でビルドと型チェックが通るか」。通らないなら同じ
groupNameにまとめる
- グループ化を怠ると、Renovate が個別に PR を作り、片方だけマージされた中間状態で CI が赤になる。結果として両方の PR がマージできなくなる
- グルーピングの現状は
git branch -r --list 'origin/renovate/*'で確認できる。*-monorepoサフィックスのブランチはgroup:monoreposによる自動グループ
| スキル | 用途 |
|---|---|
.claude/skills/git/SKILL.md |
コミット作成ルール |
.claude/skills/grill-me/SKILL.md |
計画・設計の壁打ち |
.claude/skills/pr/SKILL.md |
PR 作成・push |
情報は置き場で役割が決まる。設定ファイル(config.js 等)には How、コミットログには Why、コードコメントには Why not(Why が必要なときは Why も書く)。
- 計画相対概念の禁止: 実装計画に由来する相対概念(Phase/Step 番号、「本 PR」「今回」「旧実装」「導入予定」)をガイドライン本文・コメントに書かない。現在の挙動と意図的な不在(Why not)として自己完結に書く。外部参照は issue / PR 番号のみ可
- ガイドライン本文と実装の矛盾: 参照先の lint 設定(
eslint.config.js等)が正としてガイドライン本文を直す
.env、.env.*等の機密ファイルを読み取り・編集・コミットしない(機密ファイルの判断は.gitignoreを参考にすること)- コミット前に
git diff --stagedで機密情報(API キー、トークン、パスワード、企業名、顧客情報)が含まれていないか確認する - サンプル値は予約済み慣例に従う: ドメインは
example.com/*.example/*.test等(RFC 2606/6761)、IP は TEST-NET。実在の無関係ドメイン、未取得の創作ドメイン、案件識別子、実データ・実コーパスの断片を成果物に残さない(詳細は.claude/skills/git/SKILL.mdのサンプル値慣例チェック) - 環境変数やシークレットをコード内にハードコードしない
- yarn dlx は完全禁止: ローカルパッケージを使わずリモートから直接実行するため、サプライチェーン攻撃に脆弱
- npx は原則使わない: package.json の scripts で定義されたコマンドを
yarn <script>で実行すること - 新しい依存パッケージの追加は慎重に。既存の依存で解決できないか先に確認する
yarn addする前にパッケージの信頼性(ダウンロード数、メンテナンス状況、既知の脆弱性)を確認するyarn addする場合はバージョンを固定する(例:yarn add foo@1.2.3)- lockfile(yarn.lock)の手動編集は禁止