.seri/rules/<name>.mdc for this project, or under your profile root for every project. The
extension is .mdc, which is the only name a rule has.
When a rule loads
Frontmatter decides it, and there are exactly three outcomes.
A file setting both
globs and alwaysApply: true is always-on and is never also injected per
touch. alwaysApply wins.
How a glob rule arrives
The rule stays out of the prompt until aread_file or write_file lands on a matching path.
Then it arrives as a note in the conversation, once per session rather than once per file.
Matching a read_file is deliberate. It puts the rule in front of the model before it
composes the edit, rather than after.
The rule text never enters the system prompt mid-session. That string is frozen when the
session starts, and keeping it frozen is what lets a provider reuse its cached prefix for every
turn. A rule that fires appends to the conversation instead, which is where every tool result
already goes.
Writing globs
Patterns accept**, braces and ranges. A comma-separated list is several patterns, while commas
inside {…} stay part of one.
src/** means the same
thing on Windows, macOS and Linux.
Rules are human-authored, like
AGENTS.md. seri never writes one. The one artifact it proposes
is a skill.
