Cheat sheet

Run

rofl-nb file.rofl.md           run it; --json, --cell N, --all
rofl-nb vocab [word]           what you can say about code
rofl-nb vocab file.rofl.md     ... plus that notebook's own sentences
rofl-nb translate file.rofl.md a model turns natural cells into rofl
rofl-nb models                 which model translate asks
rofl-nb --help

Exit: 0 holds · 1 a never fails · 2 not read · 3 holds as far as it sees.

Front matter (optional)

---
model: js                  # or none (the default)
code:
  - ../src/**/*.ts         # relative to the notebook
reads:
  - rules.rofl.md          # another file's sentences, loaded first
---

Declare, state, derive

Declared as facts:

- <a id="owns"></a>A team T owns a module M

The repository today:

- `platform` owns `auth`.

A change C needs a team T if C touches a module M and T owns M.

A change C is blocked by a team T if C needs T, unless C is covered for T.

A change C is covered for a team T either:

1. if C is approved by a person P and P is on T;
2. if C is written by a person P and P is on T.

Ask, in a rofl cell

? C is blocked by T               every answer
never C is blocked by `payments`  an invariant
why `c2` is blocked by `platform` the proof
whynot `c2` is mergeable          where it stops
excise `c1` is approved by `ben`  what changes without this fact
unsure F always throws            under a never: what it could not see
extends R                         this cell adds rules to the model's R

Terms

T a variable · `platform` a name · "text" · 42 · some team, something a blank you ignore · it the last subject · > quote prose only people read.

More: QUICKSTART.md · CONCEPTS.md · WRITING.md · AGENTS.md