Just Command Runner
Create readable task automation that matches the repository's installed Just version and existing justfile conventions.
Defaults
-
Inspect
just --version, the existing justfile/module tree, andjust --listbefore editing. Installed capabilities and existing syntax are authoritative over this skill's examples. -
Preserve bespoke formatting. Do not rewrite a justfile with
just --fmt; usejust --fmt --checkonly when the repository explicitly treats the built-in formatter as authoritative.just --dumpis inspection output, not a formatting source. -
Define multi-item string sequences one item per line with a parenthesized concatenation. Keep a trailing separator in every non-final item; do not collapse them into one long string. Triple-quoted strings are for values whose newlines are semantic, not visual wrapping. For example:
check-steps := ( "event-class-coverage " + "orphan-disposal " + "price-coverage" ) -
Prefer explicit, small recipes; Just-native executable checks; private helpers; check/write recipe pairs; and aliases after their target recipes. Prefer
which()plusassert()with actionable install guidance over shellcommand -vor backtickwhichchecks when the justfile already enablesset unstableandset lists. Otherwise, userequire()when its generic missing-executable error is sufficient. Put an assertion at top level only when every recipe needs that tool; otherwise make it a private prerequisite of the affected recipes. -
Make recipes quiet by default: prefix the recipe name with
@unless echoing commands has clear value. Recipe-level@inverts per-line@, so never also prefix lines inside a@recipe. Never add@to a[script]recipe: scripts are already quiet, and@un-mutes them. See "Quiet Recipes and Command Prefixes" inreferences/recipes.md. -
On stock macOS, assume
/bin/bash3.2 unless the recipe explicitly selects a newer shell. -
Use the user's section-banner style when creating a new standalone justfile; existing repository organization overrides it.
Workflow
-
Determine the requested recipe behavior, inputs, outputs, cwd, shell, environment, dependencies, and success condition.
-
Use the installed manual (
just --help,just --man, or https://just.systems/man/en/) for version-sensitive syntax. Read only the task-specific reference:| Task | Reference | | ------------------------------------------ | ------------------------------ | | Recipes, parameters, dependencies, cache |
references/recipes.md| | Settings, dotenv, lists, modules |references/settings.md| | Expressions, functions, constants |references/syntax.md| | Shell or script recipes |references/inline-scripts.md| | Check/write, status, aliases, organization |references/patterns.md| -
Make the smallest recipe or setting change. Do not enable unstable features unless the requested design needs them and the installed version supports them.
-
Validate parsing with
just --listorjust --summary, then execute the narrowest safe recipe path. For state-changing recipes, use an existing dry-run/check mode or inspect the expanded command first.
Opinionated Organization
For a new standalone file, prefer dependency declarations, constants, public recipes, checks, then private helpers. Use
set default-list := true when no single default action makes sense and the installed version supports it. Example
starting points live in examples/standalone.just and examples/devkit.just; load one only when creating that shape.
Completion requires a parsable justfile, the requested recipe behavior, and execution or dry-run evidence appropriate to
its side effects. Finish with ### β
Just workflow ready, a compact recipe/alias/purpose table when several entries
changed, and ### π§ͺ Verification with exact commands and outcomes. Keep confirmation prompts, recipe data output,
compiler output, and just --list output undecorated; preserve the repository's own banner vocabulary.