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 sfc-gh-dflippo/snowflake-dbt-demo --skill extract-code-unitsgit clone --depth 1 https://github.com/sfc-gh-dflippo/snowflake-dbt-demoWrote 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/sfc-gh-dflippo/snowflake-dbt-demo/extract-code-units)<a href="https://agentmods.dev/skills/sfc-gh-dflippo/snowflake-dbt-demo/extract-code-units"><img src="https://agentmods.dev/badge/skills/sfc-gh-dflippo/snowflake-dbt-demo/extract-code-units/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/sfc-gh-dflippo/snowflake-dbt-demo/extract-code-units"><img src="https://agentmods.dev/badge/skills/sfc-gh-dflippo/snowflake-dbt-demo/extract-code-units.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.00050 | $0.02290 |
| Opus 5 | $0.00025 | $0.01145 |
| Sonnet 5 | $0.00010 | $0.00458 |
| Haiku 4.5 | $0.00005 | $0.00229 |
Grade A, and why
extract-code-units 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 2d 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 — 209 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Code Extraction
On Entry
Tell the user:
Extracting from source database.
Here's what I'll do:
- Connect to your source database using the configured connection.
- Run read-only queries to enumerate the objects in scope.
- Extract the DDL and code for each one, and save them under
source/.
Prerequisites
- Migration project initialized (
scai init) configure()called at session start — validates the source connection and, for Oracle/Teradata, seeds the driver cache via../../connection/references/driver-bootstrap.md- Network access to source database
Workflow
Step 1: Ask What to Extract
Ask the user what they want to extract. Present the available object types for their source dialect:
- SqlServer: TABLE, VIEW, FUNCTION, PROCEDURE, SEQUENCE, TABLE_TYPE, TRIGGER
- Redshift: TABLE, VIEW, MATERIALIZED_VIEW, FUNCTION, PROCEDURE
- Oracle: TABLE, VIEW, MATERIALIZED_VIEW, FUNCTION, PROCEDURE, PACKAGE, PACKAGE_BODY, TRIGGER, SEQUENCE, TYPE, TYPE_BODY, SYNONYM
- Teradata: TABLE, VIEW, FUNCTION, PROCEDURE
- Postgresql: TABLE, VIEW, MATERIALIZED_VIEW, FUNCTION, PROCEDURE
Ask the user via ask_user_question (multiSelect = false):
"What would you like to extract? You can choose:"
- All objects - Extract everything from the source database
- Specific object types - e.g. just tables and views, or just procedures
- Specific schemas - Limit to one or more schemas
- Name filter - Exact object name, or a wildcard with
*(e.g.EmployeesorGet*Data)
Allow combining options (e.g. specific types within a specific schema).
If the source server hosts several databases and the user wants more than the connection's own, also ask which databases — see the multi-database flow in Step 2.
Name matching:
-n/--nameis an exact case-insensitive match unless the pattern contains*. Do not pass a bare prefix expecting substring match — that used to pull sibling objects (e.g.FOOmatchingFOO_SWTCH). For partial matches use wildcards:FOO*,*Employee*. When the user lists specific table names, pass each exact name or extract by schema/type and let them confirm the catalog count.
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.
- 2d ago First seen · 209 lines · 0 tokens per session scan A d0f13a7b3348
extract-code-units is a skill published in the GitHub repository sfc-gh-dflippo/snowflake-dbt-demo (33 stars, last pushed 3d ago), licensed Apache-2.0. It adds 50 tokens to every session and 2,290 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-10.
Other skills, from other repositories
create-pr
Creates a GitHub PR with a Linear-ticket-prefixed title and a decision-led, narrative description for Prisma 8. Use when the user wants to create a pull request, open a PR, or submit changes for review.
schema-exploration
Lists tables, describes columns and data types, identifies foreign key relationships, and maps entity relationships in a database. Use when the user asks about database schema, table structure, column types, what tables exist, ERD, foreign keys, or how entities relate.
ha-data-stores
Map of Hope Agent's local data stores and safe read-only query workflow. Use when the user asks where Hope Agent stores data, wants to inspect sessions/messages/memory/logs/background jobs/knowledge indexes/settings, asks the model to query local app data, or debugging requires checking persisted state. Trigger…
nornicdb-cypher-queries
Pick fast, predictable Cypher query shapes in NornicDB — point lookups, batch retrieval, pagination, search, traversal, batched UNWIND/MERGE writes, cleanup, multi-tenant isolation. Use when writing or reviewing Cypher whose latency or throughput matters; maps user intent to the executor's hot-path query templates.
supabase
Supabase / PostgREST Row-Level-Security playbook — pull the anon (or leaked servicerole) key out of the frontend JS, map tables from the auto-generated OpenAPI spec, test anonymous RLS READ disclosures (PII/secret leaks), and anonymous RLS WRITE abuse (insert/update/delete — e.g. forging…
volcengine-rds-postgresql
A tool for operating PostgreSQL databases hosted by Volcano Engine's managed database service. PostgreSQL is a relational database used to store structured application data.