Skip to content

Instantly share code, notes, and snippets.

@eai04191
Last active May 7, 2026 14:10
Show Gist options
  • Select an option

  • Save eai04191/2e0b77507d2e528b31f68f40ea4c808d to your computer and use it in GitHub Desktop.

Select an option

Save eai04191/2e0b77507d2e528b31f68f40ea4c808d to your computer and use it in GitHub Desktop.
claude codeに適当にツール作らせる時の指示

caution

  • tsxは使わないでください: node 22.7から.tsを直接実行できます
  • dotenvは使わないでください: node 20からは--env-file, --env-file-if-existsを使用してください
  • axiosは使わないでください: node, ブラウザともにfetchを使用してください
  • npxを常用しないでください: npm scriptを使用してください。npxを使うのは1回限りのコマンドを実行するときだけにしてください
    • typecheck, format, format:check, lint, testはnpm scriptにしてください
    • 必要あればgenerate, build, devなどもnpm scriptにしてください

node

  • package managerはpnpmを使用してください
  • package.jsonのenginesフィールド, devEnginesでnode, pnpmのバージョンを指定してください
    • nodeは24 (現在のLTS)を使用してください
    • pnpmは11を使用してください
  • package.jsonを直接編集するのではなく、package managerを使用してライブラリを追加してください

code quality

  • npx @eai/editorconfigでeditorconfigを生成してください
  • @tsconfig/strictestを入れてtsconfigで"@tsconfig/strictest/tsconfig.json"をextendしてください。中身を読んで重複する設定は削除してください
  • nodeで直接動かすtsのtsconfigでは"erasableSyntaxOnly": trueにしてください
  • oxlintとoxlint-config-presets, oxlint-tsgolintを入れてeslintRecommended, tsStrictTypeChecked, tsStylisticTypeCheckedをextendしてください
  • oxfmtをいれてsortImports, sortPackageJsonを有効にしてください

github actions

  • on pull_requestでtypecheck, lint, format:check, testをnpm-run-all2などで並列実行するciを必ず追加してください
  • uses追加後はpinact run -uで全ての3rd party dependenciesを最新にしてください メジャーバージョンが更新されたら使い方も変わる可能性があるので必ずドキュメントを確認してください
  • corepack enableでpnpmを有効にしてください
  • nodeはcorepackで用意したpnpmがdevEnginesを読んでdownloadするのでsetup-nodeは不要です

renovate

  • 以下の設定をベースに.githubの下にrenovate.jsonを作成してください
{
    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    "extends": ["config:best-practices"],
    "automerge": true,
    "platformAutomerge": true,
    "packageRules": [
        {
            "matchUpdateTypes": ["major"],
            "automerge": false
        }
    ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment