Titip Control Plane

Product authority, specifications, policies, contracts, release governance, and cross-repository orchestration for the Titip digital legacy platform.

This repository is not the main runtime application. It does not implement signup, vault storage, life-check scheduling, or delivery. Those belong in sibling repositories, and only after the relevant contract exists here.

The same documents are published at https://titip.suherman.net. That site is a reader. Edit the files here; do not treat the rendered pages as a second source of truth.

Authority rule

No runtime behaviour should become authoritative before its contract exists in the control plane.

If a screen, API, job, or model would decide what Titip is, what it stores, when someone is inactive, or when information may be released, that decision is written here first. Runtime repositories implement the contract. They do not invent it.

What this repository owns

Area Path Owns
Product product/ Vision, positioning, principles, personas, terminology
Specifications specs/ Normative product and domain requirements (TITIP-001–012)
Architecture architecture/ System context, domain model, threat model, data classification, repository boundaries
Decisions adr/ Accepted architecture decision records
Contracts contracts/ API resources, domain events, and schemas other repositories implement
Policies policies/ Security, privacy, retention, release safety, AI safety
Plans plans/ Prototype, alpha, and production-readiness scope
Releases releases/ How policy versions and release holds are coordinated

Headline principles

Engineering work is subordinate to product/principles.md:

  1. Titip records guidance, not secrets.
  2. Silence alone never means release.
  3. Every recipient only sees what was explicitly assigned to them.
  4. Release decisions must be explainable from auditable evidence.
  5. AI may assist preparation, but never decide whether someone is dead, inactive, or eligible for release.

Repository topology

Do not create fifteen repositories on day one. The first wave is seven repositories. Sensitive domains stay as modules inside backend until a security boundary or operational ownership justifies extraction. That avoids a distributed monolith.

titip-labs/
├── control-plane     ← this repository (authority)
├── app               ← iOS/Android experience
├── web               ← marketing, trusted-contact portal, recipient portal
├── backend           ← modular monolith (core API and domain orchestration)
├── ai                ← preparation assistance only; never a release decider
├── infrastructure    ← environments and platform foundations
└── knowledge         ← curated guidance and templates; not legal advice

Later, only when traffic, team size, or a security boundary requires it:

identity, vault, life-check, delivery, contacts, notifications, observability, security, integrations, docs.

docs is optional. Engineering authority stays here until public developer documentation is actually needed.

Intended ownership, including backend modules for the first wave, is in architecture/repository-topology.md.

Build order

Start here. Do not start with AI, WhatsApp, blockchain, a death registry, or a password vault.

  1. Control plane (this repository)
  2. Web prototype
  3. App prototype
  4. Backend domain skeleton
  5. Trusted contacts
  6. Asset inventory
  7. Vault
  8. Life check
  9. Audit trail
  10. Simulation
  11. Escalation
  12. Recipient verification
  13. Controlled delivery
  14. AI assistant
  15. External integrations

Stage goals and exit criteria: plans/prototype.md, plans/alpha.md, plans/production-readiness.md.

How to change a decision

Documents in this repository are the English engineering source of truth. Product copy shown to people in Indonesia may be Indonesian; the meaning still has to match these contracts.