Changes for version 0.200 - 2026-05-16

  • Centralize config knowledge: priority_order(), class_order(), terminal_statuses(), is_terminal_status(), status_requires_claim() moved to Config and BoardStore (no more duplication across commands).
  • Add all_status_names(), status_requires_claim(), is_terminal_status() to BoardStore for encapsulated status config access.
  • Convert all require Time::Piece to use Time::Piece (Pick, Move, Edit).
  • Extract append_log into App::karr::ActivityLog module.
  • Architecture refactor: split Role::BoardAccess into Role::BoardDiscovery + Role::SyncLifecycle. Commands now work directly on refs via BoardStore instead of via a materialized temp directory.
  • Add SyncGuard (push insurance on die/croak), effective_config() on BoardStore, and $self->config via Role::BoardDiscovery.
  • Add tasks/ to .gitignore (never commit materialized view).
  • Fix CPAN smoker failures: skip git tests on old git (< 1.8.5, no -C flag)
  • Fix skip() without SKIP block in t/11-git-impl.t (Test::More crash)
  • Skip user.email test gracefully when not configured

Documentation

Kanban Assignment & Responsibility Registry

Modules

Kanban Assignment & Responsibility Registry
Activity log writer for karr board operations
Ref-backed board storage for karr
Generate a random two-word agent name
Archive a task (soft-delete)
Export the ref-backed karr board as YAML
Show board summary
View or modify board configuration
Generate board context summary for embedding
Create a new task
Delete a task
Destroy the ref-backed karr board
Modify an existing task
Fetch helper payloads from a Git ref
Hand off a task for review
Initialize a new karr board
List tasks with filtering and sorting
Show activity log
Change a task's status
Atomically find and claim the next available task
Restore the ref-backed karr board from YAML
Store helper payloads in a Git ref
Show full details of a task
Install, check, and update bundled agent skills
Sync karr board with remote
Board configuration management
Git operations for karr sync (via CLI)
Lock management via Git refs
Role providing board discovery, sync lifecycle, and task access
Role providing minimal board discovery and config access
Shared claim timeout logic
Role providing common output format options
Role providing sync lifecycle with retry and guard insurance
Push guard with automatic retry on scope exit
Task object representing a single kanban card