Skip to main content

Policy Deliverables Best Practice

These are completed examples of the two deliverables generated by the policy-generator agent. Compare them with your own output/policy/ files to spot missing items.

Go to reference: Open Source Policy Establishment Chapter Guide


Open Source Policy

Document: oss-policy.md

  • Company name: Tech Unicorn
  • Version: 1.0
  • Date written: 2026-03-23
  • Author: DevOps Team Open Source Program Manager
  • Approved by: DevOps team leader
  • Next review date: 2027-03-23
Related Standards
- 5230 §3.1.1.1·§3.1.4.1·§3.1.5.1·§3.5.1.1·§3.5.1.2
- 18974 §4.1.1.1·§4.1.4.1·§4.1.4.2

This policy document is based on the OpenChain KWG open source policy template (§1–11) and ISO/IEC 5230 and 18974. The KWG guide is licensed under CC BY 4.0.


1. Purpose and scope

Related Standards
- 5230 §3.1.1.1
- 18974 §4.1.1.1

This policy sets the standards for Tech Unicorn (the "Company") to use open source software correctly, fulfill license obligations, and manage security vulnerabilities throughout software development and distribution.

Scope of application

Related Standards
- 5230 §3.1.4.1
- 18974 §4.1.4.1

This policy applies to the following scope:

  • Target software: All software developed, distributed, or operated by Tech Unicorn
  • Distribution methods: SaaS, app stores (iOS/Android), embedded (installed on devices), and internal systems
  • Applicable personnel: All members involved in open source use, including developers, managers, and purchasing/procurement staff
  • Exclusions: None

Criteria by distribution channel

Related Standards
- 18974 §4.1.4.2
Distribution channelKey riskCore criteria
SaaSAGPL network obligationsPrior review by the Open Source Program Manager is required before adopting AGPL
App storeConflict between App Store policies and the GPLGPL-family licenses excluded in principle; exceptions allowed after Program Manager review
EmbeddedSource code disclosure obligations upon distributionCopyleft licenses strictly restricted; prefer permissive licenses
Internal useNo redistribution obligationsStandard review procedure applies (relaxed copyleft allowed)

2. Open source usage principles

Related Standards
- 5230 §3.1.5.1
- 18974 §4.1.1.1

Mandatory review before use

When adopting a new open source component or changing an existing version, always review the following:

  1. License check: Compare against the approved license list in output/policy/license-allowlist.md
  2. License obligation fulfillment plan: For copyleft licenses, decide how obligations such as source code disclosure will be fulfilled
  3. Known vulnerability check: Generate an SBOM and run a CVE scan to confirm there are no Critical/High vulnerabilities
  4. Program Manager approval: Obtain approval according to the output/process/usage-approval.md procedure

License classification criteria

CategoryExamplesObligations upon distribution
PermissiveMIT, Apache-2.0, BSDCopyright notice, license notice
Weak CopyleftLGPL, MPLDisclose source code of modified files
Strong CopyleftGPL-2.0, GPL-3.0Disclose full source code (upon distribution)
Network CopyleftAGPL-3.0Disclose source code, including for network use

Package management principles per development language

The Company uses multiple package managers, including Java (Maven/Gradle), Python (pip), JavaScript (npm/yarn), and Go (mod). Dependency licenses must be scanned automatically across all package managers.


3. Program scope and performance metrics

Related Standards
- 18974 §4.1.4.1·§4.1.4.2

Performance metrics (KPI)

MetricTarget
SBOM freshnessAttach an up-to-date SBOM to every release
License compliance rate100% prior review of newly adopted components
Vulnerability response timeCritical: within 1 week, High: within 4 weeks
Training completion rateOpen source-related roles complete training at least once a year
Renewal cycleReconfirm Self-Certification every 18 months
Note

The vulnerability response deadlines above are the OpenChain KWG guide baseline. Depending on your organization's risk profile and capabilities, stricter deadlines such as 24 hours for Critical and 1 week for High can be adopted as an internal SLA.

Measuring and improving program effectiveness

  • Regular evaluation cycle: Evaluate KPI achievement and process compliance at least once a year.
  • Evaluation reporting: Report evaluation results to management; for unmet items, include the cause and an improvement plan.
  • Continuous improvement: Update the policy and processes based on evaluation results, internal best practices, and industry trends (see Section 9 for the update cycle).
  • Resource sufficiency review: Once a year, assess whether open source management staffing and tool budgets are sufficient, and recommend adjustments if necessary.

4. Security assurance policy

Related Standards
- 18974 §4.1.1.1

The Company systematically identifies, tracks, and responds to known vulnerabilities (CVEs) in distributed software:

  • Perform an SBOM-based vulnerability scan before every release
  • Resolve Critical/High vulnerabilities or establish a mitigation plan before release
  • When a new vulnerability is found after release, respond according to the output/process/vulnerability-response.md procedure
  • Operate an external vulnerability reporting channel: security@techunicorn.example

5. Open source contribution policy

Related Standards
- 5230 §3.5.1.1·§3.5.1.2

Whether contributions are allowed

  • Allowed after prior approval — Contributions are allowed after review and approval by the Open Source Program Manager and the legal team

Requirements when contributing

  1. Prior approval: Approval after review by the DevOps Team Open Source Program Manager and the legal team
  2. IP check: Confirm whether the contribution contains company confidential information or third-party IP
  3. License agreement: Confirm whether a CLA (Contributor License Agreement) signature is required
  4. Record keeping: Record contributions in output/organization/role-definition.md

Prohibited contributions

  • Contributions containing internal company algorithms, trade secrets, or customer data
  • Contributing patent-related code without legal team review
  • Company work-related contributions through personal accounts

6. Managing externally delivered software

When providing software to external customers and delivery destinations, the Company complies with the following:

  • Provide the SBOM with the deliverable (or keep it available for immediate delivery upon request)
  • Confirm fulfillment of copyleft license obligations before delivery
  • Include open source attribution notices in delivery contracts
  • Operate a procedure to notify customers when a new vulnerability is found after delivery

7. Policy dissemination and training

Related Standards
- 5230 §3.1.1.2
- 18974 §4.1.1.2

This policy is disseminated to all program participants through the following methods:

  • Included in onboarding training for new hires
  • Annual training (or announcement) for all members
  • Posted on the internal wiki/shared drive with links shared
  • Training completion records: output/training/completion-tracker.md

8. Handling non-compliance

Related Standards
- 5230 §3.2.2.5

When this policy is violated:

  1. Report immediately to the Open Source Program Manager
  2. Identify the violation and its scope of impact
  3. Establish and implement a corrective action plan
  4. Update the policy/process to prevent recurrence

9. Policy review and update

Related Standards
- 18974 §4.1.1.1

This policy is reviewed and updated on the following cycle or when triggering events occur:

  • Regular review: Once a year (next review date: 2027-03-23)
  • Ad hoc review triggers: Standard revisions, regulatory changes, major incidents, change of the Program Manager
  • Review owner: DevOps Team Open Source Program Manager, with legal team confirmation

Review history

VersionReview dateMajor changesApprover
1.02026-03-23Initial versionDevOps team leader

10. Policy change requests and operation

Related Standards
- 18974 §4.1.1.1 (operation, G1.2)
- 5230 §3.1.5.1

While §9 defines when the policy is reviewed, this section defines the procedure by which anyone can request a change during day-to-day operation.

Change request flow

  1. Request: Any member who needs a change to the policy or the approved license list submits a request to the DevOps Team Open Source Program Manager (e.g., adding a new license, an exception for a prohibited license).
  2. Assessment: The Program Manager reviews license obligations, security, and business impact, obtaining legal team confirmation when necessary.
  3. Approval: The DevOps team leader approves. Exception approvals are recorded together with their validity period and conditions.
  4. Application: Upon approval, update the policy or license-allowlist.md and record the change in the §9 review history.
  5. Notification: Announce the change through the internal wiki and development team channels.

Monitoring regulatory and standards changes

  • Owner: The DevOps Team Open Source Program Manager checks relevant regulatory and standards trends (EU CRA, domestic SBOM mandates, ISO revisions, etc.) at least once a quarter.
  • Application: If a change affects the policy, update it through the change request procedure above.

Appendix A. Definitions

Related Standards
- Maps to KWG policy template §2 (Definitions)

The key terms used in this policy are as follows.

TermDefinition
SBOMSoftware Bill of Materials. A list of the open source components, their versions, and licenses included in a product (SPDX or CycloneDX format).
License obligationsConditions that must be fulfilled when using open source, such as attribution, copyright notices, and source code disclosure.
CopyleftA license type that requires derivative works to be released under the same license (GPL, AGPL, etc.).
PermissiveA license type with few restrictions, centered on notice obligations (MIT, Apache-2.0, BSD, etc.).
Vulnerability (CVE)A publicly identified security flaw. Severity is expressed as a CVSS score.
Distribution participantA member involved in providing the Company's software to external parties.
Self-CertificationThe procedure of declaring on one's own that the OpenChain (ISO/IEC 5230 and 18974) requirements are met.
OSPOOpen Source Program Office. The industry-standard name for a dedicated open source management organization. Corresponds to the "open source organization" in this policy.
OSPMOpen Source Program Manager. The industry-standard name for the manager of an open source program. Corresponds to the "Open Source Program Manager" in this policy.
OSRBOpen Source Review Board. The industry-standard name for a review board that deliberates on open source use and release. Small organizations may substitute a review by the Program Manager.

For beginner readability, the body of this policy uses the single terms "Open Source Program Manager" and "open source organization". Refer to the mapping above when comparing this policy with external documents or the KWG template.

Appendix B. Releasing internal projects as open source

Related Standards
- Maps to KWG policy template §8 (Open-sourcing internal projects)

When software developed inside Tech Unicorn is released as open source, it goes through prior approval, intellectual property and security review, license selection, attribution notice preparation, and post-release management. The detailed procedure follows output/process/project-publication-process.md (a process deliverable). If that deliverable does not exist, generate it with the process-designer agent.


Approved License List

Document: license-allowlist.md

  • Company name: Tech Unicorn
  • Version: 1.0
  • Date written: 2026-03-23
  • Author: DevOps Team Open Source Program Manager
  • Next review date: 2027-03-23
Related Standards
- 5230 §3.1.5.1·§3.3.1.1·§3.3.1.2

Summary of distribution methods: SaaS + app stores (iOS/Android) + embedded + internal use Since embedded and app store distribution are included, copyleft licenses are strictly restricted.


1. Summary of allowance principles per channel

Distribution channelPermissiveWeak CopyleftStrong Copyleft (GPL)Network Copyleft (AGPL)
SaaS✅ Allowed✅ Allowed⚠️ Conditional❌ Prohibited
App store✅ Allowed⚠️ Conditional❌ Prohibited❌ Prohibited
Embedded✅ Allowed⚠️ Conditional❌ Prohibited❌ Prohibited
Internal use✅ Allowed✅ Allowed✅ Allowed⚠️ Conditional

⚠️ Conditional: Requires prior review and approval by the Open Source Program Manager ❌ Prohibited: Cannot be used without Program Manager approval (if an exception is granted, additional legal team review is required)


2. Permissive licenses — allowed on all channels

Obligations: include the copyright notice and license text

LicenseSPDX IDNotes
MITMITNone
Apache License 2.0Apache-2.0Includes a patent termination clause (irrelevant to typical use)
BSD 2-ClauseBSD-2-ClauseNone
BSD 3-ClauseBSD-3-ClauseRestrictions on promotional/advertising use
ISCISCNone
UnlicenseUnlicenseSimilar to public domain
CC0 1.0CC0-1.0Mainly used for documents and data rather than software code
Boost Software License 1.0BSL-1.0None
zlibZlibModified versions must be clearly marked as different from the original

3. Weak copyleft licenses — conditionally allowed per channel

Source code disclosure obligations may arise for modified files. Program Manager review required.

LicenseSPDX IDSaaSApp storeEmbeddedInternal useNotes
LGPL-2.1LGPL-2.1-only⚠️⚠️Obligations relaxed with dynamic linking; Program Manager review required for static linking
LGPL-3.0LGPL-3.0-only⚠️⚠️Same as LGPL-2.1; embedded adds the obligation to provide installation information
MPL-2.0MPL-2.0⚠️⚠️Only modified files must be disclosed; file-level copyleft
CDDL-1.0CDDL-1.0⚠️⚠️Incompatible with the GPL; beware of mixing
EPL-2.0EPL-2.0⚠️⚠️Patent termination clause; obligation to disclose modified source

4. Strong copyleft licenses — prohibited for embedded and app store

Full source code disclosure obligations arise. Prohibited in principle for embedded and app store distribution.

LicenseSPDX IDSaaSApp storeEmbeddedInternal useRemarks
GPL-2.0GPL-2.0-only⚠️Full source disclosure upon distribution; conditionally allowed for SaaS since no distribution occurs
GPL-3.0GPL-3.0-only⚠️GPL-2.0 plus patent and anti-tivoization clauses

Rationale for conditionally allowing GPL in SaaS: SaaS does not "distribute" software to customers, so GPL source disclosure obligations do not arise directly. However, if GPL code used in the service is modified, GPL conditions must still be complied with internally.


5. Network copyleft licenses — prohibited for SaaS

Source code disclosure obligations arise merely from providing a service over a network.

LicenseSPDX IDSaaSApp storeEmbeddedInternal useRemarks
AGPL-3.0AGPL-3.0-only⚠️Source disclosure obligations arise when providing SaaS; even for internal use, Program Manager review is required if external exposure is possible
EUPL-1.2EUPL-1.2⚠️Includes network use clauses; Program Manager review required for SaaS use

6. Prohibited licenses

The following licenses are prohibited on all channels due to legal uncertainty or incompatibility.

LicenseReason for prohibition
SSPL-1.0 (Server Side Public License)Created by MongoDB; not OSI-approved; obligation to disclose the entire service
BUSL (Business Source License)Converts to open source only after a set period, or restricts commercial use
Licenses with the Commons ClauseViolates the open source definition; prohibits commercial sale
Proprietary / UnknownComponents with unidentified licenses must be confirmed with the Program Manager before use

7. License compatibility precautions

License scan tools per package manager

Package managerScan toolRemarks
Maven (Java)License Maven Plugin, FOSSAAnalyzes pom.xml dependencies
Gradle (Java)License Gradle PluginAnalyzes build.gradle dependencies
pip (Python)pip-licenses, FOSSAAnalyzes requirements.txt
npm/yarn (JS)license-checker, FOSSAAnalyzes package.json dependencies
Go modgo-licensesAnalyzes go.mod dependencies

Prohibited combinations

CombinationReason
GPL-2.0 + Apache-2.0GPL-2.0 is incompatible with the Apache-2.0 patent clause
GPL-2.0 + GPL-3.0Version incompatibility (cannot be combined with GPL-3.0-only licenses)
CDDL + GPLLicense incompatibility (officially confirmed by Mozilla)

8. Exception handling procedure

When a license outside the approved list or a prohibited license must be used:

  1. Submit the reason and scope of use in writing to the Open Source Program Manager
  2. Legal review by the legal team
  3. Joint approval by the Program Manager and the legal team
  4. Record the approval and decide whether to add the license to the list at the next policy review

Approved exceptions

Approved exceptions are recorded below and re-reviewed on their expiration date. Expired exceptions are considered invalid until re-reviewed.

Component / licenseApproval reasonConditions / scopeApproverApproval dateExpiration / re-review date
(No approved exceptions at this time)

9. Review history

VersionReview dateMajor changesReviewer
1.02026-03-23Initial versionDevOps Team Open Source Program Manager