Skip to content
Back to skills

Create Resource

ASecurity

Orchestrator skill for creating a complete CRUD resource with all layers. Use when creating a new domain entity like notes, users, or courses from scratch. Triggers on "create resource", "new entity", "add crud for".

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
toolstypescriptgobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 10, 2026

npx -y skills add majiayu000/claude-skill-registry --skill create-resource --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Create Resource?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Create Resource
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-create-resource/badge)](https://www.skillsdirectory.com/skills/majiayu000-create-resource)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: create-resource
description: Orchestrator skill for creating a complete CRUD resource with all layers. Use when creating a new domain entity like notes, users, or courses from scratch. Triggers on "create resource", "new entity", "add crud for".
---

# Create Resource (Orchestrator)

Complete workflow for creating a new CRUD resource with all layers, tests, and real-time events.

## Overview

This skill orchestrates the creation of a complete resource by guiding you through all the required skills in the correct order.

## Prerequisites

Before starting, you should know:

- **Entity name** (e.g., "Course", "Project", "Task")
- **Entity fields** (what data does it hold?)
- **Business rules** (who can do what?)

## Creation Workflow

### Phase 1: Schema Layer

| Step | Skill           | Output                                  |
| ---- | --------------- | --------------------------------------- |
| 1    | `create-schema` | `src/schemas/{entity}.schema.ts`        |
| 2    | `test-schema`   | `tests/schemas/{entity}.schema.test.ts` |

**Creates**: Zod schemas for entity, create DTO, update DTO, query params, and TypeScript types.

### Phase 2: Repository Layer

| Step | Skill                       | Output                                                    |
| ---- | --------------------------- | --------------------------------------------------------- |
| 3    | `create-repository`         | `src/repositories/{entity}.repository.ts`                 |
| 4    | `create-mockdb-repository`  | `src/repositories/mockdb/{entity}.mockdb.repository.ts`   |
| 5    | `test-mockdb-repository`    | `tests/repositories/{entity}.mockdb.repository.test.ts`   |
| 6    | `create-mongodb-repository` | `src/repositories/mongodb/{entity}.mongodb.repository.ts` |
| 7    | `test-mongodb-repository`   | `tests/repositories/{entity}.mongodb.repository.test.ts`  |

**Creates**: Repository interface and implementations for MockDB and MongoDB.

### Phase 3: Service Layer

| Step | Skill                       | Output                                         |
| ---- | --------------------------- | ---------------------------------------------- |
| 8    | `create-resource-service`   | `src/services/{entity}.service.ts`             |
| 9    | `add-authorization-methods` | Update `src/services/authorization.service.ts` |
| 10   | `test-resource-service`     | `tests/services/{entity}.service.test.ts`      |

**Creates**: Business logic service with authorization and event emission.

### Phase 4: Controller Layer

| Step | Skill               | Output                                          |
| ---- | ------------------- | ----------------------------------------------- |
| 11   | `create-controller` | `src/controllers/{entity}.controller.ts`        |
| 12   | `test-controller`   | `tests/controllers/{entity}.controller.test.ts` |

**Creates**: HTTP request handlers.

### Phase 5: Routes Layer

| Step | Skill              | Output                                 |
| ---- | ------------------ | -------------------------------------- |
| 13   | `create-routes`    | `src/routes/{entity}.router.ts`        |
| 14   | `integrate-routes` | Update `src/app.ts` to mount routes    |
| 15   | `test-routes`      | `tests/routes/{entity}.router.test.ts` |

**Creates**: Route definitions with middleware, integrated into app.

### Phase 6: Events (Optional)

| Step | Skill                 | Output               |
| ---- | --------------------- | -------------------- |
| 16   | `add-resource-events` | Update events router |

**Creates**: Real-time SSE event streaming for the resource.

## Files Created Summary

```
src/
├── schemas/
│   └── {entity}.schema.ts          # Zod schemas + types
├── repositories/
│   ├── {entity}.repository.ts      # Interface
│   ├── mockdb/
│   │   └── {entity}.mockdb.repository.ts
│   └── mongodb/
│       └── {entity}.mongodb.repository.ts
├── services/
│   ├── {entity}.service.ts         # Business logic
│   └── authorization.service.ts    # Updated with permissions
├── controllers/
│   └── {entity}.controller.ts      # HTTP handlers
├── routes/
│   ├── {entity}.router.ts          # Route definitions
│   └── events.router.ts            # Updated for SSE
└── app.ts                          # Updated to mount routes

tests/
├── schemas/
│   └── {entity}.schema.test.ts
├── repositories/
│   ├── {entity}.mockdb.repository.test.ts
│   └── {entity}.mongodb.repository.test.ts
├── services/
│   └── {entity}.service.test.ts
├── controllers/
│   └── {entity}.controller.test.ts
└── routes/
    └── {entity}.router.test.ts
```

## Quick Start Checklist

```markdown
## Creating {Entity} Resource

### Phase 1: Schema

- [ ] Create schema with `create-schema`
- [ ] Add tests with `test-schema`
- [ ] Run tests: `pnpm test tests/schemas/{entity}.schema.test.ts`

### Phase 2: Repository

- [ ] Create interface with `create-repository`
- [ ] Create MockDB implementation with `create-mockdb-repository`
- [ ] Add MockDB tests with `test-mockdb-repository`
- [ ] Run tests: `pnpm test tests/repositories/{entity}.mockdb.repository.test.ts`
- [ ] Create MongoDB implementation with `create-mongodb-repository`
- [ ] Add MongoDB tests with `test-mongodb-repository`
- [ ] Run tests: `pnpm test tests/repositories/{entity}.mongodb.repository.test.ts`

### Phase 3: Service

- [ ] Create service with `create-resource-service`
- [ ] Add authorization methods with `add-authorization-methods`
- [ ] Add tests with `test-resource-service`
- [ ] Run tests: `pnpm test tests/services/{entity}.service.test.ts`

### Phase 4: Controller

- [ ] Create controller with `create-controller`
- [ ] Add tests with `test-controller`
- [ ] Run tests: `pnpm test tests/controllers/{entity}.controller.test.ts`

### Phase 5: Routes

- [ ] Create routes with `create-routes`
- [ ] Mount routes in app.ts with `integrate-routes`
- [ ] Add tests with `test-routes`
- [ ] Run tests: `pnpm test tests/routes/{entity}.router.test.ts`

### Phase 6: Events (Optional)

- [ ] Add event emission with `add-resource-events`
- [ ] Update events router

### Final Verification

- [ ] Run all tests: `pnpm test`
- [ ] Run type check: `pnpm type-check`
- [ ] Run linting: `pnpm lint`
- [ ] Test manually with API client
```

## Example: Creating a "Project" Resource

```bash
# Follow skills in order:
1. create-schema             → src/schemas/project.schema.ts
2. test-schema               → tests/schemas/project.schema.test.ts
3. create-repository         → src/repositories/project.repository.ts
4. create-mockdb-repository  → src/repositories/mockdb/project.mockdb.repository.ts
5. test-mockdb-repository    → tests/repositories/project.mockdb.repository.test.ts
6. create-mongodb-repository → src/repositories/mongodb/project.mongodb.repository.ts
7. test-mongodb-repository   → tests/repositories/project.mongodb.repository.test.ts
8. create-resource-service   → src/services/project.service.ts
9. add-authorization-methods → Update authorization.service.ts with canViewProject, etc.
10. test-resource-service    → tests/services/project.service.test.ts
11. create-controller        → src/controllers/project.controller.ts
12. test-controller          → tests/controllers/project.controller.test.ts
13. create-routes            → src/routes/project.router.ts
14. integrate-routes         → Update app.ts to mount /projects routes
15. test-routes              → tests/routes/project.router.test.ts
16. add-resource-events      → Update events.router.ts (optional)
```

## See Also

- Individual skill files for detailed instructions
- `review-resource` - Validate a completed resource follows all patterns
- `integrate-routes` - Mounting routes in app.ts
- `add-authorization-methods` - Adding entity permissions
- `add-query-filter` - Adding custom query filters
- `bootstrap-project` - Starting a new project from scratch

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.