From 5843ceef82255cbe4c6d8ffb804235e0db646086 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Sat, 26 Sep 2026 20:47:29 +0000 Subject: [PATCH] Plan licensing documentation and policy alignment --- docs/roadmap/policy.md | 150 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 docs/roadmap/policy.md diff --git a/docs/roadmap/policy.md b/docs/roadmap/policy.md new file mode 100644 index 0000000..259c102 --- /dev/null +++ b/docs/roadmap/policy.md @@ -0,0 +1,150 @@ +# 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](../../COPYRIGHT) already identifies the project, copyright holder, + LGPL-3.0-or-later grant, warranty disclaimer, and third-party material. +- [LICENSE](../../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](../../README.md#license) still refers to the removed `COPYING` + file and describes the earlier license transition as applying from “this + revision forward.” The working-tree [v0.11.0 notes](../releases/v0.11.0.md) + also have a now-broken relative `COPYING` link. +- The [release policy](../policy/release.md) and + [release procedure](../release.md) 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](../policy/documentation.md) 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](../development.md) 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.