security について
Bun、npm、pnpm、uv の依存ポリシーを設定する開発者向けのセキュリティスキルです。実際に使われているパッケージマネージャーに合わせて公開後7日間の成熟期間を設定し、無関係な設定は保持します。
主な機能
- 01公開後7日間の成熟期間を設定
- 02リポジトリで使うパッケージマネージャーを特定
- 03関連する設定ファイルのみ更新
- 04既存の形式と無関係な設定を保持
- 05公開年齢制限の適用範囲を説明
活用シーン
- 01Bun プロジェクトの成熟期間設定
- 02npm または pnpm リポジトリのチーム方針設定
- 03uv で新しい PyPI パッケージの解決を制限
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ keejkrej/ based-skills --skill securityインストール後、Claude Code で/securityを入力して読み込まれたか確認します。
詳細
セキュリティ:リリースからの最低経過期間
デフォルトで、レジストリパッケージに7日間の成熟期間を適用します。
定数
- 7日間を使用します。
- 必要に応じて換算します:
7日 =10080分 =604800秒。 - リポジトリで実際に使用しているパッケージマネージャーのみ追加します。
- 認証トークンやシークレットをコミット済みの設定に含めないでください。
設定
| ツール | ファイル | キー | 7日間の値 |
|---|---|---|---|
| Bun | bunfig.toml [install] | minimumReleaseAge | 604800 |
| npm | .npmrc | min-release-age | 7 |
| pnpm | pnpm-workspace.yaml | minimumReleaseAge | 10080 |
| uv | pyproject.toml [tool.uv] または uv.toml | exclude-newer | "7 days" |
Bun
- ルートに
bunfig.tomlを追加するか、既存のファイルを更新します。 - 限定的な例外にのみ
minimumReleaseAgeExcludesを使用します。
[install]
minimumReleaseAge = 604800
ドキュメント:https://bun.sh/docs/runtime/bunfig#installminimumreleaseage
npm
- チームのポリシーとして、プロジェクトレベルの
.npmrcを追加します。 min-release-ageとbeforeを併用しないでください。- 限定的かつ正当な理由のあるパッケージにのみ除外を使用します。
min-release-age=7
ドキュメント:https://docs.npmjs.com/cli/using-npm/config#min-release-age
pnpm
- pnpm 11.x では、認証以外の設定を
pnpm-workspace.yamlに記述します。 - ワークスペースファイルがない場合は、最小限のファイルを追加して、現在のパッケージを含めます。
- 内部スコープなどの限定的な例外にのみ
minimumReleaseAgeExcludeを使用します。 - 古い pnpm のリポジトリでは、アップグレード時に古い
.npmrcの経過期間設定を移行します。
minimumReleaseAge: 10080
ドキュメント:https://pnpm.io/settings#minimumreleaseage
uv
- PyPI の依存関係解決に
exclude-newerを設定します。 - 読みやすさを優先して
"7 days"を使用します。 - パッケージごとの限定的な上書きにのみ
exclude-newer-packageを使用します。
[tool.uv]
exclude-newer = "7 days"
exclude-newer = "7 days"
ドキュメント:https://docs.astral.sh/uv/reference/settings/#exclude-newer
ワークフロー
- ロックファイルと設定からパッケージマネージャーを検出します:
bun.lock、bunfig.toml、package.json、その他のロックファイル、pnpm-workspace.yaml、pyproject.toml、uv.toml。 - 関連するファイルのみ更新します。
- 既存の書式と無関係な設定を維持します。
- ポリシーの変更後、通常のインストール、同期、またはロックコマンドを実行します。
- 依存関係の解決に失敗した場合は、バージョン範囲を狭める、成熟するまで待つ、または限定的な除外を追加します。
- 適切な場合は、PR の説明またはコントリビューター向けドキュメントに7日間のポリシーを記載します。
制限事項
- 経過期間による制限は多層防御の一つとして使用し、ロックファイルのレビュー、スクリプトの制限、プライベートレジストリの管理、シークレットスキャンの代替にはしないでください。
- Git、tarball、パス、またはプライベートレジストリの依存関係を使用する場合は、アップストリームの動作を確認してください。
コメント
Markdown 対応