Skip to content

Surface Parity Matrix

Every public engine operation across the two programmatic surfaces (MCP, CLI). Rows are aligned by the hand-maintained xtask/operations.toml registry; cells render the surface-specific name when present and — when the surface doesn’t expose the operation. The Registry HTTP surface is its own publication layer and not in this matrix.

OperationMCPCLI
entity-readmemstead_entityentity
searchmemstead_searchsearch
list—list
relations-read—relations
context—context
overviewmemstead_overviewoverview
status—status
schema-describememstead_schematype
healthmemstead_healthhealth
changes-sincememstead_changes_sincechanges
reloadmemstead_reloadreload
fetch—fetch
pull—pull
push—push
mem-fork †—mem fork
proposal-briefmemstead_proposal_briefproposal brief
proposal-merge †—proposal merge
proposal-list †—proposal list
branch-reset—branch-reset
creatememstead_createcreate
updatememstead_updateupdate
relatememstead_relaterelate
deletememstead_deletedelete
renamememstead_renamerename
retypememstead_retyperetype
checkmemstead_checkcheck
mem-creatememstead_mem_createmem
mem-deletememstead_mem_deletemem
mem-set-versionmemstead_mem_set_versionmem
mem-set-schemamemstead_mem_set_schemamem set-schema
mem-configurememstead_mem_configuremem
workspace-allow-create †—workspace
workspace-revoke-create †—workspace
workspace-allow-delete †—workspace
workspace-revoke-delete †—workspace
workspace-grant-cross-link †—workspace
workspace-revoke-cross-link †—workspace
projection-brief—projection brief
projection-init—projection init
projection-advance—projection advance
projection-enable—projection enable
projection-edit—projection edit
projection-exclude—projection exclude
projection-verify—projection verify
projection-check-path—projection check-path
parse-recovery—recover
agent-notes——
mem-head-sha——

† These absences are decisions, not gaps. Every other empty cell is simply an operation that surface does not carry.

  • mem-fork — a fork is a lineage act on the mem-repo (a branch at a recorded ancestor, a config carrying its origin, a fetch from a declared remote): transport and lineage stay on the script and human side beside fetch, pull and push, so the MCP slot stays blank on purpose
  • proposal-merge — the merge is the owner’s act on the owner’s branch: it lands another identity’s work under that identity and the owner’s beside it, commits to the target branch and writes the proposal record, so it stays on the script and human side beside fetch, pull, push and fork; the MCP slot stays blank on purpose
  • proposal-list — the record the merge keeps is read on the same side the merge is made: the owner’s CLI (the brief already serves its re-proposal marks over MCP), so the MCP slot stays blank on purpose
  • workspace-allow-create — workspace policy decides what an agent may do, so it is an operator surface: the CLI and the operator-authenticated web API, never the agent’s MCP surface. A policy-gated mutation refuses with the exact command to report.
  • workspace-revoke-create — workspace policy decides what an agent may do, so it is an operator surface: the CLI and the operator-authenticated web API, never the agent’s MCP surface. A policy-gated mutation refuses with the exact command to report.
  • workspace-allow-delete — workspace policy decides what an agent may do, so it is an operator surface: the CLI and the operator-authenticated web API, never the agent’s MCP surface. A policy-gated mutation refuses with the exact command to report.
  • workspace-revoke-delete — workspace policy decides what an agent may do, so it is an operator surface: the CLI and the operator-authenticated web API, never the agent’s MCP surface. A policy-gated mutation refuses with the exact command to report.
  • workspace-grant-cross-link — workspace policy decides what an agent may do, so it is an operator surface: the CLI and the operator-authenticated web API, never the agent’s MCP surface. A policy-gated mutation refuses with the exact command to report.
  • workspace-revoke-cross-link — workspace policy decides what an agent may do, so it is an operator surface: the CLI and the operator-authenticated web API, never the agent’s MCP surface. A policy-gated mutation refuses with the exact command to report.

Surface entries the registry does not pin to a logical operation. Either add a row to xtask/operations.toml or, if the entry is intentionally surface-local (e.g. CLI-only registry / setup commands), leave it here as a deliberate gap.

  • memstead_diff
  • anchors
  • batch-create
  • batch-relate
  • batch-update
  • checks
  • conflicts
  • due
  • export
  • gates
  • init
  • install
  • login
  • logout
  • mem-repo
  • publish
  • quickstart
  • review-mark
  • schema
  • uninstall
  • unpublish
  • verify-anchors