agent-friendly-skill
AGENTS.md0 starsChanged 19 days agoMITView on GitHub
Instructions for AI coding agents working on agent-friendly-skill. An agent skill (npx skills add hsnice16/agent-friendly-skill#v0) that scores the user's current repo locally for the nine agents Agent Friendly Code profiles, reports the best fit and recommends a model class. Any vercel-labs/skills-compatible agent can run it; agents without a profile get the same score-driven answer. The scorer is vendored from agent-friendly-code, the source of truth, and bundled so the skill never needs the website. agent-friendly-action vendors the same scorer for PR…
- Installs packages
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository2 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- agent-friendlySkill
The file
We split this AGENTS.md into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 74
Every release tag gets a dated CHANGELOG.md section (bullets moved out of ## [Unreleased]).
- Distinctive: line 93
When syncing upstream changes, copy the substantive change (new signal, weight tweak, scoring-logic edit) and re-apply these prunes on top.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Instructions for AI coding agents working on agent-friendly-skill.
What this project is
An agent skill (npx skills add hsnice16/agent-friendly-skill#v0) that scores the user's current repo locally for the nine agents Agent Friendly Code profiles, reports the best fit and recommends a model class. Any vercel-labs/skills-compatible agent can run it; agents without a profile get the same score-driven answer.
The scorer is vendored from agent-friendly-code, the source of truth, and bundled so the skill never needs the website. agent-friendly-action vendors the same scorer for PR comments.
Stack
- Node ≥ 20.9.0 runtime — matches
engines.node. - TypeScript — strict mode.
@vercel/ncc— bundlessrc/index.ts+ scorer into a singleskills/agent-friendly/dist/index.js. That bundle is whatnpx skills addships to consumers.- Biome — formatter + linter. Config at
biome.json(lineWidth 120, parent-aligned). Vendoredsrc/scoring/andsrc/constants/are excluded — upstream owns their style. - Lefthook — git pre-commit hooks run Biome /
tsc --noEmit/ tests / a 300-line file-length cap onsrc/**/*.ts.
Layout
skills/agent-friendly/ # the directory the vercel-labs/skills CLI installs
SKILL.md # frontmatter + body (instructions to the agent)
dist/
index.js # ncc-bundled scorer (committed — this is what gets installed)
src/
index.ts # entry point — orchestration
args.ts # argv parsing
format.ts # one-line summary formatter for --summary
scoring/ # vendored from upstream lib/scoring/ (do not reformat — sync rule below)
constants/ # vendored from upstream lib/constants/scoring.ts
tests/
args.test.ts
cli.test.ts
format.test.ts
biome.json # formatter + linter config
lefthook.yml # pre-commit jobs (biome, typecheck, test, file-length)
package.json # private; build / typecheck / test scripts
tasks/
<version>/ # one folder per release (README, plus per-task files for multi-task releases)
CHANGELOG.md # consumer-facing release log
LICENSE # MITBuild + dev loop
npm install
npm run prepare-hooks # once — installs lefthook git hooks
npm run typecheck
npm test
npm run build # ncc → skills/agent-friendly/dist/index.js
npm run format # biome check --write (full repo)
npm run lint # biome check (read-only)skills/agent-friendly/dist/ is committed: npx skills add ships it. CI fails when it has drifted from src/.
Conventions
- Exact-pinned deps in
package.json(no^, nolatest), so bundles are reproducible. - File length:
src/**/*.tsstays ≤ 300 lines. Enforced by the lefthookfile-lengthjob. - No comments explaining what the code does. Only why.
- Vendored code is exempt from this repo's biome config (see
biome.json's ignore list). Do not runnpm run formatagainstsrc/scoring/orsrc/constants/.
Why skills/agent-friendly/SKILL.md and not root SKILL.md?
The vercel-labs/skills CLI installs the directory containing SKILL.md. If SKILL.md lived at repo root, every sibling file (package.json, src/, tests/, node_modules/, …) would be copied into the user's agent skill directory on npx skills add. By scoping the SKILL.md to a subdirectory, only the things consumers actually need (SKILL.md + the bundled scorer in dist/) ship.
Versioning
Semver tags plus a floating major tag. A precise tag (v0.1.6) never moves; the floating tag (v0, later v1) is repointed to the latest release of that major. Consumers pick a ref with the CLI's #<ref> fragment — @ is its skill-name filter. The skill's version is independent of upstream's: a tasks/0.5.0/... link on upstream is upstream's milestone.
Every release tag gets a dated CHANGELOG.md section (bullets moved out of ## [Unreleased]); CONTRIBUTING.md has the steps.
#<ref> support lives in source-parser.ts (parseFragmentRef) and git.ts and is undocumented in their README (checked against skills@1.7.2) — re-check on a CLI upgrade.
Self-containment rule
The skill must keep working with no network access to the agent-friendly-code web app. Bundle whatever scoring code is required. The web app is not contacted at runtime.
Vendored scorer (sync rule)
src/scoring/ and src/constants/ are vendored copies of lib/scoring/ and lib/constants/scoring.ts from the upstream agent-friendly-code repo. There is no automatic sync — when upstream changes a signal, weight, or scorer.ts shape, those changes are copied here by hand and logged under ## [Unreleased] in CHANGELOG.md.
Upstream's AGENTS.md → Sibling repos owns the propagation rule. On drift, upstream wins, except for the deliberate prunes below.
Local prunes from upstream (intentional, do not re-add on sync):
src/constants/scoring.ts— onlySCORE_THRESHOLD_MID,SCORE_THRESHOLD_GOOD, andDEFAULT_SUGGESTION_LIMITare kept. Every other upstream constant sizes website UI (pagination, list limits, search length); nothing inlib/scoring/imports them.src/scoring/weights.ts—MODEL_BY_ID(aRecord<ModelId, ModelProfile>) is dropped; the skill iteratesMODELSand never indexes by id, and ncc does not tree-shake the eagerObject.fromEntriescall.
When syncing upstream changes, copy the substantive change (new signal, weight tweak, scoring-logic edit) and re-apply these prunes on top.
Upstream's tasks/1.0.0/03-benchmark-harness.md plans a standalone scorer package, which would replace vendoring.
Security
The skill reads files under the resolved repo root and nothing else: no writes, no network, no credentials, no code from the scored repo is run. The scorer treats the tree as untrusted — symlinks that leave the root are not followed, only regular files are read, and each read stops at 1 MiB.
Report a vulnerability — e.g. a way to execute code from the scored repo or read outside its root — to hsnice16@gmail.com, not a public issue.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

