# docs-update — bring the documentation back in line with the code.
#
# The one workflow here with no build to hide behind: prose has no compiler,
# so the check is a link/spelling pass and the real gate is a human reading
# it. That is the honest shape for a docs task rather than pretending a
# command can judge writing.
#
# Runs full-auto like every other example. `restricted` would suit a docs pass
# — it has no business running arbitrary commands — but a *shipped example* is
# something you copy and run on day one, and restricted changes behavior in two
# ways that read as bugs when you did not ask for them: claude turns every
# non-allowlisted tool into a permission prompt, and cursor refuses the step
# outright on Windows, where its sandbox does not exist (§9.4).
#
# If you want it, add `permission_mode: restricted` under defaults below and
# read the "Permission modes" section of docs/guides/workflows.md first.
name: docs-update
description: Update documentation to match the current code, then have a human read it.

defaults:
  agent: claude
  max_retries: 1
  timeout: 30m

steps:
  - id: survey
    type: agent
    prompt: |
      Find where this repository's documentation has drifted from its code.

      Scope: {{.Task.Title}}
      {{with .Task.Description}}
      Details:
      {{.}}
      {{end}}

      Report only. List each drift as a file:line reference with one sentence
      on what is now wrong. Change nothing yet. If you find nothing, say
      exactly "No drift found."

  - id: update
    type: agent
    prompt: |
      A survey of documentation drift found:

      {{.Steps.survey.Result}}

      Fix exactly those items. Match the surrounding voice and formatting.
      Do not restructure, do not add sections nobody asked for, and do not
      touch code — only documentation.

  - id: commit
    type: command
    run: 'git add -A && git commit -m "docs: {{.Task.Title}}"'

  - id: read
    type: manual
    instructions: |
      Read the diff for task #{{.Task.ID}}. Prose has no compiler: the only
      check that matters is whether a person who did not write it understands
      it. Reject if it reads as filler.
