database
Skill1 starsChanged 6 days agoMITView on GitHub
Design schemas, write migrations and write code that reads or writes a relational database - plain tables only, no foreign keys or cascades, new features in new tables, ALTER only to change a column's type or size and only with the user's explicit permission. Use before writing or reviewing any migration, DDL, or SQL in application code.
- Deletes or force-pushes
31 other projects use a version of this.
Adopted by
Most recently taken up by
- artivilla/agent-skillstheir own version, first seen Nov 8, 2026
- AsiaOstrich/EngramGraphtheir own version, first seen Nov 8, 2026
- theopenco/llmgatewaytheir own version, first seen Nov 6, 2026
- davidvornholt/mail-mcptheir own version, first seen Nov 5, 2026
- davidvornholt/mailboxtheir own version, first seen Nov 5, 2026
- AsiaOstrich/universal-dev-standardstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use monitoring, ci-cd and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
rogue-dev-studioSkillmonitoring
Claude monitoring and usage tracking tools (UV, claude-monitor, claude-usage-cli). Use when the project needs this capability or the user / team manifest asks for it. Use for specialized `monitoring` work when listed in TEAM.yaml or explicitly requested.
Also in 3 projects that use this
JohnJBorenSkillci-cd
CI/CD pipeline design, GitHub Actions, testing automation, and deployment strategies
Also in 4 projects that use this
klauswgSkillperformance
Optimize web performance for faster loading and better user experience. Use when asked to "speed up my site", "optimize performance", "reduce load time", "fix slow loading", "improve page speed", or "performance audit".
Also in 6 projects that use this
0xSeroSkillsecurity
Also in 11 projects that use this
JkudjoSkillincident
Production incident response — structured triage, hypothesis tree, safe remediation, incident record
Also in 3 projects that use this
mrgoonieSkilldevops
Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI/CD, GitOps, security audit.
Also in 4 projects that use this
Other versions31 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 31
- gridaco/grida★ 2.7ksame name
- theopenco/llmgateway★ 1.7ksame name
- AsiaOstrich/universal-dev-standards★ 84same name
- msrv-tech/skills★ 60same name
- manu14357/Zelaxy★ 15same name
- darknecrocities/SkillBuilder★ 13same name
- YepAPI/skills★ 8same name
- The-Utopia-Studio/skills★ 6same name
- umararshad4/honey-stack★ 5same name
- AsiaOstrich/EngramGraph★ 4same name
21 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- commitSkill
- delegateSkill
- enggraphSkill
- write-docsSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 22 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 45
Keep one list of every table and column that refers to a parent row, next to the code that deletes or renames the parent, and walk it there.
- Distinctive: line 47
Delete the parent first and the dependent rows after, in separate statements, so rows a concurrent writer committed in between are seen.
- Distinctive: line 63
Run it against a copy of real data before it reaches a live database: a fresh database proves the SQL, not the time or the data.
- Distinctive: line 72
Run no query against a live database without the user's permission for that query.
- Distinctive: line 74
Prefer reading the catalog and the statistics views to scanning tables.
“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Database
A database here is a set of plain tables and nothing more. Every rule below exists because relations, cascades and in-place schema changes broke a production restore: rows a cascade should have taken outlived it, and the dump could not be loaded back under its own constraints.
Tables
- No relations, ever. No
REFERENCES, noFOREIGN KEY, noON DELETEorON UPDATE CASCADE, no triggers that write to other tables. Tables are tied by plain value columns (project,node_id,owner_id) that the code keeps consistent. - Inside one table, anything goes: primary keys, unique indexes,
CHECKconstraints,NOT NULL, defaults, any index. - A new feature is a new table. It holds the new columns and the value columns that tie it to existing rows. An existing table is never widened for a feature.
- No file contents or other bulk text that lives elsewhere. Store a pointer to it - a path, a line range, a hash - and read it from its source.
ALTER
ALTER TABLEis allowed for one thing only: changing a column's data type or size (VARCHAR(64)toVARCHAR(255),INTEGERtoBIGINT, a vector dimension).- Each such
ALTERneeds the user's explicit permission, asked for that statement and that migration. Approval of a plan or of an earlierALTERis not permission. - Everything else
ALTERcould do is done another way: a new column or constraint means a new table; a renamed or reshaped table is copied into a new table under a new name, and the code moves to the new name:CREATE TABLE,INSERT ... SELECT,DROP TABLE.
Cleanup in code
What a cascade would have done, the code does explicitly, in the same transaction as the change that requires it.
- Keep one list of every table and column that refers to a parent row, next to the code that deletes or renames the parent, and walk it there.
- Delete the parent first and the dependent rows after, in separate statements, so rows a concurrent writer committed in between are seen.
- A writer that adds a dependent row locks the parent row first
(
SELECT ... FOR KEY SHARE) and refuses when it is gone. - A test reads every table carrying a parent column from
information_schema.columnsand fails when one is missing from that list, and another asserts that a delete leaves no dependent row behind. - A test asserts that
information_schema.table_constraintsholds noFOREIGN KEY.
Migrations
- One migration per change, numbered, never edited once applied.
- It finishes in minutes on the smallest stack the project supports: no
UPDATEover every row of a large table, no rebuild of a large vector index. Load a copied table first and build its indexes after. - Run it against a copy of real data before it reaches a live database: a fresh database proves the SQL, not the time or the data.
- A whole-database backup is taken before every upgrade that applies one.
- A repository that can host a pre-commit hook rejects
REFERENCES,FOREIGN KEYandCASCADEin new migrations, and anyALTER TABLEother than a single column type change.
Live databases
- Run no query against a live database without the user's permission for that query.
- Prefer reading the catalog and the statistics views to scanning tables.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

