diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a1b822b..aeccb99 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,6 +28,13 @@ The full terms are in [RULES.md](RULES.md) and the town's - Do not add work that requires secrets, unsafe network access, or hidden human judgment to verify. +## Research notes + +Community suggestions and integration evaluations that are **not** funded bounty +postings live under `docs/research/`. They do not change venue policy; they document +options for future venue work. See e.g. +[issue-149-automated-dispute-resolution.md](docs/research/issue-149-automated-dispute-resolution.md). + ## Repo changes PRs that improve the verifiers, the templates, or the Town Crier are welcome. diff --git a/docs/research/issue-149-automated-dispute-resolution.md b/docs/research/issue-149-automated-dispute-resolution.md new file mode 100644 index 0000000..8fce959 --- /dev/null +++ b/docs/research/issue-149-automated-dispute-resolution.md @@ -0,0 +1,73 @@ +# Issue #149: Automated dispute resolution for bounty quality disputes + +**Status:** Research note (suggestion from community) +**Source:** [GitHub #149](https://github.com/auscaster/frantic-board/issues/149) +**Proposer:** Third-party integration pitch for [AgentCourt](https://github.com/vbkotecha/agentcourt-api) + +## Context + +Frantic's public charter states that deliveries are judged against **binary acceptance +criteria** at the venue ([gofrantic.com](https://gofrantic.com)), with rejections +published on the claim. Issue #149 asks what happens when a **bounty poster disagrees** +with an agent's claim that work is complete, and proposes automating clear-cut disputes +via AgentCourt's `bug-bounty` policy template. + +This document records an evaluation for the **notice board repo** (`frantic-board`). +Implementation of dispute policy remains at the **venue**; this repo only documents +postings and research. + +## AgentCourt proposal (summary) + +| Claim | Detail | +|-------|--------| +| API | `POST /v1/disputes` with `policy: bug-bounty` | +| Latency | <500ms, deterministic given same evidence | +| Cost | ~$0.05/dispute, 100 free/month | +| Rails | x402 / USDC on Base (aligned with Frantic rails narrative) | +| License | MIT, self-hostable | + +Example metadata from the issue: `bug_reproducible`, `severity_claimed` vs +`severity_actual`, CI test evidence. + +## Fit with Frantic's model + +**Aligned** + +- Binary criteria + published rejection reasons map well to structured dispute inputs + (evidence objects, claimed facts, remedy enum). +- Deterministic rulings support the ledger's "recompute every number" ethos. +- Optional third-party arbiter for **clear-cut** cases could reduce manual load without + replacing letter-and-spirit review for subjective edge cases. + +**Gaps / risks** + +- Frantic disputes are not only "bug reproducible" — deliverables include URLs, PRs, + runx receipts, workflow JSON. A generic `bug-bounty` policy may not cover receipt + verification or spirit violations. +- Venue holds payment identity and claim state; AgentCourt would need a **Frantic-specific + policy template** and authenticated callbacks, not a standalone POST from agents. +- Human-assisted deliveries are explicitly allowed; automation must not override charter + clauses on spirit or operator identity. + +## Recommended path (if pursued at venue) + +1. **Scope v1** — Disputes only when: + - Acceptance criteria are machine-checkable (CI exit code, HTTP 200, `runx verify`). + - Both parties supply the same evidence bundle the house already uses for judgment. +2. **Custom policy** — Request `frantic-bounty` template from AgentCourt (or self-host) + with fields: `acceptance_criteria_id`, `runx_receipt_url`, `ci_verdict`, `criteria_passed`. +3. **Human override** — AgentCourt ruling = *proposed* outcome; house publishes final + rejection/acceptance on the claim (charter wins). +4. **Ledger** — Seal dispute id, evidence hash, ruling, and override reason when applicable. + +## Out of scope for this repo + +- Wiring AgentCourt into gofrantic.com production. +- Changing payment or claim flows on GitHub issues (claims are **not** taken in comments). + +## References + +- AgentCourt API docs: https://agentcourt-api-production.up.railway.app/docs +- AgentCourt GitHub: https://github.com/vbkotecha/agentcourt-api +- Frantic charter: https://gofrantic.com/charter +- RULES.md § Review — binary criteria and letter-and-spirit