fix(workplans): adopt ADR-007 derived identifiers for unregistered records
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

These workplans exist only in the retired local hub. Their random pre-ADR-007
identifiers are refused by C-06 as stale references, so they cannot be
registered. Deriving from the canonical record id takes no identity from
anything: central does not hold them and the old ids die with the cache.

Records central already holds were deliberately left untouched.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
This commit is contained in:
codex 2026-08-25 20:13:58 +02:00
parent df706d2172
commit 8bb446c1fa
2 changed files with 15 additions and 15 deletions

View file

@ -15,7 +15,7 @@ depends_on_workplans:
- LLM-WP-0005
related_workplans:
- LLM-WP-0006
state_hub_workstream_id: "a93d226a-f5c4-4656-b584-a783840b10fe"
state_hub_workstream_id: "7878d7d1-b56f-5ac7-9203-e2ce44ac7c2e"
---
# LLM-WP-0007 — Kimi K3 default via OpenRouter + EUR spend reporting
@ -175,7 +175,7 @@ print clear `unknown` when not.
id: LLM-WP-0007-T01
status: done
priority: high
state_hub_task_id: "af12101d-bcd5-4d6f-9507-c81de79a0685"
state_hub_task_id: "ca5aabf6-6444-5710-8437-241c99177152"
```
**Validate Kimi K3 via OpenRouter.** Confirm `moonshotai/kimi-k3` is callable
@ -188,7 +188,7 @@ or README providers table. Gate for T02.
id: LLM-WP-0007-T02
status: done
priority: high
state_hub_task_id: "ca836db8-9041-42e5-87ce-7c3ace1298a3"
state_hub_task_id: "cb0a4fb2-d008-51f8-b222-ee16dfdf16fe"
```
**Promote Kimi K3 to OpenRouter basemodel default** after T01 smoke passes.
@ -201,7 +201,7 @@ leave default unchanged and record the blocker in the task notes.
id: LLM-WP-0007-T03
status: done
priority: high
state_hub_task_id: "f379d09b-ea03-44f5-82fa-171da4681cef"
state_hub_task_id: "6fa5a4d7-e694-5a7b-b16b-4652062dd78d"
```
**USD→EUR cost conversion.** Add `fx` helper + extend `CostEstimate` with EUR
@ -213,7 +213,7 @@ model still yields `cost_usd=None` / `cost_eur=None`.
id: LLM-WP-0007-T04
status: done
priority: high
state_hub_task_id: "cadf1b0c-fdea-4446-8d01-964b2706540d"
state_hub_task_id: "0ac06271-5dea-5f4f-8ce6-b5db549a21df"
```
**Usage ledger.** Implement `UsageEvent` + append-only JSONL `UsageLedger`
@ -226,7 +226,7 @@ effort flock), and range aggregation.
id: LLM-WP-0007-T05
status: done
priority: high
state_hub_task_id: "8956fd74-cad4-435c-ae66-6b19088691e4"
state_hub_task_id: "33443864-fdce-5b24-8a7f-00c0697a69a1"
```
**CLI `run` with per-call cost footer.** Extend `llm-connect` with a `run`
@ -238,7 +238,7 @@ estimation from response usage + rate table + FX. Tests with mock adapter.
id: LLM-WP-0007-T06
status: done
priority: high
state_hub_task_id: "ac5e4322-cd00-4034-b162-a0e1c481180e"
state_hub_task_id: "23223ec1-5575-589d-a8b0-50df8d38bd3c"
```
**CLI weekly spend views.** `llm-connect spend week` and `spend week --last`
@ -250,7 +250,7 @@ fixed timezone.
id: LLM-WP-0007-T07
status: done
priority: medium
state_hub_task_id: "a05761b9-d91c-4b6d-9e90-296aadadaf16"
state_hub_task_id: "79dd15d9-b2ad-547b-a4e8-d80b26d342e4"
```
**Optional library/server recording.** When `LLM_CONNECT_USAGE_LEDGER` is set,
@ -262,7 +262,7 @@ opt-in so library consumers are not surprised by home-dir writes.
id: LLM-WP-0007-T08
status: done
priority: medium
state_hub_task_id: "94ce6aee-2835-46c0-a3e6-3d0345e7715f"
state_hub_task_id: "4b835a23-048b-51ee-837d-48abd108f182"
```
**Docs + acceptance polish.** README: new default model, CLI examples for

View file

@ -14,7 +14,7 @@ updated: "2026-08-03"
depends_on_workplans:
- LLM-WP-0007
related_workplans: []
state_hub_workstream_id: "b8302848-5437-44ad-aec9-5c2df8cd5a47"
state_hub_workstream_id: "d43fd87d-27de-5e00-b362-9cb96ca5ffa5"
---
# LLM-WP-0008 — Provider-scoped account balance CLI
@ -198,7 +198,7 @@ shipping a fake production path.
id: LLM-WP-0008-T01
status: done
priority: high
state_hub_task_id: "7df3a274-4ed9-429b-aabc-15fc52c91bfc"
state_hub_task_id: "ba9af2d8-8887-53f3-98d8-6e0a25846125"
```
**Define `AccountBalance` + `ProviderBalanceClient` protocol and registry** in
@ -210,7 +210,7 @@ Tests: default resolution, unknown provider, unsupported provider.
id: LLM-WP-0008-T02
status: done
priority: high
state_hub_task_id: "ff564d7c-5131-4e3e-b0cd-51a41e7a1261"
state_hub_task_id: "4381bf6a-dc61-5b54-b524-158e054bb32f"
```
**OpenRouter balance client.** Call `/api/v1/credits` and `/api/v1/auth/key`
@ -222,7 +222,7 @@ failure of one endpoint). Live smoke optional / manual.
id: LLM-WP-0008-T03
status: done
priority: high
state_hub_task_id: "61879d8f-2271-4fa1-9a7b-dbdf7a0d408d"
state_hub_task_id: "1cd9a7c1-32c8-5487-8bae-b045bf2c245b"
```
**CLI `llm-connect balance [--provider …] [--json] [--eur-per-usd …]`.**
@ -234,7 +234,7 @@ unsupported backends. Tests via mocked client registration.
id: LLM-WP-0008-T04
status: done
priority: medium
state_hub_task_id: "9da2c09a-fe32-4602-bcad-5f0f46d4da0f"
state_hub_task_id: "0326e771-906d-540d-87d2-86e99b7d1165"
```
**Package exports + contract docs + README.** Export balance types; document
@ -245,7 +245,7 @@ Note OpenRouter dual signals (account credits vs key limit).
id: LLM-WP-0008-T05
status: done
priority: low
state_hub_task_id: "ebf67737-3f3d-458b-9dec-9224f08c8016"
state_hub_task_id: "a602f04d-15dc-58e6-9b0f-fadf8f7edb62"
```
**Acceptance polish.** Confirm with a real key (operator or CI secret) that