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).
288 lines
15 KiB
Markdown
288 lines
15 KiB
Markdown
---
|
||
id: TREV-WP-0008
|
||
type: workplan
|
||
title: "Governance formalization and pilot rollout (coulomb / net-kingdom / helix-forge / railiance)"
|
||
domain: infotech
|
||
repo: target-revenue
|
||
status: active
|
||
owner: claude
|
||
topic_slug: infotech
|
||
created: "2026-07-29"
|
||
updated: "2026-07-29"
|
||
state_hub_workstream_id: "b46a30e8-8ef6-44f7-96af-a098cb4084b4"
|
||
---
|
||
|
||
# Governance formalization and pilot rollout
|
||
|
||
The midterm goal: govern and monetize the evolution of repos across the
|
||
`coulomb` Forgejo org's product lines — `coulomb-loop`, `net-kingdom`,
|
||
`helix-forge`, and the `railiance-*` family (`railiance-apps`,
|
||
`railiance-bootstrap`, `railiance-cluster`, `railiance-enablement`,
|
||
`railiance-fabric`, `railiance-forge`, `railiance-hosts`, `railiance-infra`,
|
||
`railiance-master`, `railiance-platform`). This workplan formalizes the
|
||
governance the framework has been designed around but never actually
|
||
written down, and prepares (but does not itself execute) the first real
|
||
Phase declarations.
|
||
|
||
**Hard gate, stated up front:** `SCOPE.md` §3 lists "governing third-party
|
||
product Phases in production" as out of scope "after legal + Stage 0
|
||
package ready" — i.e., not yet. This workplan's rollout tasks (T03–T04)
|
||
produce **draft, non-binding** Phase Manifests as worked examples, exactly
|
||
like `examples/phase-001/` already is. **No real Commercial Entitlement may
|
||
be sold, no real Development Credit tracked, and no repo's actual License
|
||
header changed to TRSL, until T05 (the go-live gate) is explicitly
|
||
accepted** — after TRSL/CUA specialist legal review (`workplans/TREV-WP-0004-global-jurisdiction-research.md` /
|
||
`workplans/TREV-WP-0005-enforcement-network-research.md` T10 syntheses
|
||
feed this) and T01 (Licensor governance) are both resolved. Moving fast on
|
||
T01–T04 must not create pressure to skip T05.
|
||
|
||
## Governance document: TRSL-Governance.md
|
||
|
||
```task
|
||
id: TREV-WP-0008-T01
|
||
status: done
|
||
priority: high
|
||
state_hub_task_id: "bae630d7-907b-4eb4-bad4-d72803ccbd33"
|
||
```
|
||
|
||
Produce `specs/TRSL-Governance.md`, per `spec/TargetRevenueLicenseConcept.md`
|
||
§20 (complexity budget, versioning, extension governance, operator
|
||
governance). Must resolve one question this rollout makes concretely
|
||
unavoidable for the first time: **who is "the Licensor"** across four
|
||
different product lines under one Forgejo org — a single shared Licensor
|
||
entity for all four (simplest, but conflates genuinely different products'
|
||
commercial decisions), or a per-product-line Licensor (each of
|
||
`coulomb-loop`, `net-kingdom`, `helix-forge`, `railiance` declaring its own
|
||
Phases independently under a shared TRSL/CUA template)? This was never
|
||
forced while the framework was single-repo-hypothetical; it is now.
|
||
Also define: change process for the License/CUA templates themselves once
|
||
multiple product lines depend on them, extension canonicalization review
|
||
(coordinate with `workplans/TREV-WP-0007-degeneration-policy-and-canonical-profiles.md`
|
||
T04's narrower checklist), and dispute/conflict-of-interest handling per
|
||
concept §20.3–§20.4.
|
||
|
||
**Result:** `specs/TRSL-Governance.md` produced. **Licensor identity
|
||
resolved (maintainer decision, 2026-07-29): a single shared Licensor,
|
||
Binky Hedgehog GmbH, operating as the `binky` tenant**, across all four
|
||
product lines — not per-product-line. This unblocks (but does not itself
|
||
resolve) the License §11.1/CUA §18 arbitral-institution/governing-law
|
||
template blank, now that the Licensor's own jurisdiction (Germany) is
|
||
known. Documents versioning (already implemented across every layer
|
||
§20.2 names — URN `@version` suffixes, document headers, ADRs) and
|
||
extension governance status (registration/conformance implemented;
|
||
canonicalization checklist implemented via WP-0007-T04; compatibility,
|
||
deprecation, and conflict-of-interest rules **not yet defined** — named as
|
||
open items, not silently assumed). Operator governance (§20.4) tabulated
|
||
against the actual hosted Trust Service instance: signing-key disclosure
|
||
and public verification already implemented (WP-0006); key-rotation
|
||
history publication, a Trust-Service-specific terms-of-service document,
|
||
and an extension-specific dispute procedure are flagged as open, not
|
||
blocking T02–T04 but named so T05's go-live gate can weigh them
|
||
explicitly.
|
||
|
||
## Repo inventory and Phase-candidate survey
|
||
|
||
```task
|
||
id: TREV-WP-0008-T02
|
||
status: done
|
||
priority: high
|
||
state_hub_task_id: "4f4f4922-4bc6-4ff9-a408-b836287186db"
|
||
```
|
||
|
||
For each of `coulomb-loop`, `net-kingdom`, `helix-forge`, and the
|
||
`railiance-*` family: survey current repo goals and status (via the state
|
||
hub's `get_domain_summary`/`list_domain_repos`/repo-goal tools, or direct
|
||
repo inspection where hub data is thin) to identify one plausible first
|
||
Milestone Release candidate per product line — a bounded, recently- or
|
||
soon-to-be-completed piece of work with a defensible Target Multiple
|
||
classification (`specs/TargetRevenueFrameworkCore.md` §1.4), not an
|
||
arbitrary pick. Document why each candidate was chosen and what was
|
||
passed over.
|
||
|
||
**Result:** `specs/PilotPhaseCandidateSurvey.md` produced. State hub
|
||
`get_repo_goals` returned no data for `coulomb-loop`/`net-kingdom`/
|
||
`helix-forge`, so this used direct repo inspection instead (per the
|
||
task's own fallback), including an Explore-agent survey of all ten
|
||
`railiance-*` repos. Findings: **`coulomb-loop`** — no candidate;
|
||
SCOPE.md explicitly excludes product application code. **`net-kingdom`**
|
||
— `NK-WP-0002` Local Identity (finished 2026-03-05), Incremental (10x);
|
||
passed over the deferred/superseded `NK-WP-0001` Keycloak plan and two
|
||
real-but-internal-ops-hardening finished workplans (`NET-WP-0020`,
|
||
`NK-WP-0021`). **`helix-forge`** — no candidate; its own SCOPE.md states
|
||
"it is not yet an application implementation." **`railiance-*`** —
|
||
`vergabe-teilnahme` (`RAILIANCE-WP-0002`/`-0014`, finished 2026-05-19 /
|
||
2026-07-11), a production Django app for German public-tender
|
||
participation, Product-defining (100x); the only genuinely product-shaped
|
||
deliverable across all ten repos, passing over nine repos' worth of
|
||
internal infrastructure (cluster substrate, CI/CD, secrets platform,
|
||
architecture taxonomy, etc.). Two of four product lines have a defensible
|
||
candidate; two do not, for stated principled reasons, feeding T03.
|
||
|
||
## Draft pilot Phase Manifests (non-binding worked examples)
|
||
|
||
```task
|
||
id: TREV-WP-0008-T03
|
||
status: done
|
||
priority: high
|
||
state_hub_task_id: "942943ae-14a2-4f23-888e-6084aa9c6024"
|
||
```
|
||
|
||
Using T02's candidates, draft one Phase Manifest per product line
|
||
following `specs/PhaseManifestSpecification.md` and
|
||
`schemas/phase_manifest.schema.json` exactly — structurally valid,
|
||
conformance-tested the same way `examples/phase-001/` is, but explicitly
|
||
marked **draft / not yet declared** (no real Commercial Use restriction
|
||
takes effect from these). Choose an applicable Monetization Extension per
|
||
Phase from `workplans/TREV-WP-0007-degeneration-policy-and-canonical-profiles.md`
|
||
T03's catalog.
|
||
|
||
**Result:** `examples/pilot-candidates/` produced, for T02's two real
|
||
candidates only (`coulomb-loop`/`helix-forge` had none). Each manifest
|
||
uses a `trsl:phase:draft-*` id specifically so it cannot be confused with
|
||
a declared Phase, an empty `ledger.json`, and validates cleanly against
|
||
`schemas/phase_manifest.schema.json`
|
||
(`tests/test_pilot_candidate_manifests.py`, 4 tests). **NetKingdom Local
|
||
Identity** (`NK-WP-0002`): 200,000 EUR Initial Target (Incremental 10x),
|
||
`development-license` extension, `future_license: MIT`. **Railiance
|
||
vergabe-teilnahme**: 3,500,000 EUR Initial Target (Product-defining
|
||
100x), `development-license` + `cost-plus-operations` extensions
|
||
(reflecting its actual hosted-application delivery model), `future_license:
|
||
Apache-2.0`. Both reference the real commit each Milestone Release
|
||
finished at (`3890dca`, `398b0fe`) for traceability. A top-level
|
||
`examples/pilot-candidates/README.md` states plainly that no Commercial
|
||
Entitlement is for sale, no Development Credit is tracked, and neither
|
||
repo's actual License header has changed — nothing here is authorized to
|
||
go live regardless of how complete it looks (T05 still gates that).
|
||
|
||
**Addendum, 2026-07-29:** the maintainer separately chose `info-tech-canon`
|
||
(outside the original four product lines) as the actual first repo to
|
||
build up the practical Phase-declaration routine on — **explicitly
|
||
confirmed as a dry run, not a T05 go-live decision.** A third draft
|
||
manifest, `examples/pilot-candidates/info-tech-canon-service-surface/`,
|
||
was added (candidate: the cumulative service surface across
|
||
`ITC-WP-0001`–`ITC-WP-0012`, all finished; Product-defining 100x;
|
||
`specs/PilotPhaseCandidateSurvey.md` §4a). Notable complication surfaced
|
||
and flagged rather than smoothed over: this repo's current `LICENSE` is
|
||
already MIT-0 — a real Phase here would mean *replacing* an already-open
|
||
license with restricted pre-conversion TRSL terms, a materially different
|
||
and more visible step than the other two candidates. The full onboarding
|
||
routine (`scripts/trf_onboard.py register-phase` → `append-entry` →
|
||
`status`) was exercised end-to-end against a real, ephemeral local
|
||
instance of the hosted Trust Service (Docker Postgres, migrations
|
||
0001–0004 applied, `binky` Licensor token seeded, `uvicorn` running the
|
||
actual `service/app.py`) — register, a 10,000 EUR illustrative
|
||
development-credit entry, and a status check all worked exactly as
|
||
`specs/TrustServiceOnboarding.md` describes, with no code changes needed.
|
||
The dry-run Postgres container and service process were both torn down
|
||
afterward; nothing from this exercise persists beyond the draft manifest
|
||
files themselves.
|
||
|
||
## Contributor rights instrument (CLA)
|
||
|
||
```task
|
||
id: TREV-WP-0008-T04
|
||
status: done
|
||
priority: medium
|
||
state_hub_task_id: "666a800b-96a7-4664-9448-24af989b57c5"
|
||
```
|
||
|
||
`CONTRIBUTING.md` currently blocks external contributions into any
|
||
governed Milestone Release until a contributor-rights instrument exists
|
||
(per `history/260729-TRSL-ContributorRights-Research.md`). If any pilot
|
||
candidate from T02 has, or expects, external contributors before its
|
||
Conversion Event, this is now practically blocking, not theoretical.
|
||
Produce `specs/TRSL-ContributorLicenseAgreement-Draft.md`: a CLA scoped
|
||
narrowly to the current Phase's TRSL terms plus its already-declared
|
||
Future License, per the T04 research's recommendation. Same preliminary-
|
||
candidate treatment as the License/CUA V1C1 documents (status banner,
|
||
Appendix A-style candidate notes) — this is a new legal document, not
|
||
exempt from that pattern.
|
||
|
||
**Result:** `specs/TRSL-ContributorLicenseAgreement-Draft.md` produced,
|
||
implementing the research's CLA-not-assignment recommendation. §2 grants
|
||
rights under the current Phase's TRSL terms; §3 is the clause the
|
||
research flagged as the actual gap a plain DCO leaves open — an
|
||
irrevocable grant to relicense the Contribution under the Phase's
|
||
**already-declared** Future License at Conversion, deliberately narrow
|
||
(scoped to the one Future License fixed at the time of submission, not
|
||
"any future license"). §4 patent grant modeled on the Apache CLA pattern
|
||
with the litigation-termination clause deliberately omitted, flagged
|
||
Appendix A item 1 rather than guessed at. Same preliminary-candidate
|
||
status banner and Appendix A pattern as the License/CUA V1C1 documents;
|
||
governing law (§9) matches their alpha/beta arbitration default, now
|
||
citing the resolved Licensor jurisdiction from `specs/TRSL-Governance.md`
|
||
§1. `CONTRIBUTING.md` updated to point at this draft while keeping the
|
||
external-contribution block in effect until it is actually accepted, not
|
||
merely drafted.
|
||
|
||
## Go-live gate (human decision)
|
||
|
||
```task
|
||
id: TREV-WP-0008-T05
|
||
status: todo
|
||
priority: high
|
||
human_accept_required: true
|
||
state_hub_task_id: "af688189-8151-4170-925f-b3c4806a68ed"
|
||
```
|
||
|
||
**Do not mark this task done to authorize real Phase declarations.** It
|
||
exists to make the go-live decision a single, explicit, recorded moment
|
||
rather than something that happens by accretion once enough pilot
|
||
infrastructure exists. Before acceptance, confirm:
|
||
|
||
- `workplans/TREV-WP-0004-global-jurisdiction-research.md` T10 and
|
||
`workplans/TREV-WP-0005-enforcement-network-research.md` T10 syntheses
|
||
are complete — **done** (both finished 2026-07-29; see
|
||
`history/260729-TRSL-Jurisdiction-Synthesis.md` and
|
||
`history/260729-TREN-Synthesis.md`);
|
||
- specialist legal review of `specs/TargetRevenueSourceLicense-V1C1.md`
|
||
and `specs/TargetRevenueCommercialUseAgreement-V1C1.md` (condition 1 in
|
||
each document's status banner) has occurred, or is explicitly waived for
|
||
a defined pilot scope — **the maintainer has already waived full review
|
||
until out of beta** (`SCOPE.md` §1, 2026-07-29); T05 acceptance still
|
||
requires confirming the specific pilot scope this waiver covers and that
|
||
the alpha/beta working defaults adopted by the two syntheses above
|
||
(governing law/arbitration, liability cap, data protection, Enforcement
|
||
Network fee mechanics) are acceptable for that scope — this is not
|
||
automatically satisfied by the waiver existing in the abstract;
|
||
- T01's Licensor-identity question is resolved for whichever product
|
||
line goes first — **done** (Binky Hedgehog GmbH / `binky` tenant, single
|
||
shared Licensor across all product lines, `specs/TRSL-Governance.md` §1);
|
||
- `workplans/TREV-WP-0006-trust-service-implementation.md` has a working
|
||
hosted Trust Service, or an explicit interim manual/git-based ledger
|
||
process is accepted for the pilot instead — **done** (WP-0006 finished,
|
||
all 9 tasks, Postgres-backed hosted service per ADR-0002);
|
||
- T02's candidate survey and T03's draft manifests exist for the chosen
|
||
product line — **done** (`specs/PilotPhaseCandidateSurvey.md`,
|
||
`examples/pilot-candidates/`), though drafting a non-binding example
|
||
is not the same event as this gate's own acceptance;
|
||
- if the chosen Phase expects external contributions before its
|
||
Conversion Event, T04's CLA (`specs/TRSL-ContributorLicenseAgreement-Draft.md`)
|
||
has been reviewed and, if needed for that Phase, accepted — **drafted,
|
||
not yet accepted**; `CONTRIBUTING.md`'s external-contribution block
|
||
remains in effect until it is.
|
||
|
||
Once accepted, this task's Result should name which specific repo and
|
||
Phase go live first — "governance and rollout infrastructure exists" is
|
||
not the same event as "a real Phase is declared," and this workplan should
|
||
not blur that line even after everything above is ready.
|
||
|
||
**Sub-decision recorded 2026-07-30 (this task remains `todo` — no Phase
|
||
has been declared):** the maintainer separately and explicitly authorized
|
||
a distinct, narrower step — adopting `specs/TargetRevenueSourceLicense-V1C1.md`
|
||
as the preliminary governing `LICENSE` across every repository in the
|
||
`coulomb` Forgejo org (confirmed "every repo, no exceptions," including
|
||
`target-revenue` itself and internal tooling repos). This is a **license-
|
||
text adoption, not a Phase declaration** — see
|
||
`history/260730-TRSL-OrgWideLicenseRollout.md` for the full execution
|
||
record, including one explicitly flagged exception
|
||
(`the-custodian`, which carried a pre-existing proprietary/confidential
|
||
license and was deliberately not touched pending separate confirmation)
|
||
and two repos committed locally only (no git remote configured:
|
||
`executor-sandbox`, `executor-worker`). No Initial Target, Milestone
|
||
Release, degeneration policy, or Future License has been declared for any
|
||
repo; no Phase Manifest has been registered against the hosted Trust
|
||
Service; no Development Credit is being tracked anywhere. This task
|
||
(T05) itself remains `todo` and unaccepted — the license-rollout decision
|
||
does not by itself authorize a real Phase for any repo, per this task's
|
||
own instruction above.
|