Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
73 changes: 73 additions & 0 deletions docs/research/issue-149-automated-dispute-resolution.md
Original file line number Diff line number Diff line change
@@ -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