mex

mex-memoryMIT活跃维护

把团队知识和代码图谱以文件形式存进 Git 仓库,让工程师和 AI 编码助手共享同一份上下文记忆,避免重复解释项目背景。

Team memory for engineers and their AI agents. Lives in your repo. Shared through Git.

v0.8.5发布于 2026-10-29 06:15 UTC1,795star +1 / 7 天152fork同步于 2026-11-10 11:46 UTC

怎么上手

由 README 提炼,执行前请确认
npx [email protected] setup
硬件要求按 README 说明

README 未说明硬件要求;运行环境需 Node.js 22.5 或更新版本、该 Node 构建支持 SQLite FTS5,并需位于 Git 仓库中

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把团队项目记忆以 Markdown 存进仓库、随 Git 共享,供工程师和 AI 编码代理共同读取

把团队知识和代码图谱以文件形式存进 Git 仓库,让工程师和 AI 编码助手共享同一份上下文记忆,避免重复解释项目背景。

核心能力

  • 记忆以 Markdown 存放在 .mex/ 目录并随 Git 提交共享
  • 用 Wiki 记录架构、决策与约定,并由 Code Graph 关联代码证据
  • 通过 Inbox 提案机制审核知识新增与修正
  • 用 Relay 交接进度、决策、阻塞与下一步
  • 提供本地 Hub 浏览知识、代码与团队活动

容易踩的坑

需要 Node.js 22.5+ 且该 Node 构建带 SQLite FTS5 支持,否则无法运行;setup 需在 Git 仓库根目录执行,且不会自动 push/pull;Claude Code、Codex 等代理需各自单独安装并满足其账号与网络要求

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.8.5
  1. v0.8.5MEX 0.8.5 — Checked state diagrams and resumable setup最新正式版2026-10-29 · 2026-10-29 06:15 UTC

    MEX 0.8.5 — Checked state diagrams and resumable setup

    October 29, 2026.

    Ask your coding agent to explain a complicated flow with a state diagram. MEX 0.8.5 adds checked statecharts that use relevant project knowledge and code evidence, with an interactive Hub viewer when you want to explore further. This release also makes setup parallel and resumable and reduces graph build and refresh costs on large repositories.

    Understand the agent's explanation

    Ask “explain this using a statechart” or invoke mex-statechart in Claude Code or Codex. The skill can explain existing behavior, show a bug or recovery path, compare a proposed fix, or start from an agreed chart or existing TLA+ model. It draws states and events in human language and uses MEX knowledge, code links and relevant history when they help explain the behavior.

    TLA+/TLC checking explores the modeled states and checks the stated rules. Numbered counterexample paths show how a rule can break. A checked model is still an abstraction: source alignment, reproduction against real code and current evidence freshness are reported separately. Missing tooling or evidence stays visible rather than becoming a passing result.

    • Read native Mermaid where your client supports it. Terminal clients receive readable text when they cannot render the required diagram; optional PNG delivery is available for clients that display images.
    • Explore an optional Hub preview with selectable states, directed transitions, pan/zoom, numbered paths, rules and evidence. The agent can offer to start and open the preview for you.
    • Keep a preview temporary, or explicitly review and Save a snapshot in Hub. Saved diagrams live in Markdown-owned bundles under .mex/diagrams/ and can be reopened without Java or a built code index. Save never stages, commits or pushes; use Git when you want to share them.

    Generation uses scratch space. Installation, upgrades and Hub viewing do not install or execute Java/TLC. Explicit checking requires Java 11+ and the pinned, checksum-verified TLC 1.7.4 toolchain; first-use setup is documented in the skill. See state diagram compatibility.

    Setup that keeps completed work

    Larger repositories are split into subsystem tasks, with up to three population tasks running in parallel by default. Background population can overlap graph construction, and completed batches survive interruption or an agent usage limit. The terminal and Hub show progress and recovery guidance.

    Background setup now supports Cursor, GitHub Copilot and OpenCode CLI alongside Claude Code and Codex, provided the selected agent is installed and signed in. For agents MEX cannot launch, mex setup next --start begins a resumable one-paste flow. Subsequent calls apply completed batches and continue the plan.

    A healthy checkout reports its setup status on rerun instead of starting over. Only one setup can run per checkout. Setup recognizes deeply nested sources, checks Git before the terminal tool picker, audits thin project knowledge and keeps existing facts whose code has changed for explicit sync review. Managed skill updates also accept unmodified files checked out with Windows CRLF line endings while preserving real local edits.

    Faster graph work and clearer results

    • Large TypeScript monorepos use less build memory and time. A previously failing 9,400-file benchmark completes at the default heap; its graph database is about 27% smaller. These are measurements on that fixture, not a guarantee for every repository. Refresh reuses unchanged compiler projects, and CLI maintenance uses the same memory-sized worker as Hub.
    • who-calls and impact prioritize production callers. Omitted test results are counted; use --include-tests to include them. Call locations and compact line counts make long declarations easier to navigate.
    • Scope preserves requested fingerprints and
  2. v0.8.4MEX 0.8.4 — Terminal setup and clearer knowledge checks2026-10-14 · 2026-10-14 13:41 UTC
    查看更新说明

    mex 0.8.4 — Terminal setup and clearer knowledge checks

    October 14, 2026.

    MEX 0.8.4 makes terminal setup the default, adds a native interactive agent handoff, and reports setup progress and failures more clearly. It also includes the graph, Wiki search, and grounding improvements merged since 0.8.3.

    Terminal setup by default

    Run mex setup to open the keyboard-driven HUD and ASCII banner. Choose a tool with the arrow keys and Enter; Space selects additional integrations. Selection happens before setup writes. An available selected Claude Code or Codex CLI receives the real terminal, including normal keyboard interaction. Exit the agent to return to MEX; incomplete population offers retry, a manual prompt, file checks, or Finish later.

    Graph work shows actual phase/file counts and elapsed time. Setup distinguishes complete, paused, failed, and cancelled outcomes. Expected failures carry recovery instructions; bounded worker diagnostics remain available in the terminal, while browser errors expose only safe messages. Completing or checking setup without agent output no longer creates an empty background-session panel. Press d to review retained setup notices and diagnostics; l on the finishing screen shows a clean copyable Hub link, including in a narrow terminal. Finish later remains a paused outcome after an agent failure, and the final message reflects a setup commit completed in the browser. On Windows, returning from the manual prompt or the Hub link view no longer leaves the HUD without input.

    After interactive preparation, the browser handles setup-file review, the explicit local commit checkpoint, and completion. MEX never pushes. Use mex setup --browser to select browser setup directly; --cli remains an alias for terminal setup. Bare mex opens terminal setup for an incomplete project and Hub for an established code project. mex hub and mex tui remain explicit browser and terminal-dashboard entry points.

    For scripts, use mex setup --yes --tool <name> or --tool none. Piped input/output and CI also use plain output, reuse saved choices where available, and never launch an agent or long-lived Hub. Exit codes are 0 for completed preparation or a successful dry run, 2 for pending population, 1 for failure, and 130/143 for interruption. --dry-run remains read-only.

    Faster graphs, smaller fingerprints

    • Refresh avoids re-extracting importers whose dependency declaration signatures did not change and shares compiler resolution work across projects. The first refresh after upgrading re-extracts the corpus once for the new internal cache format; subsequent work can reuse it. The inferred-program fallback now agrees with a clean build after changes outside every tsconfig.
    • Scope tokenizes each node once per query, avoiding repeated work on large type signatures while preserving the output.
    • New grounding fingerprints use lossless mh2: encoding, substantially reducing committed Markdown size. Existing mh: values remain readable and are not rewritten by reads. mex graph compact-fingerprints --dry-run previews an optional explicit conversion; omit --dry-run to apply it.

    Upgrade every collaborator before committing mh2: groundings. MEX 0.8.3 and earlier cannot read that encoding.

    Knowledge checks and Wiki maintenance

    • mex check, Wiki queries, and Hub views share fact-aware grounding verdicts. Proven comment-only and formatting-only edits stay fresh; changes away from everything a fact names are distinguished from changes that may invalidate it. Missing or ambiguous links remain flagged. Class properties and fields now receive body hashes and fingerprints too.
    • mex sync reviews flagged Wiki facts in the same agent session. After review, mex wiki reground <id> --apply can re-record a still-valid fact's links; changed text or uncertain links require the corresponding review. Index rebuild and another check follow. Baselines are no
  3. v0.8.3MEX 0.8.3 — Faster graphs, more reliable grounding2026-09-27 · 2026-09-27 20:45 UTC
    查看更新说明

    mex 0.8.3 — Faster graphs, more reliable grounding

    MEX 0.8.3 makes graph refresh incremental, preserves more knowledge links across clones and code changes, and expands route and dependency coverage. It also adds scaffold export and Markdown timelines.

    Faster graph maintenance and reads

    • Refresh reuses unchanged file extractions and rewrites only changed graph rows. TypeScript and JavaScript dependents are re-extracted when needed; broad compiler or configuration changes fall back to full extraction. Resolution still runs over the whole corpus.
    • A refresh with nothing to publish leaves graph.db untouched. JSON output reports the refresh mode, fallback reason, and work performed. The extraction cache adds to local database size.
    • Targeted reads reuse a validated publication audit, and CLI code splitting avoids loading the compiler and terminal UI for lightweight commands.

    Grounding that survives everyday work

    • TypeScript node IDs no longer depend on the checkout directory. Type signatures use canonical ordering so incremental and full extraction agree.
    • mex impact reads knowledge links from the committed scaffold, so they work on fresh clones. Grounding records take priority over transitive callers when the output budget is tight; graph get keeps node metadata when source does not fit. Inline anchors alone are not returned as impact grounding records.
    • mex check reads groundings at both the root and under mex:. Writers consolidate compatible root entries under mex.grounds_to; conflicting entries stay visible for review.
    • Source edits no longer disable all grounding checks. Unchanged files can use the prior snapshot; edited tree-sitter files can be re-extracted locally. Edited TypeScript/JavaScript groundings report GROUNDING_UNVERIFIED until refresh rather than appearing clean. Other freshness failures still block checks that cannot be trusted.
    • Small-function renames can reconcile from callers and callees, with an explicit GROUNDING_MOVED_BY_NEIGHBORS notice. Equally good candidates remain ambiguous, and inline anchors can use committed fingerprints after rebuilds.

    More project coverage and useful outputs

    • New bounded FastAPI, Flask, and NestJS route resolvers join Express and Next.js App Router. Static paths and unambiguous same-file handlers are supported; this is not general runtime routing analysis.
    • Dependency checking reads Python pyproject.toml, including common optional and grouped dependencies. Architectural labels produce fewer package warnings.
    • Graph commands and doctor report recognized source files with no registered extractor, and status distinguishes uninspected fields from real zero counts.
    • mex export bundles scaffold Markdown into one document; use --out <path> for a file. mex timeline --format md produces a Markdown table for reports.
    • Heartbeat explains when missing last_updated fields leave staleness checks inactive, accepts zero-day thresholds, and deduplicates symlinked files.
    • Official Inbox and Relay skills are discoverable through standalone skill installers and Claude Code marketplace metadata. Standalone installation is an alternative to MEX-managed skills; it still requires the CLI and a project.

    Upgrade an existing project

    Keep the old graph for the first refresh. TypeScript signature fixes can change node IDs, and the old index lets refresh retain aliases for those IDs.

    npm install -g [email protected]
    mex graph refresh
    mex sync
    

    The first refresh performs a full extraction with typescript-5.9-v5. Review the scaffold diff and any ambiguous or missing groundings before committing through Git. If the scaffold changed, run mex wiki rebuild-index to update its local index. A fresh clone or rebuild without the old graph uses committed fingerprints and may require manual re-grounding. For an incompatible or damaged index, follow the explicit recovery action from `me

  4. v0.8.2MEX 0.8.2 — Set up in the Hub2026-09-13 · 2026-09-13 18:59 UTC
    查看更新说明

    mex 0.8.2 — Set up in the Hub

    MEX setup now starts in your local browser. The terminal setup remains available.

    Setup

    npx [email protected] setup
    
    • Choose integrations, follow agent population, review the setup-file diff, and explicitly commit it locally in one flow. A manual Git checkpoint remains available.
    • If an agent fails, retry it or copy the retained prompt and continue after manual population. Integration pointer notes are advisory and do not block setup.
    • After the commit, a completion guide explains how to start a fresh agent session and verify its project knowledge. Choose Open Hub to enter the full dashboard and its first-run tour.
    • Optionally install mex globally at the exact version running setup. Installation has progress, verification, retry, skip, and a copyable terminal command. Failure leaves setup complete.
    • Optionally leave an email and a name for follow-up about MEX. Name is optional; email is required only when submitting. The embedded Web3Forms service handles delivery. Contact details stay out of repository files and usage telemetry; only a submitted/skipped preference is stored on the computer and shared with Overview's invitation.

    Use mex setup --cli for the terminal flow and mex setup --dry-run for a read-only terminal preview. --no-open prints the browser link; --port <n> chooses a loopback port. Bare mex opens Hub or setup, and mex tui keeps the terminal dashboard.

    Also included

    • A first-run Hub tour highlights the actual navigation once per checkout; Settings can replay it.
    • Overview links directly to Context when its Wiki index is fresh, and to Health when maintenance is needed.
    • Initial C# code-graph support extracts declarations and relationships from .cs files, with conservative call resolution. Semantic binding and generic type-parameter capture remain partial.
    • Next.js App Router HTTP handlers become route nodes in the Code Graph.
    • Sync moves inline grounding anchors together with their matching frontmatter entries, preserving the link to moved code.

    Upgrade

    npm install -g [email protected]
    mex skills sync --dry-run
    mex skills sync
    

    Review integration conflicts and start a fresh agent session. Completed 0.8.0/0.8.1 projects do not need setup again just to upgrade. Automation that expects terminal prompts must now use setup --cli.

    Node.js 22.5 or newer with SQLite FTS5 is required. Package-root exports and Graph/Wiki/Relay storage formats are unchanged. MEX never pushes or pulls; a setup commit is created only from the reviewed Hub action.

    Contributors

    Thank you to everyone who contributed to 0.8.2:

    • @architdhamija — the Overview contact form, Hub setup wizard, Overview improvements, and first-run tour (#191, #192, #194, #195).
    • @doctor-ew — initial C# code-graph support (#156).
    • @theyashasvipandey — grounding-link migration fixes (#193).
    • @abhinav-phi — grounding-link migration fixes and Next.js App Router route resolution (#187, #179).
    • @theDakshJaitly — making Hub setup the default and completing the 0.8.2 setup flow (#197).

    New Contributors

    • @architdhamija made their first contribution in #191.
    • @doctor-ew made their first contribution in #156.

    Full changelog: v0.8.1…v0.8.2

  5. v0.8.1MEX 0.8.1 — Explore context, share knowledge, keep work moving2026-09-09 · 2026-09-09 21:04 UTC
    查看更新说明

    mex 0.8.1 — Explore context, share knowledge, keep work moving

    MEX 0.8.1 makes project knowledge easier to explore and contribute to, makes Relays useful before you know who will pick up the work, and keeps compiler work from blocking the Hub during Graph construction.

    Highlights

    • Explore your project's Context graph. See Wiki entities and recorded relationships together, filter by type, and select an entity to reveal its direct code groundings and details. A list view remains available. Inbox, Relays, Team, and Activity stay in primary navigation; existing Specs and Workstreams remain readable through their direct routes.
    • Turn a discussion into project knowledge. Inbox now handles additions and corrections to existing architecture, components, conventions, decisions, patterns, and guides. Use mex-inbox to prepare a local draft, publish a Markdown proposal for review, and explicitly approve its contribution to the Wiki. Evidence and attribution survive; routine knowledge upkeep can still happen directly.
    • Leave a Relay open to the team. Eligible active Members can take an open-to-team handoff, including someone who joins later. Drafts can defer recipient selection, mex relay draft save --from <draft.json> shortens local saving, and inactive Members can be reactivated with their original identity. Audience and sharing states are visible in Hub and CLI.
    • Choose how much agents log. Hub Settings and mex logging offer a quiet significant default, batched checkpoints, or manual logging. Updated agent instructions retrieve relevant Timeline notes so useful context is easier to reuse; a session note does not automatically become accepted Wiki knowledge.
    • Keep grounding changes deliberate. A successful agent run no longer resets drift baselines. Interactive sync asks you to accept individual groundings and checks that the reviewed document and code still match. Moving a symbol preserves evidence of earlier changes.

    Graph and reliability

    Hub refresh/rebuild constructs its Graph candidate in a disposable process, allowing the Hub to respond during compiler work. The Hub still validates and publishes the result; initial checks and final publication can still pause it. Smaller temporary collections and reused database statements remove avoidable work. This does not add incremental indexing or a peak-memory quota: a changed source still triggers a build of the eligible corpus, and simultaneous Hub and worker memory can increase the combined peak. CLI builds remain in process.

    Targeted CLI Graph reads can now explain config drift, partial parses, and excluded changed source files while returning the remaining useful evidence. Hub reads retain strict freshness. Formatting or dependency-version-only changes to configuration no longer invalidate an otherwise unchanged graph. Maintenance can retain a useful graph with documented per-file gaps, and failures name the diagnostics that stopped publication.

    Other fixes preserve exact Wiki bytes and full-width filesystem identities on Windows, stop unknown context files being assumed to be architecture, improve write provenance, and report missing SQLite FTS5 support clearly. Explicit Graph/Wiki maintenance also installs ignore protection before creating stores.

    Telemetry and feedback

    Usage events are pseudonymous and opt-out. Namespaced CLI outcomes and fixed Hub page/action/job events share a random installation UUID. Where available, events include the existing scaffold UUID and configured tool names from the allowlist: claude, codex, copilot, cursor, opencode, and windsurf. Configured tools describe setup, not the invoking agent; multiple installations on one scaffold are a shared-use signal, not proof of team size.

    Events exclude names, repository remotes, content, paths, queries, and contact details. A bounded local queue and cancellable delivery keep network waiting limited; deliv

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Shared project memory for engineers and their coding agents.

    Memory lives as Markdown in .mex/, travels with Git, and stays linked to the code. Local Hub for people. CLI + skills for agents.

    npx [email protected] setup
    

    English | 简体中文 | Español | Português (Brasil)

    npm version GitHub stars Website Discord License: MIT CI Node.js >=22.5 TypeScript Agent memory MCP: source only

    Works with · Team memory · A teammate-handoff example · Project Hub · Quick start · How it works · Command map

    Works with

    ToolWhat setup installs in 0.8
    Claude CodeProject anchor + skills (/mex-inbox, /mex-relay, /mex-statechart)
    CodexProject anchor + skills ($mex-inbox, $mex-relay, $mex-statechart)
    Cursor, Windsurf, GitHub Copilot, OpenCodeInstruction anchor / template only — no official mex skill commands yet

    [!IMPORTANT] MEX 0.8.5 turns complicated agent explanations into checked state diagrams. Ask your agent to explain a flow, bug, or recovery path with a statechart; read it in chat or explore it in Hub. This release also adds parallel, resumable setup and faster graph builds. Existing users should sync their project skills after upgrading.


    One engineer knows why a constraint exists. Another has the debugging history. A coding agent found an important edge case in a session nobody else will read. The next teammate has to piece it together again.

    What one engineer and their agent learn should become context the next teammate can use. MEX gives that knowledge a durable home in the repository: readable Markdown, code-linked explanations, reviewed knowledge contributions, and structured handoffs. People explore and review it in a local Hub; agents retrieve and help maintain it through project instructions and the CLI.

    What your team remembers

    What the team needs to retainWhere it lives in MEX
    How the system works, and whyWiki architecture, decisions, conventions, and patterns, with Code Graph grounding
    A decision or explanation worth sharingAn Inbox proposal that adds to or corrects existing Wiki knowledge
    Product requirements already capturedExisting Specs, requirements, constraints, and acceptance criteria remain supported
    Where another engineer should continueRelays with progress, decisions, blockers, evidence, and next actions
    Earlier workflow contextExisting Workstream records remain readable
    Who is involved, and what MEX recordedMembers and Activity history

    An engineer and their agent contribute shared team memory through Git. A teammate and their agent reuse it in a separate checkout, with their own local indexes.

    Canonical memory travels with ordinary Git commit, push, and pull. Each teammate keeps their own local indexes, drafts, identity selection, and Hub. No hosted MEX service, Docker, proxy, MEX account, or MEX-owned model key is required.

    Working solo? The next person using that memory can be you in a new session.

    From one engineer to the next

    An example: Alex changes webhook retry handling, and Sam will continue the work. Both are active MEX Members in a repository their team has already set up.

    1. Start with the team's context. Alex asks Codex to inspect the existing architecture, relevant decisions, and code evidence before making the change and running tests.
    2. Keep the useful discoveries. With Alex's direction, Codex updates the relevant Wiki explanation and code references. For a conclusion the team should review, it prepares an Inbox knowledge proposal for explicit approval.
    3. Prepare and publish the handoff. Alex asks $mex-relay to draft a Relay for Sam: what changed, which tests ran, what remains, and where to look next. She reviews the draft and publication preview in Hub, explicitly publishes it, then reviews, commits, and pushes the code and canonical MEX files through Git.
    4. Continue from shared context. Sam pulls the relevant branch, updates his local indexes as needed, and opens Hub. He reviews and takes the Relay, then asks his coding agent to read its context and continue. His acknowledgement is another canonical change to commit and push.

    An engineer prepares and publishes a Relay, shares it through Git, and the next engineer takes the durable handoff.

    The Relay carries the explanation and observed repository state—not the uncommitted code. Publishing writes files to Alex's checkout; it does not notify Sam or deliver anything until they share through Git. See Relay boundaries for lifecycle and concurrency details.

    Project Hub

    The Hub is where people explore and review their team's memory. Open it to explore connected project knowledge and code, review a proposed knowledge change, find an eligible handoff, or see recorded team history.

    Explore Wiki and Code, review Inbox and Specs, and coordinate Relays and Team members in the local Project Hub.

    • Understand the project: Home, Search, Context, and Code bring explanations and implementation evidence together. The Context graph shows knowledge entities and relationships; selecting one reveals its direct code groundings and details.
    • Review and carry work forward: Inbox proposes additions and corrections to project knowledge; Relays preserve what the next person needs. Existing Spec proposals and Workstream records remain readable.
    • See who and what: Team/Members supports attribution and local identity selection. Activity shows accepted MEX workflow events and recorded project notes—not every code edit or Git action.
    • Keep context usable: Health and Jobs expose index status and explicit maintenance.

    After setup, run mex hub. Each engineer's Hub reads their own checkout and listens on 127.0.0.1; it is not a shared hosted dashboard. Git brings the team's canonical records into that checkout. Hub protects mutations with a server-side session and CSRF token. Playbook and Catch Up product workflows remain future work.

    Quick start

    MEX requires Node.js 22.5 or newer, SQLite FTS5 support in that Node build, and a Git repository. See runtime compatibility. The normal npm flow works on macOS, Linux, Windows Command Prompt, PowerShell, and WSL.

    Introduce MEX to your repository

    Run from the repository root:

    npx [email protected] setup
    

    This opens a keyboard-driven terminal HUD with a cyan ASCII mex banner. Highlight a tool with the arrow keys and press Enter to select it and begin. Space optionally selects additional integrations; the Continue row starts with your checked choices or without an agent. Long steps show elapsed time and reported work, including graph file counts and subsystem progress. Setup can launch Claude Code, Codex, and the newly supported Cursor, GitHub Copilot and OpenCode CLIs in the background. Larger repositories get per-subsystem tasks, with the shared context task running alongside them; MEX_SETUP_PARALLEL_RUNS sets how many agents or one-paste tasks run at once (default 3, range 1–8). MEX checks the scaffold before continuing and preserves existing instructions. Rerunning continues saved work, including after an agent usage-limit pause.

    After validation, setup opens the Hub for completion. Review the exact setup-file diff and choose Commit setup to create a local commit. A manual Git checkpoint remains available. MEX preserves unrelated staged work and never pushes or pulls.

    The completion screen explains how to start a fresh agent session and verify that it reads your project memory. It also offers two optional steps: install the mex command globally at the version running setup, and leave an email (plus an optional name) for follow-up about MEX. Contact details are sent through the embedded Web3Forms service and stay out of the repository and usage telemetry. Only a submitted/skipped preference is remembered on this computer. Choose Open Hub when ready; the Hub's introductory tour starts there.

    Connected agents have their own installation, account, and network requirements. Keep the setup terminal running while using the finishing Hub; press q or Ctrl+C to stop it. Use npx [email protected] setup --no-open to show the finishing link without opening a browser; add --port <n> to choose a loopback port. Press d in the HUD to read longer status or error details.

    Expected setup errors include specific recovery instructions, such as correcting malformed configuration or an ignore rule that hides the scaffold. An incomplete agent session returns to recovery choices; a successful agent exit alone does not mark setup complete.

    Prefer browser setup?

    npx [email protected] setup --browser
    

    The browser runs the same setup engine with the background agents listed above and a one-paste fallback. If MEX cannot launch your agent, paste this instruction into it: Run mex setup next --start first, then follow its instructions until setup is complete. Each call hands out several task files when possible, applies ready work, and continues the saved plan; prompts name source folders the code graph skips. --browser --no-open prints its link without launching a browser. The existing --cli flag remains an alias for the default terminal flow. --tool, --yes, and --dry-run are terminal-only, so --browser cannot be combined with them or with --cli; setup stops with an error naming the conflicting option. mex setup --help summarizes both modes.

    For scripts, use --yes with repeatable --tool <name> flags (or --tool none). Piped input/output and CI also use plain output. These runs reuse saved choices, default to no integrations when none are saved, and never launch an agent or browser or wait for input. Exit codes are 0 for completed preparation or a successful dry run, 2 when population is still required, 1 for failure, and 130/143 for interruption. After a population checkpoint, rerun mex setup to continue. Once preparation is complete, mex setup --browser opens the commit and completion page.

    Rerunning mex setup on a checkout that is already set up reports its status — entities, facts and whether the graph is current — and does no work; changed code is reported as drift with a pointer to mex sync. A prepared but uncommitted checkout goes straight to the commit step, and anything else is named before setup finishes only that part. mex setup --browser shows the same status. Use mex setup --force to run the full flow; authored files are always preserved. Choosing a different mode or AI tools also runs the flow.

    mex setup --dry-run remains a terminal preview without changes. Once installed, bare mex opens the Hub for an established code project or terminal setup for an incomplete project. mex hub explicitly opens the browser, while mex tui opens the terminal dashboard.

    Three steps to a ready project: run setup, populate memory, then review and commit the checkpoint before opening Hub.

    [!NOTE] The full Hub opens when the current .mex/config.json is committed at HEAD. Its setup wizard can commit the reviewed setup files on your explicit request, preserving unrelated staged work. Repositories with unsupported Git hooks or content filters keep the manual checkpoint. MEX never pushes or pulls.

    Push the reviewed setup commit through your team's normal Git workflow so teammates receive the same project memory and selected agent instructions. In Hub's Team/Members page, add the people who will participate and choose your local identity. Review and apply those actions explicitly; commit and push new Member records too. Your current-member selection stays local.

    Join a repository already using MEX 0.8

    Clone or pull the team's repository and branch through Git. For a completed, committed 0.8 setup, build the derived indexes in your own checkout and open Hub:

    npx [email protected] graph rebuild
    npx [email protected] wiki rebuild-index
    npx [email protected] hub
    

    Reuse the shared project memory; do not regenerate it just to join. In Team/Members, check the effective identity and, if needed, choose your existing Member record as a local override. If you do not have a record yet, explicitly create one through the reviewed workflow and share its canonical files. Members are attribution, not a sign-in or permission system.

    The committed instruction files and skill directories are reusable by the agents they target. Install the agent separately and start a new session in the repository. If your chosen integration was not included in the shared setup, coordinate adding it with the team; see agent integrations. After later pulls or branch changes, inspect Graph/Wiki health and run the indicated explicit maintenance—reads do not silently update indexes.

    Older or incomplete setups should follow upgrade and compatibility first. Keep CLI versions aligned before exchanging new Relays.

    npm install -g [email protected]
    mex setup
    

    The npm package is named mex-agent; the installed command is mex. Complete the review and commit checkpoint above before running mex hub.

    The Hub completion page, also opened after interactive terminal setup, offers an optional global installation pinned to the running MEX version. If it fails, setup remains complete and you can retry the command above. Open a new terminal afterward and run mex --version.

    npx [email protected] setup --mode agent-memory
    

    This separate template applies MEX's routing and maintenance model to homelab, infrastructure, and long-running agent workspaces. It adds a HEARTBEAT.md contract and cleanup conventions; the Code Graph, Wiki, and team-Hub flow described in this README is the default code-repo mode.

    Examples use mex for readability. Install it globally as above or replace it with npx [email protected].

    How MEX works

    The team's memory is shared; the machinery that retrieves it stays local. MEX separates canonical repository files from rebuildable indexes so each engineer and agent can work against their own checkout.

    Repository source and Markdown feed the local MEX engine. Agents access it through the CLI; people use the Project Hub.

    Canonical Markdown, local indexes

    Canonical knowledge is structured Markdown with metadata, relations, sources, provenance, and code groundings; accepted Wiki writes append audit records. The Code Graph and Wiki search index are rebuildable local SQLite views, not shared sources of truth.

    In 0.8.1, ordinary Wiki creation and synthesis capture the operation's recorded actor, time, and session as creation provenance while preserving any supplied original attribution. Migration leaves unknown, untyped context/*.md files untouched; declare the file's type with a root type key in its frontmatter (for example type: component) before migrating it, instead of relying on an architecture default. mex check and mex wiki validate report knowledge files that are not yet in the Wiki.

    Commit and push to shareKeep local or ephemeral; never commit
    .mex/config.json, .mex/.gitignore.mex/graph.db*
    .mex/AGENTS.md, .mex/ROUTER.md, .mex/SETUP.md, .mex/SYNC.md.mex/wiki.db*
    .mex/context/**, .mex/patterns/**, .mex/specs/**, .mex/topics/**.mex/local/**: drafts, current-member selection, jobs, cursors, recovery state, signing key
    .mex/team/members/**, .mex/workstreams/**, .mex/inbox/**, .mex/relays/**Process-memory Hub session registry and browser-held session/CSRF state
    .mex/events/activity/**, .mex/events/operations.jsonl, .mex/events/decisions.jsonl—
    Setup-selected agent instruction files and .agents/skills/mex-* or .claude/skills/mex-*—

    Git carries the meaning; setup or explicit maintenance commands rebuild the indexes against each checkout's own branch and working tree. Code remains authoritative, and grounding drift flags code-linked explanations that need review.

    Wiki, Code Graph, and grounding

    Shared memory needs both the team's explanation and evidence from the implementation. MEX combines two complementary views of a repository:

    • The Wiki explains architecture, conventions, decisions, patterns, topics, and Specs in language people can review.
    • The Code Graph uses bundled Tree-sitter grammars to map symbols and relationships from the implementation into a local SQLite index for precise, bounded retrieval.

    Inspect or explicitly maintain them:

    mex graph status
    mex graph refresh       # Republish an existing compatible store
    mex graph rebuild       # Full replacement when status requires it
    mex wiki rebuild-index
    mex wiki query "authentication"
    

    Ask the Graph for a task-sized evidence set or an exact structural relationship:

    mex graph scope "trace the authentication flow"
    mex graph query where-defined authenticate
    mex graph query who-calls requireSession
    mex graph get <node-id>
    mex impact requireSession
    

    MEX indexes TypeScript/TSX, JavaScript/JSX, Python, and Rust, with partial C# support. Module variants such as .mts, .cts, .mjs, and .cjs have partial coverage. Bounded framework resolvers cover Express, Next.js App Router, FastAPI, Flask, and NestJS; see the support matrix for their limits. CLI Graph reads can return bounded, clearly labelled degraded evidence when configuration drifts, parsing is incomplete, or changed files must be excluded. Incompatible engines still refuse reads, and Hub Code keeps strict freshness checks. scope can also return bounded live-text evidence for stale or unindexed files, marked text-only. who-calls, what-calls and impact give each call's line, list production code first, and count test-file results instead of listing them while other results exist; add --include-tests to list them.

    Hub Graph construction runs in a disposable process so compiler work can release its memory when the job exits. Refresh reuses unchanged extractions and rewrites changed rows, while still resolving the whole corpus; broad compiler or configuration changes fall back to full extraction. Process isolation improves responsiveness and releases compiler state after the job, but does not guarantee lower combined peak memory.

    Grounding and drift

    A Wiki claim can point to a deterministic graph node. MEX stores the node ID and identity fingerprint; new MEX-written groundings also carry a body hash, while compatible legacy groundings may fall back to coarser fingerprint comparison. Together these signals distinguish intact, changed, moved, missing, ambiguous, and unverified references.

    A Wiki claim is grounded to a code symbol. Code changes can flag the claim for review.

    Drift is a review signal. It does not prove that prose is false, that a code change is wrong, or that a model actually reasoned from retrieved context. A successful agent session no longer accepts a new baseline automatically: replacing an existing baseline requires explicit review of the selected grounding.

    Agents help maintain the team's memory

    Agents are both readers and contributors: they can retrieve the team's existing context, help capture discoveries from real work, and prepare knowledge proposals or handoffs for a person to review. They do not independently decide what should be published or shared.

    Setup installs small host-agent instructions that point to .mex/AGENTS.md for policy and .mex/ROUTER.md for task-relevant context. Agents can query Wiki and Graph evidence, provided the host follows those instructions.

    An agent follows project instructions and the Router to retrieve context and code evidence relevant to the task.

    IntegrationSetup behaviorExplicit skill commands
    Claude CodeInstalls or updates the project anchor and skills under .claude/skills//mex-inbox, /mex-relay, /mex-statechart
    CodexInstalls or updates the project anchor and skills under .agents/skills/$mex-inbox, $mex-relay, $mex-statechart
    Cursor, Windsurf, GitHub Copilot, OpenCodeInstalls the appropriate instruction anchor/templateNo official MEX skill command in 0.8

    For an existing setup missing your Claude Code or Codex assets, preview and sync that integration explicitly:

    mex skills sync --dry-run --tool codex
    mex skills sync --tool codex
    

    Use --tool claude for Claude Code. Review the resulting instruction and skill files, commit and push them if the team should share the integration, and start a new agent session.

    Instructions may select Inbox or Relay from clear natural-language intent, but skill activation never approves a canonical write. When MEX context materially helps, the agent mentions MEX and the relevant finding naturally, tying it to what it helped understand, decide, or verify, without a standard footer.

    With the 0.8.1 Inbox update, “use MEX Inbox to capture what we decided” produces a contribution to existing project knowledge. The agent checks existing records, then drafts one addition or correction. Architecture, components, conventions, decisions, patterns, and guides are supported alongside existing Spec proposals. A local draft stays in the checkout; publishing writes a Markdown proposal for review; approval updates canonical knowledge and retains the proposal as history. Git shares those files with teammates.

    Ordinary GROW, Wiki, and context upkeep remains available without Inbox. Inbox is the explicit contribution path, not another knowledge category.

    Standalone skill installation

    For an existing MEX project, you can manage the official Inbox, Relay, and Statechart skills with skills.sh instead of MEX's skill installer:

    npx skills add mex-memory/mex
    

    This installs agent skills only; it does not install the mex CLI or initialize project memory. The skills still need an available MEX CLI and a configured MEX project.

    Choose one installer for each agent integration. If mex setup or mex skills sync already manages its skills, keep using mex skills sync; do not run skills add over them. The external installer replaces MEX's managed directories, causing later setup or sync operations to report ownership or path conflicts.

    The repository includes an MCP workspace for local development. It is not published with MEX 0.8; the released agent interface is the mex-agent CLI and its project instructions and skills.

    Human approval boundaries

    An agent can prepareA person deliberately controls
    Search and retrieve Wiki or Graph evidenceWhether retrieved evidence is sufficient
    Create a checkout-local Inbox draftPublishing the proposal for repository review
    Preview a bounded knowledge addition or correctionApproving or rejecting the proposed canonical change
    Create a checkout-local Relay draftPublishing, taking, and closing a handoff
    Suggest context and grounding updatesReviewing and committing working-tree changes

    Team workflows use signed previews to bind reviewed inputs and detect stale or altered plans; Wiki authoring uses a plan/--apply boundary. These protect mutation integrity—not authentication, OS isolation, repository permissions, or proof that a human issued the command.

    Team workflows

    These workflows help a team decide what becomes durable knowledge and preserve enough context for someone else to continue. They sit alongside your existing code-review and issue-tracking tools.

    FeatureWhat it isSharing boundary
    MembersStable contributor records plus a checkout-local “current member” for attributionMember records use Git; current selection stays local
    WorkstreamsDurable context around an area of work and its stateCanonical Markdown through Git
    SpecsStructured product requirements, constraints, and acceptance criteriaCanonical Markdown through Git
    InboxProposals for one project-knowledge addition or correction; existing Spec proposals remain supportedDraft local; published proposal and decisions through Git
    RelaysAgent-prepared, human-published context handoffsDraft local; published/taken/closed record through Git
    ActivityAccepted MEX workflow history and custom recordsCanonical records through Git

    Members provide attribution and provenance. They are not accounts, authentication, role-based access control, or repository permissions.

    Inbox: contribute to project knowledge

    In 0.8.1, the Inbox skill captures one durable conclusion from a discussion as an addition or correction to architecture, components, conventions, decisions, patterns, or guides. It searches existing knowledge first, saves a local draft, and publishes a Markdown proposal for review. Approval changes the existing knowledge area and retains the proposal's source evidence. Existing spec.create and spec.update proposals remain supported.

    The existing Spec proposal path illustrates local drafting, publication, and explicit approval; knowledge contributions follow the same review boundary.

    Every canonical proposal transition still needs ordinary commit/push/pull to reach another checkout. Approval, rejection, and withdrawal are terminal; a stale proposal can be repaired back to pending. An author can use the exceptional self-approval flow, so Inbox is designed for explicit approval—not guaranteed peer review.

    Ordinary GROW upkeep can still update project knowledge directly. Inbox is the explicit contribution-and-review path; session notes remain in the event log.

    Relay: pass the context baton

    A Relay packages what the next person needs: a summary, progress, blockers, next actions, useful evidence, and observed repository state. The 0.8.1 update adds Open to team, including active Members who join later, alongside named recipients. Save a local draft before selecting anyone, or use mex relay draft save --from draft.json --json for the shorter agent path. Publication requires an active sender; named handoffs also require one to 32 unique active recipients. The observed state includes branch, HEAD, a dirty-tree flag, and timestamp; it stores no diff or dirty file contents.

    A Relay is a durable handoff, not chat, a live notification, task assignment, or a Jira replacement.

    Within one observed repository state, the first successful eligible Member becomes the sole claimant. There is no cross-clone network lock, so two unsynchronized Members can claim separately and later meet a Git conflict. Only the active recorded sender or active recorded claimant can close the Relay; deactivating either principal can block closure. In 0.8.1, reactivation restores the original Member identity so older handoffs remain usable. There is no decline, reassign, unclaim, reopen, or administrative-override flow. Teammates exchanging new open-to-team Relays need a CLI that supports schema v4.

    Project notes: logging and reuse

    mex log records decisions, notes, risks, and todos in .mex/events/decisions.jsonl. Future agents can retrieve relevant entries with mex timeline; people can read them as Project notes in Hub Activity. These records are historical context. Durable conclusions can be promoted into maintained knowledge explicitly, with their source retained.

    In 0.8.1, Settings → Agent logging controls when agents write optional notes in this checkout:

    • Significant events (default): decisions, discoveries, and risks worth remembering.
    • Task checkpoints: batch useful notes when a task or session ends.
    • Only when asked: write optional notes on an explicit user request.

    The preference guides agents; explicit user requests and mandatory workflow Activity remain independent. It lives under .mex/local/ and is not shared through Git. Start a new agent session after syncing the updated instructions.

    mex logging --json
    mex logging checkpoints
    mex timeline --query "retry" --file src/client.ts --type decision --limit 20 --json
    

    Timeline retrieval reads the latest 8 MiB / 10,000 log lines, returns at most 200 entries, and caps output at 64 KiB. JSON reports truncation; a filtered empty result does not prove the full history has no match. Retrieval never changes the log or initializes project identity.

    Command map

    Run mex <command> --help for the complete interface.

    GoalCommands
    Set up or inspect compatibilitymex setup, mex setup --browser, mex capabilities, mex skills sync
    Use persistent-agent modemex setup --mode agent-memory, mex heartbeat
    Open a local interfacemex hub, mex tui
    Build and retrieve code contextmex graph status, mex graph refresh, mex graph rebuild, mex graph scope <task>, mex graph query <relation> <target>, mex graph get <node-id>, mex impact <target>
    Index and retrieve knowledgemex wiki rebuild-index, mex wiki query <text>, mex wiki show <id>, mex wiki related <id>, mex wiki backlinks <id>, mex wiki for-code <node-id>
    Synthesize or maintain the Wikimex wiki build, mex wiki prepare --stage <stage> [--cluster <name>], mex wiki validate (structure only); mex wiki propose <response-file>, mex wiki apply <operation-file> and mex wiki reground <id> preview by default and write only with --apply
    Review team memorymex member --help, mex activity --help, mex workstream --help, mex spec --help
    Propose knowledge additions or correctionsmex inbox draft --help, mex inbox publish --help, mex inbox proposal --help
    Prepare and receive handoffsmex relay draft --help, mex relay publish --help, mex relay acknowledge --help, mex relay close --help
    Record and retrieve project notesmex log <message>, mex logging --help, mex timeline --format md, mex pattern --help
    Export scaffold Markdownmex export, mex export --out <path>
    Check and maintain the projectmex check, mex sync, mex doctor, mex watch

    Keeping knowledge true to the code

    Two commands cover it:

    • mex check runs every deterministic check, with no AI and no writes: scaffold files, paths and commands, and every code link in the scaffold and the Wiki. Each link gets one verdict, the same one wiki query, wiki for-code and the Hub show: fresh, changed-nearby (the change is away from everything the fact names), moved, changed, missing or ambiguous. Comment-only and formatting-only edits stay fresh. A finding on a Wiki entity names its id and title.
    • mex sync fixes what check found in one interactive agent session. For each flagged Wiki entity the agent compares the fact with the code as recorded and as it is now, then re-records it with mex wiki reground <id> --apply (still true), fixes the text and re-records (changed), or leaves the flag (unsure). Missing and ambiguous links are relinked by hand or left flagged. Sync then rebuilds the Wiki index and checks again.
    • mex wiki link-sections previews missing connections from existing section entities to their enclosing document or section. Add --apply to record those refines relationships without changing facts or code groundings. It works on existing scaffolds without setup or an AI session. Semantic dependencies still need evidence. The Hub graph remains bounded to 100 entities and 500 relationships and keeps a limited number of linked parents visible; use List for the complete knowledge collection.
    • mex wiki upgrade previews a bounded review of existing broad code-linked entities for one fact per entity. --apply starts an interactive review using the same agent chooser as mex sync; --tool optionally overrides it. Without an installed CLI, copy the preview prompt into your coding agent. Review requires a fresh code graph and refuses flagged candidate groundings until check/sync has reviewed them. It preserves existing ids as overviews and does not rerun setup. Opening Hub or updating MEX never rewrites project knowledge automatically.

    mex wiki query and mex wiki for-code are how agents find that knowledge; --health changed lists what check flags.

    Use mex capabilities --json for machine-readable capability discovery and mex commands for the concise CLI map.

    Upgrade and compatibility

    When upgrading to 0.8.5, follow the 0.8.5 upgrade instructions: run mex skills sync --dry-run, then mex skills sync in each existing MEX project to install mex-statechart, and start a fresh agent session. Upgrading the CLI alone does not refresh project skill copies.

    For a global installation, upgrade the CLI and refresh the selected Claude Code/Codex skill copies:

    npm install -g [email protected]
    mex skills sync --dry-run
    mex skills sync
    

    For an already completed MEX setup, this installs mex-statechart and refreshes the managed skills and agent guidance; setup does not need to run again just for the package upgrade. Review any reported conflicts with locally edited instructions, then start a new agent session.

    [!WARNING] Upgrade everyone sharing the scaffold to 0.8.4 or newer before committing new or updated groundings. Since 0.8.4, MEX writes compact mh2: fingerprints, which earlier versions—including 0.8.3—cannot read. Existing mh: fingerprints remain readable; upgrading alone neither rewrites files nor changes their grounding meaning.

    Graph schema v4 and Wiki index v5 are unchanged from 0.8.4. Run mex graph refresh after upgrading: the updated TypeScript extractor rebuilds the graph once, and some declaration IDs can change. Keep the existing graph so MEX can map old IDs, then use mex check and mex sync to review affected groundings. No Wiki schema migration is required from 0.8.4. If upgrading from 0.8.3 or earlier, also follow the maintenance steps introduced in 0.8.4, including mex wiki rebuild-index. Fingerprint conversion remains optional and explicit.

    Keep your existing graph when upgrading from 0.8.2 or earlier. The TypeScript identity changes introduced in 0.8.3 can change node IDs. Refresh before syncing so MEX can map the old IDs to their replacements:

    mex graph refresh
    mex sync
    

    Review ambiguous or missing groundings and commit the scaffold changes through Git. Rebuild the Wiki index with mex wiki rebuild-index if those changes made it stale. A fresh clone or a rebuild without the old graph relies on fingerprint reconciliation and may require manual re-grounding. Follow the compatibility guide for damaged or incompatible stores; ordinary reads never repair them.

    Package and skill upgrades alone do not make an older or incomplete repository Hub-ready. For those repositories, evaluate setup with a dry run before applying it; setup preserves authored files and still requires review of its changes:

    mex setup --dry-run
    mex setup
    git status --short
    mex capabilities --json
    

    Review every generated change before committing. In particular, confirm that .mex/graph.db*, .mex/wiki.db*, and .mex/local/ are ignored.

    Existing Markdown scaffolds remain valid, and Graph reads never migrate a store implicitly. Compatible schema-v2 and complete schema-v3 stores can upgrade through explicit repair; schema-v1, partial, ambiguous, malformed, or corrupt stores require rebuild. Follow the exact action from mex graph status. Do not add a broad .mex/ ignore rule—it would hide the canonical memory your team is meant to share.

    [!WARNING] Upgrade teammates to 0.8.1 before sharing new open-to-team Relays, which use schema v4. Existing v1–v3 Relays remain supported, and named handoffs continue to use v3. Node 20 users should remain on MEX 0.6.3 until they can move to a supported Node build.

    Privacy and trust model

    MEX does not upload its canonical records, Graph, Wiki index, drafts, identity selection, or Hub sessions to a MEX service. It provides no automatic team transport: sharing happens through normal Git actions you perform. The Hub binds to loopback, and MEX's local retrieval layer requires no model credentials.

    MEX has pseudonymous CLI and Hub usage telemetry, enabled by default unless you opt out. Namespaced commands, outcomes, explicit Hub actions, page categories, and job results help measure feature use and returning installations. Both surfaces reuse one random installation UUID. When available, events also include the existing scaffold UUID to estimate shared-project use and configured AI-tool names from project setup; these do not identify the currently invoking agent or prove team size. Someone with access to project configuration can associate its scaffold UUID with that project. Names, repository remotes, argument values, paths, content, search text, and contact details stay excluded. The ingestion service can observe ordinary transport metadata. Delivery uses a bounded local queue and short CLI cleanup grace; offline telemetry does not change command results.

    Check or disable telemetry with:

    mex telemetry inspect
    mex telemetry status
    mex telemetry disable
    

    It can also be disabled with MEX_TELEMETRY=0 or DO_NOT_TRACK=1. See the telemetry policy for the controls, event catalog, privacy boundary, and delivery limits. Coding agents connected to MEX may have their own network and telemetry behavior; that is governed by those tools, not by MEX.

    What MEX is not

    MEX 0.8 does not provide:

    • a cloud-hosted Hub or hosted knowledge sync;
    • live notifications, presence, or real-time chat;
    • Git staging or commits without explicit review, or any pushes or pulls;
    • authentication, repository authorization, or RBAC;
    • Jira-style task management;
    • a shared Code Graph or Wiki SQLite database;
    • automatic proof that a model used retrieved context correctly;
    • a claimed semantic or vector-search engine—Wiki search is full-text and Graph retrieval is lexical/structural;
    • general-purpose Wiki editing through the Hub;
    • a published MCP server or MCP package—the source workspace is not a 0.8 public product surface;
    • features that appear only in future plans or design documents.

    MEX keeps team memory in repository files and provides local retrieval and review workflows. Git and existing engineering tools handle distribution, access, and code review.

    Explore further

    Explain behavior with a state diagram

    Ask your agent to “explain this lifecycle using a state diagram,” or invoke $mex-statechart in Codex / /mex-statechart in Claude Code. The managed skill uses TLA+ and TLC, delivers Mermaid in supporting chats, and supplies a readable terminal fallback. Relevant MEX context is retained only when it improves a state, condition, rule or recovery explanation.

    Generation stays in scratch space. Optionally register a temporary preview and open Diagrams through the normal Hub flow. Review Save shows the exact snapshot files before adding them to .mex/diagrams/; sharing remains a separate Git action. A passing model check does not prove implementation correctness or current evidence freshness. See compatibility and toolchain boundaries.