11of 11
Step 11 · Close
f-board
/f-boardskill
Update the project board when a job starts, merges, gets stuck or is added.
- On site
Throughout a project: marks a job as started when you say go, merged after the merge, and stuck when it stops.
It works out by itself which jobs are ready and which are waiting, counts each change as a new version, and republishes the board page at the same link. When every job is done the board tops out: it is frozen as the project's record, and the next head gets a new board. An iteration board takes small jobs as they are found.
- When
Whenever a job starts, merges, gets stuck or is added, so the board stays true.
Say it tap to copy
gowhat's next?show me the board
Not forCutting a plan into jobs (f-schedule).
It's working if
- Each event is one
render_board.pycommand and bumps the board's version exactly once. - Ready and blocked are worked out by the tool, never stored, and only one job is in progress at a time.
- The tool refuses bad data or an impossible event, such as starting a blocked job, closing without
--nextwhen a job becomes eligible, or a merged job without its SHA. - A close is recorded only after the merge was checked in the repository, never on a report's word.
board.htmlis regenerated fromBOARD.jsonand never edited by hand.- With no board link yet, it renders locally and asks you before the first publish; after that it republishes to the same private link.
- The builder is never named on the board.
- Every job carries a summary that says in plain words what it builds, and
checkwarns on a summary that is only plan references.
Common questions
- Who updates the board?
- Only the foreman. Board updates are the foreman's own records, so they need no PR and no word from you, except the first publish of the page.
- What happens at the end of a job?
- After the merge is verified,
closerecords the job as merged and chooses the next job in one version. The next job is picked by what unblocks the most, then the most partial work, then the project's order. - What is a job's summary?
- The line on the Job tab that says what the job builds, so you know what it does without opening its ticket. It is one sentence, under about 20 words, with any plan references after it in brackets: "Loads the catalogue as a runtime block, so later jobs can use it. (T2, VP-6)". If one is unclear,
summary <job> --text "..."replaces it, andaddtakes a--summaryfor a new job. - What if one job turns out to be covered by another?
- You say so, and a
coveredevent records it with your words quoted: the job leaves the board, pointing at the job that covers it. - What does exit code 4 mean?
- The event was recorded in
BOARD.jsonbut the page wasn't written, usually a locked or missing path. Fix the cause and runrender_board.py BOARD.jsonto refresh the page. Never replay the event, or it is recorded twice. - Can I edit
BOARD.jsonmyself? - You can edit the text fields, such as lessons, alerts, debts and facts, and the next render picks them up. Don't change a job's state by hand: states change only through the tool's events.
- How do I start a board for a project that wasn't scheduled?
- Run
render_board.py <project>/BOARD.json initwith the project's title, its outcome, how you'd know it worked and its first job. Thenaddeach job, andadd --mergedwith the PR and merge SHA for a job that merged before the board existed.initrefuses to overwrite a board that's already there. - Can a project go without a board?
- No. Every project has one: the close-out's board step ticks only the project's
BOARD.json. - What happens when every job is done?
- The board tops out.
topoutfreezes it as the project's record: no event runs after it, and any job not finished is recorded as carried over. With jobs still unfinished, it tops out only on your own words (--quote), never a goal's.--head yes,partlyornorecords whether the project reached its head, andreportprints the topping out report's table, the carried jobs and the owed items.
Order of worksstep 11 of 11 · open step 11 →
1234567891011
← Comes after 1
skills/f-board/SKILL.mdThis page as Markdown