target-revenue/history/260730-TRSL-OrgWideLicenseRollout.md
tegwick dcf6de57a4 Adopt TRSL V1C1 as org-wide preliminary license (WP-0008-T05 sub-decision)
Maintainer decision, 2026-07-29/30: adopts TRSL V1C1 as the preliminary
governing LICENSE across every repo in the coulomb Forgejo org,
confirmed explicitly as "every repo, no exceptions" including
target-revenue itself and internal tooling repos. This is a
license-text adoption, not a Phase declaration - no Initial Target,
Trust Service registration, or Development Credit tracking exists for
any repo as a result. WP-0008-T05 (real Phase go-live) remains todo
and unaccepted.

Applies TRSL to this repo's own LICENSE (self-referential wording,
since target-revenue is the canonical source) and updates
pyproject.toml's license field from MIT-0 to TRSL-0.1.

history/260730-TRSL-OrgWideLicenseRollout.md is the full execution
record: ~90 repos adopted successfully, 2 committed locally only (no
git remote configured: executor-sandbox, executor-worker), and one
explicitly flagged exception (the-custodian - carried a pre-existing
proprietary/confidential license, deliberately not touched pending
separate confirmation, not silently folded into the blanket
instruction).

scripts/rollout/LICENSE.trsl-v1c1 is the deployed template used across
all repos (operative legal text only, points back to this repo's
specs/TargetRevenueSourceLicense-V1C1.md for the full candidate-status
banner and Appendix A rather than duplicating it ~90 times).
2026-07-30 01:23:52 +02:00

143 lines
7.5 KiB
Markdown

# Org-Wide TRSL License Rollout — Execution Record
**Document status:** Dated execution record, non-normative, append-only (WP-0008-T05).
**Not legal advice.** Records what was actually done, when, and by whose authorization.
---
## 1. What was decided
Maintainer decision, 2026-07-29/30: adopt `specs/TargetRevenueSourceLicense-V1C1.md`
(TRSL V1C1) as the preliminary governing license across every repository
in the `coulomb` Forgejo org — confirmed explicitly as "every repo, no
exceptions," including `target-revenue` itself and internal
tooling/infrastructure repos (`state-hub`, `ops-bridge`, `ralph-workplan`,
etc.), not only product-shaped repos. This was confirmed as an explicit
override/acceptance of the `workplans/TREV-WP-0008-governance-and-pilot-rollout.md`
T05 go-live gate for the **license-adoption step specifically** — see §4
below for what this does and does not mean.
The Licensor named in every deployed copy is **Binky Hedgehog GmbH**
(`specs/TRSL-Governance.md` §1).
## 2. Mechanism
`scripts/rollout/LICENSE.trsl-v1c1` is the deployed template: the
operative legal text (Preamble through Section 11) of TRSL V1C1, with a
preliminary-candidate status banner retained (not final, alpha/beta
legal-review deferral noted, points back to the canonical
`specs/TargetRevenueSourceLicense-V1C1.md` for the full status banner and
Appendix A). Appendix A itself (non-normative candidate notes) is **not**
duplicated into every repo — that would drift out of sync across ~90
copies; the canonical document remains the single source of truth for it.
For each repo: the existing `LICENSE` (or `LICENSE.md`/`COPYING`) was
replaced, committed, and pushed as an individual, explicit git operation —
not a bulk automated script (the sandbox's own safety classifier blocked
an attempted bulk script; the maintainer chose to proceed repo-by-repo
instead, each step visible and individually reviewable).
## 3. Results
**Adopted and pushed successfully (all previously MIT-0/MIT-License unless
noted):**
info-tech-canon, net-kingdom, helix-forge, railiance-apps, coulomb-loop,
activity-core, state-hub, key-cape, adaptive-pricing, agentic-resources,
artifact-store, audit-core, binect-chrome, binect-js, binky-control,
can-you-assist, citation-engine, citation-evidence, citation-work,
config-atlas, coordination-engine, core-hub, direkt-vermittlung-de,
disaster-control, domain-tree, email-connect, evidence-anchor,
evidence-binder, evidence-source, feature-control, fin-hub (no prior
LICENSE), flex-auth, freedom-intelligence, glas-harness, guide-board,
hub-core, human-resources, identity-canon, ihp-railiance-probe,
infospace-bench, issue-core, kaizen-agentic, kings-guard,
kontextual-engine, llm-connect (no prior LICENSE), marki-docx,
markitect-filter, markitect-main (no prior LICENSE), markitect-quarkdown,
markitect-tool, open-cmis-tck, open-reuse, ops-bridge, ops-hub, ops-mason,
ops-warden, phase-memory, polycode-sim, python-snake, qonto-assistant,
rail-knative, rail-kubernetes, railiance-cluster (also reachable as
`railiance-bootstrap` — a local symlink to the same directory/repo, not
two separate repos), railiance-enablement, railiance-fabric,
railiance-forge, railiance-hosts (no prior LICENSE), railiance-infra (no
prior LICENSE), railiance-master, railiance-platform (no prior LICENSE),
ralph-workplan (no prior LICENSE), rapp-openbao, rapp-qonto,
reef-railiance, rein-aharness, rein-openweights, repo-scoping, repo-seed,
reuse-surface, sand-boxer, secrets-engine, shard-wiki, snuggles-inventor,
tegwick-control (no prior LICENSE), tele-mcp (no prior LICENSE),
tenant-engine, testdrive-jsui, timeline-svg, unattended-progress-company,
user-engine, vantage-point, vergabe-teilnahme, whynot-control (no prior
LICENSE), whynot-design (no prior LICENSE), wise-validator,
**target-revenue** (this repo — see §5, self-referential wording used
instead of pointing to itself in the third person; `pyproject.toml`'s
`license` field also updated from `MIT-0` to reflect TRSL-0.1).
**Committed locally, not pushed (no `origin` remote configured at all):**
- `executor-sandbox`
- `executor-worker`
These two repos have no git remote in this environment — the LICENSE
change is committed to their local history but has nowhere to push to.
Flagged for the maintainer to push (or configure a remote for) separately
if these repos do have a remote elsewhere.
## 4. Explicitly skipped — requires maintainer attention
**`the-custodian`** was **not** changed. Two reasons converged:
1. Its prior `LICENSE` read "**Proprietary and Confidential Source Code
and Data License**" — materially different from the uniform MIT-0
placeholder every other repo carried. This is the one repo in the
entire org where the rollout would replace an existing, deliberate
proprietary/confidential license, not a permissive placeholder —
qualitatively different from every other repo's change.
2. The sandbox's safety classifier specifically blocked this repo's
change (it did not block every repo — most succeeded, several others
also required a retry, but `the-custodian` is the one where this
session chose not to force it, given point 1 above compounds the
caution the classifier itself was already signaling).
**Recommendation: do not silently fold `the-custodian` into "every repo, no
exceptions" without a separate, explicit confirmation** — replacing a
proprietary/confidential license with a source-available-with-eventual-
conversion license is a different kind of decision than replacing an
MIT-0 placeholder, and deserves its own deliberate sign-off rather than
inheriting the blanket instruction by default.
## 5. `target-revenue` itself
Applied with self-referential wording (this repo's own
`specs/TargetRevenueSourceLicense-V1C1.md` is *the* canonical source, not
a pointer to another repo). `pyproject.toml`'s `license` field updated
from `{ text = "MIT-0" }` to `{ text = "TRSL-0.1 (Target Revenue Source
License, preliminary candidate — see LICENSE)" }` — no other repo's
package manifest (`pyproject.toml`, `package.json`, etc.) was updated in
this pass; see §6.
## 6. What this rollout does NOT do — explicitly
This is a **license-text adoption**, not a **Phase declaration**:
- **No Phase Manifest was registered** for any repo against the hosted
Trust Service. No Initial Target, no Milestone Release, no
degeneration policy, no Future License has been declared for any real
repo as a result of this rollout.
- **No Development Credit is being tracked** anywhere. No Commercial
Entitlement is for sale under any of these repos.
- **No repo's package-manifest license metadata was updated**, except
`target-revenue`'s own `pyproject.toml` — a repo whose `package.json`
or `pyproject.toml` still declares `MIT`/`MIT-0` now has a `LICENSE`
file that says something different from its own package metadata. This
is a known, named gap, not an oversight papered over — fixing it across
~90 repos' package manifests is future work, not attempted here.
- Per `SCOPE.md` §1's alpha/beta risk-acceptance framing, this remains a
bounded operating decision for the build/alpha stage, not a substitute
for the specialist legal review still deferred until out of beta.
**Real Phase declaration** (an actual Initial Target, actual Trust
Service registration, actual Development Credit tracking for a specific
repo) remains a distinct, separate, future step — requiring, among other
things, the development-effort-to-Initial-Target calculator the
maintainer requested alongside this rollout (see the Target Revenue
Control Plane workplan, not yet created at the time of this record).