Skip to content

Questions and continue ​

Questions ​

A step that can't go on without an answer, like implement on a vague issue, asks on your item:

  1. It writes its questions to .away/out/questions.md and ask to .away/out/status, and the chain ends.
  2. awaywork posts them as one comment, marked — awaywork, on the unit's item from the rule's own tracker (the one on_done would move), when that item is yours: your PR, an issue assigned to you, a tracker item.
  3. The unit is skipped as waiting for your answer, under Needs you as answer question.
  4. A reply ends the wait, and the next run takes the unit with the same rule: within minutes on a run: soon rule.

The model writes the questions, awaywork the last two paragraphs. On GitHub it shows up as you:

octocat commented

Before I write code for "Add rate limits":

1. Per user or per API key? The issue says "per client", and src/auth.ts has both.
2. Should a burst over the limit get a 429, or wait for the bucket to refill?

Reply here to answer: awaywork's next run takes this up again with your reply.

— awaywork

The result reads asked questions, the report lists them under Questions, and awaywork run prints questions posted on <url>, the comment's URL on GitHub, the item's elsewhere. The next run's item.md has the comment headed awaywork's questions, replies after it; a step that still can't go on asks again.

Details:

  • awaywork's own comment bumping updated isn't a change.
  • Any later comment the agent sees ends it, yours or a teammate's: on GitHub an owner's, member's or collaborator's; on a tracker, any comment on an item assigned to you.
  • Bots don't (GitHub's bots, Jira's and Linear's apps, Linear's integrations): they show in item.md but the unit keeps waiting. Asana and custom sources don't mark bots, so there an integration's comment ends it.
  • A comment is awaywork's only when its — awaywork line comes from your account, so a pasted one doesn't hold your item (Safety).
  • On an item that isn't yours, a source that can't write (a custom source without write) on a rule without a thread, or a failed post, the questions stay in the morning report with the reason; the unit is still done.
  • A step that committed and asks opens a draft (draft: asked questions) headed Status: ask, questions on <item>, status=ask in the footer, as for continue; under push the commits go onto your PR. Once answered, the next run goes on with that draft, run: soon included.
  • With no status file awaywork guesses as before: a step that committed went on, so questions.md stays in out/, unposted. A word other than done, ask or continue, or ask without questions.md, reads as no file, with a line in the run's log.
  • A chain that asked doesn't run its rule's on_done.

Continue ​

You get one draft PR that grows over several window runs, Status: continue (1 of 3) on top. Under deliver: pr it turns ready for review once done; mark it ready yourself to take it over: a ready PR, or a draft with no status in its footer, waits for review like any awaywork PR.

A step commits what's solid and writes continue to .away/out/status. The chain stops there, so no review or fix runs on half-done work, and publishes what it has. Under draft_pr or pr that's a draft (draft: the agent will continue), the count in its footer:

Export screen

Status: continue (1 of 3): awaywork's next window run goes on here

[...]

---
<!-- awaywork run=20261026-232730 item=github:acme%2Fapi%231%2Fapp status=continue continued=1 head=1f8a2313462c9a1f49af169ae1822d14c8adcde3 from=16548667d8e02a7a03e25135ff6054b195de8e51 -->
Opened by awaywork (run `20261026-232730`): a coding agent worked on this unattended. Review it like any other contribution.

The next run that would take the item anyway (window, scheduled or manual, never run: soon) goes on with the draft. Its commits fast-forward onto it, no new PR or suffixed branch, and the new pr.md replaces title and body:

Units 1
     item            rule     skill                 provider  deliver  title
  1  acme/api#1/app  #2 soon  implement (built-in)  claude    pr       Export screen
     in acme/web
     goes on with its draft https://github.com/acme/web/pull/13, which said continue (1 of 3)

Once the agent says done (or writes no status file) and verify, the gates and the loops pass on every commit of the draft, a deliver: pr draft turns ready for review; a draft_pr stays a draft, its status line gone. The agent's word can only hold a PR back.

Details:

  • awaywork reads the footer back: status, count, the head it pushed, and the commit the draft's commits start after. The visible line is for you; the agent could write a Status: line itself, but not after the footer.
  • The run that goes on clones the draft's branch, its prompt saying so, with the last report (or the draft's body, if no run of it is kept on the machine) in .away/context/previous/report.md.
  • A chain that committed nothing has no draft, so its questions are posted.
  • The footer still holds the draft's dependents back.
  • A run: soon run skips a continue as goes on from <PR> in the next window run.
  • A report that says continue posts its result where results go (a report task's, on_done: { comment: result }'s) with Status: continue (1 of 3), and runs again from it as previous/report.md, up to the same cap. Clear a capped count with awaywork skip, or by deleting awaywork's continue results on the item. Otherwise it only reports.
  • A continue with nowhere to keep its count (no commits on a new branch, or a push, pending_review or plan rule) reads as no status file, with a log line.
  • A chain that says continue skips its rule's on_done move: the unit isn't done.

When it won't go on ​

awaywork goes on only with its own GitHub draft: head where it left it, opened by you, body last edited by you, under 3 continues. Otherwise the report says <why>: finish <PR> by hand, the draft opens without the status line, its questions stay in the report, and the next plan skips the unit:

Needs you 1
  acme/web
    #7  Export screen  finish by hand
        awaywork's draft says continue, but it moved from 1f8a231,…

The whys: awaywork goes on with its own draft on GitHub only, someone else opened or edited it last, it moved from <sha>, where awaywork left it, it continued 3 times.