From 0ddf012f48652cfd0ad64ea6361e4daf69e8ca25 Mon Sep 17 00:00:00 2001 From: codex Date: Mon, 28 Sep 2026 11:51:44 +0200 Subject: [PATCH] Review remaining ceiling work and record contract blockers Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e76a-f84c-7fb2-8309-fdbddf620a43 --- WORK-RECORDS.md | 14 +++---- ...WP-0010-plan-derived-guardrail-ceilings.md | 41 +++++++++++++++++-- workplans/ADHOC-2026-07-02.md | 1 + workplans/ADHOC-2026-07-03.md | 1 + 4 files changed, 47 insertions(+), 10 deletions(-) diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index bb23c55..85356fc 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -16,9 +16,9 @@ | workplan | ADAPTIVE-WP-0007 | finished | — | workplans/ADAPTIVE-WP-0007-provider-abstraction-and-stripe-publication.md | | workplan | ADAPTIVE-WP-0008 | finished | — | workplans/ADAPTIVE-WP-0008-governance-and-recommendation-workflows.md | | workplan | ADAPTIVE-WP-0009 | finished | — | workplans/ADAPTIVE-WP-0009-tenancy-posture-alignment.md | -| workplan | ADAPTIVE-WP-0010 | proposed | — | workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md | -| workplan | ADHOC-2026-07-02 | finished | — | workplans/ADHOC-2026-07-02.md | -| workplan | ADHOC-2026-07-03 | finished | — | workplans/ADHOC-2026-07-03.md | +| workplan | ADAPTIVE-WP-0010 | blocked | — | workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md | +| workplan | ADAPTIVE-WP-ADHOC-2026-07-02 | finished | — | workplans/ADHOC-2026-07-02.md | +| workplan | ADAPTIVE-WP-ADHOC-2026-07-03 | finished | — | workplans/ADHOC-2026-07-03.md | | task | ADAPTIVE-WP-0001-T01 | done | — | workplans/ADAPTIVE-WP-0001-statehub-bootstrap.md | | task | ADAPTIVE-WP-0001-T02 | done | — | workplans/ADAPTIVE-WP-0001-statehub-bootstrap.md | | task | ADAPTIVE-WP-0001-T03 | done | — | workplans/ADAPTIVE-WP-0001-statehub-bootstrap.md | @@ -58,10 +58,10 @@ | task | ADAPTIVE-WP-0009-T04 | done | — | workplans/ADAPTIVE-WP-0009-tenancy-posture-alignment.md | | task | ADAPTIVE-WP-0009-T05 | done | — | workplans/ADAPTIVE-WP-0009-tenancy-posture-alignment.md | | task | ADAPTIVE-WP-0009-T06 | done | — | workplans/ADAPTIVE-WP-0009-tenancy-posture-alignment.md | -| task | ADAPTIVE-WP-0010-T01 | todo | — | workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md | +| task | ADAPTIVE-WP-0010-T01 | wait | — | workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md | | task | ADAPTIVE-WP-0010-T02 | wait | — | workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md | | task | ADAPTIVE-WP-0010-T03 | wait | — | workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md | | task | ADAPTIVE-WP-0010-T04 | wait | — | workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md | -| task | ADHOC-2026-07-02-T01 | done | — | workplans/ADHOC-2026-07-02.md | -| task | ADHOC-2026-07-02-T02 | done | — | workplans/ADHOC-2026-07-02.md | -| task | ADHOC-2026-07-03-T01 | done | — | workplans/ADHOC-2026-07-03.md | +| task | ADAPTIVE-WP-ADHOC-2026-07-02-T01 | done | — | workplans/ADHOC-2026-07-02.md | +| task | ADAPTIVE-WP-ADHOC-2026-07-02-T02 | done | — | workplans/ADHOC-2026-07-02.md | +| task | ADAPTIVE-WP-ADHOC-2026-07-03-T01 | done | — | workplans/ADHOC-2026-07-03.md | diff --git a/workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md b/workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md index 0bdff93..e165113 100644 --- a/workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md +++ b/workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md @@ -4,12 +4,12 @@ type: workplan title: "Plan-derived guardrail spend ceilings" domain: financials repo: adaptive-pricing -status: proposed +status: blocked flavor: planning owner: codex topic_slug: helix-forge created: "2026-08-18" -updated: "2026-08-18" +updated: "2026-09-28" state_hub_workstream_id: "543e6398-d2cb-5105-977e-b90461adac3e" --- @@ -67,7 +67,7 @@ T01 produces a shape both repos accept. ```task id: ADAPTIVE-WP-0010-T01 -status: todo +status: wait priority: high state_hub_task_id: "7533431c-a0de-5ac8-a811-14e4604ad651" ``` @@ -89,6 +89,41 @@ Open questions to settle, not to assume: Record the outcome as a decision, since it binds two repos. +### 2026-09-28 interface review + +Reviewed tenant-engine at commit +`4ce89969c0cc0ab4ba111f1b4009aa137c94a68b`, specifically +`docs/tenant-guardrail-policy.md`, `src/tenant_engine/guardrail/resolution.py`, +`src/tenant_engine/guardrail/model.py`, and the guardrail read in +`src/tenant_engine/app.py`. The existing consumer establishes these facts: + +| Surface | Verified behavior | +| --- | --- | +| Resolver input | Optional `plan_limits: Mapping[str, LimitValue]`, already resolved for the tenant; no transport or plan lookup is defined here. | +| Monthly spend | Key `spend.monthly`; spend values carry integer minor units, currency and period. | +| Precedence | Per key: override, plan, grouping/reserved profile, fail-closed floor; lifecycle clamping follows resolution. | +| Missing plan value | Falls through to grouping; the resolver cannot distinguish a deliberately silent tier from an unavailable feed. | +| Unlimited | Explicit sentinel, never inferred from absence or parsing failure; assignment requires auditing. | +| Currency | Highest-precedence value wins; tenant-engine performs no exchange-rate conversion. | +| HTTP integration | The read endpoint calls `resolve_limits` without `plan_limits`; the documented feed remains unwired. | + +This completes the local interface investigation, not the joint agreement. +T01 remains `wait`: the following proposal needs acceptance by tenant-engine +and commercial decisions by Bernd Worsch before T02 can define schema terms. + +| Decision needed | Proposed basis for agreement (not adopted) | +| --- | --- | +| Representation and authority | Optional typed guardrail terms separate from charge components on the canonical tier; adaptive-pricing owns terms and revision, tenant-engine owns assignment. | +| Silent versus unavailable | Preserve grouping fallback for deliberately unmigrated tiers, with visible provenance. For migrated tiers, distinguish missing/stale/invalid terms from silence and return an explicit unavailable result rather than silently increasing the ceiling. Agree freshness and failure handling before wiring the feed. | +| Effective time | Carry an explicit approved effective time and revision. Bernd Worsch must choose immediate versus renewal application, including mid-period reductions and already-consumed spend. Do not infer this from an assignment timestamp. | +| Consumer handoff | Agree a versioned artifact or API and validation of plan identity, revision, amount, currency, period and freshness before converting to `LimitValue`; preserve overrides and lifecycle clamping. | +| Coherence basis | Define expected monthly spend in the same currency and period as the guardrail, with an evidence reference. Current charge prices alone do not establish expected spend or capacity. | + +Unblock evidence is a recorded joint contract with those decisions resolved; +then implement T02, T03 and T04 under their existing task IDs. No new workplan +or task is required. No ceiling values, customer terms, or resolver behavior +were changed by this review. + ## Extend The Pricing Schema With Ceiling Terms ```task diff --git a/workplans/ADHOC-2026-07-02.md b/workplans/ADHOC-2026-07-02.md index 2f707dd..d355c4a 100644 --- a/workplans/ADHOC-2026-07-02.md +++ b/workplans/ADHOC-2026-07-02.md @@ -9,6 +9,7 @@ owner: codex topic_slug: helix-forge created: "2026-07-02" updated: "2026-07-02" +state_hub_workstream_id: "e7b3e090-f9a7-5a54-8108-406c71df78ac" --- # Ad hoc repo maintenance - 2026-07-02 diff --git a/workplans/ADHOC-2026-07-03.md b/workplans/ADHOC-2026-07-03.md index cd85b9e..3d79d54 100644 --- a/workplans/ADHOC-2026-07-03.md +++ b/workplans/ADHOC-2026-07-03.md @@ -9,6 +9,7 @@ owner: codex topic_slug: helix-forge created: "2026-07-03" updated: "2026-07-03" +state_hub_workstream_id: "be24f99d-2047-5256-a7f8-1c4868094e45" --- # Ad hoc repo maintenance - 2026-07-03