I3424 — No inference transport is reachable from the shell closure of any declared hook command, and reasoning check refuses one that is
Add a hooks check to reasoning check that derives the hook closure. It starts from each hook command share/providers.yaml declares and the shims under .claude/hooks, takes the majordomus subcommand each shim runs, and follows the lib/ shell units that subcommand sources. It refuses a closure that names scripts/advisor-consult, scripts/lib/advisors or scripts/lib/inference. The check lists any Rust capability a hook subcommand reaches as outside its closure, so the limit is stated rather than hidden. A person-invoked consultation outside the closure is not refused.
BLOKOVÁNO vlna 0 · p1 · profil implementation · bezpečné souběžně
Blocked. This issue cannot start until milestone:an-inference-names-its-source-and-budget is done. The status is derived from that, not declared.
Cíl
Add a hooks check to reasoning check that derives the hook closure. It starts from each hook command share/providers.yaml declares and the shims under .claude/hooks, takes the majordomus subcommand each shim runs, and follows the lib/ shell units that subcommand sources. It refuses a closure that names scripts/advisor-consult, scripts/lib/advisors or scripts/lib/inference. The check lists any Rust capability a hook subcommand reaches as outside its closure, so the limit is stated rather than hidden. A person-invoked consultation outside the closure is not refused.
Proč
The owner's 2026-10-19 Cognitive Fabric pack puts deterministic work first and hooks on the sensor side (campaigns/prismatic-way-cognitive-fabric-prompt-pack/prompts/04_REASONING_MESH.md, contracts/ECONOMICS.md). This is wave 0: one check over a tree that is clean today.
Aktuální stav
The tree is clean today by grep: git grep for advisor-consult or lib/advisors over lib, bin, .claude/hooks and share finds only share/advisors.yaml. lib/session.sh:662-672 derives knowledge with no model, and no Rust code in reasoning/ spawns a process. The hooks exec bin/majordomus subcommands (.claude/hooks/majordomus-capture). Nothing refuses a regression. CHECKS (apps/majordomus-cli/src/reasoning/check.rs:454) has catalogue, adapters, coupling, ci, claims and records.
Cílový stav
CHECKS gains hooks. A fixture hook whose closure reaches the transport is a finding, and this repository is clean. doctor reports the check like the others.
Rozsah
- apps/majordomus-cli/src/reasoning/check.rs
- docs/REASONING.md
Mimo rozsah
- Forbidding a consultation a person invokes explicitly
- Inspecting provider client internals
- Following Rust call graphs (listed as outside the closure)
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- A fixture shim whose subcommand sources a lib/ unit naming scripts/advisor-consult yields a hooks finding naming the file and the hook
- A lib/ unit outside every hook closure that names the transport yields no finding
- This checkout yields no hooks finding
- The check runs with no network and no model
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib reasoning::check
- bash test/run.sh 736_reasoning_check_refuses_drift
- majordomus reasoning check
Požadované důkazy
- a_hook_that_calls_an_advisor_is_refused
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3424.yaml. Read it back with majordomus plan show I3424.