ea-check
Skill3 starsChanged 3 months agoMITView on GitHub
Check a product/service repository against the architecture standards its system claims to follow. Use when asked "are we compliant?", "does this repo break any standard?", when adding or upgrading a dependency, or when wiring an EA gate into a team's CI. Runs in the consuming repository, not in the EA repository.
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
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 63
Wire it in: when asked: a CI step calling check with --scope and --as-of, failing on exit 1.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill 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
ea-check — compliance lint inside a consuming repository
This is the half of the governance story that runs outside the EA repository. The
model knows what a system is supposed to be built on and whether an exception was
filed; the product repository knows what it actually declares. check joins the two.
Non-negotiables
- The command decides, you explain.
easkills check --root <ea-repo> --repo . --scope <element-id>produces the findings. Never assess compliance by reading a manifest yourself and reasoning about standards — that is exactly the judgement this tooling exists to replace. - Never invent a correspondence. A dependency implements a standard only when that
standard's
detect:rules say so. If a team believes a library evidences a standard, the fix is adetect:rule in the SIB entry (a governed change in the EA repository), never a claim in a report. CHK002is not a bug to route around. Three honest exits: migrate off the retired standard, file a time-bounded dispensation (ea-dispensation), or change the standard's lifecycle if it should not have been retired (ea-standards-base). Suppressing the check, pinning an old EA repository, or dropping--strictare not exits; they are how governance becomes theatre.- The consuming repository maintains no manifest.
--scopeis the entire convention. If you find yourself proposing a mapping file in the product repo, stop: that is a deferred decision (AD-09), not an implementation detail.
What it reads
package.json, pom.xml, requirements.txt and pyproject.toml (PEP 621 and Poetry)
are found by name. An SBOM -- CycloneDX or SPDX JSON, the one the build already produces
-- is passed explicitly with --sbom <file> (repeatable), and a SIB detect: rule names
the package by URL without its version (manifest: sbom, dependency: pkg:npm/pg). The
version an SBOM records is reported, never matched.
Procedure
- Establish the scope. Which element in
model/approved/is this repository? Usually anApplicationComponent. If nothing matches, the system is unmodelled — route toea-model(and say so; do not check against an approximate neighbour). - Run the check with
--as-ofpinned in CI configurations so results are reproducible, and--jsonwhen another tool consumes the output. - Read the findings by severity, not by count:
CHK002(error): retired standard, no waiver. Propose the three exits above with a recommendation, not a menu — usually migration if a successor exists.CHK003(warning): deprecated. Ask for a migration date, and offer to record it.CHK004(info): covered by a waiver. Report the expiry prominently: it is a deadline, and after it the same code becomes an error.CHK005(warning): the model claims a standard this repository does not evidence. Either the model is wrong (route toea-model/ea-delta-ingest) or the repository drifted off the standard. Say which you believe and why.CHK006(info): the repository uses a governed standard the model does not record. This is intake material — route toea-delta-ingest, do not "fix" it locally.CHK000/CHK007: the check could not see what it needed. Never report these as compliance; report them as an unchecked repository.
- Wire it in when asked: a CI step calling
checkwith--scopeand--as-of, failing on exit 1. Warnings should fail (--strict) only if the team agrees to it — pushing--stricton someone else's build without consent is how a governance tool gets removed.
Reporting back
Lead with the verdict and the deadline: how many errors, and the earliest dispensation
expiry that turns into one. Then the findings, grouped by exit route rather than by
rule code — the reader is a product team deciding what to do this sprint, not an
auditor. If the check proved nothing (CHK007, or no detect: rules matched anything),
say that plainly: an empty report is not a clean bill of health.
In this repository25 other files it gives its agents.
- ea-adrSkill
- ea-ai-governanceSkill
- ea-alignSkill
- ea-approveSkill
- ea-boardSkill
- ea-capability-mapSkill
- ea-change-triageSkill
- ea-complianceSkill
- ea-contextSkill
- ea-delta-ingestSkill
- ea-dispensationSkill
- ea-docsSkill
- ea-evalSkill
- ea-healthSkill
- ea-importSkill
- ea-intakeSkill
- ea-modelSkill
- ea-regulatorySkill
- ea-runSkill
- ea-securitySkill
- ea-serviceSkill
- ea-stakeholdersSkill
- ea-standards-baseSkill
- ea-validateSkill
- ea-viewsSkill
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.

