App-karr
view release on metacpan or search on metacpan
docs/superpowers/specs/2026-03-19-v0004-release-design.md view on Meta::CPAN
}
```
### Embed board state in AGENTS.md or CLAUDE.md
```bash
karr context --write-to CLAUDE.md
# Inserts/updates between <!-- BEGIN kanban-md context --> sentinels
# Agent sees current board state at session start automatically
```
### Agent identity strategies
| Strategy | Persistence | Use case |
|----------|------------|----------|
| `karr agentname` | Ephemeral (new each call) | One-shot tasks |
| `git config user.email` | Stable per machine | Persistent agents |
| `$HOSTNAME-$PID` | Stable per process | Docker containers |
| Fixed name in hook/config | Stable always | Dedicated agent role |
**Recommendation for persistent agents:** Use git identity or a fixed name, not `karr agentname`.
### Key flags for agent consumption
| Flag | Purpose |
|------|---------|
| `--json` | Machine-readable output on ALL commands |
| `--compact` | One-line output (good for log context) |
| `--claimed-by NAME` | Filter to "my" tasks |
| `--status S1,S2` | Filter by status |
| `--tags t1,t2` | Specialize agents by domain |
### Docker + Git sync
```bash
# Mount git config for identity:
docker run --rm -v $(pwd):/work \
-v $HOME/.gitconfig:/root/.gitconfig:ro \
-v $HOME/.ssh:/root/.ssh:ro \
raudssus/karr sync
```
## Test Coverage Requirements
The ref-based sync is the highest-risk change. Required tests:
1. **`write_ref`/`read_ref` roundtrip** â verify commit-wrapped refs can be written and read back
2. **`push`/`fetch` with commit-wrapped refs** â verify refs actually transfer between repos (test with `git clone --bare` + two working copies)
3. **Materialize/serialize roundtrip** â create task via file, serialize to ref, delete file, materialize from ref, verify content matches
4. **Pick with Lock** â two sequential picks should claim different tasks
5. **Log append + read** â append entries from two "agents", verify merged output is sorted
6. **`from_string`/`from_file` parity** â same content parsed both ways produces identical Task objects
7. **`is_repo` from subdirectory** â verify detection works from `karr/` inside a git repo
8. **Config sync** â `next_id` collision prevention across two agents
Existing tests (`t/01-task.t` through `t/07-context.t`) must continue to pass unchanged.
## Out of Scope (v0.005+)
- `metrics` command (throughput, cycle time)
- `sync --watch` (background daemon polling)
- Dependency checking (block tasks with unsatisfied deps)
- Self-healing IDs
- WIP limit enforcement on move
- TUI (Tickit)
- External repo refs (`refs/karr/external/`)
- Messages in task metadata
( run in 1.296 second using v1.01-cache-2.11-cpan-5a3173703d6 )