Checks a repository against the Ember LLM context standard, the shared rules for how agent instructions and documentation are organized. Think of it as a coding standard for the files Claude and Codex read.
When to Use
- Before you commit changes to
CLAUDE.md,CONTEXT.md,AGENTS.md, or anything underdocs/. The pre-commit hook also runs it. - When you bring an existing repository up to the standard.
- When an agent keeps loading the wrong files or missing instructions. Broken routing is the usual cause.
What to Say
- "Lint this repo against the Ember standard."
- "Does this repository meet the Ember context standard?"
- "Retrofit this repo to the context standard."
What Happens
- The agent runs the linter in report mode and groups the results by rule ID, such as
CS-07. - It explains each rule in plain terms and what fixes it.
- For a retrofit, it proposes fixes one rule at a time, shows each change, and applies only what you confirm. Missing files come from the standard's templates, with unknowns marked
MISSING. - It reruns the linter and reports what is left.
What It Never Does
- Delete rules from an existing
CLAUDE.md. Rules found inAGENTS.mdmove intoCLAUDE.mdfirst. - Rename records without
git mvand an old-to-new index, so history and citations survive. - Treat a clean result as AiRB evidence or an approval.
- Commit or push.
What It Changes
A check changes nothing. During a retrofit, and only for the fixes you confirm:
| Where | What |
|---|---|
Missing CLAUDE.md, CONTEXT.md, and AGENTS.md files | Created from the standard's templates, with unknowns marked MISSING |
| Misnamed records | Renamed with git mv, plus an old-to-new index in the folder |
ember-project.yaml | size_exceptions, status_extensions, or vendored entries |
The Rules in Brief
The full list is in standard/context-standard.md.
- Every folder with its own rules has
CLAUDE.md(rules),CONTEXT.md(where to go next), and anAGENTS.mdthat points toCLAUDE.mdfor Codex. CLAUDE.mdis at most 80 lines andCONTEXT.mdat most 120. Split before you ask for an exception.- Every route in a
Read Nextcolumn points to a file that exists. - Records are named
YYYY-MM-DD-<topic>.md, and every file underdocs/starts withStatus:andOwner:lines. - Status words come from a fixed list, such as
PROPOSED,MISSING, andINSUFFICIENT. - No em dash characters, and no paths into other repositories.
Run It Without an Agent
node ~/gitroot/ember-platform-skills/skills/ember-context-lint/scripts/lint.mjs ~/gitroot/<slug>Add --report to always exit 0 while you work through findings, --summary for counts only, or --format json for tooling.
Common Problems
| You see | Do this |
|---|---|
CS-01 or CS-02 missing files | Run the ember-app-onboard retrofit, which creates them |
CS-04 AGENTS.md differs | Move any rules into CLAUDE.md, then replace AGENTS.md with the template |
CS-05 file too long | Split CONTEXT.md into folder-local routers. Add a size_exceptions entry in ember-project.yaml only if splitting is worse, with the reason |
CS-07 path does not exist | Fix the route, or remove it if the target is gone |
CS-08 em dash | Replace it with a comma, colon, or a new sentence |
CS-11 unknown status term | Use a term from the list, or add it to status_extensions with its meaning |
| Third-party files fail rules | List them under vendored in ember-project.yaml |