skills/derklinke/codex-config/justfile-authoring

justfile-authoring

SKILL.md

Justfile Authoring

Follow existing conventions

  • Locate the nearest justfile or .justfile to the working directory and edit in place.
  • Preserve naming style, indentation, and grouping conventions.
  • Keep diffs minimal; avoid renaming recipes unless requested.

Edit workflow

  1. Read the existing justfile top to bottom; note set directives, variables, aliases, and groups.
  2. Add or update recipes using the same structure and indentation.
  3. Ensure dependencies and parameters are correct and consistent.
  4. If a recipe should be hidden from listings, mark it private or prefix with _.

Syntax essentials

  • Recipe:

    build target="app": clean
        cargo build --release --bin {{target}}
    
  • Dependencies: run before the recipe body; parameterized deps are wrapped in parentheses.

    rebuild: clean build
    build arch: (clean arch)
        cargo build --target {{arch}}
    
  • Parameters: defaults supported; variadics use * (zero or more) or + (one or more).

    test suite="all":
        cargo test --tests {{suite}}
    
    backup *files:
        tar czf backup.tar.gz {{files}}
    
  • Exported parameters: prefix with $ to pass as environment variables.

    test-with-env $TEST_MODE:
        echo "$TEST_MODE"
    
  • Variables and interpolation:

    app := "myapp"
    build:
        echo "{{app}}"
    
  • Default recipe: place first if you want it to run with just.

    default:
        @just --list
    

Settings

Use set to configure behavior globally.

set dotenv-load := true
set shell := ["bash", "-eo", "pipefail", "-c"]
set working-directory := "ios"

Attributes and helpers

Common attributes:

  • [group('name')] or [group: 'name'] to categorize recipes in listings.
  • [working-directory('path')] to override the cwd for one recipe.
  • [private] to hide a recipe or alias from just --list.
  • [doc('description')] to control list output text.
  • [confirm('prompt')] to request confirmation.
  • [linux], [macos], [windows] for platform-specific recipes.
  • [no-cd] to run in the invoking directory instead of the justfile directory.
  • [positional-arguments] for positional-argument recipes.

Aliases:

alias b := build

Shebang recipes

For multi-line scripts, start the body with a shebang.

release:
    #!/usr/bin/env bash
    set -euo pipefail
    ./scripts/release.sh

Editing checklist

  • Keep indentation consistent (spaces or tabs, not both, within a recipe).
  • Use @ on a line (or @ before the recipe name) to suppress command echoing.
  • Prefer group and doc attributes for clarity in just --list.
  • Avoid unused variables, aliases, or recipes.
  • For repo-specific paths, anchor to the existing working-directory conventions.
Weekly Installs
17
GitHub Stars
7
First Seen
Jan 27, 2026
Installed on
gemini-cli17
antigravity17
claude-code17
codex17
cursor17
opencode16