Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3287 — A provider declares how it reports usage, with the evidence, beside its lifecycle

Extend share/providers.yaml `offers` with `usage` (otel | app-server | stream-json | none) and `usage_evidence`, so discovery, normalisation, tests and surfaces read one declaration instead of a ClaudeTelemetry/CodexTelemetry/GeminiTelemetry subsystem.

PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně

Part of every-sessions-usage-is-observed — What every AI session consumed is observed from the provider, attributed to the work it served, and never estimated into a fact.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3287 bude přijato.

Cíl

Extend share/providers.yaml `offers` with `usage` (otel | app-server | stream-json | none) and `usage_evidence`, so discovery, normalisation, tests and surfaces read one declaration instead of a ClaudeTelemetry/CodexTelemetry/GeminiTelemetry subsystem.

Proč

The owner ordered one generic fabric (c253#3); providers.yaml already carries `offers` with dated evidence for episodes and prompts, so the usage seam is a fourth key, not a new 'telemetry adapter descriptor' noun. Plan repair carried here (the intent's own criteria were repaired in the plan on 2026-10-18; what remains is the existing execution-telemetry milestone and I0301-I0304) because I3287 has no dependencies and is the first issue every telemetry issue waits on: ADR 0213 promises that execution-telemetry drops runtime-adapters, but no milestone file changed, so I0301 and everything depending on it was derived BLOCKED. It extends milestone execution-telemetry. Proposed in ADR 0213 (Usage is observed through each provider's official telemetry into one provider-neutral record, and reported, estimated and billed amounts are never merged) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c253#4.

Aktuální stav

share/providers.yaml declares episode and prompts per provider; nothing about usage.

Cílový stav

claude-code: otel and stream-json; codex: app-server; gemini: otel; agents/bb: none — each with a citation verified at implementation; product validate refuses a key without evidence.

Rozsah

  • share/providers.yaml
  • apps/majordomus-cli/src/commands/product.rs
  • .ai/repo/project/milestones/execution-telemetry.yaml
  • .ai/repo/project/issues/I0301.yaml
  • .ai/repo/project/issues/I0302.yaml
  • .ai/repo/project/issues/I0303.yaml
  • .ai/repo/project/issues/I0304.yaml
  • share/schemas/generated/providers.schema.json
  • apps/majordomus-cli/src/share.rs
  • apps/majordomus-cli/src/product.rs
  • apps/majordomus-cli/src/capability/builtin/lifecycle.rs
  • test/cases/170_provider_lifecycle_declared.sh
  • docs/generated/providers.json
  • docs/generated/providers.md
  • docs/generated/providers.yaml

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Every provider row states usage and its evidence
  • lifecycle providers and product validate report the usage seam
  • A row with usage and no evidence is refused
  • execution-telemetry no longer depends_on runtime-adapters (ADR 0213 Consequences) and depends on every-sessions-usage-is-observed, and `majordomus plan show I0301` no longer derives BLOCKED from its milestone
  • I0301 is rescoped to apps/majordomus-cli/src/economics and share/schemas and defines the usage record (Option<u64> per category, an absence reason, a named reporter per field)
  • I0302 is cancelled as superseded by I3288 with its criteria carried into I3288; I0303 is rescoped to test/cases over the Rust receiver; I0304 is rescoped to the Rust economics read surface with a declared retention bound
  • No acceptance criterion is ranked by both execution-telemetry and every-sessions-usage-is-observed (`majordomus plan validate` passes)
  • Codex's usage row cites dated evidence on whether its own OpenTelemetry export covers sessions the person starts, or declares that seam unadapted with the reason
  • The intent's criteria stand as the plan declares them on 2026-10-18 (no-estimate-shown-as-spend-or-saving replaces no-unmeasured-claim; a-silent-provider-is-absent, gemini-usage-recorded, compaction-is-measured, over-budget-is-told, savings-are-measured-by-arm and own-overhead-is-measured are served), and `majordomus intent validate` reports no criterion of the intent unserved

Validace

  • majordomus product validate
  • majordomus generate --check
  • bash test/run.sh 170_provider_lifecycle_declared
  • majordomus plan validate

Požadované důkazy

  • case_a_provider_declares_its_usage_seam

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3287.yaml. Read it back with majordomus plan show I3287.

Prohledává názvy a popisy všech stránek, které tento web publikuje.