balls 0.5.9

Git-native task tracker for parallel agent workflows
Documentation
# bl import — bulk-create tasks from JSON on stdin

    usage: bl import [--legacy[=REF]] [-m MSG] [--as ID]

Ingests verbatim task JSON (the `bl show --json` / `bl list --json` bedrock
shape) from **stdin**. Ids and timestamps are preserved — no mint, no stamp, no
gate. One commit, all-or-nothing: an id that already exists refuses the whole
stream (use `bl update` to modify an existing task).

`import` is the write inverse of the bedrock read, and a distinct primitive from
`create`: "reproduce an existing identity" (migration, restore, federation join)
is not "mint a new one", which is exactly why `create` refuses foreign ids.

Verbatim includes the **edges**: blockers arrive exactly as the stream spells
them, with no create-time sugar applied. So a stream carrying an older store's
subtasks — `{child, claim}` edges on the epic, which is what `--subtask-of` used
to mint — reproduces claim-gated epics that keep delivering flat to the
integration branch. Nothing converts them; nesting is declared by a `close` edge
(`bl create --skill`), so to nest an imported tree, spell the `close` edges in
the stream. An import authors no delivery of its own — no worktree, no target.

Verbatim also includes `root_commit` — the project identity a ball recorded at
birth. Import a ball rooted in ANOTHER project and it lands correctly but sits
outside this checkout's default `bl list` scope, which shows only what `bl claim`
would admit. The import says so: alongside the count it prints one stderr hint
naming how many records are rooted elsewhere and the read that lifts the scope,
`bl list --everywhere`. The ball is there — `bl show <id>` resolves it — it is
simply not this project's.

## Flags

- `--legacy[=REF]` — instead migrate a pre-greenfield store (preview first with
  `bl list --legacy`).
- `-m MSG` — commit note.
- `--as ID` — worker identity.

## Examples

    cat new-tasks.json | bl import        # create new tasks (won't overwrite existing ids)
    bl import --legacy                    # migrate an old store