# 0004 · Three spaces: raw, wiki, output

**Status:** Accepted · 2026-09-22

## Context

A knowledge base that mixes an uploaded PDF, a curated onboarding page, and last quarter's generated
report in one undifferentiated pile cannot answer *"what do we actually know?"* — and an agent
searching it cannot tell evidence from conclusion from disposable artifact.

## Decision

Every document belongs to exactly one space.

| Space | Holds | Writable |
|---|---|---|
| `raw` | Verbatim ingested material | **No** — supersede only |
| `wiki` | Curated knowledge | Yes |
| `output` | Task artifacts | Yes |

Spaces are a property of the document, not a folder. Path and slug handle hierarchy.

## Consequences

- Search can be scoped to the space that suits the question: `wiki` to answer it, `raw` to source it.
- Deleting an `output` never loses knowledge, which makes cleanup safe and therefore likely.
- Provenance is a normal link from `wiki` into `raw`, so backlinks on a raw document show everything
  distilled out of it.
- **Raw immutability is a real constraint.** A typo in an ingested document cannot be fixed in place;
  it is corrected by ingesting a corrected version, leaving both.
- Moving a document between spaces is a deliberate operation, not a rename.

## Alternatives rejected

**One space with tags.** Simpler, and tags cannot carry the write rule — "agents may rewrite this in
place" is not something a label should decide.

**A folder convention.** Unenforceable. A rule that only holds when everyone remembers it is not a
rule, and the whole point is that agents write here too.

**Mutable raw.** Convenient, and it destroys the property that makes raw worth having: if it can be
edited, nothing derived from it can be trusted to reflect what was actually received.

## Resolved

*2026-09-22* — Raw immutability was carried as an open question when this record was accepted.
Confirmed: `raw` is strictly immutable. Correcting ingested material means superseding it with a new
ingestion, which leaves both versions and an audit trail. No in-place edit, for anyone, including
admins.

## Amendment

*2026-10-07* — There are no admins any more ([0013](https://codna.me/docs/adr/0013-no-administrators.md)), so "including
admins" above no longer names anyone. The rule itself is unchanged: `raw` is immutable for every
person, and management, which runs the instance, never reads or writes what any document says.

*2026-10-15* — A raw document can now gain a version, from a newer copy of its source and from
nothing else: importing a newer export into the folder an earlier one filled brings each changed
page up to date, with the earlier text kept in its history ([0016](https://codna.me/docs/adr/0016-imports-into-raw.md)). No
person or agent edits raw.
