target-revenue/README.md

106 lines
7.7 KiB
Markdown
Raw Normal View History

2026-07-28 15:37:32 +00:00
# target-revenue
**Status:** Concept and specification only (Stage 0). Not production legal text. Do not attach TRSL to production software yet.
The **Target Revenue Framework (TRF)** is a phased software monetization system: a defined development **Phase** accumulates **Development Credit** and **Remission Credit** against an immutable **Initial Target** until the **Milestone Release** automatically converts to a permissive **Future License** (MIT or Apache-2.0). A **Trust Service** publishes manifests, ledgers, extensions, and attestations as factual evidence — it does not decide conversion.
> Commercial beneficiaries fund the creation and early availability of a software improvement; once the declared target is satisfied, the governed release becomes permissively open source.
## Terminology guardrail
Before conversion, software under TRSL is **source-available** with commercial-use restrictions. It is **not** Open Source under the [OSI Open Source Definition](https://opensource.org/osd) (field-of-endeavour non-discrimination). After the Conversion Event, the Milestone Release is available under the declared OSI-style Future License.
| State | Accurate label |
| --- | --- |
| Pre-conversion, noncommercial | Source-available (permitted uses) |
| Pre-conversion, commercial | Commercially licensed / entitlement required |
| Post-conversion | Open source under Future License |
## Reading order
1. [`INTENT.md`](INTENT.md) — durable purpose and design principles
2. [`SCOPE.md`](SCOPE.md) — what is in scope *now* vs later maturity
3. [`specs/TargetRevenueLicenseConcept.md`](specs/TargetRevenueLicenseConcept.md) — normative concept draft (ultimate source; governs if it and the extracts below ever diverge)
4. [`specs/ProductRequirementsDocument.md`](specs/ProductRequirementsDocument.md) — goals, FRs, roadmap
5. [`specs/TechnicalSpecificationDocument.md`](specs/TechnicalSpecificationDocument.md) — schema field tables and boundaries
6. [`specs/OpenQuestions-WorkingDefaults.md`](specs/OpenQuestions-WorkingDefaults.md) — provisional Stage 0 defaults
Exploration transcript (non-normative): [`history/260728-InitialExploration.md`](history/260728-InitialExploration.md)
Program assessment: [`history/260728-SWOT-Assessment.md`](history/260728-SWOT-Assessment.md)
## Normative documents (day-to-day reference)
Extracted and stabilized from the concept draft under `workplans/TREV-WP-0003-normative-core-extraction.md` (T01T05 done; T06 human review still open — see that workplan). Use these for terminology, not the concept draft's prose, in ordinary implementation work:
| Document | Covers |
| --- | --- |
| [`specs/TargetRevenueFrameworkCore.md`](specs/TargetRevenueFrameworkCore.md) | Seven core terms, target formula, five-verb lifecycle, nine core rules, foundational invariants |
| [`specs/PhaseManifestSpecification.md`](specs/PhaseManifestSpecification.md) | Phase Manifest field tiers and validation rules |
| [`specs/TargetLedgerSpecification.md`](specs/TargetLedgerSpecification.md) | Ledger entry types, hash chain, Outstanding Target fold |
| [`specs/MonetizationExtensionSpecification.md`](specs/MonetizationExtensionSpecification.md) | Six-field extension contract, registered vs. canonical |
**Forbidden synonyms:** do not treat undifferentiated "revenue captured" as equivalent to Development Credit (see `CONTRIBUTING.md` § Terminology); do not call pre-conversion software "Open Source" (see the guardrail table above).
## TRSL license candidate
[`specs/TargetRevenueSourceLicense-V1C1.md`](specs/TargetRevenueSourceLicense-V1C1.md) is the first candidate written as actual operative license text (Version 1, Candidate 1) rather than a bracket-annotated skeleton — **preliminary, not final, not for production use** (see the notice at the top of that file). It is grounded in the prior-art and jurisdiction research archived under `history/260729-TRSL-*.md`, and supersedes the earlier skeleton now archived at `history/260729-TargetRevenueSourceLicense-Draft.md`.
[`specs/TargetRevenueCommercialUseAgreement-V1C1.md`](specs/TargetRevenueCommercialUseAgreement-V1C1.md) is the companion Commercial Use Agreement template the License refers to but does not itself set terms for — same preliminary-candidate status, but **less** mature than the License: it had no dedicated prior-art research pass, and its Section 13 (Indemnification) is deliberately left unwritten rather than guessed.
## Repository layout
| Path | Role |
| --- | --- |
| `INTENT.md` | Stable purpose (change rarely) |
| `SCOPE.md` | Living Stage 0 scope |
| `specs/` | Concept source, product/tech specs, working defaults, and normative extracts |
| `workplans/` | Active delivery plans |
| `history/` | Dated non-normative exploration and assessments |
| `examples/` | Golden Phase packages (`phase-001`, from WP-0002) |
| `schemas/` | Machine-readable JSON Schemas (WP-0002) |
| `src/target_revenue/` | Pure Python validators, hash chain, Outstanding Target fold, conversion detection (WP-0002) |
Complete TREV-WP-0001 research (T01-T05) and draft TRSL skeleton (T06) Five research artifacts under specs/research/, grounded in primary-source license text fetched live rather than relying on training-data recall: - TRSL-PriorArt-Survey.md: BSL 1.1, FSL, PolyForm Noncommercial, Fair Source, Elastic License 2.0. Confirms TRSL's closed {MIT, Apache-2.0} Future License enum and no per-Phase custom license text follows FSL's deliberate fix for BSL's "Additional Use Grant" variability problem. - TRSL-Terminology-Guardrails.md: confirms via OSI OSD Clause 6 that pre-conversion TRSL cannot be Open Source; confirms README's existing guardrail table without change. - TRSL-FutureLicense-PatentPrecedent.md: MIT has no patent language; Apache 2.0 has an explicit contribution-scoped grant + litigation termination. Recommends TRSL's pre-conversion phase also carry an express patent grant. - TRSL-ContributorRights-Research.md: confirms via DCO 1.1 text that a DCO alone is insufficient for TRSL's dual-future-license promise; recommends a narrowly-scoped CLA over copyright assignment. - TRSL-Jurisdiction-StandardTerms.md: deepens German §31/§32 UrhG (primary- confirmed) and §307 BGB Transparenzgebot (secondary-confirmed, flagged for counsel verification); corrects scope re: EU UCTD 93/13/EEC being consumer-only vs. German AGB law covering B2B too. Ranks five terms most needing objective definitions. specs/TargetRevenueSourceLicense-Draft.md (T06) synthesizes all five into a non-binding skeleton with every clause tagged [CONFIRMED BY RESEARCH], [LEGAL], [WORKING DEFAULT], or [OPEN]. Per the T06 human-accept gate, the workplan task stays `todo` — ready for review, not accepted. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 09:25:05 +02:00
| `docs/adr/` | Architecture decisions; ADR-0001 (Stage 0 library stack) **accepted** 2026-07-29 |
**`spec/` vs `specs/` (resolved 2026-07-29):** the concept document originally lived under a separate singular `spec/` directory, which `history/260728-SWOT-Assessment.md` flagged as a "perpetual footgun." It has been merged into `specs/` alongside the product/tech specs and normative extracts — there is now one specs directory for the whole repository. The historical split, and the decision to merge it, remain visible in `history/260728-SWOT-Assessment.md` (unedited, as a dated record) rather than rewritten here.
## Active work
| Workplan | Focus |
| --- | --- |
| [TREV-WP-0001](workplans/TREV-WP-0001-license-prior-art-research.md) | Prior-art research (T01T05 done, archived to `history/`) → TRSL V1C1 license candidate (T06 ready for human review) |
| [TREV-WP-0002](workplans/TREV-WP-0002-trust-service-foundation.md) | Schemas, pure Outstanding Target fold, golden fixture — **finished** |
| [TREV-WP-0003](workplans/TREV-WP-0003-normative-core-extraction.md) | Extract stable normative core docs — T01T05 done, T06 human review open |
| [TREV-WP-0004](workplans/TREV-WP-0004-global-jurisdiction-research.md) | Global jurisdictional research backing the License/CUA candidates (Germany/EU, US, UK, Argentina, India, China, Africa, Asia-Pacific, choice-of-law) — planned, not started |
Hub index: [`WORK-RECORDS.md`](WORK-RECORDS.md) · brief: [`.custodian-brief.md`](.custodian-brief.md)
## Stage 0 library (schemas, pure fold, validators)
WP-0002 delivers an **offline, dependency-light library** — not a hosted
Trust Service (`SCOPE.md` §3). It validates the schemas in `schemas/`,
computes the pure Outstanding Target fold, verifies the SHA-256 hash chain,
and checks Monetization Extension conformance.
```bash
pip install -e ".[dev]"
python3 -m pytest tests/ # 32 tests, no network required
python3 scripts/generate_golden_phase.py # regenerate examples/phase-001/ledger.json
```
The implementation stack (Python, `jsonschema`, `pytest`, `hatchling`) is
recorded in [`docs/adr/ADR-0001-stage0-library-stack.md`](docs/adr/ADR-0001-stage0-library-stack.md),
**accepted 2026-07-29**.
## What this repo does not claim yet
- Final legal license text or enforceable TRSL
- A running production Trust Service
- A finalized degeneration formula (research + working defaults only)
- That any real product Phase is governed by TRF today
See [`SCOPE.md`](SCOPE.md) and [`CONTRIBUTING.md`](CONTRIBUTING.md).
## License
Repository contents are under [MIT No Attribution](LICENSE) unless a file states otherwise. That is the license of *this repository*, not the Target Revenue Source License for third-party software.