agentleFS
juninmdjuninmd/skills/.agents/skills/backend-systems/SKILL.md

backend-systems

Skill2 starsChanged 6 days agoMITView on GitHub

Implement backend services, APIs, and caching in Bun, Node.js, Rust, and Python, and maintain Go and .NET services. Use for NestJS modules, DI, DTO validation, FastAPI, REST/GraphQL OpenAPI contracts, endpoints and controllers, async concurrency, and cache invalidation. Trigger on 'add an endpoint', 'build this API', 'design the REST contract', 'cache this with Redis'.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Avoid unbounded concurrency and per-request client pools.

    line 61

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

Backend Systems

Not this skill: choosing the framework or ORM first (stack-selection), query plans and schema design (data-engineering), module boundaries (software-architecture), or pnpm/uv/Ruff/Dependabot toolchain management (package-management).

Preflight

rg --files -g package.json -g bun.lock -g bun.lockb -g bunfig.toml -g '*lock*' -g Cargo.toml -g rust-toolchain.toml -g pyproject.toml -g go.mod -g '*.csproj' -g '*test*' -g '*ci*'

Read manifests, lockfiles, scripts and CI before choosing commands. For new unconstrained services prefer Bun > Node.js > Rust > Python. Existing deployment/runtime requirements win; a Bun lockfile alone does not prove the application runs on Bun. Check only the detected toolchain's version and compatibility, especially native addons and Node APIs under Bun.

Workflow

  1. Establish runtime, framework, package manager, supported versions and executable quality gates. Preserve existing Go/.NET projects; do not migrate them incidentally.
  2. Define request/response schemas, authentication and authorization boundaries, error mapping, pagination and idempotency where retries can duplicate writes. Read API design for contract changes.
  3. Implement the vertical slice using the selected stack's reference below. Keep blocking work out of async handlers; define cancellation, deadlines and resource cleanup for affected I/O.
  4. For caching, establish source of truth, key scope (including tenant), invalidation and failure behavior using caching strategy.
  5. Exercise a real request plus relevant malformed input, authorization, timeout and duplicate-request paths against isolated dependencies. Run the repository's checks for this stack.
  6. Report runtime and command evidence, including anything unverified. Hand delivery to finishing-dev; use performance-engineering for measured bottlenecks.

Stack Decisions and Gates

Commands below are templates: use existing script names, environment and package manager. Do not install unrelated toolchains or silently skip a required missing gate.

Detected stackGatesOperational trap
Bun / TypeScriptbun --version; bun run typecheck; bun run lint; bun run test; bun run buildRunning TypeScript does not typecheck it; verify deployment under Bun and native addon compatibility
Node.js / TypeScriptnode --version; pnpm run typecheck; pnpm run lint; pnpm run test; pnpm run buildUse npm/yarn instead when its lockfile owns the project; package manager is separate from runtime
Rustcargo fmt --check; cargo clippy --all-targets -- -D warnings; cargo test; cargo build --lockedBlocking work and a held lock across await can exhaust async workers
Python / uvuv run ruff check .; uv run ruff format --check .; uv run pytest; configured mypy/pyright commandSync SDK calls block an async endpoint; reuse and close clients with application lifetime
Existing Gogofmt -l .; go vet ./...; go test -race ./...; go build ./...Nonempty gofmt output fails acceptance even with exit 0; every goroutine needs an exit path
Existing .NETdotnet format --verify-no-changes; dotnet build -warnaserror; dotnet testPropagate CancellationToken; never capture scoped dependencies in singletons

Reference Routing

  • Bun and Node implementation: backend-node.md; inspect Bun's Node compatibility before assuming parity. Use NestJS only for that framework.
  • Rust ownership, errors and async: rust-best-practices.md.
  • Python services: backend-python.md; FastAPI for Pydantic and dependency lifetimes.
  • Existing Go: go-best-practices.md. Existing .NET: architecture, async, EF Core.
  • Circuit breakers, bulkheads, and at-least-once delivery with dedup for service-to-service calls: resilience-patterns.md.
  • pnpm, uv, Ruff, prek, Dependabot and other toolchain/package-manager work: package-management.
  • Language troubleshooting and other topics not covered above: Reference Map.

Stop

  • Required checks fail, dependencies cannot be isolated, or the target runtime cannot execute the service: report the blocker before claiming completion.
  • A change needs live database mutation or deployment outside existing authorization: prepare and validate the change before requesting that action.
  • A retry can duplicate a side effect, tenant data crosses a cache key, or owned background work has no shutdown path: repair the contract.

Rules

  • Hand schemas and migrations to data-engineering, deployment to cloud-devops, architecture to software-architecture, and focused security assessment to security-ops.
  • Public responses must not leak dependency errors or credentials; preserve error causes internally for diagnosis.
  • Avoid unbounded concurrency and per-request client pools. Bound work using measured capacity and the downstream limit.
  • Bun is the first greenfield option, not permission to replace an established runtime, lockfile or test runner.

Checklist

  • Runtime, package manager and quality gates match manifests and deployment.
  • Contract, failure and resource lifetime behavior implemented and tested.
  • Applicable formatting, lint, typecheck, tests and build pass.
  • Real request evidence recorded; performance claims measured.

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.