Skip to content

I3427 — Every entity read names how its record says it is known, and never answers verified itself: proof stays the pointer it is

Add an epistemic field holding class and basis to EntityView. One pure function in apps/majordomus-cli/src/entity.rs reads it from the record's own fields. A candidate or proposed status gives proposed. A superseded status or superseded_by gives superseded. Knowledge epistemics inferred gives inferred, and a generated projection gives derived. Anything else is observed. The function never computes verified: an object with a proof keeps the existing ProofRef pointer (entity.rs:181-185), and a surface shows verified only from that capability's answer. docs/SURFACES.md states the vocabulary once, with each older vocabulary's mapping, as the proposed ADR decides.

BLOCKED wave 0 · p1 · implementation profile · parallel safe

Part of 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.

Blocked. This issue cannot start until milestone:an-entity-says-how-it-is-known-and-what-it-affects is done. The status is derived from that, not declared.

Objective

Add an epistemic field holding class and basis to EntityView. One pure function in apps/majordomus-cli/src/entity.rs reads it from the record's own fields. A candidate or proposed status gives proposed. A superseded status or superseded_by gives superseded. Knowledge epistemics inferred gives inferred, and a generated projection gives derived. Anything else is observed. The function never computes verified: an object with a proof keeps the existing ProofRef pointer (entity.rs:181-185), and a surface shows verified only from that capability's answer. docs/SURFACES.md states the vocabulary once, with each older vocabulary's mapping, as the proposed ADR decides.

Why

The owner's 2026-10-19 Cognitive Fabric pack asks every surface to show one epistemic classification per entity, and forbids a model output from promoting an inferred claim to verified (campaigns/prismatic-way-cognitive-fabric-prompt-pack/prompts/05_SURFACES.md, contracts/ARCHITECTURE.md).

Current state

EntityView (apps/majordomus-cli/src/capability/builtin/entity.rs:395-435) has no class field. Its EvidenceState of unclaimed, dangling or resolved (entity.rs:140-151) says that artefacts exist, never that they ran. The module answers proof by pointer, 'a pointer, never an answer' (entity.rs:181-185). The other vocabularies are IntentLinkProvenance (intent_realization.rs:77-101), FieldProvenance (devtask/mod.rs:93-125), knowledge epistemics (docs/KNOWLEDGE.md:30; knowledge_base.rs:141,441) with superseded_by (knowledge_base.rs:457), and ProofState (evidence/mod.rs).

Desired state

entity.show answers the class and its basis on every surface from one capability. Verified is visible only where the proof capability answers it.

Scope

  • apps/majordomus-cli/src/capability/builtin/entity.rs
  • apps/majordomus-cli/src/entity.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 the older vocabularies
  • Reading crate::evidence or running a proof inside entity.show
  • Any model or advisor call
  • A confidence score

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • A candidate knowledge record reads proposed, a record with superseded_by reads superseded, a record with epistemics inferred reads inferred, and a tracked record with no other basis reads observed, each with a basis naming its source field
  • No object reads verified from entity.show; a fixture supported only by an advisor reading stays inferred
  • The class is identical across two runs over the same tree
  • bin/majordomus-cli generate --check passes with no projection edited by hand

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib capability::builtin::entity
  • bin/majordomus-cli generate --check
  • majordomus plan validate

Evidence required

  • entity_epistemic_class

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/I3427.yaml. Read it back with majordomus plan show I3427.

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