Workflow

If stock columns are not enough, write a custom task status

“Doing / done” is not enough for every team. Name the status, bind who may move it to a role, mark which statuses count as done on the report. A new column does not need a new tool.

Ontra project and task list

June 26, 2026 · 7 min read

Share the vocabulary

A board where stock columns fail

“Review” means code review to one person and client approval to another. Name the status and bind who may move it to a role. Board columns are generated from that record. `tasks.status` is the move grant; not every member can drag every column. Client approval is its own status. If it shares a column with internal review, the sprint lies as “stuck in review.” Two statuses, two roles, two report filters.

Adding a custom status does not break close-speed reports. You mark which statuses count as done; the rest is in-flight. A new column does not need a new tool. Status inflation is like tag inflation: nobody uses fifteen columns. Five to seven are enough. More is board theatre. Share the vocabulary with the team; on day three a new member should know what counts as done.

  • Board columns are generated from the status record
  • Do not let “review” mean two things
  • The report does not break when you add a status
  • Five to seven columns are enough; fifteen is theatre
  • Mark which statuses count as done on the report

Field, software, agency: three vocabularies, one mechanic

Custom status definition

Field: planned, on the way, on site, done, billable. Software: backlog, development, internal review, QA, live. Agency: brief, production, internal approval, client approval, published. All three are the same record model. Column names change; the lens does not. List, board, and report read the same vocabulary. Do not invent a second Trello board.

Binding a status to a role is fine-grained access on the board. An intern should not drag to “live.” A client viewer should not see the “internal review” column. A field technician should not move the billing column. These rules are not a hunt for people; they are a record boundary. A wrong move shows up in activity; “who marked this done?” is in the log.

When you leave the stock columns

In week one, stock columns are enough. Inventing custom statuses before the vocabulary sits is board theatre. In week two see the real jam: if “waiting on client” and “stuck inside” share the same green, it is time for a custom status. Do not open a column for every jam; some jams are tags (external dependency), some are lists (waiting-on-approval queue). A column is flow. A tag is a cross-cut. A list is a queue. Do not mix the three.

Write the vocabulary on the wall

Status is flow, a tag is a cross-cut, a list is a queue, a folder is ownership. Do not let “review” mean two things. Internal review is code or internal approval. Client approval is product. If they share green, the sprint lies. `tasks.status` is the move grant; an intern does not drag to “live.” A client viewer does not see the internal review column. A field technician does not move billing. A wrong move is in activity.

Week one, stock columns are enough. Custom statuses before the vocabulary sits are board theatre. Week two, see the real jam. Do not open a column for every jam. Some are tags (external dependency), some are lists (approval queue). Five to seven columns are enough; nobody uses fifteen. Mark what counts as done; close speed does not break. A new column does not need a new tool. Software, field, agency: three vocabularies, one mechanic.

On day three a new member should know what counts as done. The vocabulary is written, not remembered. Board, list, and report read the same vocabulary. Do not invent a second Trello. Status inflation is like tag inflation; unwind it once a quarter. Archive unused columns. Opening “review2” is a lack of discipline.

The vocabulary on the board and the report

Status is flow, tag is a cut, list is a queue, folder is ownership. Review should not mean two things. Internal review and client approval are separate column role filter. tasks.status does not drag every column. An intern does not drag to live. A client does not see internal review. Field does not move billing. A wrong move is in activity. Week one stock columns are enough. Custom statuses before vocabulary sits are theatre. Week two see the jam. Do not open a column for every jam. Five to seven are enough. Mark what counts as done. The report does not break. No new tool.

Software: backlog development internal review QA live. Field: planned on the way on site done billable. Agency: brief production internal approval client approval published. Three vocabularies one mechanic. Board list report read the same vocabulary. Do not invent a second Trello. Unwind status inflation quarterly. Review2 is a lack of discipline. On day three a new member knows what done means. The vocabulary is written.

Close speed reads the done mark. Without the mark a custom status does not break the report because it does not yet count as done. That is why the mark is a ritual. Forgetting it produces a green slide. Do not forget.

Write the vocabulary on the wall. At the first jam ask whether it is a tag or a list, not a column. That question cuts board theatre. Ontra generates columns from the status record; a second board is not needed.

Client approval is its own status

Work waiting on approval

If internal review and client approval share a column, the sprint lies as “stuck in review”. Two statuses, two roles, two report filters.