Skip to main content

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

FilePurpose
.agent/config.jsonProject identity, mode, runtime owners, safe commands, manifest evidence, invariant IDs, and remote-evidence controls.
.agent/skills.jsonNon-executing skills with an ID, scope, and declarative: true.
.agent/memories.jsonOrdered memories with non-empty title, content, and category.
.agent/invariants.jsonRules with stable IDs, kinds, language IDs, and evidence fields.
.agent/rules.mdFixed human-readable governance template generated by sibyl init.
.agent/context.ignoreFixed 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.