Skip to main content
Watchfire
Docs sprint

Refresh docs from the source of truth

Ship a docs pass page by page — not as one unreviewable docs-mega-PR.

Who this is for.

Your README has drifted, half the docs pages reference a flag that was renamed two releases ago, and the architecture page is from before the daemon split. You want to fix the lot, but a single 'update the docs' branch is unreviewable — and an agent given the whole job at once will paraphrase instead of pulling from real source.

The workflow in 4 steps.

  1. List the pages, one task each

    Pick the pages or sections that need a pass and create one task per page. Each task's prompt names the file, the canonical source of truth in the repo (README, code comment, architecture note), and the rules for what counts as 'updated' — quoting code, linking to source, no marketing fluff.

  2. Anchor every page to in-repo source

    In each prompt, point the agent at the actual files it should read — `lib/sandbox.go`, `cmd/watchfired/main.go`, the relevant CHANGELOG entry. Acceptance criteria require linked references, not paraphrase. The docs end up grounded in code, not in the agent's memory.

  3. Run them in parallel, one page per branch

    Hit start across the queue. Each page lands as its own diff on its own `watchfire/<n>` branch. You can ship the clean ones immediately and send the messy ones back for another pass without holding up the rest of the sprint.

  4. Cross-link in a final pass

    Once the per-page passes are in, queue one last task to walk the doc set and add the cross-links that only make sense once you can see the whole new shape — 'see also' boxes, related pages, fixed broken internal links. Small task, big polish payoff.

A real task you can copy.

Drop this into .watchfire/tasks/<n>.yaml, tweak it to your repo, and start it from the TUI or GUI.

task_id: doc00003
task_number: 3
title: "Refresh /docs/concepts/sandbox to match current Landlock setup"
prompt: |
  Rewrite `content/docs/concepts/sandbox.mdx` so
  it matches the current implementation in
  `daemon/sandbox/landlock.go` and
  `daemon/sandbox/seatbelt.go`.

  Specifically:
  - Replace any reference to `bubblewrap` as the
    default Linux sandbox — Landlock is the
    default now, with Bubblewrap as fallback.
  - Document the actual default blocklist (read
    it from `daemon/sandbox/blocklist.go`, do
    not invent entries).
  - Update the macOS section to reference
    `seatbelt.sb` directly and quote the actual
    deny rules in the file.
  - Add a "Troubleshooting" section listing the
    three most common errors users hit (look at
    the last 60 days of GitHub issues tagged
    `sandbox`).

  Every claim about behaviour must link to the
  source file or the issue that motivated it.
  No marketing prose — this is a reference page.
acceptance_criteria: |
  - The page no longer claims Bubblewrap is the
    default on Linux.
  - Every `code` block of a blocklist entry
    matches a literal entry in
    `daemon/sandbox/blocklist.go`.
  - The macOS section quotes from
    `seatbelt.sb`, not paraphrase.
  - At least three troubleshooting items exist,
    each linking to a real GitHub issue.
  - `pnpm run check-links` passes.
status: ready

More starters in the task template library.

Why Watchfire makes this faster.

  • One task per page keeps every diff reviewable — you can ship the README pass today and send the sandbox page back for another swing without blocking either.
  • Acceptance criteria force the agent to ground its claims in source files instead of paraphrasing from training data, so the docs end up matching the code.
  • Per-task worktrees mean every page edits in isolation, so two docs tasks can run concurrently without merge-conflict drama.
  • The transcript shows which source files the agent actually read — invaluable when reviewing whether a 'reference page' actually consulted the reference.
  • Wildfire mode can drain a 20-page docs queue overnight, so the messy ones come back for a focused human pass instead of dragging the whole sprint.
Ready to go

Get started with Watchfire

Install in seconds. Define tasks. Let agents ship code for you.

Download for macOS

Available for macOS, Linux, and Windows

install
# Install via Homebrew (macOS)
$brew tap watchfire-io/tap
$brew install --cask watchfire-io/tap/watchfire
# Set up your project and go
$watchfire init
$watchfire task add "Build the login page"
$watchfire start --all

Includes GUI, CLI, and daemon. Also available via Homebrew.