Skip to content

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

Each consultation is attributable, and independence is counted by a defined source. Peer critique reviews the evidence. A spent budget decides locally and says so, and consultation usage is economics data with its class. The pack's routing levels are documented as the existing plan outcomes. Hook closures are checked to reach no model. Reuse holds only while its evidence holds, and a poisoned answer stays data.

BLOCKED 0 of 9 issues done

ready
0
blocked
9
active
0
verify
0
done
0
cancelled
0

Problem

majordomus reasoning plans, consults, records and settles disagreement by experiment, but six gaps remain. A consultation records no model (apps/majordomus-cli/src/reasoning/record.rs:414-460). Selection counts one adapter as one source (policy.rs:355-358) while the conclusion counts distinct advisor ids (store.rs:789-793), so two peers through the one mesh-review adapter count as two independent reviews. A mesh peer is asked a subject line without the evidence (scripts/lib/advisors/mesh-review.mjs:31-35). Reuse has no validity window (store.rs:446-497). The only budget is an advisor count (policy.rs:341), and advisor usage never reaches economics. Nothing refuses a hook path that reaches a model.

Outcome

Each consultation is attributable, and independence is counted by a defined source. Peer critique reviews the evidence. A spent budget decides locally and says so, and consultation usage is economics data with its class. The pack's routing levels are documented as the existing plan outcomes. Hook closures are checked to reach no model. Reuse holds only while its evidence holds, and a poisoned answer stays data.

Current state

Verified by code and tests: six reasoning capabilities (capability/builtin/reasoning.rs:563-668); zero advisors in CI; offline and local fallback; circuit breaker, timeout and rate limit; disagreement settled by evidence (cases 730-736). Also verified: mesh trust, partition conflict, reconnect and expiry (mesh_cooperation.rs:474,494,716; mesh/state.rs:962).

Desired state

I3418 to I3426 have landed as nine pull requests that extend the reasoning, advisor transport and economics files, with no new store, setting tree, noun or peer identity.

Scope

  • apps/majordomus-cli/src/reasoning/policy.rs
  • apps/majordomus-cli/src/reasoning/record.rs
  • apps/majordomus-cli/src/reasoning/store.rs
  • apps/majordomus-cli/src/reasoning/state.rs
  • apps/majordomus-cli/src/reasoning/check.rs
  • apps/majordomus-cli/src/capability/builtin/reasoning.rs
  • apps/majordomus-cli/src/capability/builtin/economics.rs
  • apps/majordomus-cli/src/economics/model.rs
  • apps/majordomus-cli/src/economics/report.rs
  • apps/majordomus-cli/tests/economics.rs
  • apps/majordomus-cli/tests/reasoning_mesh.rs
  • scripts/advisor-consult
  • scripts/lib/advisors/contract.mjs
  • scripts/lib/advisors/contract.test.mjs
  • scripts/lib/advisors/mesh-review.mjs
  • scripts/lib/advisors/ollama-chat.mjs
  • scripts/lib/advisors/lmstudio-chat.mjs
  • scripts/lib/advisors/openai-chat.mjs
  • docs/REASONING.md
  • docs/ECONOMICS.md

Out of scope

  • Running or observing local models (the local-inference work, unmerged on feature/a-local-runtime-is-observed)
  • A tier field or any other new noun (rule project.no-new-nouns)
  • Mesh work assignment (I3198, I3199)
  • Provider session usage and price lists (declared by I3292 and I3295; this milestone only reads them)
  • Replacing the mesh-review poll with the pushed channel (unmerged on feature/the-blackboard-is-pushed)
  • Fairness scheduling across tasks without measured contention

Acceptance criteria

  • The six reasoning criteria of the intent are rewritten to evidence: test
  • majordomus reasoning check is clean on this repository, and cases 730 to 736 pass with their intent unchanged
  • No advisor, model or vendor literal enters the provider-independent reasoning files

Validation

  • majordomus plan validate

Risks

  • I3421 waits on I3295 and I3422 on I3292; I3424, I3426, I3418, I3419, I3423, I3425 and I3420 land first
  • feature/a-local-runtime-is-observed touches no file under apps/majordomus-cli/src/reasoning or scripts/lib/advisors. It changes models/mod.rs (models.route), models/observed.rs, builtin/models.rs and scripts/lib/inference. I3423's mapping must name models.route's choice as it stands when I3423 lands, and I3424's transport pattern names scripts/lib/inference for when that directory lands
  • Records already stored carry no model or session; I3418 reads them as absent with a reason and never rewrites them

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.

issuestatuswavedepends ontitle
I3418 BLOCKED 1 I3426 Every advisor consultation records the model that answered, the source it came through and the session that asked
I3419 BLOCKED 2 I3418 A conclusion's independent review count counts distinct sources, defined as adapter plus recorded model, so two answers from one source are one review
I3420 BLOCKED 2 I3418 A mesh peer asked for critique receives the question and its evidence, and its answer is recorded with the session that gave it
I3421 BLOCKED 5 I3295, I3425 A reasoning plan over the task's declared token or time budget consults nobody and says that the budget decided
I3422 BLOCKED 6 I3418, I3421, I3292 Advisor consultations are economics usage with their measurement class, and a consultation over its plan's budget is a finding
I3423 BLOCKED 3 I3419 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
I3424 BLOCKED 0 — No inference transport is reachable from the shell closure of any declared hook command, and reasoning check refuses one that is
I3425 BLOCKED 4 I3423 A standing conclusion is reused only while the files it cites are unchanged since it was recorded
I3426 BLOCKED 0 — An advisor answer carrying instructions or record-shaped fields is kept as bounded text and changes no record

The graph

an-inference-names-its-source-and-budget dependency graphfrom .ai/repo/project
flowchart LR
    I3418["I3418<br/>Every advisor consultation records the model that answered, the source it came through and the session that asked"]:::blocked
    I3419["I3419<br/>A conclusion's independent review count counts distinct sources, defined as adapter plus recorded model, so two answers from one source are one review"]:::blocked
    I3420["I3420<br/>A mesh peer asked for critique receives the question and its evidence, and its answer is recorded with the session that gave it"]:::blocked
    I3421["I3421<br/>A reasoning plan over the task's declared token or time budget consults nobody and says that the budget decided"]:::blocked
    I3422["I3422<br/>Advisor consultations are economics usage with their measurement class, and a consultation over its plan's budget is a finding"]:::blocked
    I3423["I3423<br/>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"]:::blocked
    I3424["I3424<br/>No inference transport is reachable from the shell closure of any declared hook command, and reasoning check refuses one that is"]:::blocked
    I3425["I3425<br/>A standing conclusion is reused only while the files it cites are unchanged since it was recorded"]:::blocked
    I3426["I3426<br/>An advisor answer carrying instructions or record-shaped fields is kept as bounded text and changes no record"]:::blocked
    I3418 --> I3419
    I3418 --> I3420
    I3418 --> I3422
    I3419 --> I3423
    I3421 --> I3422
    I3423 --> I3425
    I3425 --> I3421
    I3426 --> I3418
    classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
    classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
    classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
    classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
    classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
    classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px

Canonical record: .ai/repo/project/milestones/an-inference-names-its-source-and-budget.yaml. Read it back with majordomus plan show an-inference-names-its-source-and-budget.

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