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.