I3412 — entity.affected also answers the rules, claims and knowledge records whose declared references name an affected path or issue, and takes a revision range
Extend entity.affected with two relations: the rules, claims and knowledge records whose declared references (file:, issue:) name an input path or a reached issue, read from the references the index already holds; and a revision range, whose changed paths come from git and give the same answer as those paths passed directly. This is the reader I3414 and I3430 use, so no second derivation of the same backlinks is written.
BLOCKED wave 2 · p2 · implementation profile · parallel safe
Blocked. This issue cannot start until I3407, milestone:an-entity-says-how-it-is-known-and-what-it-affects are done. The status is derived from that, not declared.
Objective
Extend entity.affected with two relations: the rules, claims and knowledge records whose declared references (file:, issue:) name an input path or a reached issue, read from the references the index already holds; and a revision range, whose changed paths come from git and give the same answer as those paths passed directly. This is the reader I3414 and I3430 use, so no second derivation of the same backlinks is written.
Why
The owner's 2026-10-19 Cognitive Fabric pack asks for the knowledge and rules a change affects to be found from existing references, and for a git-only change to reconcile only the impacted graph (campaigns/prismatic-way-cognitive-fabric-prompt-pack/prompts/02_EVENTS_INTENTS.md, prompts/03_KNOWLEDGE.md).
Current state
Knowledge references admit knowledge, rule, adr and issue targets (knowledge_base.rs:1010), and curated notes cite file: and issue: references. No capability reverses them for a path. I3318 plans reverse edges on /ui from the entity layer.
Desired state
One answer names every record that cites an affected path or issue, with the relation that reached it.
Scope
- apps/majordomus-cli/src/entity.rs
- apps/majordomus-cli/src/capability/builtin/entity.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
Out of scope
- The /ui reverse-edge view (I3318)
- Writing any reference
- A filesystem watcher
Dependencies
What waits on this
- I3414BLOCKED Every candidate group names the curated notes and the rule that already speak about its subject, read from entity.affected, so a possible duplicate or contradiction is in front of the reviewer with both sources
- I3430BLOCKED The IDD standing panel and the Cockpit intent page show, under each criterion, the knowledge that bears on it, each with how it is known
Acceptance criteria
- A knowledge record whose related names a file answers under that file with relation cites
- A rule naming an issue reached through scope answers with relation cites_issue
- A revision range answers the same set as its changed paths given directly
- repository_scans and index_builds read the same before and after a call
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test objects
- bin/majordomus-cli generate --check
Evidence required
- test_records_naming_a_path_are_affected
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/I3412.yaml. Read it back with majordomus plan show I3412.