Prototype plan
Status: Accepted · Version: 0.1
The prototype has two parts. Stage 0 is this repository. Stage 1 is a clickable product that is convincing to Pak Sonny, his friend, and Mike. It does not perform a real release.
Stage 0 — Authority before code
Goal: Decide what Titip is, and what it is not, before runtime behaviour exists.
Output, in this repository:
- Product contract: vision, positioning, principles, personas, terminology
- Specs TITIP-001 through TITIP-012
- Domain model, system context, threat model, data classification
- ADR-001 through ADR-007
- API, event, and schema contracts
- Security, privacy, retention, release-safety, and AI-safety policies
- Prototype acceptance criteria (below)
Stage 0 is complete when a sibling repository can implement a use case by reading these documents and does not need to invent a release rule.
Stage 1 — Clickable prototype
Goal: Show the trust model in one sitting. No real-world delivery.
Flow
Onboarding
→ Create trusted contact
→ Add asset
→ Write instruction
→ Assign recipient
→ Set monthly check
→ View escalation policy
→ Run simulation
→ Simulated release
Home screen
Good morning, Iman
Status
✓ Life check active
✓ 2 trusted contacts
✓ 6 important items documented
Next check
21 October 2026
Your Titip
Insurance Wife
Property Wife
Business continuity Partner
Personal message Daughter
Next check is an illustration of frequency, not a hard-coded date in the product.
Simulation screen
SIMULATION
Day 0 Life check sent
Day 3 Reminder sent
Day 7 SMS sent
Day 21 Grace period ended
Day 22 Trusted contact confirmed
Day 23 Eligible for controlled release
The word simulation is mandatory. Nothing is sent to a real inbox. No recipient token is minted.
Prototype features
In scope for app and web against stub or real APIs that match contracts/:
- signup / login (stub acceptable)
- user profile
- trusted contacts
- asset inventory
- notes / instructions
- recipient assignment
- life-check frequency
- emergency / grace-period setting
- activity timeline
- simulation mode
Out of scope until later stages: passkeys, device biometrics, encrypted local cache, recovery codes, recipient claims against real data, document upload, family collaboration, WhatsApp, AI, automatic release.
Six use cases
| ID | Use case | Done when |
|---|---|---|
| UC-01 | Create account | Owner reaches an active shell with their name on the home screen |
| UC-02 | Add trusted contact | Wife and brother can be invited; wife can also be a recipient without gaining both privileges from one flag |
| UC-03 | Record an important asset | Insurance (or another category) stores institution and instruction; a password or PIN field is rejected |
| UC-04 | Assign information to a recipient | Wife sees insurance and property only in the simulated package; partner and daughter do not |
| UC-05 | Configure life check | 30-day frequency, 3 reminders, alternate SMS, 14-day grace, trusted verification required, automatic release false, stored as a policy version |
| UC-06 | Simulate missed checks and controlled release | Day 0–23 walk produces a simulated case: wife insurance+property, partner business, daughter HOLD until 18 |
Demo script
Iman creates a Titip account. He adds his wife (recipient and trusted contact), his brother (trusted contact), and his business partner (recipient). He creates insurance, property, business continuity, and a message for his daughter. Life check is every 30 days, with three reminders, alternate SMS, a 14-day grace period, and trusted-contact verification. Simulation runs a missed check through to a release candidate. The wife would see insurance and property only. The partner would see business information only. The daughter would see the personal message only, and in this demo she does not, because the age rule holds.
Stage 1 exit
A stakeholder who has not read this repository can say, in their own words: Titip records guidance not secrets; silence is not release; each person sees only what was assigned; the path is explainable.