AI assistants¶
The engine ships with a Claude Code skill in
claude-skill/etl-engine.md — a single markdown file that
encodes the operational knowledge for authoring Rabbit-in-a-Hat
mappings, configuring etl.conf, and debugging failed runs. Drop it
into your Claude Code setup and you can ask detailed engine questions
without the assistant needing the source or the hosted docs.
The same content is portable to other AI tools — see Other AI tools below.
Installing the Claude Code skill¶
Claude Code loads skills from one of two locations. Pick whichever suits your workflow:
User scope — available in every Claude Code session¶
The skill is now available globally on this machine, regardless of which directory you start Claude Code in.
Project scope — committed alongside your ETL project¶
cd <your-etl-project>
mkdir -p .claude/skills
cp /path/to/claude-skill/etl-engine.md .claude/skills/
git add .claude/skills/etl-engine.md
git commit -m "Add ETL Engine Claude skill"
The skill is now available to anyone who clones the project. This is the recommended scope for production engagements where multiple people on the team use Claude Code on the same mappings.
Using the skill¶
In any Claude Code session, invoke it with:
…and ask whatever you need:
- "How do I map a SNOMED code to a concept id?"
- "What does
Errors break ETL of tablemean?" - "Show me the pre-map + VocabMap pattern."
- "Why is my
visit_occurrence_idNULL?" - "What's the difference between
Mapwith and without a default?"
The skill stays grounded in the documented behaviour of the engine — it will tell you when it doesn't know something rather than invent syntax.
Updating the skill¶
When you upgrade the engine to a new release, replace the skill file
with the version from the new release's claude-skill/
directory — the skill is regenerated each release to match what the
engine actually does.
cp <new-release>/claude-skill/etl-engine.md ~/.claude/skills/
# or, for project scope:
cp <new-release>/claude-skill/etl-engine.md <your-project>/.claude/skills/
Other AI tools¶
The skill body — everything below the ----bracketed frontmatter at
the top of etl-engine.md — is plain markdown. Any AI assistant that
accepts a system prompt or rules file can use it.
| Tool | Where to put it |
|---|---|
| Cursor | Save the body as .cursorrules in your project root. |
| GitHub Copilot | Save as .github/copilot-instructions.md. |
| Continue | Reference as a system message in the Continue config. |
| ChatGPT (Custom GPT) | Paste the body into the Custom GPT's instructions panel. |
| Gemini / Generic LLM | Provide as context in any conversation, or as the system prompt for a custom assistant. |
Strip the frontmatter (----bracketed block at the very top) before
using the body outside Claude Code — that block is only meaningful to
Claude Code's skill loader. The rest is tool-agnostic markdown.
Why two files would be cleaner than one
A future release may ship the skill body as a separate .md file
without frontmatter, and the Claude-specific frontmatter as a
thin wrapper that includes it. Until then: strip the frontmatter
manually for non-Claude-Code tools.
Privacy and data flow¶
The skill file is a static knowledge base — installing it does not make Claude Code (or any other tool) phone home, and does not share your mappings, source data, or run logs with anyone. The skill just teaches Claude about the engine; what you ask Claude is up to you and is governed by Claude Code's own data policies, not by the skill or by Rook IT.
Building your own skill¶
If you have proprietary mapping conventions or in-house glossary terms you want a Claude skill to know about, you can either extend this skill or write a project-specific companion skill that lives alongside it. A skill is just a markdown file with a small frontmatter block — see Anthropic's Claude Code skill documentation for the format. Two skills can coexist; Claude reaches for whichever is most relevant to the question.