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 skills add contactandrewchl-wq/turtle-mcp --skill backend-data-modelinggit clone --depth 1 https://github.com/contactandrewchl-wq/turtle-mcpWrote 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/skills/contactandrewchl-wq/turtle-mcp/backend-data-modeling)<a href="https://agentmods.dev/skills/contactandrewchl-wq/turtle-mcp/backend-data-modeling"><img src="https://agentmods.dev/badge/skills/contactandrewchl-wq/turtle-mcp/backend-data-modeling/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/skills/contactandrewchl-wq/turtle-mcp/backend-data-modeling"><img src="https://agentmods.dev/badge/skills/contactandrewchl-wq/turtle-mcp/backend-data-modeling.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.00055 | $0.01107 |
| Opus 5 | $0.00028 | $0.00553 |
| Sonnet 5 | $0.00011 | $0.00221 |
| Haiku 4.5 | $0.00006 | $0.00111 |
Grade A, and why
backend-data-modeling 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 10d 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 — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Backend data modeling
Cuándo usar
- Crear o modificar tablas, columnas, índices, constraints.
- Diseñar una migración que se va a correr en producción.
- Resolver un problema de performance que apunta a la base.
Reglas de esquema
- Una clave primaria por tabla. UUID v7 / ULID si necesitás generarla del lado app;
bigserialsi la base la genera. NOT NULLpor defecto. PermitirNULLes una decisión, no el descuido.DEFAULTexplícito en columnas booleanas y de estado.- Tipos correctos:
text(novarchar(N)salvo restricción real),timestamptz(notimestamp),numeric(p,s)para dinero (nuncafloat/double). CHECKconstraints para invariantes simples (status IN (...),monto >= 0).- FK con
ON DELETEexplícito:CASCADE/SET NULL/RESTRICT. Sin pensar = bomba de tiempo.
Convenciones
- Nombres en
snake_case, plural para tablas (usuarios,sesiones). - PK:
id. FK:<tabla_singular>_id(usuario_id). - Timestamps en toda tabla:
created_at,updated_at(timestamptz NOT NULL DEFAULT now()). - Soft delete solo si hay requisito real de recuperación; preferí archivado a
deleted_at.
Índices
- Toda FK lleva índice (no se crea solo en Postgres).
- Índice compuesto en el orden de la query (
WHERE a=? AND b=?→(a,b), no(b,a)). - Índices parciales para flags raros:
CREATE INDEX ... WHERE status='active'. - No indexar por reflejo. Cada índice cuesta en escritura; medí con
EXPLAIN ANALYZEantes.
Migraciones seguras (zero-downtime)
Para tablas grandes, dividí en pasos:
- Agregar columna
NULL(instantáneo en Postgres ≥11). - Backfill por lotes con cursor o batch.
- Agregar
NOT NULLyDEFAULTcuando esté lleno. - Cambio de aplicación que la use.
- Drop de la vieja en migración separada y posterior.
Nunca en una sola migración: ALTER ... ADD COLUMN NOT NULL DEFAULT ... en tabla grande sin pensar; bloquea por minutos en algunos motores.
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.
- 10d ago First seen · 98 lines · 55 tokens per session scan A 13ab2128b886
backend-data-modeling is a skill published in the GitHub repository contactandrewchl-wq/turtle-mcp (2 stars, last pushed 2mo ago), licensed MIT. It adds 55 tokens to every session and 1,107 once invoked, about $0.0003 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 skills, from other repositories
benchling-integration
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
lark-base
A guide for managing Lark Base, Feishu's spreadsheet-like database and workspace tool. It covers tables, fields, records, views, formulas, forms, dashboards, applications, workflows, and permissions.
gno
Search local documents, files, notes, and knowledge bases. Index directories, search with BM25/vector/hybrid, get AI answers with citations. Use when user wants to search files, find documents, query notes, look up information in local folders, index a directory, set up document search, build a knowledge base, needs…
building-agents
Use when building or restructuring an LLM agent — provider adapter, tool calling, structured output, RAG, agent loop, eval gate, cost routing, tracing, MCP server — model-agnostic across OpenAI/Anthropic/Gemini/OSS so a model swap is a config change. NOT vector-store SQL alone (that is postgresdb) or service…
database
Query and manage SQLite, PostgreSQL, and MySQL databases from the command line. Use when the user asks to run SQL queries, inspect database schemas, create or alter tables, import or export data, manage indexes, analyze query performance with EXPLAIN, back up or restore databases, or perform CRUD operations via…
qdrant
Manage Qdrant vector database via REST API. Use when the user asks to create or delete collections, upsert or search vectors, inspect points, filter by payload fields, manage snapshots, check cluster status, or debug semantic search issues. Covers collection CRUD, point upsert/search/scroll/count, payload indexes…