cli-just

安装量: 69
排名: #11189

安装

npx skills add https://github.com/paulrberg/agent-skills --skill cli-just

Just Command Runner Overview Expert guidance for Just, a command runner with syntax inspired by make. Use this skill for creating justfiles, writing recipes, configuring settings, and implementing task automation workflows. Key capabilities: Create and organize justfiles with proper structure Write recipes with attributes, dependencies, and parameters Configure settings for shell, modules, and imports Use built-in constants for terminal formatting Implement check/write patterns for code quality tools Quick Reference Essential Settings set allow-duplicate-recipes # Allow recipes to override imported ones set allow-duplicate-variables # Allow variables to override imported ones set shell := ["bash", "-euo", "pipefail", "-c"] # Strict bash with error handling set unstable # Enable unstable features (modules, script attribute) set dotenv-load # Auto-load .env file set positional-arguments # Pass recipe args as $1, $2, etc. Common Attributes Attribute Purpose [arg("p", long, ...)] Configure parameter as --flag option (v1.46) [arg("p", pattern="…")] Constrain parameter to match regex pattern [group("name")] Group recipes in just --list output [no-cd] Don't change to justfile directory [private] Hide from just --list (same as _ prefix) [script] Execute recipe as single script block [script("interpreter")] Use specific interpreter (bash, python, etc.) [confirm("prompt")] Require user confirmation before running [doc("text")] Override recipe documentation [positional-arguments] Enable positional args for this recipe only Recipe Argument Flags (v1.46.0+) The [arg()] attribute configures parameters as CLI-style options:

Long option (--target)

[arg("target", long)] build target: cargo build --target {{ target }}

Short option (-v)

[arg("verbose", short="v")] run verbose="false": echo "Verbose: {{ verbose }}"

Combined long + short

[arg("output", long, short="o")] compile output: gcc main.c -o {{ output }}

Flag without value (presence sets to "true")

[arg("release", long, value="true")] build release="false": cargo build {{ if release == "true" { "--release" } else { "" } }}

Help string (shown in just --usage)

[arg("target", long, help="Build target architecture")] build target: cargo build --target {{ target }} Usage examples: just build --target x86_64 just build --target = x86_64 just compile -o main just build --release just --usage build

Show recipe argument help

Multiple attributes can be combined: [no-cd, private] [group("checks")] recipe: echo "hello" Built-in Constants Terminal formatting constants are globally available (no definition needed): Constant Description CYAN , GREEN , RED , YELLOW , BLUE , MAGENTA Text colors BOLD , ITALIC , UNDERLINE , STRIKETHROUGH Text styles NORMAL Reset formatting BG_* Background colors (BG_RED, BG_GREEN, etc.) HEX , HEXLOWER Hexadecimal digits Usage: @status: echo -e '{{ GREEN }}Success!{{ NORMAL }}' echo -e '{{ BOLD + CYAN }}Building...{{ NORMAL }}' Key Functions

Require executable exists (fails recipe if not found)

jq := require("jq")

Get environment variable with default

log_level := env("LOG_LEVEL", "info")

Get justfile directory path

root := justfile_dir() Recipe Patterns Status Reporter Pattern Display formatted status during multi-step workflows: @_run-with-status recipe *args: echo "" echo -e '{{ CYAN }}→ Running {{ recipe }}...{{ NORMAL }}' just {{ recipe }} {{ args }} echo -e '{{ GREEN }}✓ {{ recipe }} completed{{ NORMAL }}' alias rws := _run-with-status Check/Write Pattern Pair check (verify) and write (fix) recipes for code quality tools: [group("checks")] @biome-check +globs=".": na biome check {{ globs }} alias bc := biome-check [group("checks")] @biome-write +globs=".": na biome check --write {{ globs }} alias bw := biome-write Full Check/Write Pattern Aggregate all checks with status reporting: [group("checks")] @full-check: just _run-with-status biome-check just _run-with-status prettier-check just _run-with-status tsc-check echo "" echo -e '{{ GREEN }}All code checks passed!{{ NORMAL }}' alias fc := full-check [group("checks")] @full-write: just _run-with-status biome-write just _run-with-status prettier-write echo "" echo -e '{{ GREEN }}All code fixes applied!{{ NORMAL }}' alias fw := full-write Standard Alias Conventions Recipe Alias Recipe Alias full-check fc full-write fw biome-check bc biome-write bw prettier-check pc prettier-write pw mdformat-check mc mdformat-write mw tsc-check tc ruff-check rc test t build b Inline Scripts Just supports inline scripts in any language via two methods: Script Attribute (Recommended) Use [script("interpreter")] for cross-platform compatibility: [script("node")] fetch-data: const response = await fetch('https://api.example.com/data'); const data = await response.json(); console.log(data); [script("python3")] analyze: import json with open('package.json') as f: pkg = json.load(f) print(f"Package: {pkg['name']}@{pkg['version']}") [script("bash")] deploy: set -e npm run build aws s3 sync dist/ s3://bucket/ Shebang Method Use

!/usr/bin/env interpreter

at the recipe start: node-script:

!/usr/bin/env node

console.log(Node ${process.version}); console.log(JSON.stringify(process.env, null, 2)); python-script:

!/usr/bin/env python3

import sys print(f"Python {sys.version}") bash-script:

!/usr/bin/env bash

set -euo pipefail echo "Running on $(uname -s)" When to use which: [script()] - Better cross-platform support, cleaner syntax Shebang - Traditional Unix approach, works without set unstable Modules & Imports Import Pattern Include recipes from another file: import "./just/settings.just" import "./just/base.just" import? "./local.just" # Optional (no error if missing) Module Pattern Load submodule (requires set unstable ): mod foo # Loads foo.just or foo/justfile mod bar "path/to/bar" # Custom path mod? optional # Optional module

Call module recipes

just foo::build Devkit Import Pattern For projects using @sablier/devkit : import "./node_modules/@sablier/devkit/just/base.just" import "./node_modules/@sablier/devkit/just/npm.just" Section Organization Standard section header format:

----------------------------------------------------------------------------

DEPENDENCIES

----------------------------------------------------------------------------

Common sections (in order): DEPENDENCIES - Required tools with URLs CONSTANTS - Glob patterns, environment vars RECIPES / COMMANDS - Main entry points CHECKS - Code quality recipes UTILITIES / INTERNAL HELPERS - Private helpers Default Recipe Always define a default recipe:

Show available commands

default: @just --list Dependencies Declaration Document required tools at the top:

----------------------------------------------------------------------------

DEPENDENCIES

----------------------------------------------------------------------------

Bun: https://bun.sh

bun := require("bun")

Ni: https://github.com/antfu-collective/ni

na := require("na") ni := require("ni") nlx := require("nlx")

Usage: invoke directly in recipes (not with interpolation)

build: bun next build Note: require() validates the tool exists at recipe evaluation time. Use the variable name directly (e.g., bun ), not with interpolation ( {{ bun }} ). Context7 Fallback For Just features not covered in this skill (new attributes, advanced functions, edge cases), fetch the latest documentation: Use context7 MCP with library ID /websites/just_systems-man to get up-to-date Just documentation. Example topics to search: modules import mod - Module system details settings - All available settings attributes - Recipe attributes functions - Built-in functions script recipes - Script block syntax Additional Resources Reference Files For detailed patterns and comprehensive coverage, consult: references/settings.md - Settings configuration and module system references/recipes.md - Recipe attributes, parameters, dependencies, and prefixes references/syntax.md - Constants, functions, variables, and CLI options references/patterns.md - Established conventions, section organization, helper patterns Example Templates Working justfile templates in examples/ : devkit.just - Minimal template importing @sablier/devkit standalone.just - Full standalone template with all patterns External Documentation Official Manual : https://just.systems/man/en/ GitHub Repository : https://github.com/casey/just Context7 Library ID : /websites/just_systems-man Tips Use @ prefix to suppress command echo: @echo "quiet" Use + for variadic parameters: test +args Use * for optional variadic: build flags Quote glob patterns in variables: GLOBS := "\"/.json\"" Use [no-cd] in monorepos to stay in current directory Private recipes start with _ or use [private] Always define aliases after recipe names for discoverability

返回排行榜