Receipt — manage Change Receipts
Activation
Invoked via /receipt. Wraps lstack brain receipt CLI.
The CLI is the source of truth. Never duplicate receipt storage logic here.
Supported forms
/receipt
/receipt help
/receipt start <task>
/receipt status
/receipt list
/receipt show <id>
/receipt finalize
/receipt finalize <summary>
/receipt abandon <reason>
/receipt explain
/receipt undo
/receipt record-test <command>
/receipt record-command <command>
Behavior by subcommand
/receipt or /receipt help
Run:
lstack brain receipt status
Show brief help listing the supported forms above. Do not create or finalize anything.
/receipt start
First check current state:
lstack brain receipt status
If no receipt is open, derive a short title (≤60 chars) and start one:
lstack brain receipt start --title "<short title>" --goal "<full task>"
If a receipt is already open, show it and use AskUserQuestion to ask:
- Continue the open receipt
- Finalize the open receipt first, then start new
- Abandon the open receipt first, then start new
Do not silently replace an open receipt.
/receipt status
lstack brain receipt status
/receipt list
lstack brain receipt list --limit 10
/receipt show
lstack brain receipt show <id>
<id> is a positional integer argument (not --id).
/receipt finalize or /receipt finalize
First:
lstack brain receipt status
If no receipt is open, report that clearly.
If a receipt is open:
- Look for a test command in
.claude/CLAUDE.mdunder Build & Test. - If a test command is found, ask the user whether to run it before finalizing.
- If the user approves, run the test. Record the result honestly:
lstack brain receipt record-test --command "<cmd>" --result pass # or lstack brain receipt record-test --command "<cmd>" --result fail - If no test command is known, either ask for one or ask whether to finalize without recorded tests.
- Finalize:
If no summary was supplied, generate one from the open receipt goal/title.lstack brain receipt finalize --summary "<summary>"
Never claim tests passed unless they actually passed. Never invent test results.
/receipt abandon
If reason is supplied:
lstack brain receipt abandon --reason "<reason>"
Note: --reason is required by the CLI; ask for it if missing.
If reason is missing, use AskUserQuestion to request one before proceeding.
/receipt explain
lstack brain receipt explain
/receipt undo
lstack brain receipt undo-hint
Print the suggested manual commands. Do not execute undo commands automatically.
/receipt record-test
Only run the command if it is clearly a test command or the user explicitly asked to run it. Record pass/fail honestly after actually running it:
lstack brain receipt record-test --command "<command>" --result pass
# or
lstack brain receipt record-test --command "<command>" --result fail
/receipt record-command
Only record commands that were actually run this session. Record result honestly.
lstack brain receipt record-command --command "<command>" --result pass
# or
lstack brain receipt record-command --command "<command>" --result fail
Constraints
- Never duplicate LBrain receipt storage logic in this skill.
- Never invoke Claude recursively or spawn subprocesses via AI CLI flags.
- Never run destructive or state-mutating git commands (reset, clean, restore, push, pull, commit).
- Never claim tests passed unless they actually passed.
- Never invent test results or receipt summaries.
- If the CLI returns an error, show it to the user and suggest what to run manually.
- The
--reasonflag is required bylstack brain receipt abandon— always supply it. lstack brain receipt showtakes a positional integer, not--id.