name: jan-cli
description: |
YAML-defined CLI command trees for agents and humans:
- Nested subcommands with progressive `--help` at each level
- Leaf nodes that delegate to real programs (`exec.argv`)
- Optional passthrough of extra CLI args (`exec.passthrough`)
- Script `path`, `dependencies` (other scripts on PATH), `requires` (external tools), and `env`
- Preferred directory via `jan use` (XDG config); `jan --help` lists live subcommands
- SQLite audit log of invocations keyed by git branch (override with `--branch` / `JAN_BRANCH`)
- `jan bundle` / `jan alias` for portable spec export and shell aliases
- `jan list` / `search` / `show` / `validate` / `audit` over the preferred tree
language: rust
tags:
- rust
- cli
- yaml
- sqlite
- agents
scripts:
build:
command: cargo build --release
test:
command: cargo test
fmt:
command: cargo fmt
clippy:
command: cargo clippy
run:
command: cargo run --bin jan -- --help
package:
command: cargo package
publish:
command: cargo publish
release:
command: ./scripts/release.sh
release-dry-run:
command: ./scripts/release.sh --dry-run
release-minor:
command: ./scripts/release.sh --minor
release-major:
command: ./scripts/release.sh --major