agentleFS
cedaniel200cedaniel200/atlas-template/.agents/skills/implementation-standards/SKILL.md

implementation-standards

Skill3 starsChanged 20 days agoMITView on GitHub

Engineering criteria for implementation: SOLID, Clean Code, patterns, comment anchors, quality signals and simplification-first debt.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. About 0 are common, 12 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    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
  1. Distinctive:

    No dead, commented-out or unrefactored code.

    line 33
  2. Distinctive:

    If no ADR anchors the decision, the comment is self-contained: decision and reason, here and now.

    line 42
  3. Distinctive:

    If it does not fit, the detail belongs in an ADR or functional documentation.

    line 49
  4. Distinctive:

    Do not delete blank lines, split methods without cohesion or add trivial tests to pass a number.

    line 54
  5. Distinctive:

    Do not raise the CRAP threshold so a change passes.

    line 55
  6. Distinctive:

    Do not exclude files with real logic from coverage or CRAP.

    line 56
  7. Distinctive:

    If a touched file has pre-existing lint violations, resolve them.

    line 57
  8. Distinctive:

    If a limit is close, refactor or document why in the commit.

    line 59
  9. Distinctive:

    When a file/method size, complexity or CRAP threshold fires: first remove duplication (repeated boilerplate for logging, transactions or …

    line 63
  10. Very specific:

    If the refactor was not planned in design.md, declare it in the change report (and in design.md if structural).

    line 70
  11. Distinctive:

    Do not mask a complex method with tests that only cover the happy path.

    line 81
  12. Distinctive:

    Test behavior, not implementation details.

    line 85
  13. Distinctive:

    No disabled tests, magic sleeps or trivial assertions.

    line 86

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Implementation standards

Load this skill before writing or reviewing code. It is the source of engineering criteria; .atlas/agents/engineer.md is only a summary.


SOLID

  • S — one reason to change per class; one use case per application service.
  • O — extend through composition, polymorphism and dependency injection before inheritance.
  • L — subtypes must be substitutable without breaking invariants; prefer composition.
  • I — keep interfaces small and specific to their consumer; no god interfaces.
  • D — dependencies point toward the domain; high-level modules do not depend on low-level ones.
  • Supporting concepts: cohesion, low coupling, encapsulation.

Design patterns

  • Apply them only when the problem justifies it and they reduce complexity.
  • Premature abstraction is debt, just like duplication.
  • Common: Factory, Strategy, Repository, Specification, Observer, Builder.

Clean Code

  • Meaningful names that reveal intent; no cryptic abbreviations.
  • Small functions that do one thing.
  • No dead, commented-out or unrefactored code.
  • DRY with judgment: do not abstract for the sake of abstracting.

Comment anchor (mandatory)

  • Comments explain why, never what or how.
  • Reference an ADR (adr/NNNN-...) or functional documentation.
  • Never reference openspec/specs/ (they are deltas that get archived).
  • Never reference roadmaps, planning documents or other projects as the justification.
  • If no ADR anchors the decision, the comment is self-contained: decision and reason, here and now.
  • Limits: doc comment ≤ 3 lines; inline comment ≤ 2; decision block ≤ 6 and links to the ADR or document that holds the detail.
  • Do not repeat: the same doc comment in N methods is duplication. Document it once on the class or the collaborator that owns the behavior.
  • Do not describe the "what": the name and types already say it. No signature or change history (git owns that).
  • If it does not fit, the detail belongs in an ADR or functional documentation; the comment references it.
  • A comment does not justify a lint threshold or a degraded design.

Quality controls are signals, not goals

  • Do not delete blank lines, split methods without cohesion or add trivial tests to pass a number.
  • Do not raise the CRAP threshold so a change passes.
  • Do not exclude files with real logic from coverage or CRAP.
  • If a touched file has pre-existing lint violations, resolve them; do not leave debt "because it was not mine".
  • If a limit is close, refactor or document why in the commit.

Thresholds are analysis triggers, not a design excuse

  • When a file/method size, complexity or CRAP threshold fires: first remove duplication (repeated boilerplate for logging, transactions or instrumentation is the usual cause), then extract cohesive, typed collaborators, and finally split responsibilities. A documented suppression is the last resort.
  • Do not introduce bare strings, booleans or magic numbers to carry semantics (names, modes, kinds). Model them with an enum, value object or interface in its own file; that type also counts toward size.
  • If the refactor was not planned in design.md, declare it in the change report (and in design.md if structural). No invisible refactors.

Technical debt: simplification first

  1. Extract Method / Extract Class.
  2. Decompose Conditional / Replace Conditional with Polymorphism.
  3. Introduce Parameter Object / Preserve Whole Object.
  • Protected by the existing tests (green before and after).
  • Additional tests are a complement, not a substitute for reducing complexity.
  • Do not mask a complex method with tests that only cover the happy path.

Tests

  • Test behavior, not implementation details.
  • No disabled tests, magic sleeps or trivial assertions.
  • Cover error paths and business rules, not only the happy path.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.