I3017 — Discovering the repository outside the model is refused
A test scans the crate's sources and refuses a Repository::discover or Repository::open outside repository.rs and the owners it names, each with its reason, naming the file and line; a second test refuses an owner entry whose call went away. The discovery's cost budget belongs to I1107 (its cost is known), which needs a bench target for discovery that does not exist yet.
BLOKOVÁNO vlna 2 · p0 · profil implementation · bezpečné paralelně
Blocked. This issue cannot start until I3015, I3016 are done. The status is derived from that, not declared.
Cíl
A test scans the crate's sources and refuses a Repository::discover or Repository::open outside repository.rs and the owners it names, each with its reason, naming the file and line; a second test refuses an owner entry whose call went away. The discovery's cost budget belongs to I1107 (its cost is known), which needs a bench target for discovery that does not exist yet.
Proč
The last slice of I1105, its fourth acceptance criterion (no consumer reads the filesystem for a fact the model carries, proved by a check rather than by review) and the risk it names (the model's cost is measured in the same issue that makes it mandatory). Without the check the next capability re-opens the repository and nobody notices.
Aktuální stav
Nothing refuses a new discovery; App::load's budget is named in prose (plan.rs) but no number is declared.
Cílový stav
A discovery outside the model fails a test that names the file, the line and how to ask the context instead.
Rozsah
- apps/majordomus-cli/tests
Mimo rozsah
- Discovery of facts the model does not carry yet (I1106, I1107)
Závislosti
- I3015BLOCKED serve and mcp discover the repository once, through the shared model
- I3016BLOCKED A capability reads the repository from its context, never by opening it again
Co na tom čeká
Kritéria přijetí
- A source scan test fails on a Repository::discover or Repository::open outside the allowed files, naming file and line
- An owner named in the list whose call went away fails the test, so the list cannot hold a stale entry
Validace
- cargo test --workspace --all-features
Požadované důkazy
- discovery_guard_test
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/I3017.yaml. Read it back with majordomus plan show I3017.