AgentSkillsCN

justfile-authoring

为 Just 命令运行器创建、编辑或审查 Justfile 文件。适用于添加或修改配方、参数、依赖项、设置、属性、别名,或 Shebang 脚本;修复调用方式或工作目录的行为;或为 `just --list` 输出记录任务详情时使用。

SKILL.md
--- frontmatter
name: justfile-authoring
description: Create, edit, or review justfiles for the just command runner. Use when adding or modifying recipes, parameters, dependencies, settings, attributes, aliases, or shebang scripts; fixing invocation or working-directory behavior; or documenting tasks for `just --list` output.

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:

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

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

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

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

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

    just
    default:
        @just --list
    

Settings

Use set to configure behavior globally.

just
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:

just
alias b := build

Shebang recipes

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

just
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.