seed-data

seed-data is a cursor rule for Cursor from golid-ai/golid. It costs 0 tokens per session (710 once invoked), scanned A, original, MIT.

A set of rules for creating development seed data—sample records used to populate a database—using stable IDs, realistic values, and links between records.

In plain words
What is it for?
Use it when adding database migrations and sample data, especially when records refer to one another or need rollback validation against PostgreSQL.
Why use it?
It makes test data predictable, reusable, and safe to load again without creating duplicates or broken references.

Cursor rule for Cursor

Install

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.

agentmods
npx agentmods add rules/golid-ai/golid/seed-data
Clone the repo
git clone --depth 1 https://github.com/golid-ai/golid

Made for: Cursor.

Wrote 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.

agentmods badge for seed-data

README.md
[![agentmods](https://agentmods.dev/badge/rules/golid-ai/golid/seed-data.svg)](https://agentmods.dev/rules/golid-ai/golid/seed-data)
Your own site
<a href="https://agentmods.dev/rules/golid-ai/golid/seed-data"><img src="https://agentmods.dev/badge/rules/golid-ai/golid/seed-data.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 710 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.00710
Opus 5 $0.00000 $0.00355
Sonnet 5 $0.00000 $0.00142
Haiku 4.5 $0.00000 $0.00071

Measured 4d ago against content hash 80805755c576, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

seed-data 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 4d 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.

.cursor/rules/seed-data.mdc · 78 lines

How it starts

The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Seed Data Patterns

Thesis: Seed data uses stable UUIDs, idempotent upserts, and realistic content. Every new migration gets seed data immediately.

Reference files: dev_seed.sql

UUID Convention

Use stable, predictable UUIDs for cross-referencing:

-- Entity type encoded in the UUID for readability
-- users:     a0000000-0000-0000-0000-00000000000N
-- resources: a0000000-0000-0000-0000-0000000000N0
-- items:     a0000000-0000-0000-0000-000000000N00

Document the UUID mapping at the top of the file so they're easy to find.

Idempotency

Every INSERT must use ON CONFLICT ... DO UPDATE or ON CONFLICT ... DO NOTHING so the seed can be re-run safely:

INSERT INTO users (id, email, ...) VALUES (...)
ON CONFLICT (email) DO UPDATE SET
  registration_step = EXCLUDED.registration_step,
  email_verified = EXCLUDED.email_verified;

Rollback Validation

Before committing seed or migration-backed seed work, validate against a real Postgres database inside a rollback transaction. This catches FK ordering, enum, trigger, uniqueness, and idempotency bugs that schema reading misses, while leaving local/dev data untouched.

psql "$DATABASE_URL" -v ON_ERROR_STOP=1 \
  -c 'BEGIN;' \
  -f backend/migrations/000NNN_new_table.up.sql \
  -f backend/seeds/demo_seed.sql \
  -c "SELECT count(*) FROM expected_table;" \
  -c 'ROLLBACK;'

For seed-only changes, omit the migration file. Always assert at least one business-relevant count or state, not just "script exited 0".

Data Quality

  • Realistic content — real-sounding names, descriptions, skills. Not "test123" or "Lorem ipsum".
  • All profile fields populated — except file-based fields (resume_url, microview_url, etc.) which require actual uploads.
  • Varied statuses — seed entities in different states (new, in_progress, complete, approved) to test all UI states.
  • Realistic timestamps — use NOW() - INTERVAL 'N days' for created/updated dates to simulate a timeline.
  • Minimum viable depth — seed the thinnest realistic slice first, then let demo/customer feedback decide whether more rows are worth authoring. One honest review per hero can be enough for v1 if the gap is explicit and easy to extend later.

Read the full file on GitHub · 78 lines

Changes

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.

  1. 4d ago First seen · 78 lines · 0 tokens per session scan A 80805755c576

Subscribe to this mod's changes

seed-data is a cursor rule published in the GitHub repository golid-ai/golid (40 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 710 tokens. 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-30.