7809d1b93d
Build & push image / build-and-push (push) Successful in 8s
Replace the single generic review with a suite of focused specialists, each its own review+recheck pass, merged into ONE comment (a collapsible section per lens, led by the worst verdict; the optional `improvements` lens never escalates it). - cmd/gadfly/specialists.go: built-in lenses + default suite (security, correctness, maintainability, performance, error-handling) + opt-in (tests, docs, conventions, improvements). Selection via GADFLY_SPECIALISTS (csv/"all"); custom defs via GADFLY_SPECIALIST_<NAME> env and a repo .gadfly.yml (specialists + define). Precedence: built-ins < file < env. Unknown names error but don't sink the run. - cmd/gadfly/consolidate.go: verdict parse + one-comment render. - main.go: loop specialists; per-lens failure is an inline notice, never fatal. Default timeout bumped to 600s (suite runs sequentially). - base system prompt trimmed to persona+tools+discipline+output; lens-specific focus is appended per specialist (semantic re-derivation discipline kept in base). - entrypoint default models -> single model (suite already gives breadth; cost ~= specialists × models × 2). Adds gopkg.in/yaml.v3. - docs/examples: README "Specialists" section, examples/.gadfly.yml, stub var, CLAUDE.md architecture/config. Dynamic `auto` selection is the planned next step. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
1.7 KiB
Markdown
26 lines
1.7 KiB
Markdown
# 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`](adversarial-review.yml) | **Ollama Cloud** (default) + inline notes for every provider | secret `OLLAMA_CLOUD_API_KEY` |
|
|
| [`local-ollama.yml`](local-ollama.yml) | a **local/LAN Ollama** daemon | nothing (or `GADFLY_BASE_URL` for a remote host) |
|
|
| [`openai-compatible.yml`](openai-compatible.yml) | any **OpenAI-compatible** endpoint (local Ollama `/v1`, gateway, vLLM, OpenRouter…) | `GADFLY_BASE_URL` (+ a key for most gateways) |
|
|
| [`endpoint-aliases.yml`](endpoint-aliases.yml) | **several named backends** at once (one comment each) | repo vars `GADFLY_ENDPOINT_<NAME>` |
|
|
| [`.gadfly.yml`](.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](../README.md#models--providers) 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).
|