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.
BLOKOVÁNO 0 z 5 úkolů hotovo
- připraveno
- 0
- blokováno
- 5
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
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).
Výsledek
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.
Aktuální stav
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.
Cílový stav
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.
Rozsah
- 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
Mimo rozsah
- 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)
Kritéria přijetí
- 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
Validace
- majordomus plan validate
Rizika
- 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
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I3407 | BLOKOVÁNO | 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 | BLOKOVÁNO | 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 | BLOKOVÁNO | 0 | — | Every entity read names how its record says it is known, and never answers verified itself: proof stays the pointer it is |
| I3428 | BLOKOVÁNO | 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 | BLOKOVÁNO | 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 |
Graf
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:2pxOdkazováno z tohoto diagramu (5)
- 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
- 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
- I3427 Every entity read names how its record says it is known, and never answers verified itself: proof stays the pointer it is
- I3428 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 One entity reads the same on the command line, REST, MCP and the Cockpit: identity, kind, class, evidence, observation envelope and edge order
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.