Skip to content

I0202 — Resolve a task's effective limits and print them as data

Add a read-only command that resolves the limits the active task's profile derives and prints them, in text and as JSON, so that a worker, a wrapper or a test can read the same numbers the enforcement will use.

BLOCKED wave 1 · p1 · implementation profile · runs alone

Part of runtime-adapters — Profiles become runtime constraints rather than advice.

Blocked. This issue cannot start until I0201 is done. The status is derived from that, not declared.

Objective

Add a read-only command that resolves the limits the active task's profile derives and prints them, in text and as JSON, so that a worker, a wrapper or a test can read the same numbers the enforcement will use.

Why

A limit that cannot be read before it bites is a limit nobody can test, and a limit computed twice is a limit that will disagree with itself. One resolver, one output, consumed by everything downstream.

Current state

The mapping declares what a limit is. Nothing computes the limits for a given task, and the task record carries no way to ask.

Desired state

Running one command inside a task prints every limit the profile derives and the axis each came from. With no active task it resolves the default profile and says so.

Scope

  • lib
  • bin

Out of scope

  • Enforcing any limit
  • Caching the resolved values anywhere; resolution is cheap and stays derived

Dependencies

What waits on this

Acceptance criteria

  • The command prints every declared limit, its value, and the profile axis it was derived from
  • JSON output carries the same set the text output does
  • With no active task the default profile is resolved and named as the default
  • The resolver is the only place a limit value is computed

Validation

  • bash test/run.sh

Evidence required

  • suite

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Risk

A second computation of a limit anywhere else silently forks the contract; the case has to compare the enforced value against this command's output rather than against a constant.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

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

Searches the titles and descriptions of every page this site publishes.