Skip to content

Instantly share code, notes, and snippets.

@hassaku63
Created March 6, 2025 10:49
Show Gist options
  • Save hassaku63/a8dca1e7684b4966230b5c9cf078864b to your computer and use it in GitHub Desktop.
Save hassaku63/a8dca1e7684b4966230b5c9cf078864b to your computer and use it in GitHub Desktop.
example cursorrules (general coding guidance)
## 重要事項
`git status` を使って、現在開いているワークスペースが git で管理されているかどうか確認します。現在の git コンテキストを確認し、もし指示された内容と無関係な変更が多い場合は、現在の変更からユーザーに別のタスクとして開始するように提案をしてください。ユーザーが無視してよいと指示した場合はそのまま続行します。
## セキュリティ
ファイル名に次の規則を持つものは、参照しないでください。
- `*.env`
- `\**/secrets.*`
- `\*.pem`
- Any file containing API keys, tokens, or credentials
これらのパターンに該当するファイルをコミットしないでください。
シークレットは原則として環境変数から取得するものとし、値をハードコードしないでください。
ログや print 文などの外部出力に、シークレットを含めないようにしてください。
ローカルマシンのパスなど、実行環境あるいは開発環境に固有な情報をハードコードしないでください。
## プラクティス
(1) 純粋関数から実装
- 外部依存のない関数を先に
- 対応するテストを書く
(2) 副作用を分離
- I/O
- 時刻を動的に参照する処理
- ランダム値の生成
(3) 構文上のブロックを深くしすぎない
ブロックのネスト構造が深くなりすぎないようにする。
早期リターンの使用や、ネストループをできるだけ回避するように実装します。
循環的複雑度を「深くしすぎない」ことの基準としますが、あくまで参考値としての利用であり、必須で守る必要はありません。ただし、循環的複雑度が高い実装を提案する場合は一度ユーザーに複雑度の値ともに実装を採用するかどうかを尋ねます。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment