Skip to content

Boundaries ​

arca is one organism in a stack — it owns secret materialization and nothing else. If a feature needs another kind of memory or authority, it belongs to a neighbor.

neighborownshow it meets arca
mycowork memory — tasks, issues, proposals, plans, ADRs, handoffsthis repo's project/ ledger is myco's; arca has no PM surface
sturnephemeral coordination — live claims/ops/topicsnot secrets: sturn state is transient, arca state is sealed
kudacode memory — symbol/index knowledgearca refs name secrets, not code entities
peregrinorchestration — campaigns, multi-actor arbitration, policycampaigns consume secrets via arca run; audit aggregation + real policy are peregrin's (ARCA_ACTOR is self-claimed inside arca); arca serve — the ndjson IPC wire + [serve.pdp] exec consult (ADR-0003) — is its embedding point
buphaCI gateasserts no plaintext secrets land in pipelines; arca check in pipeline steps
mimuscriticsecrets resolve env → arca → legacy (keyring, ~/.config/mimus/env) via mimus-arca shelling arca; vaults are canonical, writes land in them
sepiasession lifecyclesession wrappers can capture arca's stderr audit stream

What that means in practice ​

  • A hosted vault service is in scope — arca-vault-cf is a store impl behind the same port, ciphertext-only, self-hosted.
  • A daemon is out of scope — persistent coordination, multi-machine views, arbitration between actors → peregrin. arca stays a sync, embeddable binary: env vars are the interface, no SDK.
  • Policy is out of scope — [guardrails] are advisory accident prevention. Enforcement, identity, and unforgeable attribution are orchestration concerns.
  • The audit wire stops at stderr — emitting ndjson is arca's; collecting, storing, and alerting on it is peregrin's (ADR-0001 deliberately removed the local audit.jsonl).