Skip to content

Commit 87f6797

Browse files
committed
docs: README reflects the tree at M3: what works, how to run it, the pages, what is not there yet
Derived on 2026-09-21: 17 approved slices and 17 slice tags; M2 counts 003 and M9 counts 002 as ROADMAP.md has them; the docs and repository tables name the files the tree holds. Signed-off-by: Ayla Croft <aylacroft@proton.me>
1 parent 4377f81 commit 87f6797

1 file changed

Lines changed: 44 additions & 13 deletions

File tree

‎README.md‎

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,30 @@ desktop application. Apache-2.0, developed in the open from the first commit.
1010

1111
## Status
1212

13-
Pre-alpha. The repository, quality gate and packaging path are in place and proven (milestone M0).
14-
There is no chat, no model integration and no tool execution yet; those arrive with milestones
15-
M1 and M2. `ROADMAP.md` carries the live status of every slice of work, and the
16-
[Milestones](#milestones) section below explains how to read it.
17-
18-
Nothing here is ready to use. If you want to follow along, watch the roadmap and the tags.
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
15+
that means in practice:
16+
17+
- **Talks.** Streaming chat with any provider behind one behaviour (`Trinity.LLM`), switched by
18+
configuration; the assistant's text is persisted as a draft every 500 ms or 2 KB while it
19+
streams, so a crash mid-turn loses at most that much. Context compaction with lineage when a conversation outgrows the
20+
model's window.
21+
- **Acts.** Filesystem, web and shell tools behind a permission gate with fingerprint-bound
22+
approvals; every effect passes one membrane and leaves a signed, hash-chained receipt you can
23+
verify offline (`mix trinity.receipts.verify`). A FIPS build leg in CI proves the receipt scheme
24+
under OpenSSL's FIPS provider.
25+
- **Remembers.** A persona (its SOUL), a small always-on memory with a byte budget and a
26+
consolidator instead of truncation, full-text search over every past conversation, a semantic
27+
tier filled by an observer after each turn and recalled by meaning (local embeddings, never a
28+
hosted call unless you opt in), project context from `AGENTS.md`, and export and import of the
29+
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
33+
slice, and the [Milestones](#milestones) section below explains how to read it.
34+
35+
The interface is a local web page; the desktop shell exists as a packaging spike, not a product.
36+
If you want to follow along, watch the roadmap and the tags.
1937

2038
## Why the BEAM
2139

@@ -42,19 +60,30 @@ only needed for the desktop shell.
4260

4361
```
4462
git config core.hooksPath .githooks # once, before your first commit
63+
cp .env.example .env # then put a provider key in it
4564
mix setup # dependencies, database, assets
4665
mix phx.server # or: iex -S mix phx.server
4766
```
4867

49-
Then open [localhost:4000](http://localhost:4000). Today that is a scaffold page, not an agent.
68+
Then open [localhost:4000](http://localhost:4000): new conversation, pick a model, talk. The
69+
model registry is `config/llm.exs`; keys come from the environment (`.env` is gitignored). The
70+
pages: `/` conversations, `/s/:id` a conversation and `/s/:id/receipts` its receipts, `/search`
71+
full-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
73+
export. `mix trinity.export` and `mix trinity.import` do what `/settings` does from a terminal;
74+
`docs/backup.md` explains the archive.
75+
76+
Semantic recall needs the local embedding model (91 MB, downloaded from the memory page on your
77+
say-so, never on its own). Without it the tier is off and full-text search still works;
78+
`docs/perf.md` has what it costs.
5079

5180
`mix gate` runs the full quality gate and has to pass before every commit: format check, compile
5281
with warnings as errors, Credo, Sobelow, dependency audits, version verification, the naming and
5382
secret checks, the tests with coverage, and `scripts/plan_check.sh`, which checks the plan
5483
documents themselves for consistency.
5584

5685
Packaging as a single binary is documented in `docs/packaging.md`, with measured sizes and
57-
start-up times for each target.
86+
start-up times for each target; `docs/fips-leg.md` describes the FIPS build leg.
5887

5988
## How the work is organised
6089

@@ -84,16 +113,16 @@ engineering contract that every change is held to.
84113
|---|---|---|
85114
| M0 Stands | Repository, quality gate and packaging path proven | 000 and 001 approved |
86115
| M1 Talks | Streaming chat with any provider, persisted and crash-safe | 010 to 013 approved |
87-
| M2 Acts | Tools behind a permission gate, one side-effect membrane, local receipts, context compaction | 020 to 024 approved |
116+
| M2 Acts | Tools behind a permission gate, one side-effect membrane, local receipts, context compaction; the FIPS build leg | 003 and 020 to 024 approved |
88117
| M3 Remembers | Persona, always-on memory, full-text and semantic recall, project context, export and import | 030 to 034 approved |
89118
| M4 Learns | A skills system the agent can extend itself, behind approval and a scanner | 040 and 041 approved |
90119
| M5a Automates | Scheduled tasks and MCP, client and server, with authorization | 050 and 059 to 062 approved |
91120
| M5b Reaches | Messaging gateways and subagents | 070 to 072 and 080 approved |
92121
| M6 Ships | Observability and a cost ledger, native desktop shell, signed releases | 090 to 101 approved |
93122
| M7 Sandboxed | Executable skills in an in-VM sandbox | 110 approved |
94-
| M9 Donatable | Open-source hygiene audited, supply chain signed, shared libraries extracted | 120 to 123 approved |
123+
| M9 Donatable | Open-source hygiene audited, supply chain signed, shared libraries extracted | 002 and 120 to 123 approved |
95124

96-
Slice numbers have gaps on purpose (000, 001, 010, 011 and so on) so that a slice can be inserted
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
97126
later without renumbering anything.
98127

99128
## What is in the repository
@@ -103,13 +132,15 @@ later without renumbering anything.
103132
| `ROADMAP.md` | Every slice with its phase, milestone, dependencies and current status |
104133
| `VERSIONS.md` | The verified dependency versions, generated from `lib/trinity/versions.ex` |
105134
| `CLAUDE.md` | The engineering contract: slice rules, definition of done, proof standard |
106-
| `docs/` | Vision, architecture, tech stack, conventions, slice process, data model, risks, security model, standards |
135+
| `docs/` | Vision, architecture, tech stack, conventions, slice process, data model, risks, security model, standards; packaging, the FIPS leg, backup and restore, performance measurements |
107136
| `docs/adr/` | Architecture decision records. One is added whenever a decision changes |
108137
| `slices/` | One folder per slice: specification, notes and proof |
109138
| `templates/` | The templates a new slice, proof or decision record starts from |
110139
| `lib/`, `test/`, `config/` | The application |
111140
| `src-tauri/` | The native desktop shell |
112-
| `scripts/`, `credo_checks/` | The plan checker and this project's own Credo checks |
141+
| `scripts/`, `credo_checks/` | The plan checker, the benchmark scripts and this project's own Credo checks |
142+
| `ci/fips/` | The container the FIPS leg builds its toolchain in |
143+
| `coverage.tsv` | Test coverage per slice, appended at each close |
113144

114145
## Connecting Trinity to the platform
115146

0 commit comments

Comments
 (0)