Skip to content

Disciplines

Disciplines are always-on behavioral rules that shape how any agent (main or sub) operates. They are not loaded on demand for a specific workflow — they are ambient, active in every session and in every subagent that carries them.

Tagline: Governance defines what is correct. Discipline defines what is habitual.

Disciplines encode cross-cutting habits — behaviors the agent should follow everywhere, not just in one workflow:

  • When to act — commit after each unit of work, not at the end of a session
  • How to behave — always brief subagents with full context before delegating
  • What to avoid — never batch unrelated changes into one commit

They are not standards for a specific domain. A discipline does not say “here is what a valid skill looks like” — that is governance. A discipline says “here is how you work, always.”

Disciplines are ambient — they reach the agent through any always-on channel:

ChannelHow it works
AGENTS.md sectionWritten into the repo’s AGENTS.md; loaded by the harness at session start
SessionStart hookShell command registered to fire at session start; injects rules from AGENTS.md or a pinned CLI
Agent definitionWritten into a subagent’s instruction block; active whenever that subagent is spawned

A single discipline rule can be delivered through more than one channel — for example, commit discipline is both written in AGENTS.md and reinforced by a SessionStart hook that re-injects it even if AGENTS.md is absent.

Both are verified the same way: give the agent a scenario, observe what it does, check the outcome. The distinction is not how you test them.

DisciplineGovernance
When activeAlways-on, any agent or subOn demand, per workflow
Content shapeCross-cutting behavioral habitsNormative rules for a specific domain
Delivery channelHooks, AGENTS.md, agent definitionsgovernance show via CLI
Static analysisNot applicable — habits require behavioral observationYes — tools like audit-skill check artifacts against governance rules

Discipline compliance is verified by behavioral testing: give the agent a scenario with the discipline active, observe what the agent does, and check the outcome. There is no document to diff — only behavior to observe.

This is the same mechanism used to verify governance compliance. The difference is content, not test method.

ACED provides the evaluation framework for both.

Commit Discipline is the canonical example. It encodes:

  • Commit after each unit of work — do not batch
  • One concern per commit, never two unrelated changes
  • Stage explicitly by file, verify with git diff --cached
  • Use Conventional Commits

It is registered as a SessionStart hook and written into AGENTS.md. Neither requires the agent to load anything — the rules are always present.

A discipline is a section in AGENTS.md (or a subagent definition), optionally reinforced by a SessionStart hook. There is no special file format — the rule text itself is the discipline.

To register a SessionStart hook that injects a section:

Terminal window
node packages/cyberplace/bin/cyberplace.mjs hook register \
--name my-discipline --event SessionStart \
--extract AGENTS.md --heading "My Discipline"

The hook re-injects the named section from AGENTS.md at the start of every session, so the rules stay active even when AGENTS.md is not otherwise loaded.