Skip to content

runtime-adapters — Profiles become runtime constraints rather than advice

A profile's axes become opt-in runtime clamps a provider actually applies — read size, output condensation, subagent budget — with the limit derived from the profile rather than configured twice.

PLANNED 0 of 6 issues done

ready
1
blocked
5
active
0
verify
0
done
0
cancelled
0

Problem

A profile declares an effort and a verbosity, and then nothing enforces them. The worker reads the projection and is trusted to behave. An axis that only ever appears in generated prose is a preference, not a control.

Outcome

A profile's axes become opt-in runtime clamps a provider actually applies — read size, output condensation, subagent budget — with the limit derived from the profile rather than configured twice.

Current state

Not started. The profiles exist and project correctly; nothing derives a runtime limit from them.

Desired state

Starting a task under a profile constrains what the worker may do, and the constraint is visible in the same place the profile is.

Scope

  • bin
  • lib
  • share
  • test/cases
  • docs
  • site/data/generated

Out of scope

  • Provider-specific behaviour that cannot be verified from this repository

Acceptance criteria

  • At least one runtime limit is derived from the profile and applied, not merely printed
  • The limit is opt-in and a repository that does not want it is unaffected
  • A behavioural case proves the limit changes what happens, not only what is reported

Validation

  • bash test/run.sh

Evidence required

  • suite

Risks

  • Only providers that expose a real knob can be clamped honestly; the rest would be theatre.

Issues

Each one is an execution contract with its own acceptance criteria, validation command and required evidence. The wave column is the layer of the dependency graph it sits in.

issuestatuswavedepends ontitle
I0201 READY 0 Declare which profile axis may become which runtime limit
I0202 BLOCKED 1 I0201 Resolve a task's effective limits and print them as data
I0203 BLOCKED 2 I0202 Make enforcement opt-in, and prove a repository that declines is unaffected
I0204 BLOCKED 3 I0203 Apply one derived limit for real and prove it changes what happens
I0205 BLOCKED 4 I0204 Declare the clamp as a doctrine so the mapping and the adapter cannot drift
I0206 BLOCKED 5 I0205 Publish the runtime-adapters claim with the test that proves it and the limits it does not cover

The graph

runtime-adapters dependency graphfrom .ai/repo/project
flowchart LR
    I0201["I0201<br/>Declare which profile axis may become which runtime limit"]:::ready
    I0202["I0202<br/>Resolve a task's effective limits and print them as data"]:::blocked
    I0203["I0203<br/>Make enforcement opt-in, and prove a repository that declines is unaffected"]:::blocked
    I0204["I0204<br/>Apply one derived limit for real and prove it changes what happens"]:::blocked
    I0205["I0205<br/>Declare the clamp as a doctrine so the mapping and the adapter cannot drift"]:::blocked
    I0206["I0206<br/>Publish the runtime-adapters claim with the test that proves it and the limits it does not cover"]:::blocked
    I0201 --> I0202
    I0202 --> I0203
    I0203 --> I0204
    I0204 --> I0205
    I0205 --> I0206
    classDef done stroke:#16a34a,fill:#052e16,stroke-width:2px
    classDef active stroke:#2563eb,fill:#eff6ff,stroke-width:2px
    classDef verify stroke:#7c3aed,fill:#f5f3ff,stroke-width:2px
    classDef ready stroke:#0891b2,fill:#ecfeff,stroke-width:2px
    classDef blocked stroke:#b45309,fill:#fffbeb,stroke-width:2px
    classDef cancelled stroke:#6b7280,fill:#f9fafb,stroke-width:2px

Canonical record: .ai/repo/project/milestones/runtime-adapters.yaml. Read it back with majordomus plan show runtime-adapters.