Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/yerdaulet-damir/vibe-coding-rulesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/yerdaulet-damir/vibe-coding-rules/architecture)<a href="https://agentmods.dev/rules/yerdaulet-damir/vibe-coding-rules/architecture"><img src="https://agentmods.dev/badge/rules/yerdaulet-damir/vibe-coding-rules/architecture/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/yerdaulet-damir/vibe-coding-rules/architecture"><img src="https://agentmods.dev/badge/rules/yerdaulet-damir/vibe-coding-rules/architecture.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01193 | $0.01193 |
| Opus 5.5 | $0.00477 | $0.00477 |
| Sonnet 5.5 | $0.00239 | $0.00239 |
| Haiku 4.5 | $0.00119 | $0.00119 |
Grade A, and why
architecture scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 131 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Layer Architecture Rules
This codebase follows strict 4-layer architecture: Router → Service → Repository → ORM/HTTP/Storage. Imports flow downward only. Each layer has hard boundaries you must NOT cross.
Hard Rules
1. Router files (app/routers/**)
- Handlers are thin: ≤10 lines of executable code per handler.
- Allowed imports:
fastapi,app.schemas.*,app.core.deps,app.services.*. - Forbidden imports:
sqlalchemy,httpx,boto3,app.models.*,app.repositories.*(except viaDepends). - Every endpoint declares
response_model=for OpenAPI fidelity. - Every endpoint (except
/auth/*) requiresuser_id: str = Depends(get_current_user_id). - Business logic lives in services. Routers parse input, call one service method, return a response.
# ✅ GOOD
@router.post("/wallet/charge", response_model=WalletResponse, status_code=201)
async def charge(
req: ChargeRequest,
user_id: str = Depends(get_current_user_id),
svc: WalletUserService = Depends(get_wallet_service),
) -> WalletResponse:
wallet = await svc.charge(user_id=user_id, amount=req.amount, key=req.idempotency_key)
return WalletResponse.from_domain(wallet)
# ❌ BAD — business logic and SQL in router
@router.post("/wallet/charge")
async def charge(req: ChargeRequest, db: Session = Depends(get_db)):
wallet = db.query(Wallet).filter(Wallet.user_id == user_id).with_for_update().one()
if wallet.balance < req.amount:
raise HTTPException(402)
wallet.balance -= req.amount
db.commit()
return wallet
2. Service files (app/services/**)
- Forbidden imports:
sqlalchemy,httpx,boto3,redis, FastAPIRequest/Response/HTTPException. - Allowed imports:
app.repositories.protocols,app.providers._types,app.domain.*, stdlib, Pydantic. - Services raise domain exceptions (e.g.
InsufficientFundsError); routers map them to HTTP. - Constructor injects Protocol-typed dependencies, not concrete classes.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 131 lines · 1,193 tokens per session scan A e1bbdfe775cf
architecture is a cursor rule published in the GitHub repository yerdaulet-damir/vibe-coding-rules (30 stars, last pushed 5mo ago), licensed MIT. It adds 1,193 tokens to every session, about $0.0048 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
skill-layered-design
Layered Design — enforce arquitetura estrita Handler→Service→Repository→Model em todos os projetos DARE, independente de linguagem. Inspirado em "Layered Design for Ruby on Rails Applications" de Vladimir Dementyev (Evil Martians).
skill-ax
Agent Experience (AX) — codifica padrões para desenvolvimento assistido por IA em três planos (Discovery, Usage, Defense). Garante que todo projeto DARE exponha sinais estruturados (llms.txt, OpenAPI, --json, rate limit) que agentes de código precisam.
skill-fastapi-api
Padrões DARE para APIs REST em Python + FastAPI + Pydantic v2 + SQLAlchemy 2.0 async + alembic. Routers, dependency injection, schemas Pydantic, OAuth2+JWT, slowapi rate limit, pytest+httpx, OpenAPI auto-gerado.
skill-go-gin-api
Padrões DARE para APIs REST em Go + Gin (ou stdlib net/http) + sqlc + PostgreSQL. Handlers, services, repositories, middleware, validação via binding tags, JWT, rate limit, swag OpenAPI, testify + httptest.
skill-mcp-server
Padrões DARE para servidores MCP (Model Context Protocol da Anthropic) em TypeScript ou Python. Tools, resources, prompts; transports stdio/SSE/HTTP; validação Zod/Pydantic; autorização por tool; observabilidade; testes; publicação.
skill-nestjs-api
Padrões DARE para APIs REST em NestJS + TypeScript + Prisma + Swagger. Modules, Controllers, Services, DTOs com class-validator, Guards JWT, throttler, exceções globais, Jest + Supertest, OpenAPI auto-gerado.