Propose epistemics truth v1

This commit is contained in:
m
2026-08-22 11:32:20 +03:00
parent 6fb9184d14
commit 339f6a6770
3 changed files with 135 additions and 2 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
{
"task_file": "dev/tasks/DEV-000102-readiness-canary-promotion.json",
"task_id": "DEV-000102",
"task_file": "dev/tasks/DEV-000103-epistemics-truth-v1-proposal.json",
"task_id": "DEV-000103",
"task_revision": 1
}
@@ -0,0 +1,23 @@
{
"task_id": "DEV-000103",
"task_revision": 1,
"architecture_revision": "ADR-0018",
"base_repo_revision": "6fb9184",
"risk_tier": "E",
"intent": "Prepare the proposed ADR-0019 Truth V1 boundary for review without implementing runtime, schema, connector, source or authority changes.",
"requirement_ids": ["WP-100", "Observation/Claim/BeliefAssessment", "Source provenance freshness conflict"],
"allowed_change_scope": {"modules": ["epistemics-governance"], "paths": ["docs/proposals/ADR-0019-epistemics-truth-v1.md", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000103-epistemics-truth-v1-proposal.json"]},
"forbidden_change_scope": {"paths": ["architecture/**", "contracts/**", "database/**", "migrations/**", "modules/**", "cmd/**", "runtime/**", "adapters/**", "deploy/**", ".gitea/**"]},
"allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0, "new_database_owner_roles": 0},
"contracts": {"consume": ["ADR-0016 Epistemics experience/reflection ownership", "ADR-0017 typed provenance references", "Core semantic model ownership boundaries"], "may_change": ["Proposed ADR-0019 only; no accepted contract changes"]},
"semantic_owner": "epistemics-proposal-only",
"canonical_state": [],
"state_transitions": ["observation/source evidence -> claim assessment", "assessment -> supported/corroborated/conflicted/stale/retracted/unknown", "correction -> superseding assessment"],
"side_effects_and_privileges": ["No runtime side effects, external mutation, connector access, credential access or authority expansion"],
"persistence_and_migrations": ["No schema, migration or retention job changes"],
"failure_retry_restart": ["Proposal failure leaves no canonical state; accepted implementation must preserve append-only evidence and rebuildable projections"],
"assumptions": ["Proposal is reviewed before acceptance", "Epistemics remains the only proposed truth-evidence owner", "Secrets and unapproved personal data are fail-closed"],
"acceptance_scenarios": ["Owner boundaries and typed references are explicit", "Unknown, assumed, stale and conflicted states cannot silently become facts", "Correction and supersession preserve history", "Freshness and coverage are separate from confidence", "No implementation or architecture registry delta is introduced"],
"required_tests": ["go test ./...", "go vet ./...", "go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json", "go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json", "go run ./cmd/devctl check-architecture", "go run ./cmd/devctl/independent", "git diff --check", "proposal scope and required-section review"],
"terminal_gap_states": ["BLOCKED_BY_ARCHITECTURE_GAP", "BLOCKED_BY_SPEC_GAP", "BLOCKED_BY_CONFLICT"]
}
@@ -0,0 +1,110 @@
# Proposal ADR-0019 — Epistemics Truth V1
Status: Proposed
Task: DEV-000103
## Problem and evidence
The audit found that Domovoy has experience and reflection evidence, but no
small, explicit truth model for observations, claims, source provenance,
freshness or conflicts. Without that boundary, research, context compilation
and future learning could silently turn an unverified statement into durable
fact. The proposal is architecture-only: it does not add tables, runtime
handlers, connectors or belief mutation.
## Decision proposed
1. Do not create a new canonical owner. Epistemics owns truth evidence and
rebuildable truth projections; Interaction, Situation, Work, Capability and
Artifact retain ownership of their canonical records.
2. Define six typed records, with immutable identity and append-only history:
`Observation`, `Claim`, `BeliefAssessment`, `Source` and `ProvenanceEdge`,
plus a typed `VerificationState` value. Records reference other owners by
typed IDs and never copy their canonical payloads.
3. An `Observation` is a bounded acquired datum with acquisition time,
source snapshot reference, excerpt/hash reference, collector identity and
privacy/egress classification. It is evidence, not truth.
4. A `Claim` is a proposition with explicit subject/predicate/object or
proposition payload, scope, language, creator and claim status. It is not a
fact merely because it is repeated or model-generated.
5. A `BeliefAssessment` is a revisable, scoped assessment over one claim,
carrying verification state, confidence band, freshness result, coverage
result, conflict set and supporting/contradicting provenance edges.
6. `Source` identifies the origin and retrieval policy; a source snapshot is
the immutable artifact used for a particular observation. Source identity
alone is never a citation.
7. `ProvenanceEdge` records typed support, contradiction, derivation,
correction or supersession between evidence and claims. A projection may
be rebuilt from these edges and append-only records.
8. Verification states are explicit: `UNVERIFIED`, `SUPPORTED`,
`CORROBORATED`, `CONFLICTED`, `STALE`, `RETRACTED` and `UNKNOWN`.
`UNKNOWN` and `ASSUMED` remain visible and cannot be promoted implicitly.
9. Freshness and coverage are evidence dimensions, not confidence shortcuts.
A stale or incomplete source may support a claim only with that limitation
attached. Conflicts are retained and surfaced; they are not resolved by
latest-write-wins.
10. Privacy, authorization and egress filtering happen before observation
persistence or external citation. Secrets and unapproved personal data
are fail-closed and cannot become source snapshots.
## Alternatives considered and rationale
- Store truth directly in Situation or Interaction: rejected because those
owners would become provenance/verification authorities and would mix
canonical operational state with revisable evidence.
- Use a single confidence score or latest-write-wins: rejected because it
hides freshness, incomplete coverage and contradiction, and cannot explain
why an assessment changed.
- Introduce a universal ontology engine: rejected because it expands scope,
makes ownership ambiguous and is unnecessary for the bounded claims needed
by the research and context work packages.
The proposed small typed set keeps evidence historical, makes uncertainty
visible and allows projections to be rebuilt without granting models or
connectors canonical authority.
## Lifecycle and correction
Observation and source snapshots are append-only and retention-governed.
Claims and assessments are superseded or retracted by new typed records;
history is never deleted to hide an earlier conclusion. Human correction is
strong evidence with explicit provenance, but does not become a permanent
rule without a later assessment. Rebuildable projections may be compacted
only while preserving their source record references and retention policy.
## Boundaries and non-goals
- No universal ontology, generic `BeliefManager` or `map[string]any` truth
store.
- No model output directly mutates claims, assessments, authority or source
snapshots.
- No web/repository connector, citation resolver, migration or UI change is
included in this proposal.
- External research remains read-only until a separate WP-102 contract and
connector task is accepted.
## Consequences
Truthful product surfaces can distinguish evidence, assessment, uncertainty,
staleness and conflict. Research and context compilation gain stable
provenance inputs, while implementation must carry typed references and
explicit freshness/coverage results. The proposal adds review and storage
discipline but intentionally provides no immediate runtime capability.
## Migration and rollback
There is no migration in this proposal. If accepted, implementation must add
append-only records and projections behind owner-local interfaces, with a
rebuild harness and a feature flag/canary before any existing response path
consumes assessments. Rejection or rollback disables the projection consumer;
historical source evidence remains intact and no canonical operational state
is mutated.
## Acceptance and revisit triggers
The proposal is ready for acceptance when owner boundaries, identifiers,
retention/privacy rules, correction/supersession lifecycle, rebuildable
projections and conflict semantics have implementation-level contract tests
specified without introducing a new owner. Revisit if a source requires
write access, if retention law changes, if a second canonical owner is
proposed, or if confidence is used as an authority/permission decision.