CUST-WP-0058: DR-1/2/3 resolved — consistency refinement, plan activated
Some checks failed
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Has been cancelled

DR-1: C (instance-per-client, early cost-optimization move)
DR-2: B (coulomb.social standalone app; Binky Hedgehog as client #1)
DR-3: A (app-local accounts; demand-gated NK-WP-0011 triggers)

Refinements: consolidation-ready data model required by the service
contract; coulomb.social auto-trigger for Keycloak retired in favor of
three demand triggers. T01-T03 done (NetKingdom notified), T04/T05
unblocked, workplan active.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
codex 2026-07-10 01:11:04 +02:00
parent f577716bfc
commit b26ffc10ef
2 changed files with 105 additions and 42 deletions

View file

@ -4,7 +4,7 @@ type: workplan
title: "Business platform enablement — decisions, service contract, client plane"
domain: infotech
repo: the-custodian
status: proposed
status: active
owner: codex
topic_slug: custodian
created: "2026-07-10"
@ -55,48 +55,53 @@ The Custodian owns decisions, canon, and cross-repo sequencing per ADR-001.
```task
id: CUST-WP-0058-T01
status: todo
status: done
priority: high
state_hub_task_id: "b7130553-a3d9-4dfd-91d7-6edb503bab58"
```
Register DR-1 as a pending State Hub decision (custodian topic); present
options to Bernd; on resolution update
`docs/business-platform-decision-records.md` and `resolve_decision()`.
Propagate the outcome into vergabe-teilnahme's SCOPE if it changes.
**Resolved 2026-07-10: Option C (hybrid)** — instance-per-client to start,
early cost-optimization move. Hub decision `d85cd185…`; doc updated with
consistency Refinement 1 (consolidation-ready data model required by the
service contract; consolidation is a DR-3 identity trigger). No
vergabe-teilnahme SCOPE change needed for v1 (stays single-tenant deployed).
### T02 — Facilitate and record DR-2: coulomb.social architecture
```task
id: CUST-WP-0058-T02
status: todo
status: done
priority: medium
state_hub_task_id: "ec09753e-ecef-4368-af5d-5e295cdbda1e"
```
Register DR-2 as a pending State Hub decision. If resolution is
"defer until pilot" (recommended), set the revisit condition to T07
completion and keep the decision open with that note. Include a pointer to
the required bubble.io data-migration assessment either way.
**Resolved 2026-07-10: Option B (standalone application)** — hub decision
`1f8b109e…`. coulomb.social is its own app with a distinct ops model; Binky
Hedgehog GmbH acts as client #1 of its own platform, consuming the same
delivery lane and service contract as external-client apps. The bubble.io
data-migration assessment and rebuild workplan skeletons are seeded in T08.
### T03 — Facilitate and record DR-3: external identity path
```task
id: CUST-WP-0058-T03
status: todo
status: done
priority: high
state_hub_task_id: "ffead70c-2179-46ba-a70a-cf13be87eef8"
```
Register DR-3 as a pending State Hub decision. On resolution, message the
NetKingdom lane so `NK-WP-0011` gains concrete activation triggers (or is
activated). Record the identity mode required per app class for T04.
**Resolved 2026-07-10: Option A (app-local accounts)** — hub decision
`ebcf0573…`, demand-gated Keycloak follow-up. Refinement 2 replaces the
"coulomb.social auto-trigger" with three demand triggers (client SSO/AD
request; instance consolidation; local-account toil across >2 apps).
NetKingdom lane notified 2026-07-10 (message `0d238b6e…`). Identity baseline
for T04: app-local accounts, consolidation-ready.
### T04 — Author business-app service contract (canon standard)
```task
id: CUST-WP-0058-T04
status: wait
status: todo
priority: high
state_hub_task_id: "a3cec70c-04a1-42a9-a6b0-3d2943b73968"
```
@ -105,15 +110,18 @@ Draft `canon/standards/business-app-service-contract_v0.1.md` (proposal →
human review, per canon gating): obligations every client-facing app must
meet — build evidence (commit-SHA images, registry), backup/restore hooks
into ops-hub, incident/runbook registration, cost attribution keys for
fin-hub, identity mode (from DR-3), data-protection baseline, and instance
provisioning/upgrade duties (from DR-1). vergabe-teilnahme is the reference
implementation. **Waits on:** DR-1 and DR-3 resolution (T01, T03).
fin-hub, **app-local identity baseline (DR-3 A)**, data-protection baseline,
**instance-per-client provisioning/upgrade duties (DR-1 C)**, and
**consolidation-ready data model** (Refinement 1: tenant-keyed data even when
deployed single-tenant). Applies equally to client apps and Binky Hedgehog's
own apps (coulomb.social — DR-2 B "client #1" model). vergabe-teilnahme is
the reference implementation. Unblocked: DR-1/DR-3 resolved 2026-07-10.
### T05 — Scope client-hub (client/commercial plane)
```task
id: CUST-WP-0058-T05
status: wait
status: todo
priority: medium
state_hub_task_id: "442b7f81-44c7-4301-9466-c99c240c4e49"
```
@ -121,10 +129,10 @@ state_hub_task_id: "442b7f81-44c7-4301-9466-c99c240c4e49"
Write a scoping note (`docs/client-hub-scoping.md`) for the missing fourth
management plane: client registry, contracts/entitlements, client↔instance
mapping, support/SLA state. Default shape: **core-hub extension** (ops-hub
pattern) reusing hub-core primitives — justify any deviation. Output is a
draft workplan skeleton for the owning repo, not implementation.
**Waits on:** DR-1 resolution (T01) — tenancy determines the
client↔instance model.
pattern) reusing hub-core primitives — justify any deviation. Per DR-1 C the
client↔instance model is 1..n instances per client, consolidation-aware;
Binky Hedgehog GmbH itself is client #1 (DR-2 B). Output is a draft workplan
skeleton for the owning repo, not implementation. Unblocked: DR-1 resolved.
### T06 — fin-hub client-billing gap assessment
@ -156,8 +164,10 @@ pilot) client instance: vergabe-teilnahme build → immutable image in
instance → ops-hub evidence (endpoint, backup, smoke) → fin-hub cost
attribution. Implementation tasks live in the owning repos; this task tracks
sequencing and captures the evidence bundle under `docs/evidence/`.
Feeds DR-2 resolution. **Waits on:** T01 (tenancy) and T04 (contract
draft — may proceed in parallel once DR-1 is resolved).
DR-2 is already resolved (B), so the pilot no longer feeds that decision —
it validates the standalone-app delivery lane that now has two consumers
(vergabe-teilnahme and the coulomb.social rebuild). **Waits on:** T04
contract draft (DR-1 resolved 2026-07-10).
### T08 — Closeout: decisions recorded, downstream workplans seeded
@ -177,11 +187,13 @@ SCOPE.md Current State; archive this plan.
## Sequencing
```text
T01 (DR-1) ──┬──> T04 (contract) ──> T07 (pilot) ──> DR-2 evidence ──> T02 closes
└──> T05 (client-hub scope)
T03 (DR-3) ──┘
[DR-1 ✓, DR-2 ✓, DR-3 ✓ — resolved 2026-07-10]
T03 (NetKingdom trigger message) — small, immediate
T04 (contract) ──> T07 (delivery-lane pilot)
T05 (client-hub scope) — unblocked, parallel to T04
T06 (fin-hub gap) — independent, anytime
T08 — last
T08 (closeout: seed coulomb.social rebuild + bubble.io migration skeletons) — last
```
## References