102 lines
4.1 KiB
Markdown
102 lines
4.1 KiB
Markdown
---
|
|
id: TREV-WP-0009
|
|
type: workplan
|
|
title: "Target Revenue Control Plane"
|
|
domain: infotech
|
|
repo: target-revenue
|
|
status: active
|
|
owner: claude
|
|
topic_slug: infotech
|
|
created: "2026-07-30"
|
|
updated: "2026-07-30"
|
|
state_hub_workstream_id: "0e8dfd43-a742-4458-9e9b-514a9284821b"
|
|
---
|
|
|
|
# Target Revenue Control Plane
|
|
|
|
An interactive UI over the hosted Trust Service
|
|
(`workplans/TREV-WP-0006-trust-service-implementation.md`, finished),
|
|
usable by a human user with appropriate rights acting as the `binky`
|
|
tenant. The specific, named requirement driving this workplan: make it
|
|
possible to interactively register Phases and create Development Credit
|
|
ledger entries, rather than requiring raw API calls or the
|
|
`scripts/trf_onboard.py` CLI.
|
|
|
|
**Split from the former combined `TREV-WP-0009-control-plane-and-effort-calculator.md`
|
|
(2026-07-30)** — the Development Effort Calculator is a separate concern
|
|
with its own formula decision and implementation arc; it now lives in
|
|
`workplans/TREV-WP-0010-development-effort-calculator.md`. The two remain
|
|
related (the Control Plane's Phase-registration flow is expected to use
|
|
the Calculator's output, per T03 below) but are sequenced and reviewed
|
|
independently.
|
|
|
|
**Does not include:** declaring any real Phase for any repo, or changing
|
|
the Trust Service's core guarantees (determinism, append-only, no
|
|
discretionary conversion authority) — the Control Plane is a client of
|
|
the existing hosted service, bound by the same rules any other client is.
|
|
|
|
Concept: `specs/TargetRevenueControlPlaneConcept.md`.
|
|
|
|
## User rights model — decision (human gate)
|
|
|
|
```task
|
|
id: TREV-WP-0009-T01
|
|
status: todo
|
|
priority: high
|
|
human_accept_required: true
|
|
state_hub_task_id: "177117e7-955b-4f12-b17b-75ee3f0357c4"
|
|
```
|
|
|
|
`specs/TargetRevenueControlPlaneConcept.md` §2 proposes a four-tier rights
|
|
model (Viewer/Contributor/Operator/Admin) and recommends option (b) for
|
|
the auth-attribution question: the Control Plane holds the one `binky`
|
|
Licensor token server-side and layers its own human-user auth/audit log
|
|
in front of it, rather than requiring a WP-0006 schema change for
|
|
per-human sub-credentials (option (a)). Confirm the rights tiers and the
|
|
(a)-vs-(b) choice, or propose a refinement. Agents may prepare a
|
|
recommendation and leave this `todo`.
|
|
|
|
## Control Plane backend: auth layer and audit log
|
|
|
|
```task
|
|
id: TREV-WP-0009-T02
|
|
status: todo
|
|
priority: high
|
|
state_hub_task_id: "86a58e61-dccd-4678-b694-22a9eaea2b3c"
|
|
```
|
|
|
|
Using T01's confirmed rights model, implement the human-user
|
|
authentication/authorization layer and the Control Plane's own audit log
|
|
(concept §5) — which human user took which action, timestamped, alongside
|
|
the Trust Service's own signed record id for that action. This is the
|
|
piece that must exist before any write-capable UI flow (T03) can be built
|
|
responsibly, since the Trust Service's own signature only ever attests
|
|
"the `binky` Licensor did this," never which individual human initiated
|
|
it (concept §2's design tension).
|
|
|
|
## Control Plane interactive UI: Phase registration and Development Credit entry
|
|
|
|
```task
|
|
id: TREV-WP-0009-T03
|
|
status: todo
|
|
priority: high
|
|
state_hub_task_id: "01b295f2-8f97-4fc4-a14e-6f68aa85458d"
|
|
```
|
|
|
|
Implement the interactive flows themselves, using T02's auth/audit layer
|
|
and the existing hosted Trust Service API (`service/app.py`) as the
|
|
backend, unmodified unless T01 specifically selected the
|
|
per-human-sub-credential option:
|
|
|
|
- Phase registration, informed by
|
|
`workplans/TREV-WP-0010-development-effort-calculator.md`'s output
|
|
once available (not blocking — a manual `target_basis` entry path must
|
|
work standalone too, since the Calculator may not be ready first);
|
|
- the priority flow: interactively creating a `development-credit` ledger
|
|
entry against a selected, already-registered Phase (concept §3's
|
|
step-by-step description) — select Phase, fill amount/currency/
|
|
recognized-date/evidence-reference/Monetization-Extension, submit,
|
|
immediately show the updated `GET /phases/{id}/metrics` result;
|
|
- read-only views (Phase status, Ledger, Attestation, Breach/Compliance
|
|
Record history) — already public/unauthenticated at the Trust Service
|
|
layer, so these need no new backend work, only UI.
|