I3407 — What a set of paths affects in the plan is derived from the index: the issues whose scope covers them, what those issues serve and their incoming edges, each with its relation, and nothing is rescanned
Add a read-only capability, entity.affected, to the existing entity module. Given repository paths, it answers the entities they touch, each with a reason: the issues whose scope covers a path (reusing intent_binding's covers), the milestones and intents those issues serve, and the incoming entity edges of each reached object. Depth (default 2) and count (default 500) are declared inputs, so a test can drive both past their bounds. The order is canonical, and a path that nothing names is answered as unaffected rather than omitted.
BLOKOVÁNO vlna 1 · p1 · profil implementation · bezpečné paralelně
Blocked. This issue cannot start until I3427, milestone:an-entity-says-how-it-is-known-and-what-it-affects are done. The status is derived from that, not declared.
Cíl
Add a read-only capability, entity.affected, to the existing entity module. Given repository paths, it answers the entities they touch, each with a reason: the issues whose scope covers a path (reusing intent_binding's covers), the milestones and intents those issues serve, and the incoming entity edges of each reached object. Depth (default 2) and count (default 500) are declared inputs, so a test can drive both past their bounds. The order is canonical, and a path that nothing names is answered as unaffected rather than omitted.
Proč
The owner's 2026-10-19 Cognitive Fabric pack asks that affected entities be computed from the existing dependencies and git diffs, and that a git-only change reconcile only the impacted graph (campaigns/prismatic-way-cognitive-fabric-prompt-pack/prompts/02_EVENTS_INTENTS.md, scenario C of prompts/00_MASTER.md, and the verification/ACCEPTANCE.md row on a git-only change).
Aktuální stav
apps/majordomus-cli/src/entity.rs:417 answers one-hop edges for one object. graph.rs:1239-1387 declares no issue-scope or serves relation. intent_binding.rs:770 matches paths to issue scope only inside binding. trace.commit attributes a commit by branch only (capability/builtin/trace.rs:269-271). The perf counters repository_scans and index_builds exist (apps/majordomus-cli/src/perf.rs:40-60). Nothing composes these.
Cílový stav
entity.affected composes the existing resolvers over the index already loaded, and reads no .ai file itself. The same input in any order gives a byte-identical answer.
Rozsah
- apps/majordomus-cli/src/entity.rs
- apps/majordomus-cli/src/capability/builtin/entity.rs
- apps/majordomus-cli/src/intent_binding.rs
- apps/majordomus-cli/tests/objects.rs
- docs/generated/registry.json
- docs/generated/registry.yaml
- docs/generated/openapi.json
- docs/generated/openapi.yaml
- docs/generated/modules/entity.md
- site/data/generated/openapi.json
- site/data/registry/registry.json
Mimo rozsah
- Records whose references name a path, and revision-range input (I3412)
- Writing any record or link
- Adding relations to graph::RELATIONS
- Choosing CI cases (I3238) or derive inputs
- A filesystem watcher
Závislosti
Co na tom čeká
Kritéria přijetí
- For a synthetic repository, a path under one issue's scope answers that issue, its milestone and the intent it serves, each with its relation
- Shuffled input paths give byte-identical output
- A depth or count past its bound is truncated and says so
- repository_scans and index_builds read the same before and after a call
- The capability projects to the command line, HTTP and MCP from its one declaration
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test objects
- bin/majordomus-cli generate --check
- majordomus capabilities describe entity.affected
Požadované důkazy
- test_what_a_change_affects_is_derived
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/I3407.yaml. Read it back with majordomus plan show I3407.