jan-cli 0.24.0

YAML-defined CLI trees with progressive help, optional exec aliases, merged extra specs, and SQLite audit logging keyed by git branch
Documentation
# `jan bundle`

Pack the reachable YAML tree (and linked script files) into a ZIP.

```bash
jan use /path/to/dotfiles/jan
jan bundle -o ~/scripts-jan.zip
jan bundle --dry-run
```

| Flag | Description |
|------|-------------|
| `-o`, `--output` | Output zip path (default: `jan-spec-bundle.zip`) |
| `--dry-run` | List files instead of writing a zip |

## Archive contents

- All YAML files reachable via `include:` under the preferred directory
- Linked non-YAML script files from script includes / `exec.file`
- `env.sh` — reminds you to `jan use` the unpack directory
- `manifest.json` — file list and SHA-256 hashes

Validates that every transitive `include:` target canonicalizes beneath the preferred directory. **Fails** if the tree contains remote includes — vendor YAML locally first.

Install with `scripts/jan-install.sh` (does **not** run `jan use`). Full workflow: [Portable trees](../PORTABLE_SCRIPTS.md).