---
id: FAS-PFM-LLM-01
title: Metered AI Requests acceptance
feature: FEAT-PFM-LLM-01
product_area: platform
module: llm
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  rhythm-v2-docs: 9b95399181c8ec6670ce3d12d700e59643668692
capabilities:
  - CAP-PFM-LLM-001
  - CAP-PFM-LLM-002
  - CAP-PFM-LLM-003
  - CAP-PFM-LLM-004
scenarios:
  - id: FAS-PFM-LLM-01-01
    title: One task accounts for its model conversations
    kind: behaviour
    exercises:
      - CAP-PFM-LLM-001
      - CAP-PFM-LLM-002
      - CAP-PFM-LLM-003
      - CAP-PFM-LLM-004
    relies_on:
      - ATS-PFM-LLM-001-03
      - ATS-PFM-LLM-003-05
      - ATS-PFM-LLM-004-01
    preconditions: A declared task has three scripted requests and a configured capture store.
    steps: 'Complete the task and compare request charges, task totals, monthly accounting and capture states.'
    expected: >-
      The returned result, task totals and monthly charge agree with the settled requests, whose redacted
      evidence is retained.
    negative: false
    data_needs: >-
      An isolated workspace with stated usage, callers, clock instants and a separate workspace for scope
      checks.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-001-make-every-ai-request-through-one-metered-path.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-002-keep-an-ai-conversation-within-its-limits.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-003-account-for-a-multi-step-ai-task-as-one-execution.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-004-keep-redacted-evidence-of-every-ai-request.md
  - id: FAS-PFM-LLM-01-02
    title: A repaired answer remains one metered request
    kind: interaction
    exercises:
      - CAP-PFM-LLM-001
      - CAP-PFM-LLM-002
      - CAP-PFM-LLM-003
    relies_on:
      - ATS-PFM-LLM-002-08
      - ATS-PFM-LLM-003-05
    preconditions: A task request first returns a rejected final answer and then a valid repair.
    steps: >-
      Reject the first answer through the consumer judge, accept the repair and inspect attempts and
      settlement.
    expected: >-
      Both turns belong to one request and one task; usage includes the repair and the rejected call consumes
      tool budget.
    negative: false
    data_needs: >-
      An isolated workspace with stated usage, callers, clock instants and a separate workspace for scope
      checks.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-001-make-every-ai-request-through-one-metered-path.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-002-keep-an-ai-conversation-within-its-limits.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-003-account-for-a-multi-step-ai-task-as-one-execution.md
  - id: FAS-PFM-LLM-01-03
    title: A failed task retains completed request accounts
    kind: lifecycle
    exercises:
      - CAP-PFM-LLM-001
      - CAP-PFM-LLM-003
      - CAP-PFM-LLM-004
    relies_on:
      - ATS-PFM-LLM-003-01
      - ATS-PFM-LLM-004-01
    preconditions: A task completes two requests before its body throws.
    steps: 'Let the body fail and inspect the task, associated requests and evidence.'
    expected: >-
      The task closes failed with timing while earlier settled costs and capture references remain
      investigable.
    negative: false
    data_needs: >-
      An isolated workspace with stated usage, callers, clock instants and a separate workspace for scope
      checks.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-001-make-every-ai-request-through-one-metered-path.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-003-account-for-a-multi-step-ai-task-as-one-execution.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-004-keep-redacted-evidence-of-every-ai-request.md
  - id: FAS-PFM-LLM-01-04
    title: Workspace removal respects the diagnostic boundary
    kind: permission
    exercises:
      - CAP-PFM-LLM-001
      - CAP-PFM-LLM-004
    relies_on:
      - ATS-PFM-LLM-004-04
    preconditions: Two workspaces have model records and captured content.
    steps: Remove the first workspace’s AI records and inspect both workspaces through scoped readers.
    expected: >-
      The removed workspace has no surviving dependent AI records or evidence versions; the other workspace
      remains unchanged.
    negative: true
    data_needs: >-
      An isolated workspace with stated usage, callers, clock instants and a separate workspace for scope
      checks.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-001-make-every-ai-request-through-one-metered-path.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-004-keep-redacted-evidence-of-every-ai-request.md
  - id: FAS-PFM-LLM-01-05
    title: Unknown usage keeps an explicit estimate
    kind: regression
    exercises:
      - CAP-PFM-LLM-001
      - CAP-PFM-LLM-002
      - CAP-PFM-LLM-003
    relies_on:
      - ATS-PFM-LLM-001-03
      - ATS-PFM-LLM-003-05
    preconditions: A task’s scripted model completes successfully without usage figures.
    steps: 'Settle the request and compare request, task and period costs.'
    expected: >-
      The reservation estimate is charged with unknown cents and the hold is released; the task retains that
      accounting distinction.
    negative: true
    data_needs: >-
      An isolated workspace with stated usage, callers, clock instants and a separate workspace for scope
      checks.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-001-make-every-ai-request-through-one-metered-path.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-002-keep-an-ai-conversation-within-its-limits.md
      - >-
        rhythm-v2-docs:specs/platform/llm/planning/capabilities/CAP-PFM-LLM-003-account-for-a-multi-step-ai-task-as-one-execution.md
evidence:
  - artifact: CAP-PFM-LLM-001
    provenance: documented
    source: >-
      specs/platform/llm/planning/capabilities/CAP-PFM-LLM-001-make-every-ai-request-through-one-metered-path.md
  - artifact: CAP-PFM-LLM-002
    provenance: documented
    source: specs/platform/llm/planning/capabilities/CAP-PFM-LLM-002-keep-an-ai-conversation-within-its-limits.md
  - artifact: CAP-PFM-LLM-003
    provenance: documented
    source: >-
      specs/platform/llm/planning/capabilities/CAP-PFM-LLM-003-account-for-a-multi-step-ai-task-as-one-execution.md
  - artifact: CAP-PFM-LLM-004
    provenance: documented
    source: specs/platform/llm/planning/capabilities/CAP-PFM-LLM-004-keep-redacted-evidence-of-every-ai-request.md
  - provenance: documented
    source: 'rhythm-v2-docs:specs/CONVENTIONS.md#5.3 Feature Acceptance Suite'
execution_gap: FND-PFM-LLM-081
---

# Metered AI Requests acceptance

## What the Feature Must Do as a Whole

A declared task has three scripted requests and a configured capture store. Complete the task and compare request charges, task totals, monthly accounting and capture states. The suite compares the feature outcome with its capability prerequisites and keeps partial proof visible.

## Interactions Between Capabilities

A task request first returns a rejected final answer and then a valid repair. Reject the first answer through the consumer judge, accept the repair and inspect attempts and settlement. The interaction scenario checks what changes across that shared boundary. Lifecycle, permission and regression scenarios preserve the wider feature obligations.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative feature acceptance from the pinned capability and design baseline. |
