Skip to content
Beta. This surface may change before GA; breaking changes are dated in the changelog.

Keep it good

A shared brain decays the same way a wiki does — unless contributing is easy and accepting is deliberate. That is what review is for.

Everything an agent proposes waits here with the passage behind it. Settle it in app.nicia.ai, which shows the diff and the source side by side, or over the API:

Terminal window
curl "$API/v1/brains/team:acme/changes?status=staged" \
-H "authorization: Bearer $NICIA_KEY"
curl -X POST "$API/v1/brains/team:acme/changes/chg_44a1e0/approve" \
-H "authorization: Bearer $NICIA_KEY"
curl -X POST "$API/v1/brains/team:acme/changes/chg_51c8b2/reject" \
-H "authorization: Bearer $NICIA_KEY" \
-H "content-type: application/json" \
-d '{ "reason": "Shipped to staging, not prod" }'

You are always approving evidence, not an assertion. If a proposal has no passage behind it, that is itself a reason to reject it. See Review for the full model.

Everyone, or nobody — that is what mode means. On an open Brain every write lands; on a reviewed one every write waits, including a CI job’s. No credential can ask for an exception, because an exception a caller can request is an exception an agent can request. When a service genuinely needs to write straight in while people’s agents are reviewed, give it its own Brain and read across both. See Review.

Nicia’s built-in Brain Agent reads what has landed and proposes maintenance: contradictions between two documents, pages that have gone stale, questions people keep asking that nothing answers.

Terminal window
npx nicia tend team:acme # or POST /v1/brains/team:acme/tend
Proposed 4 changes:
· handbook/oncall.md contradicts notes/2026-07-02-oncall-change.md
on the escalation path
· 3 documents reference "Project Mercury" — no page defines it
· handbook/pricing.md last updated 2026-01-14, cited 41 times since

It always proposes and can never write directly. Run it on a schedule and the queue becomes a to-do list for keeping the brain honest.

For the questions your team asks constantly, keep a maintained answer rather than re-deriving it every time:

Terminal window
npx nicia standing add team:acme "What is our current oncall escalation path?"
# or PUT /v1/brains/team:acme/answers/{id}

Nicia keeps the answer current as the underlying documents change, and tells you when the sources behind it move — so a stale answer becomes a review item instead of a wrong answer.

Export the whole Brain, any time, in the format you brought it in:

Terminal window
npx nicia export team:acme --out ./team-wiki-export

You arrived with a folder. You leave with a model.

You get markdown files with your frontmatter intact and the folder structure preserved, plus index.md cataloguing every page, log.md as a greppable activity log, history.json carrying the full revision history, and an AGENTS.md describing the Brain’s own conventions so any agent can pick the export up and work with it. The records and their provenance come as JSON. No proprietary format, no lock-in, no support ticket.

That is the point of the boundary being ours and the knowledge being yours: what leaves is structurally better than what arrived, and it is legible without us.

  • Review — the API underneath the queue.
  • Receipts — proving what an answer was based on.