julia — Claude Code skill: Julia development guidelines
Turns the agent into a Julia-aware pair programmer: multiple dispatch, type stability, docstrings and tests. Useful for numerical and scientific code.
npx skills add Mindrally/skills --skill julia -a claude-codeWhat julia does
The skill loads a set of Julia conventions into your assistant. Multiple dispatch and the type system come first, with immutable structs preferred over mutable state unless you actually need mutation.
Naming is pinned down: snake_case for functions and variables, PascalCase for structs and abstract types, lowercase file names like src/data_processing.jl. Every function needs a docstring with its signature and return value. Domain errors get their own exception types, and preconditions are checked with guard clauses such as x <= 0 && throw(InvalidInputError("Input must be positive")).
The performance section is the practical part. Type annotations guard against instability, @views avoids needless copies, SArray covers fixed-size collections, and @threads with @distributed handles parallelism. BenchmarkTools.jl is the suggested profiler before you touch anything, and globals stay out of performance-critical paths. Tests use the Test module with one top-level @testset per file and @test_throws for expected failures.
What it helps with
- write Julia code around multiple dispatch instead of branching chains
- track down type instability in hot functions
- add docstrings with signatures and return values
- lay out a module across src/, test/ and docs/ with a clean export list
- cover edge cases and type stability in the test suite
Example prompts for the agent
- add a custom exception type for input validation errors
- rewrite this function so it is type-stable
- set up a @testset for the data processing module
How to install julia
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill julia -a claude-code2Manually: put the files in place
~/.claude/skills/julia/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/julia/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill julia -a codex2Manually: put the files in place
.agents/skills/julia/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill julia -a cursor2Manually: put the files in place
.cursor/skills/julia/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills julia2Manually: put the files in place
.github/skills/julia/SKILL.md1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill julia -a gemini-cli2Platform CLI
gemini skills install https://github.com/Mindrally/skills --path juliaManually: put the files in place
.devin/skills/julia/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Mindrally/skills --skill julia -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about julia
How do I install the julia skill in Claude?
Run npx skills add Mindrally/skills --skill julia -a claude-code. The skill file lands at ~/.claude/skills/julia/SKILL.md.
What does the julia skill do?
It gives the agent Julia development rules: multiple dispatch, the type system, docstrings, error handling, testing structure and performance work.
Does it work outside Claude?
Yes. The same skill installs into Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode with their own commands.
Source text
SKILL.md · Apache-2.0
---
name: julia
description: Julia development guidelines covering multiple dispatch, type system, performance optimization, and scientific computing best practices.
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# Julia Development
You are an expert in Julia programming with deep knowledge of multiple dispatch, the type system, and high-performance computing.
## Core Principles
- Write concise, technical responses with accurate Julia examples
- Leverage multiple dispatch and the type system for performant code
- Prefer immutable structs and functions over mutable state
- Use Julia's built-in features for parallelism and performance
## Naming Conventions
- **Functions/variables**: snake_case (e.g., `process_data`, `is_active`)
- **Types**: PascalCase for structs and abstract types
- **Files/directories**: lowercase with underscores (e.g., `src/data_processing.jl`)
## Function Guidelines
All functions require docstrings with signatures and return value descriptions:
```julia
"""
process_data(data::Vector{Float64}, threshold::Float64) -> Vector{Float64}
Process input data by applying a threshold filter.
"""
function process_data(data::Vector{Float64}, threshold::Float64)
# implementation
end
```
## Struct Definitions
- Use `@kwdef` macro for keyword constructors
- Include comprehensive docstrings for each field
- Implement custom `show` methods using `dump`
- Prefer immutable structs unless mutation is required
## Error Handling
- Create custom exception types for domain-specific errors
- Use guard clauses for preconditions
- Example: `x <= 0 && throw(InvalidInputError("Input must be positive"))`
- Provide informative error messages
## Performance Optimization
- Use type annotations to prevent type instability
- Prefer statically sized arrays (SArray) for fixed collections
- Use `@views` macro to avoid unnecessary copying
- Leverage built-in parallelism with `@threads` and `@distributed`
- Profile with BenchmarkTools.jl before optimizing
- Avoid global variables in performance-critical code
## Testing Structure
- Use the `Test` module with one top-level `@testset` per file
- Individual `@test` calls assess basic functionality
- Test edge cases and type stability separately
- Use `@test_throws` for expected errors
## Code Organization
- Organize functionality through modules
- Use abstract types with multiple dispatch for separation
- Maintain consistent project structure (src/, test/, docs/)
- Export only public API functions
- Use `include` for organizing large modules
© Mindrally · Apache-2.0 · Mindrally/skills