8.1 KiB
Licensing Documentation And Policy Alignment
Status: Accepted scope; not yet implemented.
Purpose
Align Promptkit with the upstream standard's licensing-documentation guidance without changing its selected license, runtime behavior, or source-only release model. Make the project grant and dependency attribution easy to find and maintain, with one canonical owner for each topic.
This roadmap defines the target and changes relative to the current baseline. A separate implementation plan may define staged work later.
Baseline
The reviewed upstream standard is the sibling ../policy repository at commit
dafa823, including OSS policy version 1.2, documentation policy version 1.5,
and release policy version 1.2. These are adoption references, not a new runtime
dependency or a requirement to synchronize automatically with future revisions.
Promptkit's baseline is commit 1cd0c61:
- COPYRIGHT already identifies the project, copyright holder, LGPL-3.0-or-later grant, warranty disclaimer, and third-party material.
- LICENSE contains the LGPLv3 and incorporated GPLv3 texts. The reviewed standard-text comparison found only a missing final newline in the GPL portion; no substantive license-text replacement is needed.
- There is no
docs/policy/oss.md, attribution document, or dependency license text collection. - The README still refers to the removed
COPYINGfile and describes the earlier license transition as applying from “this revision forward.” The working-tree v0.11.0 notes also have a now-broken relativeCOPYINGlink. - The release policy and release procedure already use local validation and successful tag publication as the release completion point. No CI wait is required.
Target End State
A Customized OSS Policy
Add docs/policy/oss.md, adapted from the reviewed upstream policy. Retain the
actual base version, record the adoption date, and remove template instructions.
Identify Promptkit as an LGPL-3.0-or-later Go library whose source and tagged
releases are published on Gitea at gitea.maximumdirect.net/eric/promptkit.
Promptkit does not publish binaries or separate hosted release pages.
Preserve the author's selected grant and existing third-party terms. Policy
adoption is not relicensing. Do not require blanket per-file copyright headers,
advance copyright years automatically, or infer ownership of contributions.
Any final-newline normalization must leave both license texts unchanged in
substance. Do not recreate COPYING as a duplicate project-license owner.
Adopt the upstream House Format and its selected treatment of project-specific notice links. Standard texts are local; project-specific notices link to the exact imported upstream commit. Do not invent additional local-copy requirements or repeatedly reopen that settled house interpretation. Preserve notices already present in incorporated source. Surface concrete obligations or unresolved rights questions not addressed by the format and record their selected treatment; the format itself does not establish license compatibility.
Canonical Attribution Materials
Create docs/oss/attribution.md with entries for relevant incorporated or
distributed components, including applicable transitive dependencies and copied
code/assets. Determine coverage from actual use and selected source versions,
not merely direct dependency status or common project ownership. Development
tools do not automatically need entries.
Each entry supplies the upstream project name, faithfully preserved copyright statements, applicable SPDX expression, license/notice links, and a source link at the exact commit corresponding to the imported version. Preserve alternatives and exceptions; do not guess an SPDX identifier or silently choose unresolved licensing terms. Moving branches and version tags are not substitutes for commit-pinned component links.
Populate docs/oss/licenses/ with only the required complete, verbatim standard
texts, including companion texts where applicable. Reuse shared texts across
entries, and make companion texts directly reachable. Inspect the selected
dependencies' actual notices before deciding which texts and entries are needed;
this roadmap does not preselect their licenses.
Maintain attribution in the same change that adds, removes, upgrades, copies, or changes distribution of a relevant component. No dependency upgrades are needed solely to adopt this documentation structure.
Documentation Ownership And Navigation
Update the documentation policy to assign ownership
to the OSS policy, COPYRIGHT, LICENSE, attribution entries, and standard
dependency texts. Keep Promptkit's library-specific GoDoc, format, and consumer
documentation ownership intact. README and release notes provide navigation,
not competing licensing or attribution references.
Update the contributor guide to route project licensing, dependency/catalog, attribution, and release-document changes to the OSS policy and affected canonical materials. Adopt relevant upstream guidance selectively; do not replace the customized policy set wholesale or create placeholder docs.
End README with two friendly statements linking to the actual grant in
COPYRIGHT and the attribution document. Remove the stale transition wording
and obsolete COPYING reference. Do not expand the README into a legal checklist.
Prospective Release Navigation
Update the release policy and procedure so each new checked-in release note ends
with links whose visible text is COPYRIGHT | LICENSE | ATTRIBUTION. Use absolute
Gitea URLs targeting those files at that release's immutable tag or corresponding
immutable source revision. The procedure owns concrete URL construction;
component attribution links continue to use imported commits, not release tags.
Promptkit's existing source-only publication channel remains sufficient. Its annotated tag already derives from the checked-in release note; do not create a hosted download page, separately maintained release body, or downloadable license assets to adopt this convention. If a hosted page is deliberately introduced in the future, preserve the note's footer there as required by the OSS policy.
Apply footer formatting prospectively. Do not retrofit published notes or move
published tags. Repair the current-branch v0.11.0 note's broken COPYING link by
pointing to that file in the immutable v0.11.0 source tree, where it exists. This
navigation correction does not alter the published release or add a new-format
footer to its historical note.
Scope Boundaries
No runtime or public API changes, license/grant changes, dependency refresh, new publication channel, or automatic policy synchronization. Preserve existing release completion and compatibility choices, including catalog-data policy. Adopting the licensing guidance does not authorize unrelated changes to release note structure or existing validation gates.
Attribution preparation and affected-link/text review remain ordinary change work. Do not add mandatory license scanners, an SBOM, recurring legal approvals, publication-time network checks, CI polling, or extra release gates. Future-tag links can be checked against candidate paths before the tag exists remotely.
The upstream architecture and testing clarifications about adopted constraints, threat scope, and tests that must not invent contracts are a separate follow-up; they are not part of this licensing-focused scope.
Completion Criteria
The customized OSS policy and affected ownership/reading guidance agree; the grant and license texts remain intact; relevant attribution entries and standard texts are present and grounded in selected upstream source; README navigation and the historical broken link are corrected; and future-release footer guidance is usable through Promptkit's existing publication process. Affected local links, standard-text fidelity, and commit-specific upstream destinations receive proportionate validation without introducing permanent new release gates.