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 commands/mozurok/fhorja.dev/db-context-supabasegit clone --depth 1 https://github.com/Mozurok/fhorja.devWrote 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/commands/mozurok/fhorja.dev/db-context-supabase)<a href="https://agentmods.dev/commands/mozurok/fhorja.dev/db-context-supabase"><img src="https://agentmods.dev/badge/commands/mozurok/fhorja.dev/db-context-supabase.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.00060 | $0.05000 |
| Opus 5 | $0.00030 | $0.02500 |
| Sonnet 5 | $0.00012 | $0.01000 |
| Haiku 4.5 | $0.00006 | $0.00500 |
Grade A, and why
db-context-supabase 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 yesterday.
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 — 203 lines — stays where its author put it; the contents beside it link to each section on GitHub.
db-context-supabase
Act as a senior/staff engineering database context capture for the active task, scoped to Supabase.
Goal:
Validate that a Supabase MCP server is configured and reachable, introspect a user-scoped subset of the database (tables, columns, types, RLS policies, and optionally functions/migrations), and persist the result as DB_CONTEXT.md inside the active task folder so the task has a grounded, point-in-time schema reference for planning, implementation, and review.
When no MCP server is reachable, the command falls back to the local Supabase CLI and produces the same snapshot from CLI output. Only when neither path is available does it end in a no-op.
This command is opt-in. It is not part of the default task initialization flow; run it after task-init only when the task actually touches Supabase data, schema, or RLS.
Mandatory context bootstrap (before any output):
- Read these sections in
WORKFLOW_OPERATING_SYSTEM.mdfirst:## LLM execution contract## Editor mode policy## Global output contract(including Adaptive handoff and Mode selection rule)## Cross-cutting workflow guardrails## Evidence priority
- Read additional sections only when needed:
- naming/path setup:
## Naming conventions,## Repository structure - artifact requirements:
## Task files,## TASK_STATE policy
- naming/path setup:
- Read the active task's
TASK_STATE.mdto confirm there is an active task to attach the DB context to and to align the requested table/schema scope with the task objective. - Read the active task's
SOURCE_OF_TRUTH.mdto detect any prior## DB contextlink before proposing a new one. - Read the
commands/directory command inventory to ensure routing recommendations are current.
Required inputs:
- active task path (or enough context to resolve
projects/<client>__<project>/active/YYYY-MM-DD_<task-slug>/) - scope of introspection, supplied by the user as one or more of:
- list of table names (qualified
schema.tableor unqualified for the defaultpublicschema) - list of schemas to include in full (use sparingly; large schemas should be narrowed to specific tables)
- list of table names (qualified
- depth flag (one of):
tables-only: tables and columns with types, primary keys, and not-null flagstables+rls(default):tables-onlyplus row-level security policies for each in-scope tablefull:tables+rlsplus relevant functions, triggers, and the most recent migration filenames touching in-scope tables
- optional: Supabase project ref (if the MCP server is configured for multiple projects); when omitted, use the project the MCP server is currently bound to and record which one was used
- optional: refresh flag (
refreshto regenerate an existingDB_CONTEXT.md; default is to fail withNO_OP_TRACEif a non-staleDB_CONTEXT.mdalready exists for the same scope) - optional: path to the local Supabase project directory. Needed only on the local CLI path below, where every CLI form runs from that directory. When omitted and the MCP path is unavailable, ask for it once instead of guessing a directory.
Project repository files to read:
- projects/__/active/YYYY-MM-DD_/TASK_STATE.md
- projects/__/active/YYYY-MM-DD_/SOURCE_OF_TRUTH.md
- projects/__/active/YYYY-MM-DD_/DB_CONTEXT.md (only if it already exists, for refresh comparison)
Project repository files to update:
- projects/__/active/YYYY-MM-DD_/DB_CONTEXT.md (create or fully regenerate; never partial-merge)
- projects/__/active/YYYY-MM-DD_/SOURCE_OF_TRUTH.md (append-only: add a single
## DB contextsection pointing to./DB_CONTEXT.mdif not already present)
Introspection path selection (MCP first, then the local CLI): Choose the path before any introspection, in this order, and record which one was used.
- Supabase MCP server. When the MCP server is configured, reachable, and exposes introspection tools, use it. Nothing about this path changes: same read-only rules, same scope and depth handling, same output.
- Local Supabase CLI. WHEN no MCP server is reachable AND a local Supabase CLI is available, fall back to the CLI and produce
DB_CONTEXT.mdfrom its output under the local CLI branch rules below. - Neither. WHEN no MCP server is reachable and no local CLI is available, propose no
DB_CONTEXT.mdcontent and end withNO_OP_TRACEplus one actionable configuration line naming both paths (configure the Supabase MCP server, or bring the local stack up withsupabase startin the local project directory and re-run). This is the existing no-op behavior and it is unchanged.
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.
- yesterday First seen · 203 lines · 60 tokens per session scan A a8ff21f1c43b
db-context-supabase is a command published in the GitHub repository Mozurok/fhorja.dev (6 stars, last pushed 20d ago), licensed MIT. It adds 60 tokens to every session and 5,000 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-09-03.
Other commands, from other repositories
cleanup
Detect and remove orphaned code, unused components, dead routes, and stale database artifacts.
rls-plan
Supabase RLS + access-control audit + remediation plan — no SQL until approved.
dejavu-pg-rescue
Postgres corruption rescue toolkit — scan, patch-toast, reset-flags, rebuild-table, reindex. Codifies the 2026-05-14 disk-full rescue playbook.
gen
Automatically generates type definitions based on your Postgres database schema.
vanity-subdomains
Manage vanity subdomains for Supabase projects.
git
Git operations with intelligent commit messages and workflow optimization.