Heal lifecycle
A heal card moves through a defined lifecycle. The dashboard reflects the status; the agent drives it with MCP tools.
open → in_progress → pr_raised → resolvedStatuses
| Status | Meaning | Set by |
|---|---|---|
| open | Awaiting a decision. | Veralith, when the card is created. |
| in_progress | An agent is working the fix. | start_heal / claim_work_item. |
| pr_raised | A pull request is open for review. | mark_pr_raised. |
| resolved | The PR was accepted — fixed. | You, accepting the PR on the dashboard. |
| failed | An attempt failed; retryable. | mark_failed. |
| wont_fix / manually_fixed / superseded | Terminal states. | You (dismiss), or Veralith (supersede). |
End to end
- A failure cluster produces an
openheal card on the Heals canvas. - Your agent calls
list_heal_cards(defaultstatus='open') to see what's waiting, or you press Start heal on a card. start_heal(heal_card_id)moves the card toin_progressand returns a work item. The agent **claim_work_item**s it and reads the fix withget_work_item.- The agent edits your repo, commits, and opens a PR — then calls
mark_pr_raised(action_id, pr_url)→ card ispr_raised. - You review the PR. Accept it on the dashboard →
resolved. If it wasn't right, decline (back toin_progress) or the agent callsmark_failedto retry.
Recurrence
If a resolved category fails again later, Veralith opens a new card linked to the previous one and badges it as a recurrence — so you can see "we tried fix X, it came back." See Heals.
Bulk
When several cards are open, Heal all hands them to the agent in one run (one combined PR), and Accept all resolves every pr_raised card at once.