Standards from config
Skill event4u-app/agent-config/src/skills/standards-from-config
Use when you need this project's coding standards (line length, quotes, import order, naming, commit format) — derive them from the REAL tooling config as a pointer + digest, never a guessed claim.From its SKILL.md
npx -y skills add event4u-app/agent-config --skill standards-from-configAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.7 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
standards-from-config
Evidence v2 Class A — configured convention. The safe, on-thesis half of self-building project context: coding standards are not guessed and not observed, they are derived from the real tooling config. The config is the standard; this skill produces a pointer + digest, never a flattened claim. High-trust, auto-refreshable, drift-proof — because the truth lives in the config file, and the card only points at it plus distils the 3–5 points an agent needs most while writing.
Definitions (Class A/B/C, trust tiers, the v1↔v2 isolation contract) live in
evidence-discipline;
the parent context mechanism is context-document.
When to use
- Before writing or reformatting code in an unfamiliar project and you need its enforced style (indent, line length, quote style, import order, naming).
- Before writing a commit message / branch name and you need the project's commit convention.
- When orienting in a repo and a committed Class-A standards card would save the next agent from re-deriving the same config.
Do NOT use for: a standard that has no config backing (that is a guessed
or observed convention — Class B, not A; never invent a Class-A claim); the
concrete shape of code (that is v1 source-discovery, read fresh); a project
with no tooling config at all (record a negative fact: "no enforced standard
found", do not fabricate one).
Procedure
- Detect the real config sources (read fresh, never from memory). Common
sources, by ecosystem — inspect what actually exists:
- cross-stack:
.editorconfig,CONTRIBUTING.md, commitlint /.gitmessage, the lint/format steps in the CI workflow. - JS/TS:
eslint.config.js/.eslintrc*,.prettierrc*,biome.json,tsconfig.json(strictness). - PHP:
pint.json,.php-cs-fixer.dist.php,phpcs.xml. - Python:
pyproject.toml/ruff.toml([tool.ruff],[tool.black]),setup.cfg. - Ruby:
.rubocop.yml. Go:gofmt/golangci.yml.
- cross-stack:
- Derive as pointer + digest, never a flattened claim. Each standard is one
line: the value, the config file it came from, and the scope it
applies to. Write
ruff.toml → line-length = 88 (scope: src/**/*.py), NOT "the project uses line length 88". The pointer makes the claim re-checkable and the next agent can open the config to confirm. - Preserve scope; surface conflicts, never flatten them. If two configs (or an inline / per-directory override) give two values, emit two pointers with two values + their scopes — never one ambiguous merged claim. A visible conflict is correct; a hidden flattened guess is the failure mode.
- Stamp staleness. Record each source's
config_mtime(or content hash). The digest is stale when the config file's mtime/hash changes → re-derive. No human gate is needed (Class A is deterministic) — the digest is regenerated from the config, never hand-edited. - Persist as a Class-A context card under
agents/settings/contexts/(see Output format). Class A is high-trust because config-derived — it is read for heuristics only and never bypasses a fresh structural read (the v1↔v2 isolation contract inevidence-discipline).
Output format
A Class-A standards card MUST contain, in order:
- Frontmatter
class: A,trust: high (config-derived), and asources:list of{path, config_mtime}for every config the digest reads. - A pointer+digest table — one row per standard:
standard | value | source (file:key) | scope. No standard appears without asourcecell pointing at a real config file. - A conflicts block (may be empty) listing any standard where ≥2 sources / scopes disagree, as two-or-more rows, never one merged value.
- A refresh line stating the card is regenerated when any listed
config_mtimechanges, and is read for heuristics only (never a structural bypass).
Gotcha
- A standard with no config backing is not Class A — do not write it here; it is a guessed/observed convention (Class B) or nothing. Class A never fabricates.
- Do not flatten conflicting configs into one value — the conflict is the signal; surface both pointers.
- The card is a regenerated digest, not a hand-edited doc — editing the value by hand instead of the config defeats the drift-proofing.
- A green pointer is not "the code obeys this" — it means the config declares it; whether a given file complies is a fresh read, not this card's claim.
Do NOT
- Do NOT emit a coding standard as a believed fact ("we use 4 spaces") — emit a pointer to the config that declares it.
- Do NOT merge conflicting configs into a single claim.
- Do NOT hand-edit the digest value instead of the config.
- Do NOT use a Class-A card to skip a fresh structural read (v1 stays in force).
- Do NOT commit the card without permission (
scope-control).
See also
evidence-discipline— Class A/B/C, trust tiers, the isolation contract.context-document— the parent context mechanism + storage locations.source-discovery— v1 structural discovery (read fresh; Class A never bypasses it).
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.