This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
D-ZERO 株式会社の共有 TypeScript 設定パッケージ (@d-zero/tsconfig)。@tsconfig/recommended、@tsconfig/strictest、@tsconfig/node-lts をベースに、Node.js / フロントエンド共通の tsconfig.json を提供する。npm パッケージとして公開される(シングルパッケージ)。
作業前に以下のファイルを確認し、プロジェクトの状態を把握すること:
package.json—dependencies(@tsconfig/* のベース構成)、scripts、Volta(Node 24 / Yarn 4)tsconfig.json— 公開対象の TypeScript 設定(filesに列挙)README.md— パッケージ概要
yarn lint—prettier --write *.{md,json}(フォーマット)yarn release:major/release:minor/release:patch/release:alpha/release:beta/release:rc—npm versionのみ実行(tag push で publish.yml が npm publish を行う)yarn update—yarn upgrade-interactive
- yarn のみ使用: npm / pnpm / bun / deno によるコマンド実行は禁止(
yarn release:*の中でnpm versionを呼ぶのは規定の挙動) - コマンドの連続実行禁止:
&&、;、改行によるコマンド連結をしない。1回の Bash 呼び出しで1コマンドのみ実行する。連結されたコマンドは settings.json の permissions allow/deny でパターンマッチできず、毎回ユーザーの手動承認が必要になり効率が大幅に低下する
package.json の files フィールドで tsconfig.json のみを公開している。新規ファイルを公開対象に追加する場合は files を更新すること。
情報は置き場で役割が決まる。コミットログには Why、コメントには Why not(Why が必要なときは Why も書く)。
- 計画相対概念の禁止: 実装計画に由来する相対概念(Phase/Step 番号、「本 PR」「今回」「旧実装」「導入予定」)を README・ドキュメントに書かない。現在の挙動と意図的な不在(Why not)として自己完結に書く。外部参照は issue / PR 番号のみ可
- ドキュメントと実装の矛盾:
tsconfig.jsonの実際の設定が正としてドキュメントを直す
.env、.env.*等の機密ファイルを読み取り・編集・コミットしない(機密ファイルの判断は.gitignoreを参考にすること)- コミット前に
git diff --stagedで機密情報(API キー、トークン、パスワード、企業名、顧客情報)が含まれていないか確認する - 環境変数やシークレットをコード内にハードコードしない
- yarn dlx は完全禁止: ローカルパッケージを使わずリモートから直接実行するため、サプライチェーン攻撃に脆弱
- npx は原則使わない: package.json の scripts で定義されたコマンドを
yarn <script>で実行すること - 新しい依存パッケージの追加は慎重に。既存の依存で解決できないか先に確認する
yarn addする前にパッケージの信頼性(ダウンロード数、メンテナンス状況、既知の脆弱性)を確認するyarn addする場合はバージョンを固定する(例:yarn add foo@1.2.3)- lockfile(yarn.lock)の手動編集は禁止