Repo scoping
Spor is opt-in per repository: a repo with no .spor or .spor.json marker
is a no-op. These verbs manage that marker, plus the compile surface that
turns the graph into briefings.
enable
Section titled “enable”spor enableMode: local
Set { "enabled": true } in this repo’s committable .spor.json — how you
turn Spor on for a repo, and how you undo a prior spor disable. Commit the
file to share the setting.
spor enabledisable
Section titled “disable”spor disableMode: local
Set { "enabled": false } in this repo’s committable .spor.json. The
hooks then no-op here until re-enabled.
spor disablespor link <slug>Mode: local
Write a .spor identity marker (repo: <slug>) at the repo root, fixing a
wrong inferred slug deterministically. The slug must be canonical
(^[a-z0-9][a-z0-9-]*$); with no slug it uses the inferred one. Commit the
marker to share the identity.
spor link billingagents-md
Section titled “agents-md”spor agents-md [--briefing] [--no-claude-md] [--no-server-line]Mode: local · alias agents
Write or idempotently refresh the managed Spor block in AGENTS.md at the
repo root — standing, user-voice instructions that keep the graph current
(capture discovered work as it appears, file issues before fixing, prefer the
graph over private notes for durable facts, resolve with artifacts, add
Spor: commit trailers). Committed, it reaches every contributor and
dispatched agent. spor enable runs this for you, and spor upgrade
refreshes the wording. If a CLAUDE.md exists that never mentions
AGENTS.md, an @AGENTS.md import is appended so those sessions inherit the
directive too (suppress with --no-claude-md). By default the block carries
the directive only — hooked hosts get their briefing at session start;
--briefing also embeds the standing project briefing, the floor for hosts
without hooks.
The block’s tools-line sentence pointing at your SPOR_SERVER’s MCP endpoint,
and (with --briefing) the briefing heading’s @ <host> meta, are both
omitted by default when that server is loopback (127.0.0.0/8, 0.0.0.0,
localhost, or ::1, including IPv4-mapped/-compatible forms) — a
machine-local dev address has no business in a file every contributor and
dispatched agent commits and reads. --no-server-line omits both
unconditionally, even for a public URL.
spor agents-md --briefingspor agents-md --no-server-linecompile
Section titled “compile”spor compile [--root <id>] [--query <text>] [--project <slug>] [--nodes <dir>] [--digest] [--skeleton] [--min-sim <n>] [--out <file>] [--quiet]Mode: dual
Compile a node neighborhood or a prompt-time digest — the machinery behind
briefings. --root <id> compiles a node’s neighborhood; --query <text>
compiles from free text (semantic search); --digest emits a compact
prompt-time digest. In remote mode the server compiles; --skeleton
(a versioned briefing-node skeleton, root mode) is local-only, and an
explicit --nodes always names a local checkout, even under a server.
--min-sim gates query-mode relevance (default 0.08), --project scopes
project-level corrections, --out writes to a file, --quiet suppresses
the stderr stats.
spor compile --query "billing retry flow" --digestspor brief <id>Mode: dual
Compile a briefing for one node — sugar for compile --root <id>.
spor brief task-tidefall-retry-emailsvalidate
Section titled “validate”spor validate [--nodes <dir>]Mode: local
Lint the local graph and exit 1 on errors. In remote mode the server
validates every write, so this fails fast unless --nodes points at a local
checkout.
spor validate