TITIP-008 Release policy
| Status | Accepted |
| Version | 0.1 |
| Stage | 0 — Authority |
Purpose
Define when Titip may create a release candidate, what that candidate contains, and why the first versions do not auto-deliver.
Life check decides that conditions may have been met. Release policy decides whether a case is eligible. Delivery, specified here as rules and implemented later, decides what is given to whom. Delivery must not widen what this policy allowed.
Decisions
release.automaticmust default tofalse. The prototype and the first production release must not ship a path where eligibility sends vault access with no reviewer.- When eligibility evidence is complete, the system creates a release candidate (a release case in
CANDIDATE). It does not email vault contents. - Real delivery requires
manual_review_approvedon that case (ADR-005). - Simulation creates a case in
SIMULATEDwith the same per-recipient decisions, watermarked, with no access token that vault will honour. - A global hold (
release.disable=true) blocks transitions to real delivery. It does not block owner login, editing, or life-check confirmation (policies/release-safety.md). - Policy edits archive the old release policy version. Open cases keep the version they were created with.
Release case
A case belongs to one owner and one policy version. It lists one decision per assigned active vault:
| Field | Meaning |
|---|---|
| Vault | Which container |
| Recipient | The assigned person only |
| Status | RELEASABLE or HOLD |
| Reason | Present when HOLD (age rule, suspended vault, missing identity) |
Demo:
Release case
Owner: Iman
Vault Insurance → spouse RELEASABLE
Vault Property → spouse RELEASABLE
Vault Business continuity → partner RELEASABLE
Vault Personal message → child HOLD (recipient age >= 18)
The spouse’s package must not include business continuity. The partner’s package must not include insurance. The child receives nothing while the rule holds.
Case states
CANDIDATE → IN_REVIEW → APPROVED → DELIVERED
↘ REJECTED
↘ HELD
CANDIDATE → SIMULATED
| State | Real recipient access |
|---|---|
CANDIDATE |
No |
IN_REVIEW |
No |
SIMULATED |
No |
HELD |
No |
REJECTED |
No |
APPROVED |
Tokens may be issued |
DELIVERED |
Only inside token scope and expiry |
APPROVED and DELIVERED must not be reachable in the prototype build. The prototype ends at SIMULATED.
What a notice may say
Only that information is available, plus a link that is short-lived, single-purpose, revocable, and recipient-bound. The link is specified in TITIP-009. The prototype must not send that link to a real person.
Acceptance
- UC-06 produces a simulated case whose recipient views match the demo table.
- No prototype endpoint issues a live vault token.
- Eligibility without the three evidence codes is rejected.