Skip to content
Planner settings

Planner settings

The planner turns what you asked for into a plan: one repository with its evidence, one to three issues, the roles that will run and the ceiling the work is charged against. Its settings are one block of the room broker’s config file, human.intake.plan in infrastructure/base/room-broker/config.yaml.

Every value below is the reference host’s. Repositories are owner/name; dollars are ceilings, not prices.

KeyExample valueWhat it doesBounds
enabledfalseServes the planner’s two tools; off, both answer unknown tooltrue or false
urlhttp://ai-gateway.envoy-gateway-system.svc.cluster.local:8080/v1The AI Gateway data plane the one model call goes toAn absolute http(s):// URL, no credentials in it
modeltier-frontierThe model the plan call namestier-frontier, and nothing else
apiKeyFile/etc/room-broker/planner/api-keyThe client key, read at each call so a rotation needs no restartA path the broker already mounts
deadline20sHow long the one call may takeAbove 0, at most 20 s
dailyPlans50Plans one person may ask for per dayAt least 1
fallback"off"Whether a deterministic draft stands in when no model answersoff or composer
repositories[Smana/ai-native-ref]The allowlist: the only repositories a plan may nameowner/name, each listed once
classessee the class tablePer class: the roles a plan carries and the money it may costA class the factory serves

The class table

A plan assigns each issue one class, and the class — not the model — decides the roles and the ceiling. The broker checks the model’s choice against this table and refuses a class it does not hold, so a class here that no served repository has is a plan nobody can run.

Example (the reference host):

      classes:
        docs-links: {roles: [scoper, implementer, reviewer], ceilingUSD: 2.00, source: "class:docs-links.taskUSD"}
FieldWhat it isBounds
rolesThe roles that run for this class, in orderRoles the factory has; no duplicates
ceilingUSDThe most this plan’s work may costAbove 0, at most the default tier’s taskUSD
sourceWhere the ceiling came from, as the plan shows itclass:<this class>.taskUSD, or channel:maxCostUSD

The ceiling is a cap to charge against, not a reservation: the runs it bounds are the factory’s, and their spend is counted as every other task’s. A ceiling above the tier’s own taskUSD would promise money the factory does not have, which is why the tier is the upper bound.

What the planner never decides

The allowlist, the class, the roles and the ceiling are config. The model chooses a repository from the allowlist and a class from the table, and writes the issue text; everything else a plan shows is the broker’s. A reply that names a repository outside the allowlist, or a class outside the table, is refused whole rather than trimmed.

A plan is also not the factory’s scope. It says what will be filed; the scoper still turns the issue into the runs that do the work.

Which capabilities are switched on where you are is on the status page. The factory’s own settings are in the harness reference.