# Mariatta's Claude Skills Reusable Claude Code skills: house conventions an AI assistant loads on its own, written so a human can read them too. These are Claude Code skills: folders of Markdown an agent loads on its own when the work matches the skill's description. Two ways to use them. ## Install them (preferred) Cloning and running ./install.sh symlinks each skill into ~/.claude/skills/, after which Claude Code loads the right one unprompted, with no URL to remember: git clone https://github.com/Mariatta/claude-skills.git cd claude-skills && ./install.sh Full instructions: https://claude-skills.mariatta.ca/install/ ## Or read one directly Fetch the raw Markdown below. Each file is the exact text an installed skill provides, frontmatter included, so following it by URL gives the same result as installing it. They are prose with reasons attached, meant to be read rather than pattern-matched. ## django House conventions for writing code in a Django codebase: formatter and linter compliance (black, isort, djlint, flake8), imports at module top with real refactors for circular imports, docstrings over comment blocks, maintained libraries over hand-rolled code, full test coverage as a merge gate, permission gating through has_perm, secrets encrypted at rest, templates with no inline style blocks, the single-Markdown-template email pattern that produces both plain-text and HTML parts, and a portable container boot contract for deployment. Use this whenever writing, editing, or reviewing Python, templates, tests, settings, or deployment config in a Django project, even when the request is just "add a view" or "fix this bug" and says nothing about style. Concrete tools, thresholds, and paths come from profile.json; read it before assuming this project uses the same stack. - https://claude-skills.mariatta.ca/raw/django/SKILL.md - https://claude-skills.mariatta.ca/raw/django/ADAPTING.md - https://claude-skills.mariatta.ca/raw/django/profile.json - https://claude-skills.mariatta.ca/raw/django/references/deployment.md - https://claude-skills.mariatta.ca/raw/django/references/email.md Rendered for humans: https://claude-skills.mariatta.ca/django/ ## gitignore What must never be committed to a git repository, and what to do when it already has been. Covers the always-ignore baseline (environment and secret files, OS and editor cruft, virtualenvs, build output, local databases and media, coverage and cache artifacts), the files people wrongly ignore (lockfiles, migrations, .env.example), the fact that .gitignore does not untrack an already-tracked file, and the rule that a committed secret must be rotated rather than merely deleted. Use whenever initializing a repository, writing or editing a .gitignore or .dockerignore, making a first commit, staging files, creating a file that holds credentials, explaining why something shows up in git status, or reacting to a secret that reached a commit. - https://claude-skills.mariatta.ca/raw/gitignore/SKILL.md - https://claude-skills.mariatta.ca/raw/gitignore/references/templates.md Rendered for humans: https://claude-skills.mariatta.ca/gitignore/ ## Notes The django skill is one developer's preference for their own projects, not Django community consensus. In a codebase you do not own, that project's conventions take precedence: its CLAUDE.md or AGENTS.md, its existing code, and its maintainers. Project-specific values live in profile.json, never in the conventions themselves, so pointing a skill at a different stack is one file to edit. Source: https://github.com/Mariatta/claude-skills