arizuko

arizukoproducts › Company brain

Company brain

A network of per-team agents, each with its own inbox and memory, reading intake from Slack, email, and webhooks — writing briefs, escalating issues, coordinating across folders on schedule.

what it is and what it isn't

The company brain is the action layer over org knowledge. Agents read intake, write daily briefs, escalate issues to the right team, and coordinate across the folder tree. That’s what this product does.

It is not a search engine. It is not a connector pipeline that syncs Confluence to a vector store. If you need semantic search over a 10,000-document corpus, pair this with Onyx or a retrieval skill — company brain handles the action on top of whatever retrieval you bring. More on this in honest constraints.

This is the complex-org end of the product spectrum. The other end is the supermarket price agent — one folder, one route, no hierarchy. Every primitive present here is also present there; they’re just at their minimal setting.

system shape

example: Sentry alert to Slack reply

[Sentry webhook fires]
  POST /hook/<token>
  X-Sentry-Hook-Signature: …
  {"issue": "OOM in billing-worker", "level": "error", …}

  ↓ Event lands in corp/eng/sre/oncall

  ↓ Agent reads alert + facts/runbooks/billing-worker-oom.md
  ↓ Checks find_messages for recent occurrences (last 7 days)
  ↓ Drafts a reply: root cause, recommended action, prior incidents

  ↓ Sends to #eng-oncall Slack channel
  sre-bot   OOM in billing-worker — seen 3x this week.
             Last fix (2026-05-30): heap limit too low post-deploy,
             fix was rolling restart + config bump. Runbook:
             /dav/corp/eng/sre/facts/runbooks/billing-worker-oom.md
             Action: restart billing-worker pod + check HEAP_MAX.

  ↓ Creates task: "Raise HEAP_MAX cap — billing-worker"
  ↓ Logs to diary: alert handled, task created

The agent read the alert, found the runbook, surfaced past incidents, drafted a reply, created a task — all in one Turn, no human routing required.

folder layout

corp/
  intake/           # triage inbox — all unrouted inbound lands here first
  eng/
    sre/
      oncall/       # on-call rotation folder; per-shift diary
    review/         # code review requests from webhook
  pm/               # product management briefs, roadmap context
  sales/            # deal summaries, CRM webhook ingest
  finance/          # budget alerts, expense webhook

Route table shape (excerpt):

seq  match                                        target
-10  chat_jid=hook:corp/eng/sre/oncall/sentry     corp/eng/sre/oncall
-5   room=T-acme/channel/C0ONCALL                 corp/eng/sre/oncall
0    room=T-acme/channel/C0ENG                    corp/eng#observe
5    chat_jid=hook:corp/eng/github                corp/eng/review
10   (empty match — catches everything)           corp/intake

arizuko group add writes the Slack rows for you; hooks and the catch-all are one arizuko route corp add <match> <target> --seq N each (see setup). Lower seq wins.

Timed tasks (examples — schedule these in the dashd tasks admin or by asking the agent to schedule a recurring task):

foldercadencetask
corp/eng/sreweekdays 09:00daily standup summary
corp/pmMonday 08:00weekly roadmap digest
corp/eng/sre/oncallFriday 18:00on-call handoff brief

honest constraints

Before deploying, know what this product does not do:

data & trust

setup

arizuko create corp
cd /srv/data/arizuko_corp
$EDITOR .env             # SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET, ANTHROPIC_API_KEY

# create team folders (jid first, then folder; route written for you)
arizuko group corp add 'slack:T-acme/channel/C0ONCALL' corp/eng/sre/oncall

# webhook intake: mint a hook token, route its JID
arizuko token corp issue webhook corp/eng/sre/oncall sentry
arizuko route corp add 'chat_jid=hook:corp/eng/sre/oncall/sentry' corp/eng/sre/oncall --seq -10

# seed each team's knowledge base
$EDITOR groups/corp/eng/sre/oncall/facts/runbooks/*.md
arizuko run corp

# schedule briefs in dashd tasks admin (/dash/) or ask the agent:
# "schedule a task: every weekday at 09:00, write a daily standup summary"

Full step-by-step is in the operator setup guide — folder tree design, route table, timed tasks, WebDAV mounts, and ingest from Slack, email, and webhooks.

go deeper