Best for
- Editing AGENTS.md at the package root.
- Editing src/agent-src/templates/AGENTS.md (consumer-shipped template).
- Reviewing a PR that changes either file.
event4u-app/agent-config/src/skills/agents-md-thin-root/SKILL.md
Use when editing AGENTS.md (package root) or templates/AGENTS.md (consumer) — enforces Thin-Root contract: hard char ceilings, ≥40% pointer ratio, mandatory emergency-triage block.
Decision brief
md (package root) or templates/AGENTS. md (consumer) — enforces Thin-Root contract: hard char ceilings, ≥40% pointer ratio, mandatory emergency-triage block.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/agents-md-thin-root"Inspect the Agent Skill "agents-md-thin-root" from https://github.com/event4u-app/agent-config/blob/6a5670b7881a676c0da90d2afb950298087c4ccb/src/skills/agents-md-thin-root/SKILL.md at commit 6a5670b7881a676c0da90d2afb950298087c4ccb. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Measure baseline. wc -c AGENTS.md and ./scripts-run src/scripts/measureaugmentbudget. Record current char-count and the gap to 2,200 / 2,500. 2. Inventory sections. List every heading and its char-count. Mark each as keep-inline (Iron-Law-adjacent, ≤ 200 chars, no good outboa…
Same procedure, applied to src/agent-src/templates/AGENTS.md. Hard cap shifts to 2,000 / 1,700. The consumer template intentionally lacks the package-self-references — its pointers target files that exist in the consumer's repo (.augment/skills/, agents/settings/contexts/, ...),…
Use when: - Editing AGENTS.md at the package root. - Editing src/agent-src/templates/AGENTS.md (consumer-shipped template). - Reviewing a PR that changes either file. - Running /optimize/agents. - A budget meter (scripts/measureaugmentbudget.ts) flags the package-root AGENTS.md…
Edit .github/copilot-instructions.md with this skill (use copilot-agents-optimization instead).
Augment Code injects AGENTS.md verbatim into every workspace prompt. Each kilobyte spent here permanently consumes the 49,512-char workspace-guidelines budget shared with always-rules and auto-rule registry stubs. The Thin-Root pattern keeps the entry point a navigation surface…
Permission review
The documentation asks the agent to read local files, directories, or repositories.
List the playbooks whose `scope` is that workspace and read each one **before** the fileThe documentation asks the agent to create, modify, or delete local files.
Every Thin-Root AGENTS.md MUST contain an **Emergency Triage** section verbatim from `src/agent-src/contexts/contracts/emergency-triage-block.md` (Phase 6.4 will create that file as the canonical source). The block lists the five questions The documentation asks the agent to create, modify, or delete local files.
**Emergency-triage drift.** Editing the in-file emergency-triage block instead of the canonical `src/agent-src/contexts/contracts/emergency-triage-block.md` causes the package-root and consumer-template versions to diverge silently. Always Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 9 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use when:
AGENTS.md at the package root.src/agent-src/templates/AGENTS.md (consumer-shipped template)./optimize/agents.scripts/measure_augment_budget.ts) flags the package-root AGENTS.md as the dominant cost..github/copilot-instructions.md with this skill (use copilot-agents-optimization instead)..md files under .augment/, src/, or agents/ with this skill.agents/settings/contexts/ or docs/contracts/.[label](path) — every pointer needs a why-clause ≥ 60 chars or it does not count toward the 40 % ratio.Augment Code injects AGENTS.md verbatim into every workspace prompt. Each kilobyte spent here permanently consumes the 49,512-char workspace-guidelines budget shared with always-rules and auto-rule registry stubs. The Thin-Root pattern keeps the entry point a navigation surface (pointers + intent) and pushes deep detail into files Augment loads on demand via load_context or that other tools fetch only when their search retrieves them. Strategic council R2 (2026-05-08, Sonnet 4.5 / Opus 4.1 / gpt-4o / o1) converged on the contract codified below as the minimum guard against AGENTS.md re-bloat.
Every entry describes what the project does or where to learn more — never where individual files live. Path lists rot every refactor and poison context; capability pointers survive structural churn. Full anatomy with rewrite recipes, monorepo guidance, and multi-tool symlink strategy: agents-md-anatomy.
| File | FAIL above | WARN above | Target |
|---|---|---|---|
AGENTS.md (package root) | 3,000 chars | 2,800 chars | ≤ 2,800 |
src/agent-src/templates/AGENTS.md (consumer) | 2,500 chars | 2,300 chars | ≤ 2,300 |
Char-count is raw file size (wc -c), frontmatter included. Enforcement: scripts/lint_agents_md.ts (Phase 7), wired into the package's CI pipeline via the lint-agents-md task. WARN is a soft signal in CI; FAIL blocks merge.
The R2 council originally proposed 2,500 / 2,000 caps. Phase 6.4 empirical refactor demonstrated that the mandatory emergency-triage block (≈ 700 chars) plus operational must-haves (source-of-truth disclaimer, task quickstart, six substantive pointers) raise the achievable floor by ≈ 500 chars. The caps above are the post-refactor baseline; the previous numbers stayed unattainable without dropping mandatory content.
≥ 40 % of non-blank lines must be substantive pointers. A substantive pointer is a Markdown link [label](path[#anchor]) whose surrounding sentence carries a why clause ≥ 60 chars explaining what the reader will learn there. Decorative links (table-of-contents, badges, repeated cross-refs) do not count. Lint formula:
pointer_ratio = (substantive_pointer_lines / non_blank_lines) >= 0.40
Every substantive pointer specifies, on the same line or the immediately following line:
./.#section-slug when the linked file's content is large enough that landing in the middle saves the reader. Skip only when the linked file is itself short.❌ Wrong — bare link, no why, no anchor:
See
commit-policy.
❌ Wrong — why present but < 60 chars:
Commit rules:
commit-policy.
✅ Right — full anatomy, anchor, why ≥ 60 chars:
Commit policy — never auto-commit, four named exceptions, Hard Floor list of bulk-deletion / infra triggers:
commit-policy § Iron Law.
✅ Right — anchor optional when target is short:
Mirror the user's language every reply, single Iron Law that overrides any momentum:
language-and-tone.
packages/<n>/AGENTS.mdA per-workspace AGENTS.md is allowed, and it is subject to the same pointer-ratio rule
as the root file. Its primary content is a pointer list to the playbooks whose scope is
that workspace (ADR-244) —
not a second copy of their steps.
A WORKSPACE FILE POINTS AT ITS PLAYBOOKS. IT NEVER RESTATES THEIR STEPS.
TWO COPIES OF A PROCEDURE DISAGREE THE FIRST TIME ONE IS EDITED,
AND A READER CANNOT TELL WHICH ONE THE REPOSITORY ACTUALLY FOLLOWS.
The restatement is detected on the invoked id, not the step title: titles are generic by
construction ("Run the repository's own generator"), so a title match reports one hit per
playbook and names none of them. A line carrying a playbook's invokes id outside a
link is a restatement; the same id inside a link label is the pointer the contract wants.
findRestatedSteps in src/scripts/derive_playbooks.ts is the detector; the negative
control is tests/fixtures/playbooks/mono-with-generator/packages/ui/AGENTS.md.
List the playbooks whose scope is that workspace and read each one before the file
exists. A workspace file written first and reconciled later is how the restatement arrives:
the steps are fresh in mind, the pointer feels like an extra hop, and both copies ship. If
the inventory is empty, the workspace does not need the file yet.
No new caps: a workspace file is small by construction if it only points, and the root caps above bind the root file alone.
Every Thin-Root AGENTS.md MUST contain an Emergency Triage section verbatim from src/agent-src/contexts/contracts/emergency-triage-block.md (Phase 6.4 will create that file as the canonical source). The block lists the five questions a host agent answers from the root file alone when network / tool access is degraded:
Each answer must fit on one line. The block exists so the root never silently degrades to "useful only when every linked file is reachable".
wc -c AGENTS.md and ./scripts-run src/scripts/measure_augment_budget. Record current char-count and the gap to 2,200 / 2,500.## heading and its char-count. Mark each as keep-inline (Iron-Law-adjacent, ≤ 200 chars, no good outboard target) or outboard-candidate (longer-form prose, table-only sections, narrative).outboard-candidate, name the destination — src/agent-src/contexts/, docs/contracts/, an existing rule body, an existing skill body. Never invent a new top-level directory.wc -c AGENTS.md again. If above 2,200, repeat steps 2–4 on the next-largest section. Above 2,500 = must outboard further before commit.src/agent-src/contexts/contracts/emergency-triage-block.md. Drift = revert to canonical.task lint-agents-md && task check-refs && task lint-skills. All green before commit.Same procedure, applied to src/agent-src/templates/AGENTS.md. Hard cap shifts to 2,000 / 1,700. The consumer template intentionally lacks the package-self-references — its pointers target files that exist in the consumer's repo (.augment/skills/, agents/settings/contexts/, ...), not this package's authoring tree.
agents/explainers/ or docs/notes/ for the moved content silently widens the contract surface. Outboard only into src/agent-src/contexts/, docs/contracts/, an existing rule body, or an existing skill body.src/agent-src/contexts/contracts/emergency-triage-block.md causes the package-root and consumer-template versions to diverge silently. Always edit the canonical file and let the lint diff pull both back in sync.wc -c counts every byte including the YAML preamble, blank lines, and the trailing newline. Stripping a section to "look smaller" without re-running wc -c understates the true budget impact.`path/to/dir/` bullets without why-clauses is the classic re-bloat pattern. The lint emits a WARN at ≥ 3 such lines. Collapse them into one capability-style pointer — see the recipe in agents-md-anatomy § Iron Law.CLAUDE.md / GEMINI.md / .cursorrules doubles the budget cost across tools. Use the symlink-or-stub pattern in agents-md-anatomy § Multi-tool symlink strategy instead.When invoked as a planning step, produce:
Inert on cloud surfaces. The skill governs the package-root AGENTS.md and the consumer-shipped template — both authoring artifacts inside this repository. Cloud agents working on consumer projects never edit those files directly; their copy is delivered by the package install pipeline and refreshed by the package sync pipeline. The Thin-Root contract therefore has no cloud-side procedure to execute, which is why this skill is marked cloud_safe: noop.
agents-md-anatomy — Capabilities-over-Structure Iron Law, multi-tool symlink strategy, monorepo per-package layout, refactor recipe, full gotcha catalog.copilot-agents-optimization — sibling skill for .github/copilot-instructions.md; runs alongside Thin-Root in /agents optimize.agent-docs-writing — broader documentation-structure context for navigating outboard targets.size-enforcement — covers per-skill / per-rule / per-command size budgets; AGENTS.md caps live in this skill instead.ADR-004-rule-governance-pruning — captures the rule-governance pruning that freed the workspace-guidelines budget; the Thin-Root caps build on that headroom.Frequently asked questions
md (package root) or templates/AGENTS. md (consumer) — enforces Thin-Root contract: hard char ceilings, ≥40% pointer ratio, mandatory emergency-triage block.
The source record exposes this install command: npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/agents-md-thin-root". Inspect the command and pinned source before running it.
Static rules flagged read-files, write-files in the source; the page lists the matching lines and excerpts.