Rules
Every reason a task is on the board is a rule. Each rule can be turned off, moved to the other side, or reordered.
For each merge request, pull request and ticket you are involved in, aki looks at who spoke last in every thread, the state of reviews and approvals, the pipeline, the branch, and the ticket's status. Each fact that asks something of someone becomes a reason. A task is listed once, under its most pressing reason; the others show in the detail pane.
To do
The next step is yours.
| Label | Rule | Priority | When |
|---|---|---|---|
| Review | review_requested | 10 | Your review is requested and you have not started. |
| Re-review | re_review | 20 | You reviewed, and since then something moved (see Re-reviews). |
| Reply | reply_needed | 30 | Someone waits for your answer in a thread, or mentioned you. |
| Mentioned | ticket_mentioned | 35 | Someone mentioned you on a ticket and you have not commented since. |
| Resolve threads | thread_to_resolve | 40 | A thread you opened was answered: check it and close it. |
| Fix checks | checks_failed | 50 | The pipeline of your change failed. |
| Fix conflicts | conflicts | 55 | Your change conflicts with its target branch. |
| Rebase | rebase | 57 | Your change is behind its target branch. Not shown when it already conflicts. |
| Merge | ready_to_merge | 60 | Your change is approved, green, with no open thread, and you can merge it. |
| Assigned | assigned | 65 | A change you neither wrote nor review is assigned to you. |
| Ask a review | no_reviewer | 70 | Your change is ready and nobody was asked to review it. |
| In progress | ticket_in_progress | 75 | A ticket of yours is in progress. |
| To do | ticket_todo | 80 | A ticket of yours is not started. |
| Nudge | nudge | 85 | A waiting item has not moved for a number of days (off by default, see Nudge). |
| Finish draft | draft_to_finish | 90 | Your change is still a draft. |
Waiting
You cannot move it further: someone or something else has the next step.
| Label | Rule | Priority | When |
|---|---|---|---|
| Awaiting review | awaiting_review | 10 | Your change waits for reviewers. The detail names who has not looked. |
| Awaiting author | awaiting_author | 20 | You reviewed; nothing new since. |
| Awaiting reply | awaiting_reply | 30 | You answered; the other side has to close the thread. |
| Checks running | checks_running | 40 | The pipeline of your change is running. |
| Blocked | ticket_blocked | 50 | A ticket of yours is blocked by another, or in a waiting status. |
| Draft | draft_by_other | 60 | A change you review is still a draft. |
One reason to do is enough to put the whole task in To do.
Change a rule
Any rule takes three settings. A lower priority comes first.
[rules.draft_to_finish] enabled = false [rules.checks_running] bucket = "todo" priority = 45
aki rules prints every rule as it applies. An unknown rule name is an error, so a typo never silently disables a rule.
Threads
Teams differ on who closes a review thread once it is answered.
[threads] who_resolves = "reviewer" ignore_bots = true
| Value | Effect |
|---|---|
"reviewer" | Whoever opened the thread checks the answer and resolves it. An answered thread you opened is Resolve threads; one you answered is Awaiting reply. |
"author" | The author resolves threads once addressed. |
"anyone" | No convention: only who spoke last counts. |
With ignore_bots, a bot's comment never gives anyone the next step.
Re-reviews
After your first review, any of these triggers makes a re-review due:
[re_review] triggers = ["author_replied", "new_commits", "re_requested", "approval_reset"] after_approval = false
| Trigger | Fires when |
|---|---|
author_replied | Someone answered in a thread you take part in. |
new_commits | Commits were pushed after your last review activity. |
re_requested | Your review was requested again. |
approval_reset | Your approval was reset or dismissed. |
all_threads_answered | Every thread you opened has been answered or resolved. Not in the default list. |
after_approval = true lets a re-review be due on a change you already approved.
Drafts
[drafts] mine = "todo" others = "wait"
| Setting | Value | Effect |
|---|---|---|
mine | "todo" | Your drafts are listed with everything else that waits on you. |
"apart" | They stay on the board but leave To do, the counts and the notifications. They show only in panes filtered on is:draft. | |
"ignore" | They are left off the board until they are ready. | |
others | "wait" | A draft you review is listed as waiting on its author. |
"review" | It is treated like any other review. | |
"ignore" | It is left off the board. |
To give your drafts a pane of their own, set mine = "apart" and add a pane filtered on is:draft role:author. See Spaces.
Nudge
[nudge] after_days = 7
A waiting item that nobody touched for that many days becomes Nudge in To do. 0, the default, turns it off.
Ticket statuses
[tickets] waiting_statuses = ["blocked", "on hold", "in review", "waiting"]
A ticket in one of these statuses (compared without case) is Blocked, in Waiting. So is a ticket with an "is blocked by" link.