Assess Migration
mendixlabs/mxcli
Investigate an existing non-Mendix application (Java, .NET, Python, Node, PHP, …) and produce a structured migration assessment for Mendix.
Backend service implementation patterns, standards, and procedures.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-implementing-backend --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/tsh-implementing-backend .claude/skills/tsh-implementing-backend && rm -rf skills-srcUse ~/.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/
Install the "tsh-implementing-backend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-implementing-backend into .claude/skills/tsh-implementing-backend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-implementing-backend", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-implementing-backendType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-implementing-backend --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/tsh-implementing-backend .agents/skills/tsh-implementing-backend && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tsh-implementing-backend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-implementing-backend into .agents/skills/tsh-implementing-backend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-implementing-backend", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-implementing-backend --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/tsh-implementing-backend .cursor/skills/tsh-implementing-backend && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tsh-implementing-backend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-implementing-backend into .cursor/skills/tsh-implementing-backend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-implementing-backend", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TheSoftwareHouse/copilot-collections.git --path .github/skills/tsh-implementing-backend--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-implementing-backend --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/tsh-implementing-backend .gemini/skills/tsh-implementing-backend && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tsh-implementing-backend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-implementing-backend into .gemini/skills/tsh-implementing-backend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-implementing-backend", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-implementing-backendInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/tsh-implementing-backend .github/skills/tsh-implementing-backend && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tsh-implementing-backend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-implementing-backend into .github/skills/tsh-implementing-backend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-implementing-backend", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-implementing-backend --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/tsh-implementing-backend .opencode/skills/tsh-implementing-backend && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tsh-implementing-backend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-implementing-backend into .opencode/skills/tsh-implementing-backend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-implementing-backend", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tsh-implementing-backendBackend service implementation patterns, standards, and procedures.
Tsh Implementing Backend is an agent skill from TheSoftwareHouse/copilot-collections. Backend service implementation patterns, standards, and procedures. Use for building REST/GraphQL APIs, implementing CRUD endpoints, database handling, authentication, testing strategies, external service integrations, filtering/pagination (DataGrid), logging, Docker setup, and modular architecture. Applies to Node.js, PHP, .NET, Java, and Go backends.
Its SKILL.md is about 5.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/dotnet-patterns.md`, `references/go-patterns.md` and `references/java-spring-boot-patterns.md`).
It sits in Backend & APIs, covering Authentication, GraphQL and Test strategy. It works with Docker, Java, PHP and .NET. The repository describes itself as: Opinionated AI-enabled workflows for product engineering. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2fbe51e. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
docker-composenpmFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tsh Implementing Backend loads about 5.8k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 95 tokens; SKILL.md has 2,335 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
- Use `.env` files for local development with a `.env.dist` (or `.env.example`) template committed to the repo.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.
The full file from TheSoftwareHouse/copilot-collections at commit 2fbe51e, republished under its MIT licence (© TheSoftwareHouse). 2,335 words, ~5,823 tokens.
.claude/skills/tsh-implementing-backend/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Provides patterns for building backend API services with modular architecture, structured testing, and production-ready infrastructure following TSH best practices.
| Principle | Application |
|---|---|
| SRP | Each class/module has one reason to change. Controllers handle HTTP, services handle business logic, repositories handle data access. |
| DRY | Extract shared logic into reusable services or utilities. Do not duplicate validation, mapping, or query logic. |
| KISS | Prefer simple, readable solutions. Avoid over-engineering. Do not add abstractions until they are needed. |
| YAGNI | Do not build features or infrastructure "just in case". Implement what is needed now. |
| Pragmatism | Follow patterns when they add value. Break rules when strict adherence creates unnecessary complexity. Document the reasoning. |
Organize code by domain/feature, not by technical layer. All artifacts related to a domain live in the same directory.
src/
├── users/
│ ├── users.controller.ts # HTTP layer (routes, request/response)
│ ├── users.service.ts # Business logic
│ ├── users.repository.ts # Data access
│ ├── users.module.ts # Module registration / DI wiring
│ ├── dto/
│ │ ├── create-user.dto.ts
│ │ └── update-user.dto.ts
│ ├── entities/
│ │ └── user.entity.ts
│ ├── tests/
│ │ ├── users.integration.test.ts
│ │ └── users.service.unit.test.ts
│ └── users.swagger.yml # (if using separate swagger files)
├── orders/
│ ├── orders.controller.ts
│ ├── orders.service.ts
│ ├── orders.repository.ts
│ └── ...
├── shared/ # Cross-cutting concerns only
│ ├── middleware/
│ ├── guards/
│ ├── filters/
│ ├── interceptors/
│ └── utils/
└── config/
├── database.config.ts
├── auth.config.ts
└── app.config.tsRules:
shared/ only when used by 3+ modules. Otherwise keep them in the feature module.| Method | Path | Purpose | Success Code |
|---|---|---|---|
GET | /resources | List with filtering, sorting, pagination | 200 |
GET | /resources/:id | Single resource details | 200 |
POST | /resources | Create resource | 201 |
PATCH | /resources/:id | Partial update | 200 |
PUT | /resources/:id | Full replace (use sparingly) | 200 |
DELETE | /resources/:id | Remove resource | 204 |
Naming conventions:
/users, /orders, /products/order-items/users/:id/orders (avoid deeper nesting)| Code | Meaning |
|---|---|
400 | Validation errors (malformed request body, missing fields) |
401 | Unauthenticated (missing or invalid token) |
403 | Unauthorized (valid token but insufficient permissions) |
404 | Resource not found |
409 | Conflict (e.g. duplicate unique field) |
422 | Business logic errors (foreign key violation, state conflict) |
500 | Unexpected server error (never expose stack traces in production) |
{
"statusCode": 400,
"error": "Bad Request",
"message": "Validation failed",
"details": [
{ "field": "email", "message": "must be a valid email address" }
]
}Every list endpoint returning paginated data MUST follow this schema.
| Parameter | Format | Description |
|---|---|---|
page | page=1 | Page number (starting from 1) |
limit | limit=10 | Max results per page |
sort[field] | sort[lastName]=ASC | Sort by field, direction: ASC or DESC |
filter[field] | filter[firstName]=John | Filter by field value |
search | search=john | General text search (implementation-specific: LIKE, full-text, etc.) |
Example: GET /users?page=1&limit=10&sort[lastName]=ASC&filter[status]=active&search=john
OR:?filter[firstName]=Ewa&filter[firstName]=Adam
→ WHERE (firstName = 'Ewa' OR firstName = 'Adam')AND:?filter[firstName]=Ewa&filter[lastName]=Kowalska
→ WHERE (firstName = 'Ewa' AND lastName = 'Kowalska')%25 suffix:?filter[lastName]=Now%25
→ WHERE lastName LIKE 'Now%'| Operator | SQL Equivalent | Example |
|---|---|---|
eq | = | filter[status][eq]=active |
neq | <> | filter[status][neq]=deleted |
lt, lte | <, <= | filter[age][lt]=30 |
gt, gte | >, >= | filter[age][gte]=18 |
include | LIKE %val% | filter[name][include]=john |
in | IN (...) | filter[status][in]=active,pending |
{
"meta": {
"pagination": {
"page": 1,
"limit": 10,
"total": 57,
"totalPages": 6
},
"filter": {
"status": "active"
},
"sort": {
"lastName": "ASC"
},
"search": "john"
},
"data": [{ "..." }]
}Rules:
meta always reflects the actual applied parameters back to the client.limit should be defined in app configuration (e.g. 20 or 50).limit should be capped to prevent abuse (e.g. 100 or 250).Authorization header: Bearer <token>.exp), and issuer (iss) on every protected request.GET /me endpoint that returns the profile of the currently authenticated user.sub claim) and return the full user profile.GET /me
Authorization: Bearer <token>
→ 200 { "id": "...", "email": "...", "roles": [...] }See the technology-specific references below for recommended DI frameworks per language.
up (apply) and down (revert) methods.2025-02-08-add-status-column-to-orders.seed-users.ts, seed-products.ts).UUID or ULID for primary keys where appropriate (better for distributed systems).order_items, created_at).created_at and updated_at timestamps.deleted_at) when business rules require record retention.When integrating with external APIs, always create a dedicated client/adapter class.
src/
├── integrations/
│ ├── payment-gateway/
│ │ ├── payment-gateway.client.ts # HTTP calls, request/response mapping
│ │ ├── payment-gateway.types.ts # External API types/interfaces
│ │ └── payment-gateway.module.ts # DI registration
│ ├── email-provider/
│ │ ├── email-provider.client.ts
│ │ └── ...| Level | What to Test |
|---|---|
| Unit Tests | Pure business logic in services, domain models, utility functions. Mock all external dependencies. |
| Integration Tests | API endpoints end-to-end (HTTP request → response). Use a real test database. |
| E2E Tests | Critical user flows across the full stack. |
See the technology-specific references below for recommended testing tools per language.
describe('POST /users', () => {
it('should create a user and return 201', async () => {
// Arrange
const payload = { email: 'test@example.com', name: 'Test User' };
// Act
const response = await request(app).post('/users').send(payload);
// Assert
expect(response.status).toBe(201);
expect(response.body.data.email).toBe('test@example.com');
});
it('should return 400 for invalid email', async () => {
const response = await request(app).post('/users').send({ email: 'invalid' });
expect(response.status).toBe(400);
});
});should throw InsufficientFundsError when balance is below transfer amount.swagger.yml file split by domain./api-docs endpoint.See the technology-specific references below for recommended Swagger tooling per language.
Dockerfile and docker-compose.yml for local development.docker-compose.yml should include all required services: app, database (PostgreSQL), cache (Redis), mail catcher (Mailhog), etc.docker-compose.override.yml for developer-specific customizations (additional ports, volumes, debug settings).docker-compose up command.node:20-alpine, php:8.3-fpm-alpine, mcr.microsoft.com/dotnet/aspnet:8.0)..dockerignore to exclude build artifacts, test files, etc.Every application must expose a GET /health endpoint:
200 with status information.{
"status": "ok"
}For more thorough health checks, optionally verify database connectivity and critical service availability.
console.log or print in production.timestamp, level, requestId/correlationId, userId (if authenticated), service.See the technology-specific references below for recommended logging libraries per language.
| Level | When to Use |
|---|---|
error | Unexpected failures, unhandled exceptions, critical issues |
warn | Recoverable issues, deprecation notices, approaching limits |
info | Significant business events: user created, order placed, payment processed |
debug | Detailed diagnostic information (disabled in production) |
correlationId / requestId header through the entire request lifecycle for tracing.* in production.npm audit, Snyk, or Dependabot..env files for local development with a .env.dist (or .env.example) template committed to the repo.database, auth, cache, externalServices.When implementing a new backend feature, follow this workflow:
Implementation progress:
- [ ] Step 1: Understand the requirements
- [ ] Step 2: Design the data model
- [ ] Step 3: Create migration(s)
- [ ] Step 4: Implement the domain layer (entities, services, repositories)
- [ ] Step 5: Implement the API layer (controllers, DTOs, validation)
- [ ] Step 6: Add authentication/authorization guards
- [ ] Step 7: Write integration tests for endpoints
- [ ] Step 8: Write unit tests for business logic
- [ ] Step 9: Document the API (Swagger)
- [ ] Step 10: Verify logging and error handlingStep 1: Understand the requirements Read the task description, acceptance criteria, and any research documents. Clarify ambiguities before starting.
Step 2: Design the data model Define entities, relationships, indexes, and constraints. Review with the team if the model is non-trivial.
Step 3: Create migration(s)
Generate migration files for all schema changes. Ensure both up and down are implemented. Run and verify locally.
Step 4: Implement the domain layer Create entity classes, repository interfaces and implementations, and service classes with business logic. Follow vertical slice structure.
Step 5: Implement the API layer Create controllers with proper HTTP methods. Define DTOs for request/response. Add input validation. Follow the DataGrid standard for list endpoints.
Step 6: Add authentication/authorization guards Apply JWT validation middleware. Add role/permission checks as needed. Implement resource-level authorization.
Step 7: Write integration tests Test every endpoint: success and error paths. Verify response structure, status codes, and database side effects.
Step 8: Write unit tests Test business logic in services. Mock dependencies. Cover edge cases and error scenarios.
Step 9: Document the API
Add or update Swagger/OpenAPI documentation. Verify docs render correctly at /api-docs.
Step 10: Verify logging and error handling Ensure requests are logged, errors produce structured log entries, and no sensitive data leaks in logs or responses.
The patterns above are language-agnostic. For technology-specific implementation guidance, load the appropriate reference:
./references/nodejs-patterns.md — NestJS/Express DI, Jest/Supertest testing, Pino/Winston logging, TypeORM/Prisma ORM, Swagger integration../references/php-patterns.md — Symfony/Laravel DI, PHPUnit testing, Monolog logging, Doctrine/Eloquent ORM, Swagger integration../references/dotnet-patterns.md — built-in DI, xUnit testing, Serilog logging, Entity Framework ORM, Swashbuckle Swagger../references/java-spring-boot-patterns.md — Spring IoC, JUnit/REST Assured testing, SLF4J/Logback logging, Hibernate ORM, springdoc-openapi, Spring Cloud Stream async messaging../references/go-patterns.md — Wire/Fx DI, Go testing, Zap logging, GORM ORM, swaggo Swagger.tsh-sql-and-database-understanding — for database schema design, query optimization, and ORM integrationtsh-technical-context-discovering — for understanding project conventions before implementingtsh-implementation-gap-analysing — for verifying current state before making changestsh-codebase-analysing — for understanding existing architecture and patternstsh-implementing-ci-cd — for CI/CD pipeline setup and deployment strategiestsh-implementing-observability — for logging, monitoring, and distributed tracingtsh-managing-secrets — for secure credential storage and rotationtsh-e2e-testing — for end-to-end testing with Playwrighttechnical-context-discovery — for establishing project conventions before implementingarchitecture-design — for designing complex feature architecturescode-review — for validating implemented code against these standardse2e-testing — for E2E test patterns when full-stack testing is needed© TheSoftwareHouse, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in .github/skills/tsh-implementing-backend of TheSoftwareHouse/copilot-collections.
Open the folder on GitHubat commit 2fbe51e
Tsh Implementing 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tsh Implementing Backend this skillTheSoftwareHouse/copilot-collections | 284 | — | ~5.8k | Automated safety check: Notes | MIT | |
| Assess Migrationmendixlabs/mxcli | 128 | — | ~3.6k | Automated safety check: Notes | Apache-2.0 | |
| Detecting Insecure Deserializationjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Testcontainers Guide Migratordocker/docs | 4.7k | — | ~5k | Automated safety check: Pass | Apache-2.0 | |
| Dt Obs ServicesDynatrace/dynatrace-for-ai | 161 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Copilot SDKintellectronica/agent-skills | 295 | — | ~3.2k | Automated safety check: Pass | CC0-1.0 |
mendixlabs/mxcli
Investigate an existing non-Mendix application (Java, .NET, Python, Node, PHP, …) and produce a structured migration assessment for Mendix.
jeremylongshore/tons-of-skills-marketplace
Scan a source tree for unsafe-by-default deserialization APIs: Python pickle.loads / cPickle / shelve / dill, Ruby Marshal.load / YAML.load (pre-3.1 default), Java ObjectInputStream.readObject, PHP…
docker/docs
Migrate a Testcontainers guide from testcontainers.com into the Docker docs site (docs.docker.com).
Dynatrace/dynatrace-for-ai
Service performance monitoring with RED metrics (Rate, Errors, Duration) and runtime-specific telemetry for Java, .NET, Node.js, Python, PHP, and Go.
intellectronica/agent-skills
This skill helps with GitHub Copilot SDK work across Node.js/TypeScript, Python, Go, .NET, and Java.
shopsys/shopsys
The command catalog for this Shopsys project — how to build, run, test, check code, access the database, and sync the GraphQL schema, including the macOS Mutagen workflow.
TheSoftwareHouse/copilot-collections
Create new skills (SKILL.md) for GitHub Copilot. An agent skill from TheSoftwareHouse/copilot-collections.
TheSoftwareHouse/copilot-collections
Frontend component patterns, composition, design token integration, barrel file organization, error handling, and Figma-to-code workflow.
TheSoftwareHouse/copilot-collections
Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices.
TheSoftwareHouse/copilot-collections
Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management.
TheSoftwareHouse/copilot-collections
Frontend-specific code review criteria, component anti-patterns, hooks quality, rendering correctness, accessibility and performance spot-checks, and module organization issues.
TheSoftwareHouse/copilot-collections
Custom hook and composable patterns — naming, composition, stable return shapes, lifecycle cleanup, and testing strategies.
Categories
Backend service implementation patterns, standards, and procedures. Tsh Implementing Backend is an agent skill from TheSoftwareHouse/copilot-collections. Backend service implementation patterns, standards, and procedures.
Tsh Implementing Backend fits situations like: building REST/GraphQL APIs; implementing CRUD endpoints; database handling; testing strategies.
Run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a claude-code`. Or copy the skill folder (.github/skills/tsh-implementing-backend in TheSoftwareHouse/copilot-collections) into .claude/skills/tsh-implementing-backend in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-backend -a codex`. Or copy the skill folder (.github/skills/tsh-implementing-backend in TheSoftwareHouse/copilot-collections) into .agents/skills/tsh-implementing-backend in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-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/tsh-implementing-backend, .gemini/skills/tsh-implementing-backend, .github/skills/tsh-implementing-backend and .opencode/skills/tsh-implementing-backend in your project.
Going by SKILL.md and its folder, Tsh Implementing Backend needs the command-line tools its instructions call (docker-compose and npm). Our summary lists: Node.js; Docker.
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.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Tsh Implementing Backend is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.8k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Tsh Implementing Backend: Assess Migration (mendixlabs/mxcli, 128 stars), Detecting Insecure Deserialization (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Testcontainers Guide Migrator (docker/docs, 4.7k stars) and Dt Obs Services (Dynatrace/dynatrace-for-ai, 161 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TheSoftwareHouse (a GitHub organization) maintains it in TheSoftwareHouse/copilot-collections, which has 284 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 5, 2026.
Source: TheSoftwareHouse/copilot-collections on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.