The write passes active rules and is forwarded upstream to the configured memory store.
Gate agent memory before it persists.
Every write gets an admission decision: allowed, warned, quarantined, or blocked, with traceable reasons and replay before bad context becomes durable state.
payload: text, source, trace
inspect first
Four decisions. One contract.
Every write returns an Admission Decision Contract: outcome, rule, reason, retryability, review requirement, suggested fix, and trace ID. The contract is the operating surface.
The write is admitted, but operators keep visibility into mixed language or low-signal memory traffic.
Review-required writes stay local until an operator approves, rejects, or edits them.
Policy-breaking writes are rejected before persistence and receive structured ADC guidance.
Five checks between the call and durable memory.
The alpha keeps the policy surface intentionally small: deterministic local rules, optional semantic dedup dependencies, append-only WAL, local quarantine, and replay.
{
"decision": "blocked",
"rule_id": "prefix_required",
"reason_code": "missing_prefix",
"message": "Document text must start with one of: [STATUS], [DECISION], [SETUP], [CONFIG], [RUNBOOK].",
"suggested_fix": "[STATUS] current work",
"retryable": true,
"review_required": false,
"trace_id": "adm_3f8a9c..."
}
Inspect what agents tried to write.
The local UI and CLI read the same WAL, quarantine log, replay engine, and runtime config. Operators can inspect decisions without turning the alpha into a hosted service.
| time | decision | rule | reason | preview |
|---|---|---|---|---|
| 20:06:04 | quarantined | semantic_dedup | near_duplicate_review | [STATUS] LightRAG ingestion retry succeeded after queue... |
| 20:05:02 | blocked | context_shield | sensitive_context | [DECISION] store OAuth refresh token... |
| 20:04:42 | warned | english_only | mixed_language_warning | [STATUS] current work detail... |
| 20:04:02 | blocked | prefix_required | missing_prefix | status without prefix |
| 20:03:12 | allowed | - | - | [STATUS] corrected write after ADC guidance |
decision / trace
suggested fix
Merge this update with the existing retry note only if it adds new operational signal.
replay input
result
Write admission, not storage.
WriteFence is intentionally narrow in alpha. It is a local control point before persistence, not a memory database, retrieval engine, hosted SaaS, or compliance product.
- HTTP reverse proxy for document writesLocal admission before upstream persistence.
- Four-state ADCAllowed, warned, quarantined, blocked.
- Local logs and replayWAL, violations, quarantine, replay, CLI, and UI.
- Optional semantic quarantineRequires embeddings plus Qdrant when configured.
- Hosted SaaSNo accounts, billing, cloud telemetry, or multi-tenant control plane.
- Memory databaseWriteFence sits before a store. It does not replace one.
- Broad adapter matrixThe public alpha validates the core admission path first.
- Compliance claimsNo enterprise certification or regulated-data promises.
From clone to first decision.
No accounts. No hosted service. Build the binaries, start the mock memory store and proxy, then inspect the local UI.