Agent Skills by ALSEL
OpenAIセキュリティ⭐ リポ 0品質スコア 70/100

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 を使用

詳細な知識: 技術 spdxmcp__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-checkerhttps://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 IDOSIFSF
MIT ライセンスMIT
Apache 2.0Apache-2.0
BSD 3-ClauseBSD-3-Clause
ISC ライセンスISC
GPL 3.0GPL-3.0-only
GPL 3.0+GPL-3.0-or-later
LGPL 3.0LGPL-3.0-only
MPL 2.0MPL-2.0
AGPL 3.0AGPL-3.0-only
UnlicenseUnlicense

互換性マトリックス

入力 → 出力

プロジェクトのライセンス含められるライセンス
MITMIT, BSD, ISC, Unlicense, CC0
Apache-2.0MIT, BSD, ISC, Apache-2.0, Unlicense
LGPL-3.0MIT, BSD, ISC, Apache-2.0, LGPL, GPL(ライブラリとして)
GPL-3.0ほとんどのライセンス(出力は GPL である必要があります)
プロプライエタリMIT, BSD, ISC, Apache-2.0(表示要件を確認)

非互換性

ライセンス A非互換
GPL-2.0-onlyApache-2.0(特許条項の競合)
GPL-3.0GPL-2.0-only
AGPL-3.0プロプライエタリ SaaS(ネットワーク条項)
SSPL-1.0OSI 未認定、制限付き使用

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.0UI での表示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/ にコピー

関連スキル

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
d-subrahmanyam
リポジトリ
d-subrahmanyam/deno-fresh-microservices
ライセンス
MIT
最終更新
2026/3/24

Source: https://github.com/d-subrahmanyam/deno-fresh-microservices / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: d-subrahmanyam · d-subrahmanyam/deno-fresh-microservices · ライセンス: MIT