name: pi-ext-automation
description: "Use when authoring or editing pi-ext Mise tasks and mise.toml, inspecting task definitions or dependency edges, reinstalling Git hooks, or diagnosing a failing or missing Mise task in this repository."
pi-ext automation
Mise is the only public automation interface here.
This skill holds the how-to; .system/RULES.md holds the binding law.
A stale shim can shadow a real binary; mise which <bin> reports whether Mise owns it.
---
name: pi-ext-automation
description: "Use when authoring or editing pi-ext Mise tasks and mise.toml, inspecting task definitions or dependency edges, reinstalling Git hooks, or diagnosing a failing or missing Mise task in this repository."
---
# pi-ext automation
Mise is the only public automation interface here.
This skill holds the how-to; `.system/RULES.md` holds the binding law.
## Task inventory
Root tasks:
| Task | Purpose |
|---|---|
| `//:install` | Install exact locked dependencies |
| `//:lock` | Regenerate the lockfile |
| `//:fmt` | Format the repository |
| `//:lint` | Verify formatting and lint |
| `//:test` | Run the complete test suite once |
| `//:check` | Typecheck and statically validate all extensions |
| `//:bench` | Run all extension benchmarks sequentially |
| `//:e2e` | Run all browser acceptance suites |
| `//:ci` | Complete release gate |
| `//:list`, `//:changelog`, `//:readme`, `//:release-plan`, `//:release-prepare`, `//:publish` | Repository operations |
Extension tasks: `//extensions/<name>:test`, `//extensions/<name>:lint`, `//extensions/<name>:check`.
## Inspection
- `mise tasks --all` lists root and extension-local tasks.
- `mise task info <task>` shows one definition.
- `mise tasks deps <task>` shows dependency edges.
- `mise run --dry-run <task>` shows execution without running it.
- `mise tasks validate` after changing root configuration.
- `mise -C extensions/<name> tasks validate` after changing extension-local configuration.
## Authoring
- Use task dependencies for prerequisites so Mise can deduplicate and schedule shared work.
- Prefer structured task references over command strings that spawn nested Mise processes.
- Treat a task `run` array as sequential execution.
- Use a structured task group for an explicitly parallel stage.
- Spawn nested Mise only when a required scheduler option has no structured-task equivalent.
- Do not enable raw task mode unless the task requires standard input.
- Set Mise job counts deliberately when tasks invoke tools that manage their own workers.
- Use `:::` only for independent ad hoc tasks that should run concurrently.
## Git hooks
Pre-commit and pre-push run only `check` and `lint`.
- Reinstall pre-commit: `mise generate git-pre-commit --write`
- Reinstall pre-push: `mise generate git-pre-commit --hook pre-push --task pre-push --write`
## Troubleshooting
- Run `mise doctor` when a task fails because a command is unavailable.
- Check missing activation, missing shims, and mismatched tool binary names first.
- A stale shim can shadow a real binary; `mise which <bin>` reports whether Mise owns it.