Lich Intake Gate Artifacts
The Lich Intake Gate is the governance decision boundary between an advisory Objective Intake Resolver assessment and any future governed Keeper objective. This phase defines read-only artifacts only. It does not invoke Lich runtime services, create Lich approvals, create Keeper objectives, create Keeper jobs, schedule work, dispatch workers, execute work, mutate runtime state, or write LifeVault memory.
Boundary
Objective Intake Candidate
-> Objective Intake Resolver Assessment
-> Lich Intake Review Request
-> Lich Intake Decision
-> future Keeper objective creation only when explicitly authorized
ready_for_lich_review is resolver advisory terminology. It means the
candidate is complete enough for governance review. It is not Lich approval and
does not grant Keeper eligibility.
Artifacts
The artifact schemas and validation helpers are defined in
app/objectives/lich_intake_gate.py.
Lich Intake Review Request records the candidate identity, candidate hash,
resolver assessment hash, requester, risk, redaction state, required evidence,
approval requirements, inert authority posture, and available decision options.
It is a request for governance review, not an approval.
Lich Intake Decision records the explicit gate outcome. Canonical decisions
are:
approved_for_objective_creationclarification_requiredrejectedno_approval_required
approved_for_objective_creation may authorize only a future Keeper objective
creation step. It does not create that objective. no_approval_required must
be explicit and auditable; silence or low risk is never enough. A
clarification_required decision must include required clarification
conditions. A rejected decision must include rationale.
Authority
Every decision artifact must keep these authorities set to none:
execution_authoritymutation_authoritymemory_authorityschedule_authoritydispatch_authority
keeper_handoff_authorized may be true only for
approved_for_objective_creation or no_approval_required. It means only that
a later governed step may create a Keeper objective from the candidate. It does
not authorize Keeper job creation, approval creation, execution, scheduling,
dispatch, mutation, or memory retention.
Determinism
Validation fails closed on missing fields, unknown fields, duplicate decision
options, unsupported decisions, unsafe authority posture, handoff authorization
for non-progression decisions, and any runtime authority other than none.
Hash helpers canonicalize JSON with sorted keys and stable separators before
computing SHA-256.
Fixtures
Static examples live in app/objectives/fixtures/:
lich_intake_review_ready_repository_hygiene.jsonlich_intake_decision_clarification_required.jsonlich_intake_decision_approved_for_objective_creation.jsonlich_intake_decision_rejected.jsonlich_intake_decision_no_approval_required.json
These fixtures are inert validation examples. They do not create approvals, objectives, jobs, schedules, dispatch records, runtime state, or memory.