Overview
Enforce open-source-first dependency selection with mandatory live license revalidation at
review time. Historical OSS status is insufficient; verify current licensing via web search
for every dependency selection, upgrade, or review to catch recent licensing changes.
When to Use
- Selecting a new library or tool dependency
- Upgrading any dependency (minor or major version)
- Performing PR, architecture, security, or dependency reviews
- Evaluating alternatives for an existing proprietary or source-available component
- Auditing existing dependencies for license compliance
Core Workflow
- Prefer open-source: Default to OSS libraries over proprietary or source-available alternatives
- Perform live web search: Search for current licensing status (not cached/historical data)
- Verify authoritative sources: Check project homepage, LICENSE file, release notes, issue tracker
- Confirm exact version license: Verify licensing for the specific version being adopted
- Check transitive dependencies: Spot-check critical transitives for license changes
- Document verification: Record license name, verification source(s), and verification date (UTC)
- Gate on missing verification: Reject or defer proposals without complete license documentation
- Flag ambiguity: Mark dependency unapproved if licensing cannot be verified confidently
Core
Policy (non-negotiable)
- Strongly prefer open-source tooling and libraries.
- Prefer established OSS libraries over bespoke scripts/frameworks.
- OSS status is time-sensitive and must be revalidated.
Load: checklists
Mandatory: live license verification (web search)
For every dependency selection/upgrade/review, perform a live web search to confirm:
- the component is still open source today,
- the current license (and any dual-license terms) is acceptable,
- no recent licensing change introduces:
- source-available restrictions,
- field-of-use or non-commercial limitations,
- delayed-open clauses,
- copyleft obligations conflicting with the intended distribution model.
Historical OSS status is insufficient.
Authoritative sources to check (minimum)
- Project homepage / official docs
- Source repository
LICENSE file (and recent commits)
- Release notes / official announcements
- Issue tracker discussions relating to licensing changes
Version-specific licensing
- Verify licensing for the exact version being adopted.
- If pinning to an older OSS version, document:
- rationale,
- maintenance plan,
- security posture and upgrade strategy.
Transitive dependencies
- Spot-check critical transitive dependencies for license changes (especially build-time tools and generators).
Load: enforcement
Hard gate (required)
A dependency proposal/PR/ADR is incomplete without:
- License name
- Verification source(s)
- Verification date (UTC)
Default outcome if missing: reject or defer.
Agent rule: automatic revalidation trigger
When encountering a new library, an upgrade, or a dependency review, the agent must:
- perform a live web search for current licensing,
- flag ambiguity or recent changes,
- mark the dependency unapproved if licensing cannot be verified confidently.
Red Flags - STOP
These statements indicate license governance bypass:
| Thought |
Reality |
| "It was open source last time" |
Licenses change; revalidate with every upgrade |
| "The package name sounds open source" |
Verify the LICENSE file directly; names mislead |
| "Transitive deps don't matter" |
Critical transitives need license checks too |
| "We'll check licensing before release" |
Check at PR time; late discovery is costly |
| "Source-available is the same" |
Source-available often has restrictions; verify terms |
| "Copyleft is fine for internal tools" |
Distribution models matter; understand obligations |
1---2name: dotnet-open-source-first-governance3description: Use when selecting or reviewing .NET dependencies - enforce open-source-first choices with live license revalidation and review-time gating.4---56## Overview78Enforce open-source-first dependency selection with mandatory live license revalidation at9review time. Historical OSS status is insufficient; verify current licensing via web search10for every dependency selection, upgrade, or review to catch recent licensing changes.1112## When to Use1314- Selecting a new library or tool dependency15- Upgrading any dependency (minor or major version)16- Performing PR, architecture, security, or dependency reviews17- Evaluating alternatives for an existing proprietary or source-available component18- Auditing existing dependencies for license compliance1920## Core Workflow21221. **Prefer open-source**: Default to OSS libraries over proprietary or source-available alternatives232. **Perform live web search**: Search for current licensing status (not cached/historical data)243. **Verify authoritative sources**: Check project homepage, LICENSE file, release notes, issue tracker254. **Confirm exact version license**: Verify licensing for the specific version being adopted265. **Check transitive dependencies**: Spot-check critical transitives for license changes276. **Document verification**: Record license name, verification source(s), and verification date (UTC)287. **Gate on missing verification**: Reject or defer proposals without complete license documentation298. **Flag ambiguity**: Mark dependency unapproved if licensing cannot be verified confidently3031## Core3233### Policy (non-negotiable)3435- Strongly prefer **open-source** tooling and libraries.36- Prefer established OSS libraries over bespoke scripts/frameworks.37- OSS status is **time-sensitive** and must be revalidated.3839## Load: checklists4041### Mandatory: live license verification (web search)4243For every dependency selection/upgrade/review, perform a **live web search** to confirm:4445- the component is **still open source** today,46- the **current license** (and any dual-license terms) is acceptable,47- no recent licensing change introduces:48 - source-available restrictions,49 - field-of-use or non-commercial limitations,50 - delayed-open clauses,51 - copyleft obligations conflicting with the intended distribution model.5253**Historical OSS status is insufficient.**5455### Authoritative sources to check (minimum)5657- Project homepage / official docs58- Source repository `LICENSE` file (and recent commits)59- Release notes / official announcements60- Issue tracker discussions relating to licensing changes6162### Version-specific licensing6364- Verify licensing for the **exact version** being adopted.65- If pinning to an older OSS version, document:66 - rationale,67 - maintenance plan,68 - security posture and upgrade strategy.6970### Transitive dependencies7172- Spot-check critical transitive dependencies for license changes (especially build-time tools and generators).7374## Load: enforcement7576### Hard gate (required)7778A dependency proposal/PR/ADR is **incomplete** without:7980- License name81- Verification source(s)82- Verification date (UTC)8384Default outcome if missing: **reject or defer**.8586### Agent rule: automatic revalidation trigger8788When encountering a new library, an upgrade, or a dependency review, the agent must:89901. perform a live web search for current licensing,912. flag ambiguity or recent changes,923. mark the dependency **unapproved** if licensing cannot be verified confidently.9394## Red Flags - STOP9596These statements indicate license governance bypass:9798| Thought | Reality |99| -------------------------------------- | ----------------------------------------------------- |100| "It was open source last time" | Licenses change; revalidate with every upgrade |101| "The package name sounds open source" | Verify the LICENSE file directly; names mislead |102| "Transitive deps don't matter" | Critical transitives need license checks too |103| "We'll check licensing before release" | Check at PR time; late discovery is costly |104| "Source-available is the same" | Source-available often has restrictions; verify terms |105| "Copyleft is fine for internal tools" | Distribution models matter; understand obligations |