I3423 — docs/REASONING.md maps the pack's routing levels onto the existing plan outcomes and modes, and a test fails when an outcome is missing from that mapping
Document the pack's four routing levels (deterministic, cheap local, reasoning peer, multi-peer critique) in docs/REASONING.md as a mapping onto the existing PlanOutcome values and modes, and name the level that has no producer today. Add a unit test in policy.rs that fails when a PlanOutcome variant is absent from the mapping table. Add no field, no setting and no noun.
BLOCKED wave 3 · p2 · implementation profile · parallel safe
Blocked. This issue cannot start until I3419, milestone:an-inference-names-its-source-and-budget are done. The status is derived from that, not declared.
Objective
Document the pack's four routing levels (deterministic, cheap local, reasoning peer, multi-peer critique) in docs/REASONING.md as a mapping onto the existing PlanOutcome values and modes, and name the level that has no producer today. Add a unit test in policy.rs that fails when a PlanOutcome variant is absent from the mapping table. Add no field, no setting and no noun.
Why
The owner's 2026-10-19 Cognitive Fabric pack declares routing tiers and asks for existing modes to be enriched, not replaced (campaigns/prismatic-way-cognitive-fabric-prompt-pack/contracts/ECONOMICS.md). Rule project.no-new-nouns forbids a new tier vocabulary, so the mapping is documentation of the existing outcomes, enforced by a test.
Current state
PlanOutcome (apps/majordomus-cli/src/reasoning/policy.rs:182-205) distinguishes deciding locally, reusing and consulting. models.route picks the first declared model (apps/majordomus-cli/src/models/mod.rs:241-244), and local vendors declare no model (share/models.yaml:15). .ai/repo/rules/project/no-new-nouns.v1.md forbids new tiers.
Desired state
A reader of docs/REASONING.md finds where each pack level lands. A new PlanOutcome variant without a row fails the test.
Scope
- docs/REASONING.md
- apps/majordomus-cli/src/reasoning/policy.rs
Out of scope
- A tier field on the plan
- Running any local model
- A new mode or settings tree
Dependencies
What waits on this
Acceptance criteria
- The mapping names every PlanOutcome variant and the mode in which each occurs
- The unit test fails when a variant is added without a row (shown once by a local mutation, then reverted)
- The mapping states that the cheap local level has no producer until the local-inference work lands
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib reasoning::policy
- bash test/run.sh 730_reasoning_works_with_no_advisor
- majordomus reasoning check
Evidence required
- every_plan_outcome_is_mapped
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
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/I3423.yaml. Read it back with majordomus plan show I3423.