T01: specs/TargetDegenerationPolicyResearch.md. Survey finds no precedent (BSL/FSL/Elastic) implements progress-sensitive degeneration - TRSL's model is original design. Proposes a candidate v1 formula (90-day rolling "quiet period" pause on Remission Credit accrual during active Development Credit periods), resolves the contributor-diversity input as explicitly not-adopted (no gaming-resistant signal exists yet), and resolves the longstop/progress-sensitivity relationship as a hard, unconditional backstop. Does not recommend v0 vs v1 for T02 - that's the human gate. T02: recommendation added (confirm v0 for the first pilot cohort, name v1 as the next iteration) - left todo per the human-accept policy. T03: specs/CanonicalMonetizationProfiles.md with worked narratives for all six catalog profiles, plus two new fixtures (product-ideation, general-consulting), both schema-validated and added to the parametrized conformance test. T04: specs/CanonicalizationReviewChecklist.md, an 8-item checklist layered on the already-implemented promote_extension_canonical() mechanism (WP-0006-T03) - defines what a reviewer must verify, not a new promotion mechanism.
6 KiB
Canonicalization Review Checklist
Status: Draft v0.1
Date: 2026-07-29
Workplan: workplans/TREV-WP-0007-degeneration-policy-and-canonical-profiles.md T04
Primary artifacts: specs/MonetizationExtensionSpecification.md §4, specs/CanonicalMonetizationProfiles.md, src/target_revenue/registry.py (promote_extension_canonical)
Scope note: this is the short, profile-level checklist
specs/MonetizationExtensionSpecification.md §4 says must exist before
any of the six catalog profiles can be promoted from registered to
canonical. It is not a general governance framework — that's
workplans/TREV-WP-0008-governance-and-pilot-rollout.md T01
(specs/TRSL-Governance.md, extension canonicalization review process,
dispute/conflict-of-interest handling at the organization level). This
document answers one narrower question: what does a reviewer actually
check before canonicalizing one of these six profiles?
1. Mechanism (already built, not new here)
Canonicalization is performed by
target_revenue.registry.promote_extension_canonical(conn, extension_id, version, approved_by) (WP-0006-T03), which calls the database's
set_extension_status() function — the only way to change an extension's
status, since the application role has no UPDATE grant on extensions
at all (migrations/0001_registries.sql). This checklist exists so that
whoever calls that function (the approved_by recorded) has actually
verified the items below first — the system enforces who performed the
promotion and that it's attributable; it does not and cannot enforce
that the reviewer actually checked anything. That's what this document
is for.
2. Checklist
A profile is ready for promote_extension_canonical once all of the
following are true:
- Already
registeredand passing conformance. Schema-valid (validation.validate_extension_contract) and the core-term non-redefinition check passes — a prerequisite, not sufficient alone, since that check is a pattern-based heuristic (validation.check_extension_core_term_redefinition's own docstring), not an exhaustive semantic review. - A human has read the
allocation.ruletext itself, not just confirmed the heuristic check passed, and confirms it does not redefinePhase,Milestone Release,Initial Target,Development Credit,Remission Credit,Outstanding Target,Conversion Event, orFuture Licensein substance, even if it happens not to trip the pattern-based check's specific wording triggers. - Internal consistency:
value.description,pricing.method, andallocation.ruletell the same story about what's being sold and what counts toward the target. A profile whose narrative description implies one thing and whose allocation rule computes another is not ready, regardless of schema validity. reversal.rulecovers the realistic refund/chargeback path for this profile's actual pricing model (e.g., a cost-plus profile's reversal rule should address partial refunds proportional to the cost basis, not only full reversal).evidence.requirementis proportionate to the profile's typical transaction size and the allocation it can produce — perspecs/OpenQuestions-WorkingDefaults.mdQ10's evidence tiers (E0/E1/E2): a profile capable of generating a large Development Credit per transaction should not have only an E0-level evidence requirement.- At least one full worked narrative exists, not only the bare JSON
fixture —
specs/CanonicalMonetizationProfiles.md§1–§6 satisfies this for all six catalog profiles as of this document. - No known open legal/compliance flag specific to this profile's structure. This is a sanity check, not a legal opinion: does the pricing/allocation shape resemble a regulated financial instrument (e.g., a sponsorship structured with an implied return expectation could resemble a security) closely enough to warrant specialist input before recommending it broadly? If yes, canonicalization should wait for that input; if no obvious resemblance exists, this item is satisfied by the reviewer's own note that they considered it.
- Sign-off is recorded.
promote_extension_canonical'sapproved_byparameter, plus a one-line note (in this document, a workplan Result, or a datedhistory/entry) of who reviewed against this checklist and when — the mechanism records that an approval happened; a human record should say why it passed.
3. Applying the checklist to the six catalog profiles now
This document does not itself canonicalize anything — recording the
checklist is T04's job; running it against a real profile and deciding to
promote is a separate governance action (item 8 above), appropriately
left to whoever owns that decision (plausibly folded into
workplans/TREV-WP-0008-governance-and-pilot-rollout.md T01's broader
governance work, or done independently once a first real pilot Phase
actually wants to declare canonical status for one). A quick read
against the six profiles in specs/CanonicalMonetizationProfiles.md
suggests development-license and general-consulting are the two
simplest, lowest-ambiguity candidates (fixed 100%/0% allocation, no
per-transaction declaration required) if a first canonicalization pass is
wanted before a full governance review cadence exists — but that
recommendation is exactly the kind of judgment call item 7/8 above
require a named human to actually make, not something this checklist
resolves on its own.
4. Non-goals
- Performing any canonicalization — a separate, attributable governance action per §1–§2 above.
- Organization-wide governance (Licensor identity, dispute process,
conflict-of-interest handling) —
workplans/TREV-WP-0008-governance-and-pilot-rollout.mdT01. - Changing
promote_extension_canonical's implementation — already built and tested in WP-0006-T03; this document is a human-process checklist layered on top of it, not a code change.