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, and just --list before editing. Installed capabilities
and existing syntax are authoritative over this skill's examples.
Preserve bespoke formatting. Do not rewrite a justfile with just --fmt; use just --fmt --check only when the
repository explicitly treats the built-in formatter as authoritative. just --dump is 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() plus assert() with actionable install guidance over shell command -v
or backtick which checks when the justfile already enables set unstable and set lists. Otherwise, use
require() 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" in references/recipes.md.
On stock macOS, assume /bin/bash 3.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 --list or just --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.
1---
2name: cli-just
3user-invocable: false
4description:
5 "Use for just/justfile task automation: create justfiles, write recipes, configure settings, add modules/attributes,
6 or set up command-runner workflows."
7---
8
9# Just Command Runner
10
11Create readable task automation that matches the repository's installed Just version and existing justfile conventions.
12
13## Defaults
14
15- Inspect `just --version`, the existing justfile/module tree, and `just --list` before editing. Installed capabilities
16 and existing syntax are authoritative over this skill's examples.
17- Preserve bespoke formatting. Do not rewrite a justfile with `just --fmt`; use `just --fmt --check` only when the
18 repository explicitly treats the built-in formatter as authoritative. `just --dump` is inspection output, not a
19 formatting source.
20- Define multi-item string sequences one item per line with a parenthesized concatenation. Keep a trailing separator in
21 every non-final item; do not collapse them into one long string. Triple-quoted strings are for values whose newlines
22 are semantic, not visual wrapping. For example:
23
24 ```just
25 check-steps := (
26 "event-class-coverage " +
27 "orphan-disposal " +
28 "price-coverage"
29 )
30 ```
31
32- Prefer explicit, small recipes; Just-native executable checks; private helpers; check/write recipe pairs; and aliases
33 after their target recipes. Prefer `which()` plus `assert()` with actionable install guidance over shell `command -v`
34 or backtick `which` checks when the justfile already enables `set unstable` and `set lists`. Otherwise, use
35 `require()` when its generic missing-executable error is sufficient. Put an assertion at top level only when every
36 recipe needs that tool; otherwise make it a private prerequisite of the affected recipes.
37- Make recipes quiet by default: prefix the recipe name with `@` unless echoing commands has clear value. Recipe-level
38 `@` inverts per-line `@`, so never also prefix lines inside a `@recipe`. Never add `@` to a `[script]` recipe: scripts
39 are already quiet, and `@` un-mutes them. See "Quiet Recipes and Command Prefixes" in `references/recipes.md`.
40- On stock macOS, assume `/bin/bash` 3.2 unless the recipe explicitly selects a newer shell.
41- Use the user's section-banner style when creating a new standalone justfile; existing repository organization
42 overrides it.
43
44## Workflow
45
461. Determine the requested recipe behavior, inputs, outputs, cwd, shell, environment, dependencies, and success
47 condition.
48
492. Use the installed manual (`just --help`, `just --man`, or <https://just.systems/man/en/>) for version-sensitive
50 syntax. Read only the task-specific reference:
51
52 | Task | Reference |
53 | ------------------------------------------ | ------------------------------ |
54 | Recipes, parameters, dependencies, cache | `references/recipes.md` |
55 | Settings, dotenv, lists, modules | `references/settings.md` |
56 | Expressions, functions, constants | `references/syntax.md` |
57 | Shell or script recipes | `references/inline-scripts.md` |
58 | Check/write, status, aliases, organization | `references/patterns.md` |
59
603. Make the smallest recipe or setting change. Do not enable unstable features unless the requested design needs them
61 and the installed version supports them.
62
634. Validate parsing with `just --list` or `just --summary`, then execute the narrowest safe recipe path. For
64 state-changing recipes, use an existing dry-run/check mode or inspect the expanded command first.
65
66## Opinionated Organization
67
68For a new standalone file, prefer dependency declarations, constants, public recipes, checks, then private helpers. Use
69`set default-list := true` when no single default action makes sense and the installed version supports it. Example
70starting points live in `examples/standalone.just` and `examples/devkit.just`; load one only when creating that shape.
71
72Completion requires a parsable justfile, the requested recipe behavior, and execution or dry-run evidence appropriate to
73its side effects. Finish with `### ✅ Just workflow ready`, a compact recipe/alias/purpose table when several entries
74changed, and `### 🧪 Verification` with exact commands and outcomes. Keep confirmation prompts, recipe data output,
75compiler output, and `just --list` output undecorated; preserve the repository's own banner vocabulary.