Asking & enforcing
This page is the hands-on version of two concepts: Ask and Enforcement. Asking is generally available. Enforcement is in preview, and this page is honest about where the line is.
Ask from the terminal
mla ask answers a plain question from governed memory, with citations.
mla ask "can we use Redis here, and what is the current rate limit?"It supports focused modes when you want a particular shape of answer:
mla ask "what is our canonical auth flow?" --mode canonicalmla ask "list the services we run" --mode searchmla ask "how did the rate limit change?" --mode compareThe default mode gives a direct answer; search enumerates; canonical returns
the source-of-truth document; compare contrasts claims. All of them cite
sources, and all of them abstain rather than invent when the corpus does not
cover the question.
Ask from inside the agent
With the MCP server wired (see Install & activate), the agent can query the same governed memory mid-task. When it needs to know a decision, it retrieves and cites instead of guessing. Same corpus, same cited answers, same abstention behavior; the only difference is who is asking.
Preview what gets injected
You do not have to take injection on faith. Before you rely on it, you can inspect exactly which confirmed rules and decisions the connector will place in context, and check the current scan-cache state:
mla status # is Meetless active here, and what is in the injected sliceEnforcement in practice In preview
Here is the honest state of the gate in a live session. Three rungs of the observe, warn, ask, block ramp are wired; a rule takes the strongest action its attested ceiling allows, never more.
- The notes-location rule can block. It is armed to
DENYand returns a real deny on the wire when an action would violate it. This is the working proof that a hard gate is real. Blocking is reserved for rules where the violation is mechanically certain; nothing gets blocked on a guess. - A newly-armed forbidden-root rule warns. When such a rule is armed, its
default ceiling is
WARN: the action is permitted, and a non-blocking advisory is handed back to the agent (and shown to you) so it can self-correct. A warning never stops a tool call. This is the middle rung that lets a rule take action without risking a false-positive block. - Everything else observes. The general pre-action hook records what the agent is about to do and passes it through unchanged. It is gathering signal, not acting.
Two limits worth stating plainly:
- A warning lands on the agent’s next turn, not mid-action. The advisory is delivered as model-facing context after the tool runs, so it steers the next step; it does not rewind the one that just happened. That is the price of being non-blocking, and it is deliberate.
- Ambient prose rules are injected, not enforced. The bulk of governed guidance has no mechanical action-time predicate, so it is placed in context for the agent to follow (see Preview what gets injected). Only rules with a deterministic action check (today: forbidden-root path rules) can warn or block. We do not pretend prose is a gate.
So today, enforcement in a Claude Code session means: one rule that actually stops the wrong action, newly-armed rules that warn without blocking, a broader layer that is still only watching, and a large body of guidance that is injected rather than enforced. That is the ramp in its early, deliberate stage: warn before block, certainty before either.
Measuring whether it helped
Governed memory is only worth it if it changes outcomes, so the connector records adoption locally:
mla stats # usefulness dashboard from local eventsmla adoption # did the agent pull or cite the evidence we injected?These read local event data. What leaves your machine is covered on the configuration & privacy page.