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 etl-aifirstgit 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/etl-aifirst)<a href="https://agentmods.dev/skills/sfc-gh-dflippo/snowflake-dbt-demo/etl-aifirst"><img src="https://agentmods.dev/badge/skills/sfc-gh-dflippo/snowflake-dbt-demo/etl-aifirst/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/etl-aifirst"><img src="https://agentmods.dev/badge/skills/sfc-gh-dflippo/snowflake-dbt-demo/etl-aifirst.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.00073 | $0.00428 |
| Opus 5 | $0.00036 | $0.00214 |
| Sonnet 5 | $0.00015 | $0.00086 |
| Haiku 4.5 | $0.00007 | $0.00043 |
Grade A, and why
etl-aifirst 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.
What it actually says
ETL AI-First Convert
Convert unsupported ETL documents through the AI-First producer + gate chain.
Layout
| Path | Role |
|---|---|
scripts/ |
Runtime: identify/emit, gates, driver, helpers, AIM issues, sidecar |
tools/ |
Lab/table-build helpers (not on the convert path) |
platforms/ |
Platform element tables (platform_*.json) |
pyproject.toml / uv.lock |
Action dependencies (Stabilization convention) |
Instruction-only routing for the convert skill lives under
ai/plugin/skills/migration/convert/etl-aifirst/ (markdown only).
Entry
scripts/aifirst-migrate.sh <platform-table.json> <source-document> <output-root>
This checked-in-table form is preferred and remains the compatibility path.
When the caller has a platform identity rather than a table path:
scripts/aifirst-migrate.sh --platform <platform-identity> <source-document> <output-root>
Stage 0 uses the matching checked-in table when one exists. Otherwise it authors a provisional table
in an isolated view, accepts it only after structural and source-accounting validation, preserves it
under <output-root>.gates/stage0/, and feeds those accepted bytes to the deterministic stages. Set
AIFIRST_TABLE_AUTHOR_CLI to select the authoring CLI; it falls back to AIFIRST_VERIFIER_CLI, then
the existing verifier default.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- evals/README.md 5.8 KB
- evals/trigger-baseline-result.json 7.4 KB
- evals/trigger-eval-set.json 7.8 KB
- platforms/AUTHORING_CONTRACT.md 8.3 KB
- platforms/platform_adf.json 33 KB
- platforms/platform_alteryx.json 55 KB
- platforms/platform_datastage.json 72 KB
- platforms/platform_informatica.json 38 KB
- platforms/platform_pentaho.json 50 KB
- platforms/platform_ssis.json 40 KB
- platforms/README.md 1014 B
- producer/AiFirstProducerDataFlowContext.cs 27 KB
- producer/AiFirstProducerIrHydrator.cs 27 KB
- producer/AiFirstSsisSemanticsShim.cs 17 KB
- producer/build.sh 1.3 KB runs code
- producer/CallableMigrator.csproj 6.7 KB
- producer/CapturingLogger.cs 1.6 KB
- producer/DialectPlatform.cs 3.7 KB
- producer/NoOpEtlSqlProcessor.cs 2.9 KB
- producer/NoOpServices.cs 8.6 KB
- producer/NoOpSqlValueMigrator.cs 4.8 KB
- producer/ProducerOrchestration.cs 15 KB
- producer/ProducerReportHarness.cs 15 KB
- producer/ProducerReports.cs 49 KB
- producer/Program.cs 62 KB
- producer/README.md 957 B
- producer/RecordingEtlAssessmentBuilder.cs 5.6 KB
- producer/tests/ReconciliationTests.cs 5.2 KB
- producer/tests/ReconciliationTests.csproj 2.2 KB
- pyproject.toml 331 B
- scripts/ai_fill.py 14 KB runs code
- scripts/aifirst-migrate.sh 83 KB runs code
- scripts/alteryxdoc.py 9.4 KB runs code
- scripts/author_platform_table.py 56 KB runs code
- scripts/coverage_gate.py 31 KB runs code
- scripts/docmodel.py 10 KB runs code
- scripts/dsxdoc.py 14 KB runs code
- scripts/emit_sources_yml.py 3.9 KB runs code
- scripts/emit.py 128 KB runs code
- scripts/etl_elements_census.py 11 KB runs code
- scripts/execute_gate.py 34 KB runs code
- scripts/fit.py 7.2 KB runs code
- scripts/gate_a.py 194 KB runs code
- scripts/gate_b.py 95 KB runs code
- scripts/identify.py 98 KB runs code
- scripts/integrity_gate.py 55 KB runs code
- scripts/issue-inventory/proposals/AIM-REF-19ec51fddf7b.json 1.3 KB
- scripts/issue-inventory/proposals/AIM-SEM-2854b30f4eb4.json 1.6 KB
- scripts/issue-inventory/proposals/AIM-SEM-fea89cc30673.json 1.9 KB
- scripts/issue-inventory/proposals/AIM-SHAPE-d11b10218611.json 1.5 KB
- scripts/issue-inventory/types/AIM-EMIT-c585d372314d.json 4.6 KB
- scripts/issue-inventory/types/AIM-EMIT-d89de15f331e.json 5.7 KB
- scripts/issue-inventory/types/AIM-EXPR-4d4d56018da3.json 2.4 KB
- scripts/issue-inventory/types/AIM-EXPR-542a49f76777.json 5.6 KB
- scripts/issue-inventory/types/AIM-PRED-47f7de0cd8c0.json 2.7 KB
- scripts/issue-inventory/types/AIM-REF-19ec51fddf7b.json 3.2 KB
- scripts/issue-inventory/types/AIM-REF-c5b6a3e418c9.json 4.3 KB
- scripts/issue-inventory/types/AIM-REPR-507534cad1e5.json 5.1 KB
- scripts/issue-inventory/types/AIM-REPR-5161af7f0af6.json 1.8 KB
- scripts/issue-inventory/types/AIM-REPR-60b737be1cb4.json 5.9 KB
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 · 43 lines · 73 tokens per session scan A 8c79b01f5700
etl-aifirst 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 73 tokens to every session and 428 once invoked, about $0.0004 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…