implement
chernabog recipes add implementBakes .chernabog/flows/implement.ts and its prompt, .chernabog/prompts/implement.md.
Picks up the oldest open issue labelled auto:eligible, then the oldest labelled auto:ship, the automated path. With a board, only issues whose Status is readyStatus. The trigger is written out at the top of the file.
Ends with a green pull request and a review requested of one reviewer from the pool, or the issue handed to a person.
Its steps
Section titled “Its steps”Each line is one SDK block, in the order the recipe calls them.
claim— takes the issue’s claim ref, which only one run can, then createsauto/issue-<n>, or takes up a branch of that name nobody claims as the work to go on with. It labels the issueauto:in-progress, removes the label that queued it, and moves it toinProgressStatuson a board.prepareWorktree— a worktree onauto/issue-<n>, withinstallrun in it.implementWithAgent— the agent implements test first, withnotesandhumanOnlyin its prompt. It may answer with questions instead:askForClarificationposts them and labels the issueauto:needs-clarification.localGate— runs eachlocalGatecommand; on failure sends the agent back, up tolocalGateRounds.push— a change touchinghumanOnlyPathsstops here, atauto:needs-human.openPullRequest, thenwaitForCi— anauto:shipissue’s pull request is labelledauto:ship. Waits up tociTimeout, fixing red up tociRounds.handOff— asks one reviewer from the pool for a review.
However the run ends, Claims.releasing lets the claim go; the branch and any pull request stay. Anything that stops it once the issue is claimed hands the issue, and its pull request if one is open, to a person with auto:needs-human.