Skip to content

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

Part of an-inference-names-its-source-and-budget — Every inference a decision rests on names its model and source, stays inside a declared budget, counts independent sources rather than answers, and is never reached from a hook path.

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.

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