Agent skill

Backend

by InsForge in InsForge/InsForge

A skill your agent uses when contributing to InsForge's backend package.

Apache-2.0Auto-check passedDevelopment

Install Backend

skills CLI
$ npx skills add InsForge/InsForge --skill backend -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install InsForge/InsForge backend --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/InsForge/InsForge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/insforge-dev/backend .claude/skills/backend && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
backend
GitHub stars
13k
Token cost
~1.7k tokens
SKILL.md length
858 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when contributing to InsForge's backend package.

  • Works in 6 steps: Keep the route -> service ->… → Follow backend conventions. → Write idempotent migrations. Every SQL… → …
  • Contributing to InsForges backend package
  • SKILL.md covers Scope, Working Rules and Validation
  • Calls npm

What it does

Backend is an agent skill from InsForge/InsForge. Use this skill when contributing to InsForge's backend package. This is for maintainers editing backend routes, services, providers, auth, database logic (including RLS-enforced surfaces like storage and realtime), schedules, or backend tests in the InsForge monorepo.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Monorepo tooling. It works with PostgreSQL. The repository describes itself as: The all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack… The licence is Apache-2.0.

When your agent uses it

  • Contributing to InsForges backend package
  • Tasks that involve Monorepo tooling

Example prompts

  • “/backend”

Requirements

  • Docker

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Keep the route -> service -> provider/infra split intact.
  2. Follow backend conventions.
  3. Write idempotent migrations. Every SQL migration must be safe to re-run.
  4. Preserve existing behavior around mutation flows.
  5. Use Postgres Row Level Security, not app-side filters, for tables accessed via authenticated end-user routes (anything where req.user…
  6. Always write unit tests for new code.

What it can do on your machine

Read from SKILL.md and the folder at commit 2ec64b6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Backend loads about 1.7k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 858 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~69
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from InsForge/InsForge at commit 2ec64b6, republished under its Apache-2.0 licence (© InsForge). 858 words, ~1,732 tokens.

Download SKILL.mdSave it as .claude/skills/backend/SKILL.md (or your agent's skills folder).
name
backend
description
Use this skill when contributing to InsForge's backend package. This is for maintainers editing backend routes, services, providers, auth, database logic (including RLS-enforced surfaces like storage and realtime), schedules, or backend tests in the InsForge monorepo.

InsForge Dev Backend

Use this skill for backend/ work in the InsForge repository.

Scope

  • backend/src/api/**
  • backend/src/services/**
  • backend/src/providers/**
  • backend/src/infra/**
  • backend/tests/**

Working Rules

  1. Keep the route -> service -> provider/infra split intact.

    • Routes handle auth, parsing, validation, and delegation.
    • Services own business logic and orchestration.
    • Providers and infra wrap external systems or lower-level integrations.
    • Service layer code should be the only layer that interacts with the core PostgreSQL database.
    • Do not put direct database access in routes.
    • Do not bypass services when reading from or writing to Postgres.
  2. Follow backend conventions.

    • Use ESM-style .js import specifiers in TypeScript source.
    • InsForge's core database is PostgreSQL.
    • InsForge currently runs as a single-instance server, so be careful about introducing logic that assumes distributed coordination, cross-instance locking, or background worker separation.
    • Reuse shared schemas from @insforge/shared-schemas when contracts cross packages.
    • Use safeParse plus AppError for invalid input.
    • Return successful results through successResponse.
    • Preserve existing auth middleware patterns such as verifyAdmin, verifyUser, and verifyApiKey.
    • Never use the TypeScript any type. Prefer precise interfaces, schema-derived types, unknown, or constrained generics.
    • A new environment variable must be documented in the repository's single .env.example. Every compose file reads that one file, so a variable missing from it is one self-hosters cannot discover — the S3 storage settings went undocumented that way for months.
    • deploy/coolify/docker-compose.yml and deploy/dokploy/docker-compose.yml carry identical service definitions apart from two lines: INSFORGE_DEPLOYMENT_METHOD, which telemetry reads to tell the two platforms apart, and the build context, which differs because Coolify builds with --project-directory <repo root> and Dokploy does not. Their header comments are per-platform by design. Change both, or one platform silently misses whatever you added.
    • For schema changes, write a new migration file instead of editing database structure manually.
    • Put schema changes under backend/src/infra/database/migrations/.
  3. Write idempotent migrations. Every SQL migration must be safe to re-run.

    • Use CREATE TABLE IF NOT EXISTS, CREATE INDEX IF NOT EXISTS, ADD COLUMN IF NOT EXISTS.
    • Never use bare ALTER TABLE ... RENAME TO — it fails if the target name already exists. Wrap renames in a DO block that checks information_schema.tables for both source and target.
    • Always DROP TRIGGER IF EXISTS before CREATE TRIGGER.
    • Guard data migrations and DROP COLUMN behind information_schema.columns checks when the column may already be gone.
    • Use ON CONFLICT or WHERE NOT EXISTS for seed INSERT statements.
  4. Preserve existing behavior around mutation flows.

    • Keep audit logging when surrounding routes already log state changes.
    • Keep error handling flowing through shared middleware.
    • Do not introduce a new response envelope unless the existing feature already uses one.
    • For critical flows with multiple dependent database writes, use an explicit transactional process so the whole operation succeeds or fails together.
    • Be especially careful with transactions around auth, secrets, billing-like usage updates, schema changes, and any flow that would leave the system inconsistent if partially applied.
  5. Use Postgres Row Level Security, not app-side filters, for tables accessed via authenticated end-user routes (anything where req.user reaches the service layer). RLS-enforced services such as storage, realtime, and payments should use withUserContext. Tables accessed only by admin or service-internal paths (audit logs, billing aggregations) don't need RLS. Do not write WHERE user_id = $1 filters in services; let RLS evaluate auth.jwt() ->> 'sub' against the row.

    • Plumb identity through withUserContext(pool, ctx, fn, settings?) from services/database/user-context.service.ts. It opens a transaction, sets SET LOCAL ROLE plus the canonical request.jwt.claims JSON GUC via set_config, applies optional transaction-local settings such as realtime.channel_name, runs fn, commits on success or rolls back on error, and resets role in finally so policies see the calling user via auth.jwt() ->> 'sub'.
    • Keep UserContext user-only and defined in api/middlewares/auth.ts: { id, role, email? } (id is always present at the API level). API keys and admin bypass flags do not belong inside UserContext.
    • Routes that issue out-of-band URLs (S3 presigned redirects, signed download links, anything the client redeems against a service that won't re-evaluate RLS) must do an explicit RLS-scoped existence check before handing the URL out — RLS does not fire when the client redeems the URL directly. See StorageService.objectIsVisible as the template.
    • Migrations that enable RLS on an existing populated table must auto-install a sensible default policy set so the upgrade does not silently break existing rows. See migration 036's IF EXISTS (SELECT 1 FROM <table>) THEN <create policies> END IF pattern.
    • When adding a new RLS-enforced table: enable RLS, GRANT table-level CRUD to authenticated, and write per-operation policies (SELECT, INSERT, UPDATE, DELETE). Public-bucket-style anonymous bypasses live at the route layer before calling the RLS helper, not in policies.
    • Normal raw SQL and custom migrations execute as project_admin. It has service-key row visibility, but PostgreSQL grants and ownership still limit object access and DDL.
  6. Always write unit tests for new code.

    • Every new feature, migration, service, or bug fix should have accompanying unit tests.
    • For migrations, write tests that validate SQL structure and idempotency guards (see tests/unit/redirect-url-whitelist-migration.test.ts for the pattern).
    • For services, test business logic and error cases.
    • For RLS-gated services, mock the pool/client and pin the SQL sequence (see tests/unit/user-context.service.test.ts and tests/unit/storage-object-is-visible.test.ts).
    • Run the full test suite before submitting work: cd backend && npm test.
Show full SKILL.md (21 more words)Show less

Validation

  • cd backend && npm test
  • cd backend && npm run build

For contract changes, also validate packages/shared-schemas/ and any affected dashboard consumers.

© InsForge, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .codex/skills/insforge-dev/backend of InsForge/InsForge.

Open the folder on GitHubat commit 2ec64b6

Compare with similar skills

Backend next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Backend compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Backend this skillInsForge/InsForge13k—~1.7kAutomated safety check: PassApache-2.0
Building And VerifyingNangoHQ/nango13k—~902Automated safety check: PassCustom licence
Codebase Contexthomarr-labs/homarr5k—~659Automated safety check: PassApache-2.0
Linea Dependency MaintenanceConsensys-Incorporated/linea-attestation-registry1771 repos~3.7kAutomated safety check: WarnMIT
Dependabot Alerts Updatelivesession/xyd114—~2kAutomated safety check: PassMIT
Add Moox Packagemooxphp/moox156—~1.9kAutomated safety check: PassMIT

Similar skills

  • A skill your agent uses when building the Nango monorepo or verifying TypeScript compilation - covers build commands, project references, common tsc errors, and package dependency order

    13k GitHub stars~902 tokensUpdated today
    DevelopmentAuto-check passed
  • Codebase Context

    homarr-labs/homarr

    Navigate Homarr's monorepo architecture and reuse shared packages.

    5k GitHub stars~659 tokensUpdated today
    DevelopmentAuto-check passed
  • Linea Dependency Maintenance

    Consensys-Incorporated/linea-attestation-registry

    Safely plan and execute dependency maintenance for JavaScript/TypeScript (npm, pnpm) and GitHub Actions, including npm lockfiles, pnpm workspaces, catalogs, overrides, SHA-pinned action versions…

    177 GitHub starsUsed in 1 repo~3.7k tokens
    DevelopmentAuto-check: warnings
  • Automatically fetch and fix Dependabot security alerts by querying GitHub REST API for open alerts, identifying vulnerable packages, researching secure versions, and updating package.json files…

    114 GitHub stars~2k tokensUpdated 15 days ago
    DevelopmentAuto-check passed
  • Add Moox Package

    mooxphp/moox

    Add, enable, or start using a package in a monorepo-consuming Laravel project — both Moox monorepo packages (moox/) and the project's own packages.

    156 GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Windmill Rust Backend Patterns

    windmill-labs/windmill

    Sets Rust conventions for the Windmill backend: error types, SQLx queries, JSON handling, async rules, module layout and rust-analyzer navigation.

    18k GitHub stars~869 tokensUpdated today
    DevelopmentAuto-check passed

More from InsForge/InsForge

All 8 skills in this repo
  • Doc Author

    InsForge/InsForge

    Write, edit, and maintain documentation. An agent skill from InsForge/InsForge.

    13k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • E2E Testing

    InsForge/InsForge

    A skill your agent uses when an InsForge maintainer has finished an OSS repo change and is ready to open, update, or submit the InsForge PR.

    13k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Dashboard

    InsForge/InsForge

    A skill your agent uses when contributing to InsForge's shared dashboard package.

    13k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Docs

    InsForge/InsForge

    A skill your agent uses when contributing to InsForge's product documentation in this repository.

    13k GitHub stars~761 tokensUpdated today
    Auto-check passed
  • Insforge Dev

    InsForge/InsForge

    Use this skill set when contributing to the InsForge monorepo itself.

    13k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Shared Schemas

    InsForge/InsForge

    A skill your agent uses when contributing to InsForge's shared schema package.

    13k GitHub stars~628 tokensUpdated today
    Auto-check passed

Works with

Questions about Backend

What does Backend do?

A skill your agent uses when contributing to InsForge's backend package. Backend is an agent skill from InsForge/InsForge. Use this skill when contributing to InsForge's backend package.

When should I use Backend?

Backend fits situations like: contributing to InsForges backend package; tasks that involve Monorepo tooling.

How do I install Backend in Claude Code?

Run `npx skills add InsForge/InsForge --skill backend -a claude-code`. Or copy the skill folder (.codex/skills/insforge-dev/backend in InsForge/InsForge) into .claude/skills/backend in your project. Claude Code loads it when a task matches its description.

How do I install Backend in Codex?

Run `npx skills add InsForge/InsForge --skill backend -a codex`. Or copy the skill folder (.codex/skills/insforge-dev/backend in InsForge/InsForge) into .agents/skills/backend in your project. Codex loads it when a task matches its description.

Can I use Backend in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add InsForge/InsForge --skill backend -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/backend, .gemini/skills/backend, .github/skills/backend and .opencode/skills/backend in your project.

What does Backend need to run?

Going by SKILL.md and its folder, Backend needs the command-line tools its instructions call (npm). Our summary lists: Docker.

Does Backend access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Backend safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Backend use?

Backend is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Backend use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Backend?

Skills that share tags, products or a category with Backend: Building And Verifying (NangoHQ/nango, 13k stars), Codebase Context (homarr-labs/homarr, 5k stars), Linea Dependency Maintenance (Consensys-Incorporated/linea-attestation-registry, 177 stars) and Dependabot Alerts Update (livesession/xyd, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Backend?

InsForge (a GitHub organization) maintains it in InsForge/InsForge, which has 13,064 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.

Source: InsForge/InsForge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.