ait-gitlisted
Install: claude install-skill beyondeye/aitasks
## Git Operations on Task/Plan Files
When running git commands that operate on files in `aitasks/` or `aiplans/` directories, **always use `./ait git` instead of plain `git`**. This ensures correct branch targeting when task data lives on a separate `aitask-data` branch.
### Usage
```bash
./ait git add aitasks/t42_foo.md
./ait git commit -m "ait: Update task t42" -- aitasks/t42_foo.md
./ait git push
./ait git status
```
**The `-- <path>` is not optional.** `./ait git` is `task_git` in a subprocess, so
a `commit` with no pathspec commits the **entire** `.aitask-data` index — and that
index is shared by every session on the machine. Whatever a concurrent session has
staged at that instant lands in your commit, under a message naming your task.
### Scoped commits: prefer the helper
For task and plan files, prefer:
```bash
./.aitask-scripts/aitask_task_commit.sh -m "ait: Update task t42" aitasks/t42_foo.md
```
It replaces the `add` + `commit` pair. It stages only paths git does not track
yet (an `add` of a **tracked** path would replace the index entry another session
staged for it), unstages exactly those again if the commit fails, and refuses any
path outside `aitasks/`/`aiplans/`. It never pushes — `./ait git push` stays a
separate step.
<a id="helper-outcome-contract"></a>
**Outcome contract — read the whole output, and branch on the exit status; the
status is the authority.**
| Exit | Meaning |
|---|---|
| 0 | Committed. `COMMITTED:<n>:<subject>` |
| 2 | Nothing co