Open source
Know something?
Teach it to Claudia.
Contributing means writing a markdown file. That's it. If you can explain something about technology, you can make Claudia smarter.
Pick your level
Write what you know
Drop a markdown file in any references/ folder. Know a lot about Redis? Write about Redis. That's the whole contribution.
Teach her to catch mistakes
Add patterns to the hook scripts. If you've seen a common mistake, teach Claudia to catch it for everyone.
Make a topic deeper
Pick a domain Claudia already knows and make her advice better. Add examples, edge cases, real-world gotchas.
Add a whole new topic
Use the scaffolding tool to create a full knowledge domain. Own a subject — architecture, mobile, ML, whatever you know.
Build a new automatic check
Write a script that catches an issue every time Claude writes a file. Security, quality, accessibility — anything that should never slip through.
Quick start
git clone https://github.com/reganomalley/claudia.git
cd claudia
./scripts/create-domain.sh mobile
# Now just write markdown in skills/claudia-mobile/
# That's literally it. Open a PR when you're done. How to write for Claudia
Have an opinion
Don't say 'it depends.' Say what you'd actually use, then explain the tradeoffs so people can disagree.
Lead with the answer
Put the recommendation first. Then the reasoning. People are here because they need to make a decision, not learn the theory.
Say when NOT to use it
Every tool breaks somewhere. Saying where builds trust and saves people hours of debugging the wrong choice.
Use tables and decision trees
A comparison table is worth a thousand words. If someone is choosing between two things, make a table.
Keep it tight
The main file loads into Claude's memory every time. Keep it under 2000 words. Put deep dives, reference tables, and long examples into the references/ folder — those only load when needed.
Before you contribute
Hooks run on real machines
Claudia's hook scripts execute locally with the same permissions as Claude Code. A malicious hook could read files, exfiltrate data, or modify code silently. We take this seriously.
All hook and script PRs require maintainer review. Markdown-only contributions to references/ are lower risk, but hooks touch every user's machine.
No network calls in hooks. Hook scripts must never fetch URLs, phone home, or access anything outside the local filesystem.
No obfuscated code. Every line should be readable. If a reviewer can't understand what a script does, it doesn't ship.
Hook PRs get a dedicated security review. We diff every line against the existing script, check for exfil patterns, and test in a sandboxed environment before merging.
Testing
212+ tests and CI
Every hook has unit tests. CI runs on every push and PR against Python 3.9 and 3.12. If you're adding or modifying a hook, run the suite locally before opening a PR:
pip install pytest
pytest tests/ -v
# 212 passed in ~3 seconds Tests use subprocess execution — the same way Claude Code runs hooks. No mocking of the scripts themselves.