Agent SkillsAjayIrkal23/agentic-mercy-10x › service-layer-standards

service-layer-standards

GitHub

定义后端服务层与控制器层的职责边界,规范业务逻辑归属、输入输出契约及目录结构,确保控制器薄化与服务层独立。

skills/service-layer-standards/SKILL.md AjayIrkal23/agentic-mercy-10x

Trigger Scenarios

拆分大型后端模块 审查控制器纪律 决定逻辑归属

Install

npx skills add AjayIrkal23/agentic-mercy-10x --skill service-layer-standards -g -y
More Options

Use without installing

npx skills use AjayIrkal23/agentic-mercy-10x@service-layer-standards

指定 Agent (Claude Code)

npx skills add AjayIrkal23/agentic-mercy-10x --skill service-layer-standards -a claude-code -g -y

安装 repo 全部 skill

npx skills add AjayIrkal23/agentic-mercy-10x --all -g -y

预览 repo 内 skill

npx skills add AjayIrkal23/agentic-mercy-10x --list

SKILL.md

Frontmatter
{
    "name": "service-layer-standards",
    "schema": 1,
    "category": "general",
    "surfaces": [
        "general"
    ],
    "triggers": {
        "paths": [
            "\/models\/",
            "controller",
            "internal\/",
            "internal\/models\/",
            "server\/",
            "service"
        ],
        "intents": [
            "general"
        ],
        "keywords": [
            "api",
            "auth",
            "backend",
            "behavior",
            "contract",
            "controller",
            "integration",
            "layer",
            "persistence",
            "queue",
            "requested",
            "route",
            "schema",
            "server",
            "service",
            "standards",
            "task",
            "validation",
            "worker"
        ]
    },
    "platforms": [
        "linux",
        "darwin",
        "windows"
    ],
    "token-cost": 1028,
    "description": "ALWAYS invoke when any backend API, route, controller, schema, service, contract, persistence, auth, validation, worker, queue, integration, or server behavior task is requested.",
    "disable-model-invocation": false
}

Service Layer Standards

Overview

Controllers orchestrate. Services own business logic.

Load this together with backend-standards-always-follow for every backend trigger surface.

If important backend logic sits in controllers, the boundary is broken.

Use When

  • Deciding whether logic belongs in a controller, service, model helper, helper, or mapper.
  • Reviewing thin-controller discipline.
  • Defining service inputs, outputs, and transaction ownership.
  • Splitting large backend modules into cleaner layers.

Do Not Use

  • Response envelope design by itself.
  • Detailed list/search query semantics by itself.
  • Pure performance tuning without service-boundary questions.

Controller Rules

Controllers may:

  • read already-validated params, query, and body input
  • call services
  • return transport responses
  • pass errors to centralized handling

Controllers must not:

  • perform DB queries
  • implement business rules
  • build complex filters
  • heavily transform domain data
  • call external systems directly unless the controller is only delegating to a service wrapper

Service Rules

Services must:

  • own business logic
  • own DB access directly or through collection model helpers
  • own filtering, sorting, pagination, and domain-rule enforcement
  • throw typed domain errors when business rules fail
  • stay deterministic relative to their inputs

Services must not:

  • depend on req, res, reply, next, or transport objects
  • set cookies or headers
  • return framework-specific response objects

Input And Output Contracts

  • Prefer one typed input object for service calls.
  • Inputs should already be validated and normalized.
  • Outputs should be plain JSON-safe objects or DTOs.
  • Do not return raw DB documents when internal fields should stay private.

Typical Layout

/routes/index.ts
/routes/{domain}/index.ts
/routes/{domain}/{action}.route.ts
/controllers/index.ts
/controllers/{domain}/index.ts
/controllers/{domain}/{action}.controller.ts
/controllers/{domain}/{feature}/{action}.controller.ts
/schemas/{domain}/{action}.schema.ts
/schemas/{domain}/{feature}/{action}.schema.ts
/schemas/{domain}/{feature}/index.ts
/types/{domain}/{name}.ts
/services/{domain}/{action}.service.ts
/services/{domain}/{feature}/index.ts
/services/{domain}/{feature}/{action}.service.ts
/services/{domain}/{feature}/shared.ts
/services/{domain}/{feature}/audit.ts
/services/{domain}/{feature}/reference.ts
/services/{domain}/{feature}/constraints.ts
/services/{domain}/{feature}/deleteGuards.service.ts
/services/{domain}/{feature}/lookupToken.service.ts
/services/{domain}/{feature}/mapping.ts
/services/{domain}/{feature}/normalization.ts
/services/{domain}/{feature}/snapshot.ts
/services/{domain}/{feature}/core.ts
/models/<collectionName>.model.ts
/utils/{domain}/query.ts
/utils/{domain}/mappers.ts

If the repo uses controller-mirror feature folders, prefer the repo-local feature layout and feature barrels over inventing flat per-action service files. If the repo uses a different but consistent service location, follow that local pattern rather than inventing a new one.

Cross-Cutting Concerns

  • Transactions belong in services.
  • External integrations should be wrapped in dedicated services.
  • Minimal business-event logging is fine in services; request-context logging belongs closer to transport boundaries.

File Size Rule

  • Treat 250 lines as the hard limit for manually maintained backend source files.
  • If a touched service, controller, route, schema, worker, or helper exceeds 250 lines, split it before adding more behavior unless the user explicitly scopes that cleanup out.
  • Split large services into query builders, mappers, policies, validators, or integration helpers before they become opaque.

References

  • Use references/full-guide.md when you need the full strict version with examples and edge-case notes.

Completion Checklist

  • Controller and service responsibilities are clean.
  • Service contracts are typed and transport-free.
  • Business logic sits in services.
  • Large service files were decomposed where needed.

Version History

  • 581d130 Current 2026-07-19 09:14

Same Skill Collection

attic/2026-07-09/skills-pre-update/taste-skill/SKILL.md
attic/2026-07-09/skills-pre-update/ui-ux-pro-max/SKILL.md
skills/agent-development/SKILL.md
skills/api-and-interface-design/SKILL.md
skills/api-contract-standards/SKILL.md
skills/architect-system-design/SKILL.md
skills/backend-api-standards/SKILL.md
skills/backend-code-review/SKILL.md
skills/backend-error-handling/SKILL.md
skills/backend-performance-standards/SKILL.md
skills/backend-standards-always-follow/SKILL.md
skills/canary-playwright/SKILL.md
skills/caveman/SKILL.md
skills/ci-cd-and-automation/SKILL.md
skills/code-execution-standard/SKILL.md
skills/code-review-and-quality/SKILL.md
skills/code-simplification/SKILL.md
skills/codebase-design/SKILL.md
skills/codebase-start-point-guide/SKILL.md
skills/command-development/SKILL.md
skills/composition-patterns/SKILL.md
skills/context-engineering/SKILL.md
skills/dead-code-and-change-audit/SKILL.md
skills/debug-investigation/SKILL.md
skills/debugging-and-error-recovery/SKILL.md
skills/deprecation-and-migration/SKILL.md
skills/design-extract/SKILL.md
skills/design-review-playwright/SKILL.md
skills/diagnose/SKILL.md
skills/documentation-and-adrs/SKILL.md
skills/domain-modeling/SKILL.md
skills/domain-scaffold-patterns/SKILL.md
skills/doubt-driven-development/SKILL.md
skills/dox-doc-tree/SKILL.md
skills/eval-harness/SKILL.md
skills/fix-lint-format/SKILL.md
skills/forensic-change-coupling/SKILL.md
skills/forensic-complexity-trends/SKILL.md
skills/forensic-debt-quantification/SKILL.md
skills/forensic-hotspot-finder/SKILL.md
skills/frontend-api-standards/SKILL.md
skills/frontend-code-review/SKILL.md
skills/frontend-response-handling/SKILL.md
skills/frontend-server-data-patterns/SKILL.md
skills/frontend-standards-always-follow/SKILL.md
skills/frontend-structure-standards/SKILL.md
skills/frontend-ui-engineering/SKILL.md
skills/git-workflow-and-versioning/SKILL.md
skills/golang-patterns/SKILL.md
skills/golang-testing/SKILL.md

Metadata

Files
0
Version
fc73590
Hash
bd9666d6
Indexed
2026-07-19 09:14

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-04 04:27
浙ICP备14020137号-1 $bản đồ khách truy cập$