@@ -10,8 +10,8 @@ desktop application. Apache-2.0, developed in the open from the first commit.
1010
1111## Status
1212
13- Pre-alpha, and usable from source. Milestones M0 to M3 are approved: 17 slices, each merged with a
14- merge commit and tagged ` slice/NNN ` (` git tag -l 'slice/*' | wc -l ` → 17 , on 2026-09-21). What
13+ Pre-alpha, and usable from source. Milestones M0 to M4 are approved: 19 slices, each merged with a
14+ merge commit and tagged ` slice/NNN ` (` git tag -l 'slice/*' | wc -l ` → 19 , on 2026-09-21). What
1515that means in practice:
1616
1717- ** Talks.** Streaming chat with any provider behind one behaviour (` Trinity.LLM ` ), switched by
@@ -27,9 +27,16 @@ that means in practice:
2727 tier filled by an observer after each turn and recalled by meaning (local embeddings, never a
2828 hosted call unless you opt in), project context from ` AGENTS.md ` , and export and import of the
2929 whole thing as one archive.
30-
31- Not there yet: skills (M4), scheduled tasks and MCP (M5a), messaging gateways and subagents (M5b),
32- the native desktop shell and signed releases (M6). ` ROADMAP.md ` carries the live status of every
30+ - ** Learns.** Skills as directories with a ` SKILL.md ` in the agentskills.io format, found under
31+ the project, the data directory and the bundled set, shown to the model by progressive
32+ disclosure (an index in the prompt, the body on request). The agent can propose new skills and
33+ changes to them, and distil a document into one, but nothing it proposes is applied until you
34+ approve it on the skills page: every proposal is staged with a diff, scanned for shell pipes,
35+ credentials and instructions to ignore safety, and promoted through the permission gate with a
36+ receipt.
37+
38+ Not there yet: scheduled tasks and MCP (M5a), messaging gateways and subagents (M5b),
39+ the native desktop shell and signed releases (M6), executable skills in a sandbox (M7). ` ROADMAP.md ` carries the live status of every
3340slice, and the [ Milestones] ( #milestones ) section below explains how to read it.
3441
3542The interface is a local web page; the desktop shell exists as a packaging spike, not a product.
@@ -69,7 +76,8 @@ Then open [localhost:4000](http://localhost:4000): new conversation, pick a mode
6976model registry is ` config/llm.exs ` ; keys come from the environment (` .env ` is gitignored). The
7077pages: ` / ` conversations, ` /s/:id ` a conversation and ` /s/:id/receipts ` its receipts, ` /search `
7178full-text search, ` /personas ` and ` /memory ` the persona and its memory (with the semantic tab and
72- the embedding model's download), ` /permissions ` the rules and pending approvals, ` /settings ` the
79+ the embedding model's download), ` /skills ` the skills, the changes waiting for your decision and
80+ the learn form, ` /permissions ` the rules and pending approvals, ` /settings ` the
7381export. ` mix trinity.export ` and ` mix trinity.import ` do what ` /settings ` does from a terminal;
7482` docs/backup.md ` explains the archive.
7583
@@ -122,7 +130,7 @@ engineering contract that every change is held to.
122130| M7 Sandboxed | Executable skills in an in-VM sandbox | 110 approved |
123131| M9 Donatable | Open-source hygiene audited, supply chain signed, shared libraries extracted | 002 and 120 to 123 approved |
124132
125- M0 to M3 are approved as of 2026-09-21. Slice numbers have gaps on purpose (000, 001, 010, 011 and so on) so that a slice can be inserted
133+ M0 to M4 are approved as of 2026-09-21. Slice numbers have gaps on purpose (000, 001, 010, 011 and so on) so that a slice can be inserted
126134later without renumbering anything.
127135
128136## What is in the repository
0 commit comments