Every document in docs/ is one of four things, and the difference matters more
than the subject does. A reader who mistakes a proposal for a description of the
product will implement something that already exists — or worse, trust a
contract nothing enforces.
| State | What it means | How to treat it |
|---|---|---|
| Living | Describes how the product behaves now | Trust it; fix it when it drifts |
| Program | An active initiative, partly shipped | Trust the "shipped" parts, check the rest against code |
| Historical | A point-in-time record — a plan, proposal, draft, or measurement | Read as evidence of intent on its date, never as current behavior |
| Tombstone | Something deliberately removed | The removal is the content |
Dated design work does not live here. It goes in
superpowers/specs and superpowers/plans —
see that store's README for the point-in-time contract.
A document in docs/ proper should be one somebody keeps current.
workflows/github-work-tracking.md: GitHub Issues and the Cave Project, ownership, Git-only hooks, worktrees, and handoffmulti-session-coordination.md— how concurrent agent sessions produce overlapping or orphaned work, and the hooks that catch itworkflows/work-continuity.md— skill-driven discovery of existing work before planning or dispatch, with scoped evidence and honest handoff receiptssource-text-pins.md— contract-first source-reading tests, deliberate adoption counts, parser-over-regex guidance, safe extraction, and mutation testingperformance-budgets.md— the single catalogue of approved production performance budgets: which gate enforces each, why a missing measurement fails closed, and how a limit is seeded and re-seededworkflows/— branching, release, and PR mechanics
api/client-v1.md— the Client v1 HTTP surface: the shared envelope, the loopback ingress rules, the pairing handshake, the administrator routes, the rate limits, and the routes that do not exist yet
audits/home-route-js-budget.md— the home route's first-load JavaScript budget: 2,800 KiB, enforced after every production build byscripts/bundle-budget.mjs, with how to reproduce and attribute a regressionclient-v1-release.md— the compatibility metadata a release advertises on/api/client/v1/health, and the fixture-check and release-smoke gates that protect itclient-v1-settings.md— approving, denying, auditing, and revoking native client access in Cave Settingsevent-plane-operations.md— the invalidation WebSocket: switches, rollout modes, what each platform pauses, security, recovery and diagnosticsdevice-access.md— opt-in tailnet allowlists, desktop-managed browser/iOS pairing, durable grants, revocation, and auditcross-environment.md— neutral defaults across Linux, macOS, and Windows, plus the per-OS deltas and the suite that enforces themruntime-startup-supervision.md— how Cave supervises the daemon and its own startup workers: the readiness contract, the projected lifecycle states, the one mutation owner, where the fault matrix and diagnostics live, and the startup-worker coordinator with its switches; pinned to the code byscripts/runtime-startup-supervision-doc.test.mjs(#6334)model-catalog-pipeline.md— the declarative source, generator, and validation workflow for harness model catalogs and context metadatafirst-run-setup-diagnostics.md— server-classified failure codes for the first-run bootstrapsettings-persistence.md— why the desktop shell cannot use origin-keyed browser storage as its authoritative storewindows-startup-diagnostics.md— per-port relaunch, native failure reporting and retained private startup evidencewindows-window-placement.md— fitted and persisted main-window geometry, Quick Chat placement, title-bar/tray appearance, recovery and outstanding Windows acceptancewindows-runtime-cache.md— the content-addressed archive layer and its two digestswindows-sidecar-recovery.md— loaded-shell recovery, native Retry and Windows qualification limitswindows-update-preparation.md— download, verify, and install as three distinct phaseswindows-upgrade-benchmark.md— whatscripts/windows-upgrade-diagnostics.ps1capturesworkflows/windows-msi-signing.md— SSL.com eSigner setup, the five signing inputs, and the release gate that publishes only the Authenticode-verified MSI (#5739)performance/daemon-lifecycle.md— the opt-in real-daemon lifecycle probe and its 2026-10-20 diagnostic observation (#6120)daemon-connectivity-reliability.md— the daemon connectivity launch flow, readiness checks, fault coverage, and measurement contract; thecave-58eoqprogram's tracked work all merged (#4485–#4528); #6298 owns the lifecycle, fault-matrix and diagnostics-export follow-ups and #6303 the boundary proof
mobile-tailscale.md— exposing the browser surface to a phone over Tailscale Serve, including tokenless tailnet-device accessios-current-direction.md— the canonical native iOS product shape, active priorities, and historical-plan boundaryworkflows/ios-testflight-rollout.md: iOS rollout preparation, exact-artifact/device receipts, cohort HOLD decisions, and non-destructive recovery. #5319 closed as not planned on 2026-10-18 (an obsolete v0.4-era gate); release tags already upload iOS builds to TestFlight, and a future external-tester cohort needs a new issueios-webrtc-dsym-symbolication.md— why TestFlight uploads warn that the vendored WebRTC.framework has no dSYM, and how the release pipeline audits and restores symbolication coverage
For saved transcript loading, start with these bounded entrypoints:
| Responsibility | Implementation and contracts | Focused verification |
|---|---|---|
| Cache/network history, offline/flow fallback, cancellation | src/lib/chat/history-load.ts; ChatHistorySources and ChatHistoryView are its explicit ports |
node --experimental-strip-types --import ./scripts/test-alias-register.mjs --test src/lib/chat/history-load.test.ts |
| Existing browser transport and encrypted caches | src/lib/chat/history-sources.ts, conversation-cache.ts, offline-cache.ts |
Run src/lib/chat/history-sources.test.ts, src/lib/conversation-cache.test.ts, and src/lib/offline-cache.test.ts with the same Node test command |
| Live-generation admission, run ownership, effect cleanup and current-ref binding | src/components/chat-view.tsx, chat-turn-state.ts |
src/lib/chat-transcript-load.test.ts, src/components/chat-view-lifecycle.test.ts, src/components/chat-switching.test.ts |
| Import boundary | eslint.config.mjs explicitly limits coordinator and transport imports; dynamic imports are rejected |
node --test scripts/eslint/chat-history-boundary.test.mjs; pnpm lint:source, pnpm typecheck, pnpm check:tests-wired |
The coordinator receives current ownership through callbacks. A pending history response cannot replace a send, edit, explicit reset or active generation. Cancellation suppresses publication without aborting shared requests. A 404 is authoritative absence; only a network failure can use offline history. The transport reuses the existing authenticated cache and revision/write guards.
thread-self-reports.md— familiar/session ownership, atomic automatic admission, manual repeats, and the persisted-report generation precheckfamiliar-identity-context.md— how a familiar's declared identity reaches the model, and what the injection may not dolocal-models.md— Codex local mode on Ollama and LM Studio: setup, addresses, what stays on this computer, how Full access relates to Codex's own sandbox (cloud Codex too), limitations and troubleshootingauto-mission-mode.md—/auto, its status blocks, and the closing questionnaireorchestration-ready-tasks.md— the shared task contract every familiar and orchestrator reads and writesrole-surfaces.md— role-aware rooms, and why the Cave is not role-hardcodedchat-github-integration.md— the shipped GitHub integration and its turn-marker protocolchat-image-carousel.md— image carousel markers, reusing the protocol abovechat-proposal-review-card.md— proposal-review receipt marker and evidence-only card (#5520)research-host-contract.md— explicit core adapters and shared saved links for the optional Research package, plus the activation owner and hot-disable teardown contract (#6332)research-core-boundary.md— the optional Research boundary and the shared contracts core keeps; shipped in #6025 and enforced byresearch-core-boundary.test.tsandresearch-maintenance-boundary.test.tsresearch-run-surface.md— durable ResearchMission projections across Chat, Quick Chat, and Research Deskexecution-analytics.md— model- and harness-level analytics: the three model identities, why harness version is never recorded, coverage as the honesty layer, and what the aggregate discards
knowledge-vault.md— curated reference knowledge injected into every harness, and how it differs from memoryknowledge-packs.md— marketplace-distributed starter kits for a linked knowledge basecovenwiki-render.md— reading generated CovenWiki manifests at/wikis: the read-only store, slug rules, the three API reads, and what the reader refusesprompt-packs.md— where prompt templates come from and how they mergeauthoring-assist.md— templating and agentic assistance across stitches, skills, and craftsmarketplace.md— the checked-in publisher catalog, and why the in-app view is deliberately narroweropencoven-submissions.md— runtime and harness submission, validation, and publicationmcp-doctor.md— debugging the two places MCP servers are listed
grok-compatibility-registry.md— signed schema bundles and trust anchors for Grok Buildopenclaw-compatibility-registry.md— the signed release guard, checkpoint, rotation, and rollback contract for OpenClaw event profilesopencode-compatibility-registry.md— the same contract for OpenCode event schemas
coven-design-language.md— the consolidated reference for how the product looks, moves, and speaks, written from shipped codebeautiful-ui.md— the vendored Beautiful UI primitives: what the token adapter maps, why their CSS is scoped out of the root bundle, and why they are reference implementations rather than drop-in components
upstream-api-anomaly-suite.md— the registry of every upstream API the server calls, the relevance scan that keeps it honest, theupstreamFetchprimitive that classifies, retries, cools down and publishes a live health ledger, and the anomaly matrix each caller is proven against (#6359)dependency-advisories.md— open Dependabot alerts whose patched version is unreachable from this dependency graph: the resolver refusal, the exposure assessment, and the upstream change that would lift eachstuck-action-runs.md— the four Actions runs wedged inqueuedsince 2026-07-25 (issue #4905, closed as not planned 2026-09-16; the runs remain queued): the HTTP-500 history, the 2026-08-30 HTTP-403 retry record, the do-not-delete-workflow-history rule, and the retry toolingproject-permission-integrity.md— reconciling stale grants against the project registrydiscord-rich-presence.md— privacy-safe local activity publishing
Active initiatives. Parts have shipped; parts have not. Each states which.
core-contract-and-room-boundaries.md— the minimal product contract and source inventory for #6119: all workspace modes, role rooms, auxiliary subsystems and startup workers, with current boundaries separated from unverified extraction and recovery acceptancedesktop-onboarding.md— the evidence baseline and product contract for download → first successful familiar response, separating confirmed behavior from proposals still needing usability and packaged-app testingchat-native-ui-tier.md—coven:uiblocks: the component catalog, expression whitelist, and streaming and failure contracts; the parser and renderer merged in #6073 and are wired into Main Chat, every other surface shows readable text (#6060), and no familiar prompt teaches the syntax until the rollout decision (#6063)ci-implementation-plan.md— the release-candidate CI rollout: signed promotion, full validation, the parallelPR checkscontext, and promotion at real release cuts have shipped; the protection switch, retiring routine PR fanout, and verifying the lean gate remain, tracked in #6257roadmaps/coven-automations-v1.md— the cross-repository Coven Automations v1 program (OpenCoven/coven#854) and its machine-readable mapping: foundation, protocol, scheduler reliability, embodiment, and authority have closed; dispatch-time trust (coven#857), certification (coven#858), the SDK, Cave oversight (#5217), Psyche, Docs, and organization canaries remain, and the 2026-10-18 release checkpoint is no-goperformance/ios-performance-audit.md— the native iOS performance record (opened 2026-08-10, updated through 2026-10-03): instrumentation, the Release capture driver, and the budgets ratified on 2026-10-02 (#5292), none CI-enforced; the main-thread hitch budget (#5748), inline-zoom device evidence (#5314), and the physical-device gates (#6259) remain
Point-in-time records. Read for intent, not for current behavior.
branch-cleanup-relaxation.md- legacy Beads cleanup proposal (cave-jcdgb); its package commands are retired, and current authority and preservation requirements live in GitHub work trackingcontent-gen-flow-spec.mdandcontent-gen-flow-plan.md—⚠️ tombstoned 2026-08-28 (cave-a6zmc): both targetFLOW_TEMPLATESinsrc/lib/flow/flow-templates.ts, which no longer exists; the symbol appears nowhere in the tree (removed in #3902). Content generation continues in the Research Desk surfaces.ios-native-rebuild.md— the multi-phase rebuild plan; its tokenless tailnet-trust model was replaced by pair-once mobile access tokens (#3310)ios-connection-cloud-plan.md— draft planning anchor for onboarding, constant connection, and cloud persistencenav-history-tracking.md— the read-only inventory (PR #4407)nav-history-full-tracking.md— the successor prompt covering every navigable levelprojects-view-native-redesign.md— proposal, awaiting approvalresearch-desk-app-redesign-plan.md— implementation plan from a Claude Design handoffmobile-readiness.md— manual dogfood checklist for thefeat/mobile-readinessrolloutwindows-sidecar-compression.md— a zstd-level benchmark against a fixed production payloadsalem-chat-api-model.md— an outbound brief for theopencoven-chat-apirepo, not a Cave contractgolden-paths.md— the eight journeys mapped on 2026-07-09; every path's enablement plan has shipped (#2767–#5132), and several surfaces it describes have since movedcraft-ux.md— the craft authoring audit and redesign; all six checkpoints shipped on 2026-07-15 (#3188–#3208), andmarketplace.md(Living, above) describes the flow nowresearch-extraction-verification.md— candidate compatibility evidence and size and timing measurements for the Research extraction, which merged as #6025 (#5997 closed)reviewed-cli-install-verification.md— the 2026-10-21 fresh-install footprint and recovery measurements for the reviewed CLI 0.4.10 adoption (#6164)plans/2026-07-26-dynamic-claude-opus-5.md— capability-gated Claude Opus 5 across Claude Code, Copilot CLI, and OpenCode; shipped in #3954, and #5541 later limited theopusalias to Claude Code below 2.1.280plans/2026-07-29-ios-new-chat-project-contract.md— binding native iOS first turns to a familiar-authorized project; shipped in #4067 and reworked by the chat-only shell (#5379); the current contract isspecs/ios-new-chat-project-contract.mdcontracts/mobile-recovery-contract.md— the transport-recovery contract proposed after the 2026-08-26 Serve-drift incident (#5051); #5056 and #5270 implemented its core rules differently, andmobile-tailscale.md(Living, above) describes current behaviorcoven-autoloop-cli-wrapper-spec.md— scoping handoff for the unbuiltbin/coven-autoloopwrite path; the read path that shipped insrc/lib/research-autoloop.tsleft Cave when Research became an optional, separately released package (#6025), and is not what this describes2026-06-11 space hoggers— the largest tracked files undersrc,docs,README.mdandpackage.jsonon 2026-06-112026-06 chat UX audit— Cave's chat measured against Claude Code, Cursor and ChatGPT ataf3fa0e(2026-06-11)2026-08-28 Cave conformance recount(cave-ui5z) — the conformance counts re-run after the P1.5 chrome and contrast fix (#3152)2026-08-28 Coven Grimoire frame conformance(cave-wc0j7) — frame-vs-surface conformance audit forCoven Grimoire.dc.html: the frame is a familiar-authored publication (issue contents, bylines, Share) while the repo's grimoire is the memory knowledge store; the collision is documented and the frame stays unbuilt pending a product decision
codeql.md— the CodeQL Advanced workflow and required context, retired 2026-07-31 in three ordered steps; GitHub's default setup now scans, advisory onlymobile-memory.md— Coven Memory's mobile routes, removed with the canonical memory vault in #5418 (2026-09-16)
api/— reference documentation for versioned public HTTP surfaces, listed individually under Living abovesuperpowers/— the approved spec and plan store that issues and PRs citespecs/— frozen (55 files at the freeze, plus three added after it;docs-index.test.mjspins the count). The earlier flat convention, which overlappedsuperpowers/from 2026-06-30 to 2026-08-06. Closed to new files, and deliberately not migrated: issues, PRs, and older plans cite these by path. Seespecs/README.mdfor the reasoning and for the three undated standing contracts it holdsplans/,audits/,contracts/— small point-in-time sets predating thesuperpowers/store; their documents are listed under Historical above, exceptaudits/home-route-js-budget.md, a living budget under Platform and runtimeroadmaps/,performance/— program records kept current; listed under Program abovedesign/— runtime-activity design notes and theirevidence/for the chat-observability work (#5761, #5767)client-v1-conformance-results/,release-acceptance-results/— machine-written run records; see client-v1 conformance and release acceptancedesign-handoff/,diagrams/,screenshots/,familiar-chatout-codex/— supporting material
When you add a document here, add its line to the right section. When a document
stops describing the product, move it to Historical rather than deleting it —
and when you remove a subsystem, leave a tombstone like codeql.md instead of
leaving a gap where the explanation used to be.