license-comply
Millal kasutada
- Pythoni projekti sõltuvuste litsentsivastavuse auditeerimine
- Litsentsiriski aruannete genereerimine juriidilise/inseneriülevaate jaoks
- CI/CD integratsioon automatiseeritud litsentsikontrollideks
- Kolmanda osapoole teegi litsentsitingimuste ülevaatus enne kasutuselevõttu
- Tarkvara materjalide loendi (SBOM) loomine vastavuseks
Auditoorium ja töö kuju
Auditoorium: mittejuristidest insenerid, kes käitavad CI-väravaga sõltuvusskaneeringut, ning ettevõttesisene counsel / open-source ülevaatefunktsioon, kellele need insenerid eskaleerivad. Ei ole mõeldud iseseisvaks clearance’i tööriistaks insenerimeeskondadele ilma counsel-in-the-loop’ita märgitud leidude puhul.
Töö kuju: Pattern-Matched Review litsentsituvastuseks (litsentsistring -> SPDX -> poliitikarida). Funktsioonid „AI executive summary“ ja „plain-English explanations“ on nõuandev raamistik, mitte hinnangutöö, ning neid ei tohi käsitleda õigusnõustamisena ega counsel’i ülevaate asendajana.
Ulatus ja õiguslik kasutus
See oskus pakub õiguslikku tuge, mitte õigusnõustamist. Klassifikatsioon „low risk“ tähendab „tuvastatud SPDX identifikaator on seadistatud allow-list’is“ — see ei tähenda „see sõltuvus on ohutu sinu tootesse saata“, „see litsents on ühilduv ülejäänud stack’iga“ ega „sinu selle koodi kasutus on vastavuses“.
Kolm õiguslikku ebaõnnestumise režiimi, mida see oskus selgelt käsitleb:
- Õigusnõustamine vs. õiguslik tugi. Aruanne on nõuandev. Riskiridad, remediation’i tekst, plain-English selgitused ja valikuline AI executive summary on tuvastamise väljund, mitte õiguslikud järeldused. Need ei ole õigusnõustamine ega tohi juhtkonnale ringelda kui clearance.
- Privilege’i mõjud. CI-genereeritud aruanded on vaikimisi discoverable artefaktid. Kui counsel soovib, et manuaalse ülevaate kiht jääks privilege’i sisse, peab counsel ise aruande privilege’i alla märgistama; CLI käitamine CI-s ei loo work product’it. Käsitle tooreid CI artefakte mitte-privileged’ina.
- Vastutuslüngad. Tööriist on CI-väravaga ja suunatud mittejuristidest inseneridele. Ilma selge väravata saab insener merge’da litsentsirikkumise vastu ilma juriidilise ülevaatuseta — lipp
--fail-on=high väljub mitte-nulliga, aga seda saab CI seadistuses vaikselt mööda minna, ning AI executive summary laseb juhtkonnal tarbida litsentsipostuuri ilma counsel’ita loop’is. Enne Medium või High lipuga muudatuste merge’imist on nõutav kvalifitseeritud open-source / IP counsel’i ülevaatus. CI värav ei asenda seda ülevaadet.
Kuidas see töötab
Põhifunktsionaalsus
Skaneerib Pythoni projekte sõltuvuste litsentsiriskide suhtes, kasutades kohandatavat poliitikamootorit.
Funktsioonid
- Riskihinnangud — Klassifitseerib litsentsid low/medium/high risk’iks (kriteeriumid ja nõutav tegevus allpool Confidence Bands’is)
- Plain-English selgitused — Mittejuristid saavad leidudest aru (nõuandev; mitte õigusnõustamine)
- Remediation’i sammud — Tegutsetav juhend iga märgitud probleemi jaoks (nõuandev; Medium/High puhul on counsel’i ülevaatus endiselt nõutav)
- Mitmed väljundiformaadid — JSON, CSV, HTML, Markdown
- CI integratsioon — GitHub Actions, GitLab CI, pre-commit hooks
- AI executive summary — Valikuline LLM-põhine ülevaade juhtkonnale (nõuandev; selgelt mitte õigusnõustamine; ei tohi ringelda kui clearance)
Installatsioon
pip install license-comply
Kasutus
# Scan current directory
license-comply scan .
# CI mode (exit non-zero on violations)
license-comply scan . --fail-on=high
# Generate HTML report
license-comply scan . --format=html --output=report.html
# Custom policy
license-comply scan . --policy=/path/to/policy.yaml
Poliitikamootor
Määra oma organisatsiooni litsentsipoliitika:
allowed_licenses:
- MIT
- Apache-2.0
- BSD-3-Clause
restricted_licenses:
- AGPL-3.0
- CC-BY-NC-4.0
flagged_licenses:
- GPL-2.0: "Consult legal before use"
Kindlustasemed
- Low — tuvastatud SPDX identifikaator vastab seadistatud allow-list’ile puhtalt. Insener võib selle sõltuvuse puhul jätkata ilma counsel’i ülevaatuseta. (Endiselt kehtib meeskonnapoliitika üldine counsel’i ülevaatus uutele sõltuvustele.)
- Medium — litsents tuvastatud reservatsioonidega (ebaselge SPDX string, ebatavaline klauslivariant, dual-license deklaratsioon, kus üks valik on allow-list’is ja teine mitte, või litsents
flagged_licenses poliitikakorvis). Enne merge’imist on counsel’i ülevaatus nõutav. Ära toetu plain-English selgitusele kui clearance’ile.
- High — viral copyleft (GPL/AGPL perekond) tuvastatud proprietary sihtmärgi vastu, restricted-license tabamus, commercial-use piirang või mis tahes poliitika
--fail-on=high päästik. Enne merge’imist on counsel’i ülevaatus nõutav. Eskaleeri. CI väravat ei tohi mööda minna.
- Unknown / Review — litsentsistring tuvastamatu, puuduv, kohandatud või puudub SPDX nimekirjast. Ära esita kui
low. Enne merge’imist on counsel’i ülevaatus nõutav. Eskaleeri.
Väljund on nõuandev, mitte õigusnõustamine, olenemata reast.
Ulatusest väljas
- Ainult Pythoni projektid (pip/requirements.txt/pyproject.toml). Ei kata mitte-Pythoni sõltuvusi konteinerites, süsteemipakettides ega vendored binaarides.
- Ei hinda litsentside ühilduvust sõltuvuste vahel, ainult sõltuvuse kohta klassifikatsiooni sinu poliitika vastu.
- Ei kata patent grants’e, contributor license agreement (CLA) lünki, kaubamärki, eksportkontrolli ega lõppkasutaja litsentsitingimusi.
- Ei tuvasta litsentsi triivi sama paketi versioonide vahel — skaneeri uuesti iga sõltuvuse bump’i peale.
- Ei ole open-source clearance, OSS-program-office sign-off ega ükski õigusliku arvamuse vorm.
- Kui tabad ulatusest väljas oleva juhtumi, suuna counsel’ile, mitte ära käsitle leiu puudumist rohelise tulega.
Eskalatsioon
Peatu, ära merge’i ja suuna kvalifitseeritud open-source / IP counsel’ile, kui:
- mis tahes leid on klassifitseeritud Medium või High;
- mis tahes GPL / LGPL / AGPL contamination on tuvastatud proprietary või closed-source sihtmärgi vastu (kas otsene või transititiivne);
- dual-license konfliktid on tuvastatud (nt üks valik allow-list’is, teine mitte; või ebaselge, milline litsents kehtib);
- tundmatud, kohandatud või mitte-SPDX litsentsid ilmuvad aruandes;
- litsentsituvastus ebaõnnestub või tagastab „unknown“;
- CI
--fail-on värav käivitub;
- kasutaja valmistub AI executive summary’t või mis tahes aruande artefakti juhtkonnale clearance’ina ringele saatma.
Eskaleerimisel lisa: paketi nimi, version pin, tuvastatud litsentsitekst, dependency-graph’i asukoht (otsene vs. transititiivne, parent package) ja paketi äriline kasutus.
Piirangud
- Ainult Pythoni projektid (pip/requirements.txt/pyproject.toml)
- Ei kata mitte-Pythoni sõltuvusi konteinerites
- Ainult litsentsituvastus — ei õigusnõustamist
QA remediation (LegalQuants, 2026-05)
Algne autor: Sam Clearwater. LegalQuants remediaeris selle oskuse 2026-05 Legal Skill Design Framework’i vastu, käsitledes kolme õiguslikku ebaõnnestumise režiimi (õigusnõustamine vs. õiguslik tugi, privilege’i mõjud, vastutuslüngad), lisades selged auditooriumi / töö kuju / kindlustaseme / ulatusest väljas / eskalatsiooni jaotised ning sisestades selge „kvalifitseeritud open-source / IP counsel’i ülevaatus nõutav enne Medium või High leidude merge’imist“ värava, et sulgeda vastutuslüngad mittejuristidest inseneridele, kes käitavad CI tööriista. Tehniline sisu (installatsioon, kasutus, poliitikamootor) on muutmata. Väljund jääb nõuandev, mitte õigusnõustamine.