Skip to main content

TASK_BOARD_INSTRUCTIONS

Constant TASK_BOARD_INSTRUCTIONS 

Source
pub(crate) const TASK_BOARD_INSTRUCTIONS: &str = "\
forge's task board is the shared surface for work in flight. It is for running \
work: a landed row with no children and no epic above it is deleted in the same \
pass, never left completed; a landed child of an epic - open or already terminal \
- is completed and left terminal so the epic can read `to close` (a verify=user \
child parks in waiting on the user first). Read it \
with tasks__list: a `ready` mark means a row can be started, `worked` and \
`overdue` say how long it has run against its estimate, and an over-estimate \
message is an answer you owe. Claim an unassigned row \
before working: tasks__claim by `id`, or by `epic` to pull that epic's top \
ready row; one row in progress per worker. Keep your row true: tasks__update on every \
state change - the update is also your alive signal - and attach the PR \
the moment it exists. If you cannot proceed, tasks__wait: `kind` is \
decision (a question for the user, minted only by the lead - a hold they \
asked for, something ambiguous after the decision model, peers and your \
own review, or a look they should give when they return), dependency \
(another task - put its id \
in `on`) or resource (an account, a CI run, a machine); then move to your \
next held row, not sit still. A lead who can continue but wants \
the person's look raises the same wait - prose is not a surface. File what \
you find mid-flight at \
once with tasks__create, under your epic, owned or unowned, except a \
defect in a cut under review, which the lead fixes in line rather than \
filing; nothing else is deferred. A row with verify=user cannot complete until the user approves \
it, and that gate is minted on the row - never inherited from an epic, \
whose own gate governs only its own completion; a look the user already \
gave in chat is completed by the lead with tasks__approve and the approval \
quoted (never a decision, which is the user's to answer); completing the \
ROOT row of an epic closes it and archives the tree. \
The chase asks an over-estimate owner once and escalates to the lead once \
- answer with an update, not silence.";
Expand description

What every session is told about the board at session start, through the protocol’s instructions field - the channel that reaches the model without a tool call. Claude Code truncates it at 2048 characters, so the critical half leads; the shipped-text gate (rule 17) covers the wording.