Agent skill

Julia

Execute these commands after EVERY implementation (see AGENT_AUTOMATION module for full workflow).

Stars 10
Forks 1

Install this agent skill to your Project

npx add-skill https://github.com/hivellm/rulebook/tree/main/templates/skills/languages/julia

SKILL.md

Julia Project Rules

Agent Automation Commands

CRITICAL: Execute these commands after EVERY implementation (see AGENT_AUTOMATION module for full workflow).

bash
# Complete quality check sequence:
julia -e 'using JuliaFormatter; format(".", overwrite=false)'  # Format check
julia -e 'using Lint; lintpkg(".")'  # Linting
julia --project=. -e 'using Pkg; Pkg.test()'  # All tests

# Security audit:
julia -e 'using Pkg; Pkg.update()'  # Update deps

Julia Configuration

CRITICAL: Use Julia 1.9+ with JuliaFormatter and testing.

  • Version: Julia 1.9+
  • Formatter: JuliaFormatter.jl
  • Linter: Lint.jl
  • Testing: Test.jl (standard library)
  • Documentation: Documenter.jl

Project.toml Requirements

toml
name = "YourPackage"
uuid = "12345678-1234-1234-1234-123456789012"
authors = ["Your Name <you@example.com>"]
version = "0.1.0"

[deps]
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

[compat]
julia = "1.9"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]

Code Quality Standards

Mandatory Quality Checks

IMPORTANT: These commands MUST match your GitHub Actions workflows!

bash
# Pre-Commit Checklist (MUST match .github/workflows/*.yml)

# 1. Format check (matches workflow)
julia -e 'using JuliaFormatter; format(".", overwrite=false)'

# 2. Lint (matches workflow)
julia -e 'using Lint; lintpkg("YourPackage")'

# 3. Run all tests (MUST pass 100% - matches workflow)
julia --project=. -e 'using Pkg; Pkg.test()'

# 4. Check coverage (matches workflow)
julia --project=. --code-coverage=user -e 'using Pkg; Pkg.test()'

# If ANY fails: ❌ DO NOT COMMIT - Fix first!

Why This Matters:

  • Example: Using format(..., overwrite=true) locally but overwrite=false in CI = failure

Testing Example

julia
using Test
using YourPackage

@testset "DataProcessor tests" begin
    @testset "process function" begin
        @test process([1, 2, 3]) == [2, 4, 6]
        @test process([]) == []
        @test_throws ArgumentError process(nothing)
    end
    
    @testset "validate function" begin
        @test validate("test") == true
        @test validate("") == false
    end
end

Didn't find tool you were looking for?

Be as detailed as possible for better results