Token导航 LogoToken导航

Agent Skill · 开发

backend-architecture-enforcer(后端架构执行者)

backend-architecture-enforcer 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

backend-architecture-enforcer 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为调用外部服务;许可证为 MIT,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 18,653。

总安装 324周安装 13GitHub Stars 160下载 105核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:backend-architecture-enforcer(后端架构执行者)
来源仓库:https://github.com/yonatangross/orchestkit
仓库路径:skills/backend-architecture-enforcer
安装命令:
npx skills add https://github.com/yonatangross/orchestkit --skill backend-architecture-enforcer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/yonatangross/orchestkit --skill backend-architecture-enforcer

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。适用于需要快速理解项目结构、追踪代码变更或管理开发流程的场景。

通过分析仓库内容、提交历史和协作动态,帮助 Agent 定位问题、生成报告或制定开发计划。安装前建议确认权限范围和维护状态,避免触发不必要的联网或文件操作。可结合来源仓库和原始 README 进一步核验具体用法和功能边界。

来源仓库内路径:skills/backend-architecture-enforcer

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/yonatangross/orchestkit --skill backend-archit…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要调用外部服务,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

backend-architecture-enforcer 怎么安装?

在终端执行 npx skills add https://github.com/yonatangross/orchestkit --skill backend-architecture-enf…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

backend-architecture-enforcer 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

backend-architecture-enforcer 需要什么权限?

权限级别是调用外部服务。该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

backend-architecture-enforcer 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

backend-architecture-enforcer 用的人多吗?

公开数据是累计安装 324 次,近一周安装 13 次,下载 105 次,GitHub 160 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

backend-architecture-enforcer 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
backend-architecture-enforcer

后端架构执行者 · 本页

324160调用外部服务MIT通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Enforce FastAPI Clean Architecture with BLOCKING validation.

Architecture Overview

+-------------------------------------------------------------------+
|                        ROUTERS LAYER                               |
|  HTTP concerns only: request parsing, response formatting          |
|  Files: router_*.py, routes_*.py, api_*.py                        |
+-------------------------------------------------------------------+
|                        SERVICES LAYER                              |
|  Business logic: orchestration, validation, transformations        |
|  Files: *_service.py                                              |
+-------------------------------------------------------------------+
|                      REPOSITORIES LAYER                            |
|  Data access: database queries, external API calls                 |
|  Files: *_repository.py, *_repo.py                                |
+-------------------------------------------------------------------+
|                        MODELS LAYER                                |
|  Data structures: SQLAlchemy models, Pydantic schemas             |
|  Files: *_model.py (ORM), *_schema.py (Pydantic)                 |
+-------------------------------------------------------------------+

Validation Rules (BLOCKING)

RuleCheckLayer
No DB in RoutersDatabase operations blockedrouters/
No HTTP in ServicesHTTPException blockedservices/
No Business Logic in RoutersComplex logic blockedrouters/
Use Depends()Direct instantiation blockedrouters/
Async ConsistencySync calls in async blockedall
File NamingMust follow naming conventionall

File Naming Conventions

Quick Reference

LayerAllowed PatternsBlocked Patterns
Routersrouter_*.py, routes_*.py, api_*.py, deps.pyusers.py, UserRouter.py
Services*_service.pyusers.py, UserService.py, service_*.py
Repositories*_repository.py, *_repo.pyusers.py, repository_*.py
Schemas*_schema.py, *_dto.py, *_request.py, *_response.pyusers.py, UserSchema.py
Models*_model.py, *_entity.py, *_orm.py, base.pyusers.py, UserModel.py

Layer Separation Summary

Routers (HTTP Only)

  • Request parsing and response formatting
  • HTTP status codes and auth checks
  • Delegate to services via Depends()

Services (Business Logic)

  • Validation and orchestration
  • Data transformations
  • Raise domain exceptions (NOT HTTPException)

Repositories (Data Access)

  • Database queries and persistence
  • External API calls
  • Return domain objects or None

Dependency Injection Quick Reference

# deps.py - Dependency providers
def get_user_repository(
    db: AsyncSession = Depends(get_db),
) -> UserRepository:
    return UserRepository(db)

def get_user_service(
    repo: UserRepository = Depends(get_user_repository),
) -> UserService:
    return UserService(repo)

# router_users.py - Usage
@router.get("/{user_id}")
async def get_user(
    user_id: int,
    service: UserService = Depends(get_user_service),
):
    return await service.get_user(user_id)

Blocked DI Patterns

# BLOCKED - Direct instantiation
service = UserService()

# BLOCKED - Global instance
user_service = UserService()

# BLOCKED - Missing Depends()
async def get_users(db: AsyncSession):  # Missing Depends()

Common Violations

ViolationDetectionFix
DB in routerdb.add, db.execute in routers/Move to repository
HTTPException in serviceraise HTTPException in services/Use domain exceptions
Direct instantiationService() without DependsUse Depends(get_service)
Wrong namingMissing suffix/prefixRename per convention
Sync in asyncMissing awaitAdd await or use executor

Exception Pattern

# Domain exceptions (services/repositories)
class UserNotFoundError(DomainException):
    def __init__(self, user_id: int):
        super().__init__(f"User {user_id} not found")

# Router converts to HTTP
@router.get("/{user_id}")
async def get_user(user_id: int, service: UserService = Depends(get_user_service)):
    try:
        return await service.get_user(user_id)
    except UserNotFoundError:
        raise HTTPException(404, "User not found")

Async Rules

# GOOD - Async all the way
result = await db.execute(select(User))

# BLOCKED - Sync in async function
result = db.execute(select(User))  # Missing await

# For sync code, use executor
await loop.run_in_executor(None, sync_function)

References

For detailed patterns and examples, see:

ReferenceContent
layer-rules.mdDetailed layer separation rules with code examples
dependency-injection.mdDI patterns, authentication, testing with overrides
violation-examples.mdCommon violations with proper patterns and auto-fix suggestions

Related Skills

  • clean-architecture - DDD patterns
  • fastapi-advanced - Advanced FastAPI patterns
  • dependency-injection - DI patterns
  • project-structure-enforcer - Folder structure

Capability Details

layer-separation

Keywords: router, service, repository, layer, clean architecture, separation Solves:

  • Prevent database operations in routers
  • Block business logic in route handlers
  • Ensure proper layer boundaries

dependency-injection

Keywords: depends, dependency injection, DI, fastapi depends, inject Solves:

  • Enforce use of FastAPI Depends() pattern
  • Block direct instantiation in routers
  • Ensure testable code structure

file-naming

Keywords: naming convention, file name, router_, _service, _repository Solves:

  • Enforce consistent file naming patterns
  • Validate router/service/repository naming
  • Maintain codebase consistency

async-patterns

Keywords: async, await, sync, blocking call, asyncio Solves:

  • Detect sync calls in async functions
  • Prevent blocking operations in async code
  • Ensure async consistency

平台分布

Claude Code

31%
按下载量换算33

Gemini CLI

23.33%
按下载量换算24

Antigravity

15.49%
按下载量换算16

windsurf

11.62%
按下载量换算12

trae

8.35%
按下载量换算9

OpenCode

3.29%
按下载量换算3

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

调用外部服务

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

继续浏览同类 Skills