Skip to Content
PRE-ALPHA POLICY-SAFE WORKFLOWS

Keep sensitive AI
workflows inside
policy.

Kora is an experimental language for checked, replayable document workflows with explicit data boundaries.

$ brew install ImAbhishekTomar/tap/kora
$ kora check examples/03_salary_review.ko
K 03_salary_review.ko (excerpt)
1type Employee:2    name: str3    role: str4    classified salary: int5 6type Assessment:7    band: str8    rationale: str9 10agent review(emp: Employee) -> str:11    budget: max_tokens = 400012    declassify emp.salary as pay for local_model:13        result: Assessment = analyze(14            {"role": emp.role, "pay": pay, "market": market_rate(emp.role)},15            "assess whether pay is below, at, or above market; band must be one of below/at/above"16        )17 18    match result:19        case Ok(a):20            return f"{emp.name}: {a.band} - {a.rationale}"21        case Uncertain(why):22            return f"human review: {why}"23        case Exhausted(meter):24            return f"budget exhausted: {meter}"25        case Failed(why):26            return f"provider failed: {why}"
$ kora run --replay examples/03_salary_review.ko
Ada: below - The pay of 165 is less than the market rate of 210.
Grace: above - The pay of 180 is higher than the market rate of 175.
Output replayed from the committed cassette
01

Checked model calls

Catch local type, call, field, and direct classified-flow mistakes before effects start.

02

Replayable runs

Deterministic execution you can inspect, share, and replay.

03

Safe data flow

Explicit data boundaries and policies to protect what matters.

LANGUAGE / 01

Build agent workflows that read like programs.

Use ordinary control flow with typed model calls, explicit budgets, and outcomes you can handle instead of hidden failures.

typeddurablecomposable
RUNTIME / 02

Trace every step. Opt into durable execution.

plan 812ms
tool.web 1.23s
provider.retry replayed
return complete
SAFETY / 03

Classified data stays inside its boundary.

The checker catches direct unsafe model flow, and the runtime enforces the configured sink policy again when the call executes.

classified→declassify→approved sink