Files
gadfly/examples
steve 1cdda32dbc
Build & push image / build-and-push (pull_request) Successful in 6s
Adversarial Review (Gadfly) / review (pull_request) Successful in 30m1s
feat: live status-board comment — per-model/per-lens review progress
Phase 3 of the gadfly-games build. With several models × several lenses
reviewing a PR, all you'd see mid-run is a row of " Reviewing…"
placeholders. Add ONE consolidated, live-updating status-board comment
that aggregates every model's per-lens progress (queued → running →
finished + verdict), so progress is visible at a glance and a watcher
can tell when the whole swarm is done.

- cmd/gadfly: opt-in statusWriter (GADFLY_STATUS_FILE) publishes this
  model's lenses to a JSON file, written atomically (temp+rename) as
  runSpecialists transitions each lens. Inert when unset — plain runs
  and tests are unaffected.
- scripts/status-board.sh: background renderer that polls the status
  dir and upserts one marker comment every GADFLY_STATUS_POLL_SECS
  (default 12s), caching the comment id to PATCH in place. Advisory and
  best-effort; the per-model findings comments are untouched.
- entrypoint.sh: pre-seeds every model as queued, launches the board,
  waits only on the review lanes, then signals .done for a final render.
  Default on; disable with GADFLY_STATUS_BOARD=0.
- Docs: README config table + "Live status board" section, example
  stub note, CLAUDE.md architecture map.

gofmt clean, go vet quiet, go build + go test -race green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 14:18:28 -04:00
..

Example consumer workflows

Each file here is a complete, copy-paste stub workflow. Pick the one that matches your setup, copy it to .gitea/workflows/adversarial-review.yml in the repo you want reviewed, and set the secrets/vars it references. Gadfly is advisory only — it never blocks a merge.

File Backend Needs
adversarial-review.yml Ollama Cloud (default) + inline notes for every provider secret OLLAMA_CLOUD_API_KEY
local-ollama.yml a local/LAN Ollama daemon nothing (or GADFLY_BASE_URL for a remote host)
openai-compatible.yml any OpenAI-compatible endpoint (local Ollama /v1, gateway, vLLM, OpenRouter…) GADFLY_BASE_URL (+ a key for most gateways)
endpoint-aliases.yml several named backends at once (one comment each) repo vars GADFLY_ENDPOINT_<NAME>
.gadfly.yml per-repo specialist config (not a workflow — goes at your repo root)

Common to all:

  • Triggers: new/reopened/ready non-draft PR (auto), @gadfly review comment (allowed users), or manual workflow_dispatch with a pr_number.
  • GITEA_TOKEN is provided automatically; comments post as gitea-actions.
  • Tested backends are the Ollama ones; OpenAI/Anthropic/Google are wired via majordomo but untested. See the repo README for the full config reference and the honest tested/untested status.

Gitea note: repo vars/secrets are not auto-exposed as env — anything you reference via ${{ vars.X }} / ${{ secrets.X }} must appear in the step's env: block (already wired in these examples).