You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 54bcfda
Browse filesBrowse the repository at this point in the historyBrowse files
plan: the MCP phase replanned around beam_mcp as the server core
Owner decisions of 2026-09-08, accepted in full on 2026-09-20 with the review
that reconciled the research documents against both trees. Recorded as
ADR-0007 decisions 5 to 8 by append; decision 3 is superseded and its
candidate list is history.
Slice 059 is rewritten from a library selection spike into a capability-gap
measurement (fifteen checklist rows, each a FINDINGS row with a path and line
at the pinned beam_mcp commit), a probe of the :server seam on a throwaway
branch that is never merged, and the addition of beam_mcp as a dependency
behind the Trinity.MCP boundary. Size M to S/M.
Slice 060 becomes Trinity's thin driver over beam_mcp's public functions,
with the rule as a census test (AC7): the driver builds the outbound
JSON-RPC request and nothing else of the protocol. The M/L condition is
decided (no library ships a client): L. The OAuth client role moves to 062.
Slice 061 gains a dependencies-and-blockers block: input_required waits on
the MRTR wrapper or the recorded refusal of the seam; resultType on
server/discover is a core gap; ttlMs and cacheScope shipped in 0.5.0 and are
not a dependency; replay defence is Trinity's, per partition plus idempotent
effects.
Slice 062 owns authorization in every role: the OAuth client role arrives
from 060 as AC8; a non-person identity note is recorded for a later
amendment with no criterion yet.
The four Milestone headers on 059 to 062 read M5a Automates, as ROADMAP.md
has since 2026-09-08. R14 is re-scoped to the will-not-implement gap; R15
(LGPL) is closed. lib/trinity/versions.ex carries a beam_mcp ~> 0.8 row in
place of the undecided MCP library row; VERSIONS.md regenerated.
plan_check: PASS. trinity.names: OK. versions.gen --check: OK. The slice
count is unchanged at 36 and the change log says so.
Signed-off-by: Ayla Croft <aylacroft@proton.me>
@@ -110,3 +110,4 @@ After 012, multiple branches are independent. If running more than one coding ag
110
110
| 2026-09-05 | Authority made an adapter behind a behaviour rather than a mode (ADR-0008, ADR-0010). ADR-0009 opened for the Jido question, decided at the 012 checkpoint. Slice 024 added: effect catalog, `TRINITY_AUTHORITY`, local receipts. Alignment appendices on 012, 020, 021, 022, 023, 030, 032, 040, 041. |
111
111
| 2026-09-05 | Review pass before commit 1. Counts in the three entries above were typed, not derived, and none matches the tree; a decreasing count is impossible under insert-never-renumber. Derived this date: `find slices -name SLICE.md | wc -l` → **38**. Milestones are derived from the Milestones table, not from memory. From here, any count in this log names the command that produced it. Entries above are not rewritten. |
112
112
| 2026-09-06 | Plan corrections, round 2. **Supersedes the slice count in the entry above:** that entry derived **38** on 2026-09-05, before slices 082, 083 and 084 were withdrawn and slice 034 was added. Re-derived this date, not adjusted by arithmetic: `find slices -name SLICE.md | wc -l` → **36**. The entry above is not rewritten. `scripts/plan_check.sh` now enforces this count, the acceptance-criteria numbering, the Definition-of-Done ranges, ROADMAP/SLICE.md agreement, and the absence of references to paths not in `git ls-files`. |
113
+
| 2026-09-20 | The MCP phase replanned under owner decisions of 2026-09-08, recorded in ADR-0007 decisions 5 to 8: beam_mcp 0.8.0 is the server core; 059 measures the capability gap and probes the `:server` seam (S/M); 060 is Trinity's thin driver (L, the M/L condition decided); the OAuth client role moves from 060 to 062; 061 carries a named blocker on the MRTR wrapper; the four `M5 Always-on` headers on 059 to 062 read M5a Automates, as this file has since 2026-09-08. R14 re-scoped, R15 closed. Re-derived this date: `find slices -name SLICE.md \| wc -l` → **36**. |
Copy file name to clipboardExpand all lines: VERSIONS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -89,7 +89,7 @@ never pin a version hex marks as retired or vulnerable.
89
89
|`oban`|~> 2.24 | 🔍 not yet a dependency | Uses `Oban.Engines.Lite` on SQLite. ⚠️ Oban Pro Workflows/Smart engine are Postgres-only. Added at Slice 050. |
90
90
|`req`|~> 0.5 | ✅ in `mix.lock`| HTTP client. |
91
91
|`req_llm`|~> 1.22 | 🔍 not yet a dependency | Provider layer (streaming, tools, structured output, usage). ⚠️ The pin was `~> 1.10` against a recorded latest of 1.10.0; the real latest was twelve minors ahead. Check event shapes against the current version at Slice 011, not against this file's prose. Added at Slice 011. |
92
-
|`MCP library`|**decided by Slice 059**| 🔍 not a single package | Candidates verified 2026-09-05: **anubis_mcp**2.0.x (hex updated 2026-08-07, **LGPL-3.0**, spec ≤ 2025-11-25); **fastest_mcp** 0.3.2 (2026-08-28, Apache-2.0, very new, ~400 total downloads); **gen_mcp** 2.0.0 (2026-07-30, server-only stateless + compat plug, MIT). ⚠️ None speaks 2024-11-05, which is obsolete and not a target. Undecided, so no lock key. |
92
+
|`beam_mcp`|~> 0.8 | 🔍 not yet a dependency | MCP server core, Apache-2.0, ADR-0007 decision 5 (owner decision 2026-09-08, recorded 2026-09-20). 0.8.0 on hex.pm, standing before 1.0.0. Server side only: the client, MRTR and OAuth are Trinity's, above it. Added at Slice 059. The earlier candidate list (anubis_mcp, fastest_mcp, gen_mcp) is history. |
93
93
|`jido`|~> 2.3 (pending ADR-0009) | 🔍 not yet a dependency | Actions, directives and the effect boundary, if the Slice 012 checkpoint adopts it. |
94
94
|`jason`|~> 1.2 | ✅ in `mix.lock`||
95
95
|`boundary`|~> 0.10 | ✅ in `mix.lock`| Compile-time module dependency enforcement. Measured at Slice 000: it compiles and enforces on Elixir 1.20.4 / OTP 28, and it reports violations as **warnings**, so it enforces only while `--warnings-as-errors` is on the compile step. ⚠️ No release since 2024-09-25. |
Copy file name to clipboardExpand all lines: docs/06-risk-register.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,8 @@
15
15
| R11 | Stale or single-maintainer libs (**boundary**, hnswlib, ex_tauri, sqlite_vec, nostrum, telegex) | High | Med–High | No release in 6 months. Measured 2026-09-05: boundary 2024-09-25, sqlite_vec 2024-11-19, telegex 1.9.0-rc.0 2024-09-18, nostrum 2025-03-02, the trigger already fires for four of them | All behind behaviours; vendor if needed. **boundary is the highest-consequence one**: ADR-0001, docs/01, CLAUDE.md §5 and Slice 000 AC4 all rest on it, and it is unverified on Elixir 1.20. Probe it before anything is built on it | 000, 032, 072 |
16
16
| R12 | Secrets leak into logs/DB/commits | Low | High | grep hits in CI |`mix gate` includes a secret scan (gitleaks-style regex) from 000; Secrets module from 100 | 000, 100 |
17
17
| R13 | Scope drifts toward matching other agents' breadth instead of shipping depth | Med | Low | Slice scope grows during a phase | Non-goals in docs/00 are binding; breadth is a later decision, not a default | none |
18
-
| R14 |Elixir MCP libraries lag the 2026-07-28 spec; the one that claims it is weeks old | High | Med | 059 probes fail | Behaviour boundaries; own minimal stateless serveras fallback; fastest_mcp/gen_mcp/anubis compared by measurement| 059 |
19
-
| R15 |anubis_mcp is LGPL-3.0 | Med | Med | It wins the 059 spike | Legal review before adoption in a distributed binary; prefer Apache or MIT candidates| 059 |
18
+
| R14 |beam_mcp's will-not-implement page keeps MRTR, the client role and OAuth out of the core; each is Trinity's to build above it (re-scoped 2026-09-20, was library lag) | High | Med | 059 FINDINGS names a gap 060 to 062 did not plan for | The layering rule in ADR-0007 decision 6; the `:server` seam asked for, with the fork as recorded fallback; boundaries around `Trinity.MCP.*`| 059 |
19
+
| R15 |Closed 2026-09-20: the server core is beam_mcp, Apache-2.0 (ADR-0007 decision 5); no LGPL candidate remains | none | none | none | none| 059 |
20
20
| R20 | Foundation donation may require transferring assets or marks the project intends to keep | Med | Med | Proposal drafting (122) | Unverified: the requirement is asserted from an announcement, not from the charter text. Read the charter, then decide what is offered and what is retained. Legal review before any proposal leaves the tree | 122 |
21
21
| R21 | The tree carries IP that is not this project's to publish | Med | High | Any design in Trinity that reproduces a third party's protected mechanism | Trinity's receipt and policy design is its own. Policy identifiers stay out of `signed_payload` until legal review clears them; 024's field set is reviewed before that slice starts | 024, 120, 122 |
22
22
| R22 | Single maintainer; Growth needs two unaffiliated production users and commits from two orgs | High | Med | 6-month Sandbox checkpoint | Sandbox tolerates it; GOVERNANCE.md documents intent to grow; recruit co-maintainers via the Elixir community once public | 120, 122 |
Copy file name to clipboardExpand all lines: lib/trinity/versions.ex
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -145,11 +145,11 @@ defmodule Trinity.Versions do
145
145
"Provider layer (streaming, tools, structured output, usage). ⚠️ The pin was `~> 1.10` against a recorded latest of 1.10.0; the real latest was twelve minors ahead. Check event shapes against the current version at Slice 011, not against this file's prose. Added at Slice 011."
146
146
},
147
147
%{
148
-
name: "MCP library",
149
-
pin: "**decided by Slice 059**",
150
-
lock: nil,
148
+
name: "beam_mcp",
149
+
pin: "~> 0.8",
150
+
lock: "beam_mcp",
151
151
note:
152
-
"Candidates verified 2026-09-05: **anubis_mcp** 2.0.x (hex updated 2026-08-07, **LGPL-3.0**, spec ≤ 2025-11-25); **fastest_mcp** 0.3.2 (2026-08-28, Apache-2.0, very new, ~400 total downloads); **gen_mcp** 2.0.0 (2026-07-30, server-only stateless + compat plug, MIT). ⚠️ None speaks 2024-11-05, which is obsolete and not a target. Undecided, so no lock key."
152
+
"MCP server core, Apache-2.0, ADR-0007 decision 5 (owner decision 2026-09-08, recorded 2026-09-20). 0.8.0 on hex.pm, standing before 1.0.0. Server side only: the client, MRTR and OAuth are Trinity's, above it. Added at Slice 059. The earlier candidate list (anubis_mcp, fastest_mcp, gen_mcp) is history."
0 commit comments