smithery/mindrally

julia

Julia development guidelines covering multiple dispatch, type system, performance optimization, and scientific computing best practices.

Installation

$ npx skills add smithery/mindrally --skill julia

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/mindrally · top by installs.

npx skills add smithery/mindrally

Browse all from smithery/mindrally

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,498 B
  • docs SUMMARY.md 149 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

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: snakecase (e.g., processdata, 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:

"""
    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