Issues commands
Triage the issues Cassis raised on the project without leaving the checkout: refresh the queue from the latest conversations, list the issues, read the diagnosis and the evidence behind them, and record the outcome.
These commands work on the same queue as the Review page and the MCP issue tools. Like the other project-bound commands, the project id comes from cassis/project.yml in the checkout, CASSIS_PROJECT_ID, or --project.
issues list
Lists the project’s issues, prioritized by impact then recurrence: one line per issue with its id, impact, occurrence count, status, and title. The id is what the other issues commands take.
# The open triage queue is the default
cassis issues list
# Include open, resolved, and dismissed issues
cassis issues list --status all
# Narrow by impact or cause
cassis issues list --impact wrong_answer --cause ontology_gap
# Triage one context domain at a time (`sales` also covers `sales/pipeline`)
cassis issues list --domain sales
# Raw JSON
cassis issues list --json
- Filters
--status(open, the default;resolved;dismissed;all),--impact(wrong_answer,unreliable_answer,no_answer,inefficient),--cause(ontology_gap,missing_data),--domain(a context domain path, which covers the domains nested under it). All optional and combinable.- Output
- One line per issue with its context domain, or the full records with
--json.
issues show
Shows one issue in full: its diagnosis, suggested action, whether a fix proposal exists, status history, and the occurrences behind it. Each occurrence’s id feeds issues evidence. A dismissed issue includes its reason and optional detail. An applied fix that is not published yet is shown as awaiting publication.
cassis issues show 019f0000-0000-7000-8000-0000000000e1
An open issue also prints a PR mention: line, Resolves <id>. Paste it into the description of the pull request that fixes the issue and the merge closes the issue for you (see below). A closed issue prints Resolved via: instead: how it was closed (by a person, an applied fix proposal, a merged fix branch, or a PR mention) and the pull request it came through when there was one. --json carries the same as resolved_via and resolved_ref.
The PR mention line needs cassis-cli 2.3 against a project on a server with mention support.
issues evidence
Prints the evidence behind one occurrence, joined back from its source: the generated SQL and its results, the agent’s process log, and either the user’s rating (a chat) or the judge’s verdict (an eval failure). Read it when the extracted fields are not enough to judge an issue.
cassis issues evidence 019f0000-0000-7000-8000-0000000000e1 019f0000-0000-7000-8000-0000000000c1
issues analyze
Analyzes the project’s conversations that nobody has analyzed yet and turns what went wrong into issues — the same pass as the Review page’s “Analyze conversations” button, started on demand instead of waiting for the nightly one. It runs on Cassis’s workers, so a lost connection or a Ctrl-C after the start never loses the work; by default the command waits and prints the run’s summary. Needs cassis-cli 1.7.
# Refresh the queue, then read it
cassis issues analyze
cassis issues list --status open
# Start it and come back later
cassis issues analyze --no-wait
# Raw JSON for a pipeline step
cassis issues analyze --json | jq .run.status
- Nothing new
- When every conversation is already analyzed the command is a no-op that exits 0, so a scheduled job re-running it on a quiet project stays green.
- Waiting
--wait(default) or--no-wait,--poll-interval,--timeout. The run keeps going server-side if the CLI stops waiting; Ctrl-C cancels it and exits 130.- Exit codes
- 0 when the run completes (or there was nothing to analyze), 1 when it fails or is cancelled, 3 on transport errors, on an analysis already in flight, or on
--timeout. - Role
- Editor or admin, like the Review page button.
issues resolve, dismiss, reopen
Set the issue’s status: resolve once the context change that fixes it is published, dismiss for issues you deliberately will not act on, reopen to put a resolved or dismissed issue back in the queue. Status changes require the editor or admin role.
When the fix ships through a pull request, the mention does this for you: put Resolves <id> in the PR description and Cassis resolves the issue when the PR merges. resolve stays for the outcomes that never go through one.
cassis issues resolve 019f0000-0000-7000-8000-0000000000e1 --published
cassis issues dismiss 019f0000-0000-7000-8000-0000000000e1 --reason duplicate --detail "Covered by the billing issue"
cassis issues reopen 019f0000-0000-7000-8000-0000000000e1
dismiss requires one of four reasons: invalid, irrelevant, duplicate, or declined. Add --detail when the reason alone does not preserve enough context. resolve asks you to confirm that the fix is already published; pass --published explicitly in a non-interactive command.
Exit 1 when the issue or occurrence does not exist in the project; nothing is changed.
Resolving records an outcome, it does not change the context. The typical loop from a checkout: read the issue and its evidence, fix the gap in the context files, prove the fix with cassis eval run or cassis context test, then open the pull request with Resolves <id> in its description. Merging it publishes the fix and closes the issue in one step.