Borrowing it
Nothing to install: this file belongs to typedef-ai/fenic. 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/typedef-ai/fenic/main/.claude/skills/fenic-mechanics/SKILL.mdgit clone --depth 1 https://github.com/typedef-ai/fenicWrote 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/typedef-ai/fenic/fenic-mechanics)<a href="https://agentmods.dev/skills/typedef-ai/fenic/fenic-mechanics"><img src="https://agentmods.dev/badge/skills/typedef-ai/fenic/fenic-mechanics/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/typedef-ai/fenic/fenic-mechanics"><img src="https://agentmods.dev/badge/skills/typedef-ai/fenic/fenic-mechanics.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00114 | $0.01957 |
| Opus 5 | $0.00057 | $0.00979 |
| Sonnet 5 | $0.00023 | $0.00391 |
| Haiku 4.5 | $0.00011 | $0.00196 |
Grade A, and why
fenic-mechanics 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 11d 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 — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
fenic mechanics
fenic looks like PySpark and you already write its DataFrame surface well
(select/filter/join/group_by/agg, semantic.extract/classify).
This skill covers the mechanics that don't transfer — where fenic differs
from PySpark/pandas intuition in ways that fail (often loudly, sometimes
silently). For full signatures see reference/*.md (generated from the
installed version); for the correction table and traps see gotchas.md.
Golden rule: after writing or editing a fenic pipeline, run
fenic check <file>— a static lint (no execution) that resolves yourfc.*symbols against the installed fenic and flags namespace/import mistakes (fenic.functions,fc.arrayvsfc.arr,fc.explode, …). Fix what it reports.
1. Import & namespace law (the #1 source of errors)
- Always
import fenic as fc. Everything hangs offfc.. There is nofenic.functions(don't writefrom fenic import functions as F), nofenic.api.types, and no unifiedOpenAIModelConfig. - Function namespaces:
fc.text.*,fc.json.*,fc.markdown.*,fc.semantic.*,fc.embedding.*,fc.dt.*, andfc.arr.*for array ops. ⚠️fc.array(...)is a constructor for array literals; the array-operations namespace isfc.arr(fc.arr.size,fc.arr.contains,fc.arr.sort, …). - Flat on
fc: free functions (fc.col,fc.lit,fc.when,fc.coalesce,fc.count,fc.sum,fc.avg,fc.collect_list,fc.struct,fc.udf,fc.async_udf, …), all types, and all model-config classes. explode/unnestare DataFrame methods, not functions:df.explode("col"),df.unnest("col")— neverfc.explode(...).- PySpark camelCase aliases (
withColumn,groupBy,orderBy,dropDuplicates) do exist and work, but prefer snake_case.
2. Session & models
import fenic as fc
session = fc.Session.get_or_create(fc.SessionConfig(
app_name="my_app",
semantic=fc.SemanticConfig(
language_models={"mini": fc.OpenAILanguageModel(model_name="gpt-4o-mini", rpm=500, tpm=200_000)},
default_language_model="mini",
# embeddings are a SEPARATE class + SEPARATE dict:
embedding_models={"emb": fc.OpenAIEmbeddingModel(model_name="text-embedding-3-small", rpm=500, tpm=200_000)},
default_embedding_model="emb",
),
))
What ships with it
6 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.
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.
- 11d ago First seen · 133 lines · 114 tokens per session scan A 6753a5a10a29
fenic-mechanics is a skill published in the GitHub repository typedef-ai/fenic (672 stars, last pushed 2d ago), licensed Apache-2.0. It adds 114 tokens to every session and 1,957 once invoked, about $0.0006 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 skills, from other repositories
map
Build and commit a Cortex function knowledge graph — maps structural dependencies and domain intent relationships across all AI functions in the project. Supports --reduce (default on) for transitive reduction of the dependency graph.
context-add
Guided wizard to capture or update organizational Snowflake/Cortex standards into .cocoplus/context/ .md. Presents a menu of 6 standard types, collects answers via multi-turn dialogue, and commits the file.
cocolean
CocoLean — minimum viable Cortex surface discipline. Pre-build decision ladder and intensity mode management. Invoke with $lean, $lean lite, $lean full, or $lean ultra.
test
Enter the Test phase of CocoBrew. Reads spec.md test requirements, generates test cases, executes SQL validation and quality checks, records results in test.md. Can be re-run without full rebuild. Requires Build phase completion.
map-diff
Analyze the impact of staged git changes against the committed Cortex function knowledge graph — shows which downstream functions are affected before you commit.
map-explain
Produce a natural-language explanation of a specific Cortex function, business capability, or schema element from the committed knowledge graph.