Skip to content

an-entity-says-how-it-is-known-and-what-it-affects — One entity read names how its record says it is known and when it was observed, identically on every surface, and what a change affects is derived from the same index

entity.show answers, on every surface from one declaration, a class read from the record and the observation envelope repository.info already uses. Proof stays a pointer (entity.rs:181-185). A test fails on any divergence between surfaces. entity.affected answers what a path set or a revision range touches, with reasons, from the loaded index.

BLOCKED 0 of 5 issues done

ready
0
blocked
5
active
0
verify
0
done
0
cancelled
0

Problem

EntityView (apps/majordomus-cli/src/capability/builtin/entity.rs:395-435) carries no epistemic class, no observation time and no blob. Separate vocabularies each answer part of how a record is known: entity.rs:140-151, intent_realization.rs:77-101, devtask/mod.rs:93-125, knowledge epistemics in docs/KNOWLEDGE.md:30, and ProofState in evidence/mod.rs. No test compares entity.show across the command line, REST, MCP and the Cockpit. No capability composes path, issue scope, served intent and the records that name the path: graph.rs RELATIONS has no scope or serves relation, and trace.commit attributes by branch only (capability/builtin/trace.rs:269-271).

Outcome

entity.show answers, on every surface from one declaration, a class read from the record and the observation envelope repository.info already uses. Proof stays a pointer (entity.rs:181-185). A test fails on any divergence between surfaces. entity.affected answers what a path set or a revision range touches, with reasons, from the loaded index.

Current state

Projections are registry-derived and drift-checked (apps/majordomus-cli/tests/projections.rs). tests/cockpit.rs:187-245 compares the Cockpit entity page with GET /api/v1/entity only. I3314 plans the last-changing commit on the entity read.

Desired state

I3427, I3428, I3429, I3407 and I3412 have landed. docs/SURFACES.md states the class vocabulary once, with the mapping from each older vocabulary, as the proposed ADR decides.

Scope

  • apps/majordomus-cli/src/capability/builtin/entity.rs
  • apps/majordomus-cli/src/entity.rs
  • apps/majordomus-cli/src/intent_binding.rs
  • apps/majordomus-cli/src/live.rs
  • apps/majordomus-cli/tests/objects.rs
  • apps/majordomus-cli/tests/cockpit.rs
  • docs/SURFACES.md
  • 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

  • Renaming or removing IntentLinkProvenance, FieldProvenance, knowledge epistemics, EvidenceState or ProofState
  • Running a proof inside entity.show
  • A confidence score (no deterministic producer exists)
  • An accountable-owner field (no canonical owner record exists)
  • Adding relations to graph::RELATIONS
  • CI case selection (I3238) and derive input selection (milestone a-derive-does-only-the-work-its-inputs-changed)

Acceptance criteria

  • The criteria an-entity-says-how-it-is-known, every-surface-reads-one-entity and what-a-change-affects-is-derived are rewritten to evidence: test
  • bin/majordomus-cli generate --check passes with every new field projected and no projection edited by hand

Validation

  • majordomus plan validate

Risks

  • entity.rs is edited by I3427, I3428, I3407, I3412 and I3314; I3407 and I3412 chain on I3427, I3428 waits on I3314, and each must merge master before it lands
  • An object whose record carries no basis reads observed; screens that showed resolved evidence keep showing it beside the class, and they must not read as a regression

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
I3407 BLOCKED 1 I3427 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
I3412 BLOCKED 2 I3407 entity.affected also answers the rules, claims and knowledge records whose declared references name an affected path or issue, and takes a revision range
I3427 BLOCKED 0 — Every entity read names how its record says it is known, and never answers verified itself: proof stays the pointer it is
I3428 BLOCKED 1 I3314, I3427 An entity read carries the observation envelope repository.info already answers, plus the blob of its file, and a change to that file moves both
I3429 BLOCKED 2 I3427, I3428 One entity reads the same on the command line, REST, MCP and the Cockpit: identity, kind, class, evidence, observation envelope and edge order

The graph

an-entity-says-how-it-is-known-and-what-it-affects dependency graphfrom .ai/repo/project
flowchart LR
    I3407["I3407<br/>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"]:::blocked
    I3412["I3412<br/>entity.affected also answers the rules, claims and knowledge records whose declared references name an affected path or issue, and takes a revision range"]:::blocked
    I3427["I3427<br/>Every entity read names how its record says it is known, and never answers verified itself: proof stays the pointer it is"]:::blocked
    I3428["I3428<br/>An entity read carries the observation envelope repository.info already answers, plus the blob of its file, and a change to that file moves both"]:::blocked
    I3429["I3429<br/>One entity reads the same on the command line, REST, MCP and the Cockpit: identity, kind, class, evidence, observation envelope and edge order"]:::blocked
    I3407 --> I3412
    I3427 --> I3407
    I3427 --> I3428
    I3427 --> I3429
    I3428 --> I3429
    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-entity-says-how-it-is-known-and-what-it-affects.yaml. Read it back with majordomus plan show an-entity-says-how-it-is-known-and-what-it-affects.

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