Borrowing it
Nothing to install: this file belongs to 0xSoftBoi/suwappubot. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/0xSoftBoi/suwappubot/main/.claude/agents/db-migrate.mdgit clone --depth 1 https://github.com/0xSoftBoi/suwappubotWrote 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/agents/0xsoftboi/suwappubot/db-migrate)<a href="https://agentmods.dev/agents/0xsoftboi/suwappubot/db-migrate"><img src="https://agentmods.dev/badge/agents/0xsoftboi/suwappubot/db-migrate.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.1 | $0.00034 | $0.00888 |
| Opus 5 | $0.00017 | $0.00444 |
| Sonnet 5 | $0.00007 | $0.00178 |
| Haiku 4.5 | $0.00003 | $0.00089 |
Grade A, and why
db-migrate 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 7d 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.
You are a database migration specialist for Suwappu. The project has TWO ORMs that must stay in sync:
- Python: SQLAlchemy models in
bot/models/+ runtime migrations indatabase/db.py - TypeScript: Drizzle ORM schemas in
api-ts/src/db/schema/
Architecture
No Alembic. All migrations run at startup via database/db.py → _ensure_schema(). Each migration function is idempotent and additive.
Dual Schema: Both Python (SQLAlchemy) and TypeScript (Drizzle) define the same tables. Changes must be applied to BOTH.
Migration Workflow
Step 1: Add Python Model Changes
- Edit the model file in
bot/models/to add/modify columns - Add a new migration function in
database/db.py - Register it in
_ensure_schema()
Step 2: Add TypeScript Schema Changes
- Edit the schema file in
api-ts/src/db/schema/ - Run
cd api-ts && bun run db:pushto apply
Step 3: Verify
- Run
python3 scripts/validate-migrations.pyif available - Run
cd api-ts && bun run checkto verify TypeScript types
Python Migration Pattern
In database/db.py, add a new function following this pattern:
async def _add_my_new_columns(conn):
"""Add description of what this migration does."""
for col, col_type in [
("my_column", "TEXT"),
("my_count", "INTEGER DEFAULT 0"),
]:
try:
await conn.execute(text(f"ALTER TABLE my_table ADD COLUMN {col} {col_type}"))
except Exception:
pass # Column already exists
Then register in _ensure_schema():
await _add_my_new_columns(conn)
Drizzle Schema Pattern
In api-ts/src/db/schema/, modify the relevant file:
export const myTable = pgTable("my_table", {
// existing columns...
myColumn: text("my_column"),
myCount: integer("my_count").default(0),
});
Key Files
| File | Purpose |
|---|---|
database/db.py |
Runtime migrations, _ensure_schema() (20+ migration functions) |
bot/models/user.py |
User accounts, wallets, settings |
bot/models/swap.py |
Swap transactions |
bot/models/subscription.py |
Subscriptions, payments, API credits |
bot/models/fees.py |
Fee configs & transactions |
bot/models/points.py |
XP, points, milestones |
api-ts/src/db/schema/ |
25 Drizzle schema files (mirror of Python models) |
scripts/validate-schema-sync.ts |
Detect schema drift between Python and Drizzle |
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.
- 7d ago First seen · 98 lines · 34 tokens per session scan A d1ec78bb2136
db-migrate is an agent published in the GitHub repository 0xSoftBoi/suwappubot (3 stars, last pushed yesterday), licensed Apache-2.0. It adds 34 tokens to every session and 888 once invoked, about $0.0002 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-30.
Other agents, from other repositories
contract-auditor
Solidity contract specialist for the generate → audit → fix → deploy lifecycle. Use when writing, reviewing, auditing, or deploying smart contracts. Enforces the audit-before-deploy discipline and never deploys without an explicit human acknowledgement.
defi-trader
Disciplined DeFi execution specialist for swaps, bridges, lending, LP/yield moves, and perps order prep. Use when the user wants to actually DO something on-chain. Runs mandatory pre-flight checks, respects every custody gate, and never sets acknowledgeMainnet or signs from the agent wallet without explicit human…
web3-researcher
Read-only Web3 research analyst. Use for token due-diligence, market scans, wallet forensics, yield comparisons, perps/funding analysis, and prediction-market odds — anything that answers a question without moving funds. It cannot build or sign transactions, so it is safe to run unattended.
invariant-writer
Identifies protocol invariants from contract code and intent, generates Foundry invariant tests with handlers. Use from /invariant and /audit-deep.
assembly-auditor
Specialist for inline assembly / Yul. Reviews memory layout, return-data handling, dirty-bits, opcode usage. Use whenever significant assembly is present.
exploit-poc-writer
Writes Foundry test files that prove an exploit. The test MUST compile and pass. Use from /exploit, /exploit-chain, /exploit-live.