App-karr
view release on metacpan or search on metacpan
run, and then write changes back to Git refs. In normal use this means you can
interact with shared task state without checking a persistent F<karr/>
directory into the work tree.
The script is the best starting point when you want to understand the CLI as a
user. For architecture notes, Docker background, and Perl-facing examples, see
L<App::karr>.
=head1 CLI WORKFLOW
A typical session looks like this:
=over 4
=item 1.
Create the board once with L<App::karr::Cmd::Init>.
=item 2.
Add and inspect tasks with L<App::karr::Cmd::Create>,
docs/superpowers/plans/2026-03-22-ref-first-board-implementation.md view on Meta::CPAN
### Task 3: Replace `BoardAccess` local-directory logic
**Files:**
- Modify: `lib/App/karr/Role/BoardAccess.pm`
- Modify: `lib/App/karr.pm`
- Test: `t/15-sync.t`
- Test: `t/24-ref-first-board-access.t`
- [ ] **Step 1: Write failing tests showing that board discovery requires Git and no longer requires `karr/config.yml`**
- [ ] **Step 2: Run `prove -l t/15-sync.t t/24-ref-first-board-access.t`**
Expected: FAIL because discovery still looks for `karr/config.yml`.
- [ ] **Step 3: Refactor `BoardAccess` to anchor on the Git worktree root and use `App::karr::BoardStore` instead of `tasks_dir` and `config.yml`**
- [ ] **Step 4: Keep any materialization strictly temporary and internal to the role/store**
- [ ] **Step 5: Run `prove -l t/15-sync.t t/24-ref-first-board-access.t`**
Expected: PASS.
### Task 4: Make `init` Git-only and ref-only
**Files:**
- Modify: `lib/App/karr/Cmd/Init.pm`
- Modify: `t/25-init-ref-first.t`
( run in 2.184 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )