license-compliance
オープンソースライセンスのコンプライアンスとSPDX標準に対応しています。ライセンスの種類、互換性、license-checkerを用いた監査、SBOMの生成などをカバーします。 【使用する場面】ユーザーが「ライセンス」「SPDX」「GPL」「MIT」「Apache」について言及した場合、または「ライセンス互換性」「license-checker」「コピーレフト」「proprietary対応」「OSI認可」についての質問がある場合 【使用しない場面】依存関係の脆弱性は`supply-chain`を使用、セキュリティスキャンはowasp-top-10を使用、シークレット管理は`secrets-management`を使用してください
description の原文を見る
Open source license compliance and SPDX standards. Covers license types, compatibility, auditing with license-checker, and SBOM generation. USE WHEN: user mentions "license", "SPDX", "GPL", "MIT", "Apache", asks about "license compatibility", "license-checker", "copyleft", "proprietary compliance", "OSI approved" DO NOT USE FOR: dependency vulnerabilities - use `supply-chain`, security scanning - use `owasp-top-10`, secrets - use `secrets-management`
SKILL.md 本文
ライセンスコンプライアンス
このスキルを使用しない場合
- セキュリティ脆弱性 - 依存関係のセキュリティについては
supply-chainスキルを使用 - コード品質の問題 - リント/複雑性については品質スキルを使用
- 依存関係内のシークレット -
secrets-managementスキルを使用 - パッケージの整合性 - SBOM と検証については
supply-chainを使用
詳細な知識: 技術
spdxでmcp__documentation__fetch_docsを使用して包括的なドキュメントを参照してください。
公式リファレンス
| リソース | URL |
|---|---|
| SPDX ライセンスリスト | https://spdx.org/licenses/ |
| SPDX 仕様 | https://spdx.github.io/spdx-spec/ |
| OSI 認定ライセンス | https://opensource.org/licenses/ |
| ライセンスを選択 | https://choosealicense.com/ |
| license-checker | https://www.npmjs.com/package/license-checker-rseidelsohn |
ライセンスカテゴリ
許容度別
| カテゴリ | ライセンス | 商用利用 |
|---|---|---|
| パブリックドメイン | Unlicense, CC0-1.0 | 無制限 |
| 許容的 | MIT, Apache-2.0, BSD-3-Clause, ISC | 許可 |
| 弱いコピーレフト | LGPL-3.0, MPL-2.0, EPL-2.0 | 許可(条件付き) |
| 強いコピーレフト | GPL-3.0, AGPL-3.0 | オープンソース化が必須 |
| ネットワークコピーレフト | AGPL-3.0, SSPL-1.0 | ネットワーク使用時に発動 |
一般的な SPDX 識別子
| ライセンス | SPDX ID | OSI | FSF |
|---|---|---|---|
| MIT ライセンス | MIT | ✓ | ✓ |
| Apache 2.0 | Apache-2.0 | ✓ | ✓ |
| BSD 3-Clause | BSD-3-Clause | ✓ | ✓ |
| ISC ライセンス | ISC | ✓ | ✓ |
| GPL 3.0 | GPL-3.0-only | ✓ | ✓ |
| GPL 3.0+ | GPL-3.0-or-later | ✓ | ✓ |
| LGPL 3.0 | LGPL-3.0-only | ✓ | ✓ |
| MPL 2.0 | MPL-2.0 | ✓ | ✓ |
| AGPL 3.0 | AGPL-3.0-only | ✓ | ✓ |
| Unlicense | Unlicense | ✓ | ✓ |
互換性マトリックス
入力 → 出力
| プロジェクトのライセンス | 含められるライセンス |
|---|---|
| MIT | MIT, BSD, ISC, Unlicense, CC0 |
| Apache-2.0 | MIT, BSD, ISC, Apache-2.0, Unlicense |
| LGPL-3.0 | MIT, BSD, ISC, Apache-2.0, LGPL, GPL(ライブラリとして) |
| GPL-3.0 | ほとんどのライセンス(出力は GPL である必要があります) |
| プロプライエタリ | MIT, BSD, ISC, Apache-2.0(表示要件を確認) |
非互換性
| ライセンス A | 非互換 |
|---|---|
| GPL-2.0-only | Apache-2.0(特許条項の競合) |
| GPL-3.0 | GPL-2.0-only |
| AGPL-3.0 | プロプライエタリ SaaS(ネットワーク条項) |
| SSPL-1.0 | OSI 未認定、制限付き使用 |
NPM ライセンス監査
license-checker
# インストール
npm install -g license-checker-rseidelsohn
# 基本的なスキャン
license-checker
# JSON 出力
license-checker --json > licenses.json
# サマリーのみ
license-checker --summary
# プロダクションのみ
license-checker --production
# dev 依存関係を除外
license-checker --production --json
許可リスト設定
# 特定のライセンスのみを許可
license-checker --onlyAllow "MIT;Apache-2.0;BSD-3-Clause;ISC;0BSD"
# コピーレフトライセンスで失敗
license-checker --failOn "GPL-3.0;AGPL-3.0;GPL-2.0"
# パッケージを除外
license-checker --excludePackages "internal-pkg@1.0.0"
@onebeyond/license-checker
npm install -g @onebeyond/license-checker
# 許可リスト付きでスキャン
npx @onebeyond/license-checker scan --allowOnly MIT Apache-2.0 BSD-3-Clause
# SPDX コンプライアンスをチェック
npx @onebeyond/license-checker check "MIT OR Apache-2.0"
license-compliance
npm install -g license-compliance
# コンプライアンスをチェック
license-compliance --production --allow "MIT;ISC;Apache-2.0"
# レポートを生成
license-compliance --report licenses.csv
SBOM 生成
CycloneDX
# インストール
npm install -g @cyclonedx/cyclonedx-npm
# SBOM を生成
cyclonedx-npm --output-file sbom.json
# 特定の形式
cyclonedx-npm --output-format XML --output-file sbom.xml
# dev 依存関係を含める
cyclonedx-npm --include-dev --output-file sbom.json
SPDX
# Syft を使用
syft . -o spdx-json > sbom-spdx.json
# SBOM を検証
syft validate sbom-spdx.json
package.json 内の SBOM
{
"name": "my-package",
"version": "1.0.0",
"license": "MIT",
"licenses": [
{
"type": "MIT",
"url": "https://opensource.org/licenses/MIT"
}
]
}
CI 統合
GitHub Actions
name: License Compliance
on: [push, pull_request]
jobs:
license-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Check licenses
run: |
npx license-checker-rseidelsohn \
--production \
--onlyAllow "MIT;Apache-2.0;BSD-3-Clause;BSD-2-Clause;ISC;0BSD;Unlicense;CC0-1.0" \
--excludePrivatePackages
- name: Generate SBOM
run: |
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
- name: Upload SBOM
uses: actions/upload-artifact@v4
with:
name: sbom
path: sbom.json
プリコミットフック
// package.json
{
"scripts": {
"license:check": "license-checker --production --onlyAllow 'MIT;Apache-2.0;BSD-3-Clause;ISC'",
"preinstall": "npm run license:check || true"
}
}
ライセンスファイルテンプレート
MIT ライセンス
MIT License
Copyright (c) [year] [fullname]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Apache 2.0 NOTICE
MyProject
Copyright [year] [owner]
This product includes software developed at
[Company Name] (https://www.example.com/).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
表示要件
ライセンスタイプ別
| ライセンス | 要件 |
|---|---|
| MIT | 著作権表示 + ライセンスを含める |
| Apache-2.0 | 著作権表示 + ライセンス + NOTICE(存在する場合) |
| BSD-3-Clause | 著作権表示 + ライセンスを含める |
| LGPL-3.0 | 修正部分のソースを提供 |
| GPL-3.0 | 完全なソースを提供 |
表示の生成
# NOTICES ファイルを生成
license-checker --production --customFormat '{"name": "", "version": "", "license": "", "repository": ""}' \
| jq -r '.[] | "- \(.name)@\(.version) - \(.license)\n \(.repository)\n"' \
> NOTICES.md
NOTICES.md テンプレート
# サードパーティ通知
このプロジェクトには以下のサードパーティソフトウェアが含まれています。
## MIT ライセンス
### lodash (4.17.21)
- リポジトリ: https://github.com/lodash/lodash
- 著作権 (c) JS Foundation and other contributors
### axios (1.6.0)
- リポジトリ: https://github.com/axios/axios
- 著作権 (c) 2014-present Matt Zabriskie
## Apache-2.0 ライセンス
### typescript (5.3.0)
- リポジトリ: https://github.com/microsoft/TypeScript
- 著作権 (c) Microsoft Corporation
リスク評価
高リスク(プロプライエタリでは避ける)
| ライセンス | リスク | 軽減策 |
|---|---|---|
| GPL-3.0 | コピーレフト | LGPL バージョンまたは代替案を使用 |
| AGPL-3.0 | ネットワークコピーレフト | SaaS 製品では避ける |
| SSPL-1.0 | サービス制限 | 代替案を使用(MongoDB) |
| CPAL-1.0 | UI での表示 | UI 要件を確認 |
中リスク(慎重に確認)
| ライセンス | リスク | 軽減策 |
|---|---|---|
| LGPL-3.0 | 動的リンク | 動的リンクを確認 |
| MPL-2.0 | ファイルレベルコピーレフト | 修正部分を分離 |
| EPL-2.0 | 特許付与 | 特許条項を確認 |
低リスク(一般的に安全)
| ライセンス | 注記 |
|---|---|
| MIT | ライセンス/著作権を含める |
| Apache-2.0 | ライセンス + NOTICE を含める |
| BSD-3-Clause | ライセンス/著作権を含める |
| ISC | ライセンス/著作権を含める |
チェックリスト
初期セットアップ
- プロジェクトに適切なライセンスを選択
- LICENSE ファイルをリポジトリに追加
- package.json にライセンスフィールドを追加
- CI で license-checker を設定
継続的なコンプライアンス
- 新しい依存関係を追加する前に監査
- PR レビューで互換性のないライセンスを却下
- リリース用に SBOM を生成
- NOTICES ファイルを維持
- 更新でのライセンス変更を確認
リリース
- ライセンスファイルが配布に含まれている
- サードパーティ通知が生成されている
- SBOM がリリースに添付されている
- コピーレフト違反がない
アンチパターン
| アンチパターン | 問題な理由 | 正しいアプローチ |
|---|---|---|
| 依存関係追加前にライセンスをチェックしない | 法的リスク、コピーレフト違反 | CI で license-checker を使用 |
| プロプライエタリソフトウェアで GPL を使用 | アプリ全体をオープンソース化する必要がある | MIT/Apache または LGPL をライブラリとして使用 |
| 表示用の NOTICES ファイルなし | ライセンス条項に違反 | 依存関係から NOTICES を生成 |
| 更新時のライセンス変更を無視 | 新バージョンが異なるライセンスを使用する可能性 | Dependabot PR でライセンスを確認 |
| ライセンスなしのパッケージを使用 | 不明な法的地位 | 明示的なライセンス付きのパッケージのみを使用 |
| GPL-2.0 と Apache-2.0 を混在させる | 非互換なライセンス | 互換性のあるスタックを選択 |
クイックトラブルシューティング
| 問題 | 原因の可能性 | 解決策 |
|---|---|---|
| license-checker がインストール時に失敗 | package.json のライセンスフィールドが欠落 | "license": "MIT" を package.json に追加 |
| プロプライエタリで GPL 依存関係が見つかった | 推移的な依存関係 | 代替案を見つけるか、別のサービスとして使用 |
| 同じパッケージに複数のライセンス | デュアルライセンス | 互換性のあるライセンスを選択(通常は MIT/Apache) |
| SPDX 検証に失敗 | 無効な SPDX 識別子 | spdx.org/licenses から正確な ID を使用 |
| ライセンス許可リストが厳しすぎる | 一般的なライセンスをブロック | ISC、0BSD を許可リストに追加 |
| 配布にライセンスファイルがない | LICENSE ファイルが欠落 | ビルド時に LICENSE を dist/ にコピー |
関連スキル
サプライチェーンセキュリティGitHub Actions
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- d-subrahmanyam
- ライセンス
- MIT
- 最終更新
- 2026/3/24
Source: https://github.com/d-subrahmanyam/deno-fresh-microservices / ライセンス: MIT
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。