Validation Authority and Lifecycle
The validation system is a 9-state finite state machine. Every candidate that enters the pipeline passes through this machine before it can enter the registry — or be formally rejected. State transitions are controlled by validator role authority, ensuring that only qualified reviewers can make binding decisions on each type of knowledge claim.
Validation states
| State | Meaning | Who sets it |
|---|---|---|
| PENDING | Candidate has been created and is waiting to enter the review queue. No validator has claimed it. | System (automatic on candidate creation) |
| IN_REVIEW | A validator has claimed the candidate and is actively reviewing it. | Validator (claim action) |
| APPROVED | The validator determined the answer is accurate, complete, and correctly typed. The answer enters the registry as an ApprovedAnswer. |
Authorized validator |
| REVISED | The validator provided corrected answer text. The revised candidate re-enters the classification pipeline before returning to IN_REVIEW. | Authorized validator |
| REJECTED | The candidate is not valid, not accurate, or not appropriate for the registry. It does not enter the registry. The record is retained for audit. | Authorized validator |
| ESCALATED | The candidate requires specialist review. It is routed to the escalation queue managed by the governance lead. OPEN_ISSUE candidates always land here. | Validator (manual escalation) or System (OPEN_ISSUE rule) |
| SUPERSEDED | An approved answer has been replaced by a newer version. The old version retains this status in the audit history but is no longer returned in active retrieval. | System (when a new version is approved) |
| DISPUTED | A contradiction flag or new evidence has called the approved answer's accuracy into question. The answer re-enters the review process. | Governance lead or ConflictFlag resolution flow |
| RETIRED | The answer is no longer applicable (product discontinued, policy changed, etc.). It is removed from active retrieval but preserved in the audit history. | Governance lead |
State transition diagram
stateDiagram-v2
[*] --> PENDING : Candidate created
PENDING --> IN_REVIEW : Validator claims
IN_REVIEW --> APPROVED : Validator approves
IN_REVIEW --> REVISED : Validator revises
IN_REVIEW --> REJECTED : Validator rejects
IN_REVIEW --> ESCALATED : Validator escalates\nor OPEN_ISSUE rule
REVISED --> IN_REVIEW : Re-classification complete
REVISED --> APPROVED : Governance lead fast-track\n(configurable)
ESCALATED --> IN_REVIEW : Specialist returns to queue
APPROVED --> SUPERSEDED : New version approved
APPROVED --> DISPUTED : Conflict flag raised
APPROVED --> RETIRED : Governance lead retires
DISPUTED --> IN_REVIEW : Re-enters review
Decision meanings and consequences
APPROVED
The candidate passes into the registry as an immutable ApprovedAnswer record. From this point, the answer is available in readouts, retrieval search, and graph analysis. The approving role, the validation record ID, and the approval timestamp are all stored as part of the registry entry.
Approval requires three provenance fields to be present: validation_record_id, owner_role, and evidence_links. If any of these are missing, the system raises a ProvenanceError and blocks registry insertion. This check occurs at write time, not just during review.
REVISED
The validator has found the answer text inaccurate, incomplete, or incorrectly framed, and has provided corrected text. The REVISED decision captures both the validator's correction and the reason for revision.
The revised candidate does not go directly back into the queue as-is. It must re-enter the classification pipeline so that the corrected text receives a fresh Horn type assignment and, for FACTs, a fresh assertion grammar. This ensures that a validator's correction cannot inadvertently create a type mismatch. Once re-classification completes, the candidate returns to IN_REVIEW.
REJECTED
The candidate is determined to be invalid. Common rejection reasons include: the stated claim was inaccurate, the answer was too vague to be useful, the source segment was misidentified, or the candidate duplicates an existing approved answer. Rejected candidates are never entered into the registry. They remain in the candidates table permanently for audit purposes — rejection is not deletion.
ESCALATED
Escalation moves the candidate to a specialist queue outside the normal validator workflow. The governance lead is responsible for triaging escalated items. An escalation may result in the governance lead returning the item to IN_REVIEW (with additional context), sourcing a new candidate to replace it, or formally recording it as an unresolvable gap.
Important: OPEN_ISSUE candidates are automatically escalated by the system. A validator cannot manually approve an OPEN_ISSUE — the application enforces this constraint. When reviewing an OPEN_ISSUE candidate, the only available transitions are ESCALATED and REJECTED.
Post-registry lifecycle states
Once an answer is in the registry, it can still change state. These transitions reflect changes in the world — not errors in the original validation.
SUPERSEDED
When new information makes a registry answer obsolete, a new candidate is created, validated, and approved. On approval of the new version, the system automatically sets the previous version's status to SUPERSEDED and records the supersedes_id link. Both versions remain in the database. The version chain is traversable via the graph API.
DISPUTED
A DISPUTED answer is one where a contradiction flag has been raised, or where new evidence calls the answer's accuracy into question. Disputed answers are flagged in readouts and retrieval results — consumers are alerted that the answer is under review. The answer re-enters the validation queue at IN_REVIEW for re-assessment.
RETIRED
Retirement is a deliberate governance action by the knowledge architect or governance lead. An answer is retired when it is no longer applicable — not because it was wrong when approved, but because the world has changed in a way that makes the answer irrelevant or potentially misleading. Retired answers are excluded from active retrieval but are preserved in the audit history.
Conflict flags and validation blocking
During validation, the system checks whether the candidate's assertion grammar conflicts with any existing approved answer. A ConflictFlag is raised when two answers share the same subject, predicate, and scope but assert different object values.
By default, a raised ConflictFlag blocks the APPROVED decision — the validator is shown the conflicting record and must resolve the conflict before approval can proceed. Resolution options are:
- Reject the new candidate — the existing answer is correct.
- Supersede the existing answer — the new candidate is correct; the old one is outdated.
- Escalate — the conflict is too complex for the current validator; governance lead must decide.
This blocking behavior is configurable per deployment. Organizations with high ingestion volume may configure ConflictFlags to warn rather than block, with governance lead review deferred to a scheduled quality pass.
Authority constraints summary
| Decision | Who can make it |
|---|---|
| Claim (IN_REVIEW) | Any validator with queue access |
| APPROVED | Authorized validator for the candidate's Horn type (per KGS authority table) |
| REVISED | Authorized validator for the candidate's Horn type |
| REJECTED | Any validator |
| ESCALATED | Any validator; system (for OPEN_ISSUE) |
| RETIRED | Knowledge Architect / Governance Lead only |
| DISPUTED (set) | Knowledge Architect / Governance Lead, or automatic ConflictFlag |
Note: Platform admins do not participate in the validation state machine. They have no approval authority by design — separation of duties between the platform layer and the governance layer is a core Raw to Knowledge principle.