# Soul Verification Soul verification checks whether a change preserves the repository's documented essence: the principles that define what the project IS. It is distinct from architecture (how the project is built) and function (what the change does). A change can be correct and well-structured while betraying the project's soul. ## Derive the Essence Collect essence statements only from sources the repository or user provides: a philosophy or manifesto file, canon documents, ADRs, or principles declared in the README. Keep at most seven statements, each with a quoted source. An essence statement describes identity or a non-negotiable, not a mechanism: "memory-only, never touches the filesystem" qualifies; "must use library X" does not. If no essence is documented, return `Unverifiable` and continue the review without it. You may ask the user to articulate one. Never invent essence statements. ## Assess the Candidate For each statement, determine whether the candidate preserves, tensions, or betrays it, citing candidate evidence: - `Preserved`: the change honors the statement. - `Tense`: the change strains the statement. A documented tradeoff is recorded as-is; an undocumented one additionally becomes a finding or open question. - `Betrayed`: the change contradicts the statement. | Soul verdict | Rule | | --- | --- | | `Preserved` | No tensions or betrayals. | | `Tense` | Strained statements, no betrayal. | | `Betrayed` | At least one betrayal with evidence. | | `Unverifiable` | No documented essence to assess against. | A betrayal becomes a finding with priority by demonstrated impact, never P1 by default; a tension becomes a P3 or an open question. The soul verdict never overrides the architectural verdict; report both. ## Evolution Essence can change deliberately. Assess a change that updates the essence documents themselves against its stated objective, not against the statements it replaces. Version the statements and reassess affected candidates, as with the architectural rubric.