Crypt-Age
view release on metacpan or search on metacpan
misc/agent-context/.claude/skills/kanban-issues-karr-coordination/references/storage.md view on Meta::CPAN
sync the board only. Deletions travel: a pruned run log does not come back.
**A fresh clone fetches the board by itself.** `git clone` does not carry
`refs/karr/*`. Where nothing exists under `refs/karr/` and the remote has a
board, the read commands (`board`, `list`, `show`, `log`, `context`,
`metrics`, `needs`, `config show`/`get`) fetch it once and say so on STDERR,
never STDOUT. No remote, or no board there, exits 1 rather than rendering an
empty board â the only place `karr init` is the answer. `KARR_NO_AUTO_FETCH=1`
switches the fetch off where karr must not touch the network.
## Stored card format
```markdown
---
class: standard
created: 2026-03-12T10:00:00Z
id: 1
priority: high
status: backlog
tags:
- devops
- needs:other-repo#7
title: Set up CI pipeline
updated: 2026-03-12T10:00:00Z
---
Optional body with more detail.
```
Keys in alphabetical order; `started`, `claimed_at`, `claimed_by`, `completed`
appear once the card reaches that point. This is the document under
`refs/karr/tasks/*/data` and the file `materialize` writes â the format to read
or generate when working on cards programmatically.
## File view (kanban-md interop)
```bash
karr materialize # refs -> tasks/ + config.yml on disk
karr materialize --force # overwrite git-tracked cards there
karr import --yes # tasks/ on disk -> refs (destructive)
```
`tasks/` is a gitignored view for grepping or for kanban-md, never the source
of truth: losing it costs nothing, editing it costs nothing until `import`.
`materialize` refuses to write over paths the project tracks in git unless
`--force` is given.
## repair
```bash
karr repair # report what would change
karr repair --yes # migrate
```
Boards written by karr 0.402 or earlier stored UTF-8 double-encoded; they are
repaired on read meanwhile, and this migrates the refs once. It also raises a
`started` stamp written as a bare date (before k68) up to the card's own
`created` â the dry run says how many cards. `completed` stamps with the same
problem are reported, not touched.
## backup / restore / destroy
```bash
karr backup > karr-backup.yml
karr backup --output karr-backup.yml
karr restore --yes < karr-backup.yml # replaces the whole refs/karr/* namespace
karr restore --yes --input karr-backup.yml
karr destroy --yes # deletes refs/karr/* here AND on the remote
```
`restore` and `destroy` are destructive; take a `backup` first.
## Helper refs
```bash
karr set-refs superpowers/spec/1234.md draft ready # arguments joined with one space: a one-line payload
karr set-refs superpowers/spec/1234.md < design.md # no content argument: stdin, stored verbatim
karr get-refs superpowers/spec/1234.md > design.md # back unchanged
```
Shared payloads in Git refs outside the protected namespaces (`refs/karr/*`,
branches, tags): planning blobs, agent scratch data, anything that should sync
through Git without becoming a card. `refs/karr-foundation/chain/*`, `log/*`
and `questions/*` are read-only for `set-refs`; `get-refs` reads them freely.
( run in 0.944 second using v1.01-cache-2.11-cpan-3f962061493 )