The .agent/ standard
.agent/ is a versioned, declarative contract for how an agent understands a
workspace. Its JSON documents use schema 1.0, reject unknown fields, and
must describe evidence and policy rather than executable instructions.
Owned documents
| File | Purpose |
|---|---|
.agent/config.json | Project identity, mode, runtime owners, safe commands, manifest evidence, invariant IDs, and remote-evidence controls. |
.agent/skills.json | Non-executing skills with an ID, scope, and declarative: true. |
.agent/memories.json | Ordered memories with non-empty title, content, and category. |
.agent/invariants.json | Rules with stable IDs, kinds, language IDs, and evidence fields. |
.agent/rules.md | Fixed human-readable governance template generated by sibyl init. |
.agent/context.ignore | Fixed context exclusion template generated by sibyl init. |
config.json requires schemaVersion: "1.0", mode: "declarative", runtime
owners, safe commands, manifest evidence, invariant IDs,
remoteMutationRequiresExplicitCommand: true, and
remoteEvidenceIsSeparate: true. Manifest evidence identifies a path, kind,
language, and runtime, with optional package-manager and lockfile IDs.
The no-credentials invariant rejects content such as private keys,
authorization tokens, and database passwords. The server-first web invariant
keeps apps/web/src/pages non-interactive and non-hydrated. Native dependency
ownership stays with pnpm for JavaScript, Composer for PHP, and Cargo for Rust.
Lifecycle guarantees
sibyl init, sibyl check, and sibyl memory add operate on local metadata.
They do not execute project code, install dependencies, resolve packages, or
contact a service. sibyl sync is the explicit exception and requires the
separate controls described in the CLI reference.