Exact DAEMON.md authored contract, validation rules, and support-tree semantics.
Human readers: the fastest way to get started with daemons is to work directly with Charlie.Charlie can help you suggest where to start and add your first daemon. Use the prompts below to ask Charlie in Slack, GitHub, or Linear.
Explain what daemons are and how they work.
This page defines the authored DAEMON.md contract.A daemon is not a Unix daemon, cron job, GitHub Action, or generic background agent. In this system, DAEMON.md is the authored control surface for a repo-local Charlie role, while runtime metadata such as activation mode is derived rather than authored directly.Use this page when you need the exact file format, field definitions, validation rules, and support-tree semantics.For guidance on when to use a daemon, read Choosing daemons.For guidance on how to write a good daemon, read Writing and editing DAEMON.md.For concrete examples, start from the examples repo README/index.
----delimited YAML frontmatter that parses to an object/map
a markdown body below the closing frontmatter delimiter
The authored file shape is:
---id: <daemon-id>purpose: <what this daemon achieves>watch: - <event condition>routines: - <operation>deny: - <thing this daemon is told not to do>schedule: "<cron expression>"---<Markdown content: policy, limits, output format, and other guidance>
Use the authored field names exactly as written in this page.
Use this
Do not use
id
name
purpose
description
watch
triggers
routines
actions
deny
disallowed
name is not a valid authored field. Use id.Do not invent extra frontmatter fields.Do not add runtime-derived labels such as activation mode to frontmatter.
The markdown body below the frontmatter is freeform.It is meaningful at runtime: the body is carried into execution and interpreted as part of the daemon’s operating brief.Use it for operational guidance such as:
policy
output format
limits
scope
priority
thresholds
conventions
coordination
ignore patterns
examples
There are no required body headings.Headings such as Policy, Limits, Scope, and Output format are conventions, not schema.