App-karr

 view release on metacpan or  search on metacpan

bin/karr  view on Meta::CPAN

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`

t/45-options-before-positionals.t  view on Meta::CPAN

#           archives task 1, *silently dropping* the extra "99", because
#           today's leading-dash-free-run count stops at "--json" and never
#           sees the trailing "99". Both are pinned here as the desired
#           post-#13 contract (reject, no side effect), not as already-green.
#     These are reported honestly below rather than soft-pedalled to match
#     the ticket's colour claims; only `move 1 --next --claim tester` and
#     `create --title T` / `create T Extra` were confirmed genuinely green
#     on the current tree.
#
#   GREEN today (must stay green -- true "Bestandspins"):
#     - `edit 1 --append-body "--weird"` (value that looks like a flag)
#     - `move 1 --next --claim tester`
#     - `create --title T` / `create T Extra`
#
# STDERR assertions for the extra-args-rejection subtests use the same
# `qr/\bTOKEN\b|usage/i` shape as t/43 (mentions the offending token, or a
# usage-style message).

my $ROOT = abs_path('.');
my $BIN  = "$ROOT/bin/karr";



( run in 0.989 second using v1.01-cache-2.11-cpan-6aa56a78535 )