notice-generate

Generate NOTICE attribution files for model, JS, Python, and C++ dependencies across a monorepo.

Updated May 11, 2026
One-click install
npx skills add https://github.com/thachrocky12345/local-agent-train-workstation --skill notice-generate-thachrocky12345
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: notice-generate
Source: https://github.com/thachrocky12345/local-agent-train-workstation/tree/main/qvac/.cursor/skills/notice-generate
Command: npx skills add https://github.com/thachrocky12345/local-agent-train-workstation --skill notice-generate-thachrocky12345

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires license-checker, pip-licenses, and includes scripts (resource) components.

What problem does it solve? Keeping third-party license attributions accurate across a large monorepo is tedious and error-prone. This Skill automates the generation of deterministic, sorted NOTICE files covering model, JavaScript, Python, and C++ dependencies for every package. ## Core Features & Use Cases - NOTICE Generation: Scans npm dependencies via license-checker, Python deps via pip-licenses, C++ deps via vcpkg portfiles and the GitHub API, and model attributions from models.prod.json, then writes per-package NOTICE files. - License Compliance Checking: Validates all discovered licenses against a configurable SPDX allowlist and writes FORBIDDEN_LICENSES.txt when violations are found. - License Overview Reports: Aggregates existing NOTICE files into NOTICE_FULL_REPORT.txt with global license distribution and per-package breakdowns. - Use Case: Before a release, run the generator with --all to refresh every package's NOTICE file, then review the diff and commit manually. ## Quick Start Ask the assistant to generate NOTICE files for all packages in the monorepo, or for a specific package such as sdk.

Frequently Asked Questions about notice-generate

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate NOTICE files for all packages in a monorepo?▼

Source the .env file with GH_TOKEN, HF_TOKEN, and NPM_TOKEN, then run generate-notice.js with the --all flag. It scans models, JS, Python, and C++ dependencies and writes a sorted NOTICE file into each package directory.

How do I check dependencies for disallowed licenses?▼

Run check-forbidden-licenses.js with --all to compare every dependency license against the ALLOWED_LICENSES allowlist in constants.js. License strings are normalized to canonical SPDX ids, and violations are written to FORBIDDEN_LICENSES.txt with exit code 1.

Can I preview NOTICE generation without writing files?▼

Yes, pass the --dry-run flag to generate-notice.js or check-forbidden-licenses.js. All scans run fully, but NOTICE content is printed to the console and no files are written to disk.

What dependency types does the NOTICE generator scan?▼

It scans four types: model attributions from models.prod.json, production npm dependencies via license-checker, Python dependencies via pip-licenses in a temporary virtualenv, and C++ vcpkg dependencies resolved through GitHub API portfile parsing.

Why does the NOTICE generator fail with missing environment variables?▼

The scripts require GH_TOKEN for GitHub API access, NPM_TOKEN for private npm registries, and HF_TOKEN for model license verification. Source the .env file before running, or the scripts exit with an error listing the missing variables.