NAME

App::karr::Cmd::Delete - Delete a task

VERSION

version 0.600

SYNOPSIS

karr delete 9
karr delete 9,10,11 --yes
karr delete 9 --json

DESCRIPTION

Permanently removes one or more tasks' refs from the board. This is the destructive alternative to App::karr::Cmd::Archive, which only changes the status to archived.

OPTIONS

  • --yes

    Skips the interactive confirmation prompt for each task. Required whenever nothing will answer that prompt: if stdin is not a terminal and carries no answer, the command refuses rather than guessing.

The prompt itself goes to STDERR, on every path and not only under --json: a question is dialogue, not a result, and STDOUT belongs to the result. That is what keeps karr delete ID --json decodable as a whole when the answer is typed rather than passed as --yes, and what keeps karr delete ID > kept.txt from writing the question into the file instead of showing it to the operator waiting for it. The outcome stays on STDOUT: Deleted task ... or Skipped task ... in plain mode, and the result object -- with deleted true or false -- under --json.

CLAIMS

A task with a live claim is not deleted, whoever holds it. Release the claim with karr edit ID --release or wait for claim_timeout to expire it.

DEPENDENTS

Before an id is removed the board is searched for the cards that point at it -- a depends_on entry naming it, or parent set to it -- and each one is named on STDERR as a Warning:, offering karr archive as the way to keep the card instead. The delete then proceeds: karr warns about dependencies rather than blocking on them (App::karr::Role::DependencyCheck), and this warning exists to send a caller from the destructive way to the soft one, not to refuse them the destructive one.

It comes before the confirmation prompt, so it can still change the answer, and it comes under --yes as well, which is the mode agents delete in. --json carries the identical sentences as dependent_warnings in the result object instead, and --quiet silences the STDERR copy.

The search is board-local: it reads the cards on this board. What the card being deleted says about other boards is a second warning, below.

CROSS-BOARD LINKS

A card on another board waiting on this one through a needs: link (App::karr::CrossBoard) cannot be seen from here -- reading the far board needs a path this command does not have. The card being deleted usually names that far card itself, though: escalated-from:<board>#<id>, the other half of the escalation protocol, is a tag on this card and is read without touching anything remote. Both directions are reported, in different words:

  • escalated-from: -- the far card this one was raised for. Deleting this card leaves that link unresolvable: karr needs over there calls it missing, and karr needs --resolve refuses on purpose to settle a link whose card cannot be read, so a card blocked on it stays blocked. karr archive is the way out here too -- an archived card is still readable and archived is terminal on every board, so the link settles instead of breaking. Settling says the far card is closed, not that it succeeded: karr records progress and not outcome, so archiving a card that was given up reports the same thing over there as archiving a finished one. The warning says so; if the card is being abandoned, that is worth a word on the far board itself. That karr has no "given up" to report at all is the decision in docs/adr/0004-a-terminal-status-is-finished.md, not an omission here.

  • needs: -- a far card this one waits on. Nothing over there breaks when this card goes, because the link goes with it; what ends is anything on this board waiting for that far card, and no other command says so once the card is gone.

The reference is named, never resolved. Placing a board name on this machine needs the fleet configuration karr needs reads and karr delete does not, and karr needs is the command that already answers what state the far card is in. --json carries these sentences as cross_board_warnings -- a key of their own beside dependent_warnings, because a consumer that can act on a dangling dependency on this board cannot act on a card in another repository.

SEE ALSO

karr, App::karr, App::karr::Cmd::Archive, App::karr::Cmd::Backup, App::karr::Cmd::Destroy

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/karr/issues.

IRC

Join #langertha on irc.perl.org or message Getty directly.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <getty@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)