Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    madooei

    create-resource

    madooei/create-resource
    Coding
    1
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    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...

    SKILL.md

    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

    ## 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

    # 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
    Recommended Servers
    Confluence
    Confluence
    tldraw
    tldraw
    Google Docs
    Google Docs
    Repository
    madooei/backend-template
    Files