agentleFS
rpraharajrpraharaj/ai-engineer/skills/engineering-bar/SKILL.md

engineering-bar

Skill1 starsChanged 15 days agoMITView on GitHub

Shared engineering quality bar for any change — correctness, hygiene, structure, failure handling, data, security, performance guards, operability, and UI. Use when another skill says to apply the engineering bar, when asked if work meets engineering standards, or before calling a change done.

  • Reads credentials

1 other project uses a version of this, 1 of them edited.

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

22 rules. About 0 are common, 19 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈19

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    If AGENTS.md exists, follow it.

    line 14
  2. Very specific:

    Always-on defaults belong to the repository's AGENTS.md.

    line 39
  3. Very specific:

    No empty catch / swallowed rejection / ignored error return.

    line 45
  4. Distinctive:

    Need?: If the request is speculative, skip it and say so.

    line 51
  5. Distinctive:

    Stdlib?: Use the language or runtime library.

    line 53
  6. Distinctive:

    Native platform?: Prefer a built-in (HTML control, CSS, DB constraint, OS API) over a new component or dependency.

    line 54
  7. Distinctive:

    Already installed?: Use a dependency that is already in the lockfile.

    line 55
  8. Distinctive:

    One line?: Prefer it when it stays correct on edge cases.

    line 56
  9. Distinctive:

    Only then: write the minimum that works.

    line 57
  10. Distinctive:

    Do not climb past a rung that already solves it.

    line 59
  11. Distinctive:

    If you accept a known ceiling (global lock, naive scan, in-memory only), say the ceiling and the trigger to revisit in the summary.

    line 63
  12. Distinctive:

    No unused code, no commented-out blocks, no unrelated cleanup.

    line 68
  13. Very specific:

    No interface/factory/config for a single implementation or a value that never changes.

    line 69
  14. Distinctive:

    Do not grow a hard-to-scan file when a split is obvious.

    line 74
  15. Distinctive:

    Do not add a flag or mode that turns one function into two programs.

    line 75
  16. Distinctive:

    No new query/RPC inside a loop (N+1).

    line 97
  17. Distinctive:

    No unbounded work on a request or UI path.

    line 98
  18. Distinctive:

    No accidental full-collection scan.

    line 99
  19. Distinctive:

    No huge eager import on a hot route.

    line 100
  20. Distinctive:

    Do not "optimize" without a measurement unless the diff clearly adds one of the above.

    line 102
  21. Distinctive:

    When the diff adds or changes interactive UI, routes, views, or layout:

    line 106
  22. Distinctive:

    No layout jump from images, embeds, or fonts with no reserved size.

    line 109

≈ “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

Engineering bar

Apply this to the current diff, not the whole product. Walk each section and assess each applicable item using the shared evidence statuses. The invoking skill controls whether edits are authorized: reviews report failures; implementation fixes failures within scope. Only the user may waive a failure or verification gap. Do not invent extra standards this repo does not use.

If AGENTS.md exists, follow it. Repo-specific commands win when they conflict with examples here. You still must not commit secrets or claim unverified results.

How to load

Other skills load this file, first readable:

  1. ../engineering-bar/SKILL.md (sibling of the calling skill)
  2. .agents/skills/engineering-bar/SKILL.md from the workspace
  3. ~/.agents/skills/engineering-bar/SKILL.md

Secret files

Fail commit and ready-to-merge (and any secret scan) if the change adds:

  • .env, .env.* except a tracked .env.example
  • private keys, *.pem, *.p12, id_rsa, id_ed25519
  • credential files, keystores, dumped tokens
  • secrets pasted into otherwise-normal files

Shared procedures

Load references/change-scope.md and references/evidence.md relative to this skill directory for change collection, base selection, result statuses, and evidence reuse. These are the shared procedures for all checks. If a required procedure is unavailable, report the assessment as incomplete rather than inventing a pass.

Repository defaults

Always-on defaults belong to the repository's AGENTS.md. If missing, use ../explore-codebase/references/agents-template.md when available; do not maintain a second defaults list here. Apply this bar even when no template is available.

Correctness

  • Acceptance checks from shape-work (if any) are met, or the task is not done.
  • Happy path, edge cases, and error paths that this change can hit are handled.
  • No empty catch / swallowed rejection / ignored error return.

Minimum path

Understand the problem first (read the code the change touches). Then stop at the first rung that holds:

  1. Need? If the request is speculative, skip it and say so.
  2. Already here? Reuse the helper, type, or pattern in this repo. Do not rewrite it.
  3. Stdlib? Use the language or runtime library.
  4. Native platform? Prefer a built-in (HTML control, CSS, DB constraint, OS API) over a new component or dependency.
  5. Already installed? Use a dependency that is already in the lockfile. Do not add a new one for a few lines of code.
  6. One line? Prefer it when it stays correct on edge cases.
  7. Only then write the minimum that works.

Do not climb past a rung that already solves it. The smallest change in the wrong place is a second bug.

Never cut to win a smaller diff: validation at trust boundaries, error handling that prevents data loss, authorization, secret handling, or accessibility of new interactive UI. User-requested behavior stays.

If you accept a known ceiling (global lock, naive scan, in-memory only), say the ceiling and the trigger to revisit in the summary. Do not invent a comment brand.

Change hygiene

  • Diff is the smallest change that satisfies the request after the Minimum path.
  • No unused code, no commented-out blocks, no unrelated cleanup.
  • No interface/factory/config for a single implementation or a value that never changes.

Structure

  • Logic lives in the layer that already owns that concept.
  • Do not grow a hard-to-scan file when a split is obvious.
  • Do not add a flag or mode that turns one function into two programs.

Failure

  • I/O (network, disk, subprocess, queue) has a timeout or the repo's equivalent.
  • Retries are bounded and safe to repeat, or there are no retries.
  • Failures carry enough context to debug (what failed, which id) and never carry secrets.

Data

  • Input is validated where it enters the system (handler, edge, parser).
  • Schema and public contract changes are expand, then deploy, then contract — not both in one step.
  • Lists, pages, and jobs are bounded. Unbounded load is a fail.

Security (this delta only)

  • New reachable surface has authorization, not only authentication, if this repo uses auth.
  • Untrusted input stays untrusted (query, path, HTML, command, header, file name).
  • Secrets are not in source, logs, client bundles, or fixtures.

Performance (guard, not heroics)

  • No new query/RPC inside a loop (N+1).
  • No unbounded work on a request or UI path.
  • No accidental full-collection scan.
  • No huge eager import on a hot route.

Do not "optimize" without a measurement unless the diff clearly adds one of the above. Guess-caching is a fail.

UI

When the diff adds or changes interactive UI, routes, views, or layout:

  • New controls have an accessible name, are reachable from the keyboard, and are not unreadable.
  • No layout jump from images, embeds, or fonts with no reserved size.
  • Empty, error, and loading states the change can hit are handled (or already were).

The walk-through is verify-ui. This section is the bar.

Operability

  • A new failure mode is visible with whatever this repo already uses (log, metric, trace, error report).
  • Risky behavior has a rollback sentence you can say out loud (revert, flag, prior artifact).
  • Docs, types, or generated clients that this change made wrong are updated in the same work.

Output

Report failures, unverified requirements, and user waivers, then the checks and evidence used. Explicitly identify remaining assessed sections as pass or not applicable; silence is not evidence of a pass.

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.