# License Compat

> 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.

- Skill: `cyrillemat/license-compat` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add cyrillemat/license-compat`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cyrillemat/license-compat/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: CyrilLeMat (https://skillmd.com/u/cyrillemat)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cyrillemat/license-compat

---


# 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

1. Extract these structured features from the request:
   - `project_license`
   - `dependency_license`
   - `linking`
   - `distributing`
   - `modified_dependency`
2. Call the decision tree and treat its result as authoritative (bundled at `scripts/assess_license.py`):

   ```python
   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})
   ```
3. 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.

