Board - ChiefGyk3D/scrum-around-and-find-out GitHub Wiki

Generated from docs/board.md at df1dbe1. Edit the repository file, not the wiki.

The board

The board is always current. That is a property the tools maintain, not a habit anyone has to keep.

Fields

Field Why it exists
Status Backlog, Next, In progress, Blocked, Done. Blocked means it needs a person
Agent Who owns the card: Claude, Codex, Copilot or the maintainer
Area Which part of the system the card is about; filled from the repository and from area_rules
Kind, Priority, Effort, Epic Optional triage fields; safo creates them from board.yaml and never overwrites a value
Sprint An iteration field; the sprint is the unit of "Next"
Start date, Target date Feed the Roadmap view
Done on Set to the close date when a card reaches Done, so a "done log" is a filter, not a document

What the tools do

Event Result
Issue opened Added if absent, Status per rules.status.opened, Area per the repository, new_item_defaults set
Pull request opened or ready for review Added if absent, opened_pr; a draft gets draft_pr
Issue reopened out of Done reopened, and the Done-on date cleared
Closed or merged closed or merged, and Done on set to the close date
Weekly reconcile Adds anything missing, finishes anything closed, fills blank Area and Status

Reconcile never reopens a card and never changes the status of an open card that has one. If an open card sits in Done, audit reports it and a person decides.

Sprints and status updates

Sprints are 14-day iterations created by bootstrap. Post a status update at the end of each one with safo status --body-file update.md --state ON_TRACK; the update lives on the project, beside the cards it describes.

safo status --post writes the update for you. It groups the cards into done since a date (--since, a week ago by default), in progress, waiting on the maintainer (Blocked, or a working card whose Agent is the maintainer's value, --human-agent) and next, and it counts them. The groups and the counts come from the board's fields, never from a model. Code always renders the count sentence. A reachable local model may append one exact approved prose clause; invalid, multiline or unavailable prose adds nothing. Look at the update first with safo status --post --print: nothing is sent.

What no API can set

A Roadmap's date fields and zoom, a view's grouping, and the project's built-in workflows (item closed, pull request merged) are UI-only. List them under ui_only in board.yaml: bootstrap prints the checklist and audit repeats it.

Keeping the file and the board in agreement

safo audit compares them: a field, option, iteration or view the file names and the project lacks is drift; a colour or description that differs is a note, because safo cannot change an existing option and would only be nagging.