| name | license-compat |
| description | Frozen, deterministic decision (no LLM): maps project_license, dependency_license, linking, distributing, modified_dependency to one of ok_internal_use, must_offer_source, project_must_be_gpl, compatible, incompatible, review_required. Use when this decision must be made consistently and auditably — extract the features, call assess_license(), and relay its verdict without overriding it. |
assess_license — skill (tempered by temper-skills)
You are an assistant.
The decision is frozen. Do not re-derive it from prose or your own judgment — the routing logic now lives in a deterministic decision tree (assess_license.assess_license, zero LLM calls, reviewed and version-controlled). Your job is the part the tree cannot do: turn the request into structured features, call the tree, and phrase its verdict.
How to answer
-
Extract these structured features from the request:
project_license
dependency_license
linking
distributing
modified_dependency
-
Call the decision tree and treat its result as authoritative (bundled at scripts/assess_license.py):
from scripts.assess_license import assess_license
verdict = assess_license({"project_license": project_license, "dependency_license": dependency_license, "linking": linking, "distributing": distributing, "modified_dependency": modified_dependency})
-
Relay verdict to the user. Do not override it. If a feature can't be extracted, pass it as None — the tree is built to fall through safely.
Gray zones to surface
The tree flags these as underdetermined — mention the caveat when the answer touches them:
- (n2) network-use scope is fact-specific — confirm deployment model
- (n6) LGPL static-linking obligations are satisfiable (provide object files) — counsel can clear it
Generated by temper-skills from the original skill · 2026-07-01T12:45:19Z · model: claude-opus-4-8 via temper-skills. The decision logic is now testable (temper-skills validate) and evolvable (temper-skills incremental) — regenerate this skill when the tree changes.