routing-recommendations — Routing recommendations derived from measured cost
The profile a task should run under is recommended from measured cost per accepted outcome, and the recommendation names the data it came from.
BLOCKED 0 of 4 issues done
- ready
- 0
- blocked
- 4
- active
- 0
- verify
- 0
- done
- 0
- cancelled
- 0
Problem
Choosing which capability to send a task to is currently a judgement nobody can check. A recommendation not derived from measured outcomes is an opinion with a command around it.
Outcome
The profile a task should run under is recommended from measured cost per accepted outcome, and the recommendation names the data it came from.
Current state
Not started, and gated on cost per accepted outcome existing at all.
Desired state
A worker can ask which profile a class of task should use and get an answer traceable to measurements.
Scope
- bin
- lib
- test/cases
- docs
- site/data/generated
Out of scope
- Automatic routing without a person's decision
Acceptance criteria
- Every recommendation names the measurements it was derived from
- Insufficient data produces no recommendation rather than a weak one
- The recommendation is advisory and never silently changes a profile
Validation
- bash test/run.sh
Evidence required
- suite
Risks
- A recommendation that is followed becomes a cause of the data that justifies it.
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.
| issue | status | wave | depends on | title |
|---|---|---|---|---|
| I0501 | BLOCKED | 0 | — | Group comparable work from what the records already carry |
| I0502 | BLOCKED | 1 | I0501 | Recommend a profile from measured cost, naming the measurements |
| I0503 | BLOCKED | 2 | I0502 | Return no recommendation where the data is too thin, and say why |
| I0504 | BLOCKED | 3 | I0503 | Prove the recommendation is advisory and publish it as such |
The graph
flowchart LR
I0501["I0501<br/>Group comparable work from what the records already carry"]:::blocked
I0502["I0502<br/>Recommend a profile from measured cost, naming the measurements"]:::blocked
I0503["I0503<br/>Return no recommendation where the data is too thin, and say why"]:::blocked
I0504["I0504<br/>Prove the recommendation is advisory and publish it as such"]:::blocked
I0501 --> I0502
I0502 --> I0503
I0503 --> I0504
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:2pxCanonical record: .ai/repo/project/milestones/routing-recommendations.yaml. Read it back with majordomus plan show routing-recommendations.