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.
npx agentmods add rules/yerdaulet-damir/vibe-coding-rules/architecturegit 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.svg" alt="Measured on agentmods" 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 | $0.01193 | $0.01193 |
| Opus 5 | $0.00596 | $0.00596 |
| Sonnet 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 3d 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.
- 3d 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 (10 stars, last pushed 4mo ago), licensed MIT. It adds 1,193 tokens to every session, about $0.0060 per session on Opus 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
database-migrations
Database Migration Safety Agent.
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.
30-database-postgres
PostgreSQL and persistence rules.
code-organization
Assets/ ├── !Project/ # Main project content (! keeps it at top) │ ├── Art/ │ │ ├── Materials/ │ │ ├── Models/ │ │ ├── Textures/ │ │ └── Animations/ │ ├── Audio/ │ │ ├── Music/ │ │ ├── SFX/ │ │ └── Mixers/ │ ├── Prefabs/ │ │ ├── Characters/ │ │ ├── Environment/ │ │ ├── UI/ │ │ └── Effects/ │ ├── Scenes/ │ │ ├──…
unity-core
// ✅ DO: PascalCase public class PlayerController : MonoBehaviour { }.
unity-performance
Cursor rule "unity-performance" from Common-ka/ai-agent-unity-rules, covering unity performance rules, update/fixedupdate/lateupdate, usage rules, object pooling (unityengine.pool) and addressables (not resources).