backend-engineering
Skill0 starsChanged 8 days agoMITView on GitHub
Use when designing or implementing backend services - APIs and error formats, request validation, data access, database migrations, background jobs, configuration and environment variables, logging, authentication, or money, booking, and inventory logic.
11 other projects use a version of this.
Adopted by
Most recently taken up by
- hamzzaqureshi/gravidextheir own version, first seen Nov 8, 2026
- AntonioMellies/claude-code-skillstheir own version, first seen Nov 1, 2026
- rogue-dev-studio/ai-agents-roguetheir own version, first seen Nov 1, 2026
- PhoenixNest/AGENT-GLOBAL-BASEtheir own version, first seen Oct 20, 2026
- foreturn/product-studiotheir own version, first seen Oct 14, 2026
- hamzaciftci/coding-orchestratheir own version, first seen Oct 5, 2026
Used with
Projects with it also use software-architecture.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
nek1987Skillsoftware-architecture
Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.
Also in 3 projects that use this
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- magnus919/agent-skills★ 172same name
- openclosed-org/axum-harness★ 48same name
- foreturn/product-studio★ 3same name
- JimmyVGDY/codex-long-term-assistant-skills★ 3same name
- adtn0810/truestack★ 2same name
- AntonioMellies/claude-code-skills★ 2same name
- PhoenixNest/AGENT-GLOBAL-BASE★ 2same name
- rogue-dev-studio/ai-agents-rogue★ 2same name
- yuexueyu/anna-agent-skills★ 2same name
- hamzzaqureshi/gravidex★ 1same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- change-planningSkill
- change-reviewSkill
- device-healthSkill
- genai-engineeringSkill
- instruction-maintenanceSkill
- pakemSkill
- pakem-updateSkill
- project-bootstrapSkill
- release-deliverySkill
- root-cause-debuggingSkill
- sensitive-operationsSkill
- state-and-handoffSkill
- ui-ux-qualitySkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 7 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
7
Distinctive
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
- Distinctive: line 19
No SQL or business rules in route handlers.
- Very specific: line 41
API shape: follow API conventions: plain resources, RFC 9457 problem+json errors with a stable code and request_id.
- Distinctive: line 44
No framework HTTP exceptions inside domain services.
- Distinctive: line 45
Reliability: follow reliability for timeouts, retries, idempotency, transactions, and payload budgets.
- Distinctive: line 50
Follow data access and migrations:
- Distinctive: line 74
If your change introduces one of these capabilities, say so before implementing and include its standards or record the gap as debt.
- Distinctive: line 81
Verify webhook signatures and source before processing.
- Distinctive: line 86
Never log request bodies, tokens, personal data, or model content.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Backend Engineering
Defaults for backend services. Check the project AGENTS.md for its stack,
capabilities, and any ## Overrides first: the project's choices win.
1. Stack and structure
- Suggested stack for a new service, when the project or team has none: Python + FastAPI
- uv (especially AI services). Use NestJS when the client or team works in TypeScript; Next.js route handlers only for small full-stack apps; a headless CMS when non-developers must edit content cheaply.
- Layering: thin routes or controllers (parse, authorize, call a service, shape the response) -> services (domain logic; pure helpers with unit tests) -> data layer. No SQL or business rules in route handlers.
- Split files over about 800 lines by responsibility. Group modules by domain, not by technical type alone.
2. Always (every backend)
- Validation: a schema library at every trust boundary - requests, webhooks,
queue payloads, external API responses (Pydantic; class-validator with
whitelist+forbidNonWhitelisted; zod). Reject unknown fields on inputs the project defines (its API requests, its queue payloads). For third-party responses and webhooks, validate the fields you use and ignore the rest: providers add fields as a backward-compatible change. - Configuration: one typed settings object, validated at startup; missing required values stop the app. Follow configuration and environment variables.
- Between release units: code inside one release unit (a monolith, or modules
released together) shares freely. A unit released on its own (separate repository,
deployment, or version) depends on another only through its published, versioned
contract: its API, or a published package version. Never through its source tree or
repository, so one unit's releases or visibility never break another's build. Whether a
consumer uses a published SDK or its own thin client is the project's choice, recorded
in its
AGENTS.md. - API shape: follow API conventions: plain
resources, RFC 9457 problem+json errors with a stable
codeandrequest_id. - Errors: domain code raises domain errors; one boundary layer maps them to HTTP. No framework HTTP exceptions inside domain services.
- Reliability: follow reliability for timeouts, retries, idempotency, transactions, and payload budgets.
3. Data (database capability)
Follow data access and migrations:
- SQL-first thin data layer: parameterized SQL in per-domain query modules, explicit transactions and locks. An ORM only for mapping when the framework already brings one.
- Idempotent, forward-only migrations that cannot change silently once applied; never
runtime schema sync. Migrations run as a separate step that must succeed before new
app instances start. Write them by hand and never autogenerate
(
default:handwritten-migrations); a project whose framework generates migrations overrides it and reviews each generated file as if written by hand. - Tests run against a real disposable instance of the project's database with
migrations applied: PostgreSQL unless the project uses another (
default:postgres).
4. Capability-triggered standards
| Capability | Apply |
deployed | request id on every request (header and error body); JSON logs in production with ids, counts, durations, states only; slow-query logging; health endpoint that reports the running revision |
money | integrity kit |
background-jobs | jobs and outbox |
api-consumers | OpenAPI generated from code is the contract; clients generated from it; CI fails on drift; every status code documented |
multi-user | authorization checked in services, not only in routes; audit trail for privileged actions; authentication |
personal-data | sensitive-operations logging and privacy rules; access control and retention defined |
If your change introduces one of these capabilities, say so before implementing and include its standards or record the gap as debt.
5. Security essentials
- Authentication follows authentication.
- Compare secrets and signatures in constant time.
- Verify webhook signatures and source before processing; treat callbacks as untrusted input; make them idempotent.
- Set security headers (CSP, frame denial, nosniff, referrer policy) on any service that serves HTML.
- Rate-limit authentication, enumeration-prone, and expensive endpoints.
- Never log request bodies, tokens, personal data, or model content.
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.

