1# whiskers-guard
2
3What Jev is asked about each message, and how the answer becomes a `Verdict`.
4Every message, in either direction, gets two questions in one request: is it
5entirely suitable for a child of the profile's age (a yes-or-no probability), and what is it
6mainly about (a choice of nine topics). A message is allowed only if it is
7"ordinary" and Jev is at least 85% sure it is suitable (`whiskers_judge::MIN_SUITABLE`).
8
9Two kinds of refusal exist. Most are off-limits topics: the cat steers
10somewhere else. What the child says about being hurt or unsafe, or being asked to
11keep a secret from the parents, is a different kind: the cat sends the child to a
12grown-up, and the parents' view puts it first.
13
14The tablet never holds the Jev key. `RemoteGuard` asks `whiskersd`
15(on a machine the operator runs, over a private network), which does the call.
16
17| File | What |
18|---|---|
19| `src/lib.rs` | Re-exports the questions, topics and `decide` from `whiskers-judge`, where the whole policy lives as pure code. |
20| `src/remote.rs` | `RemoteGuard`, the `Guard` the tablet uses. |
21| `tests/remote.rs` | The client against stub servers. |