Deliver a user-friendly local-first marketplace loop that a new user can complete in one session:
- Create offer
- Create intent
- Match contract
- Trigger training round
- Release escrow
- Inspect timeline and metrics
- 2 weeks
- Deterministic marketplace API error codes and messages.
- Match failure diagnostics to explain why offers did not match.
- Contract lifecycle timeline (created -> bound_to_round -> escrow_released).
- Dashboard visibility for pending contracts and marketplace summary.
- Positive and negative-path local tests.
- First-10-minutes onboarding guide.
- UI score breakdown view (quality, cost, trust).
- Intent status workflow guardrails in controls.
- Lightweight policy preview before matching.
- As a data provider, I can create an offer with clear field guidance and immediate validation.
- As a model owner, I can understand exactly why matching failed.
- As an operator, I can see contract state transitions in chronological order.
- As a reviewer, I can verify ecosystem activity through metrics and operation events.
- As a new integrator, I can finish the full local flow in 10 minutes.
- Marketplace endpoints return stable error codes and messages on all validation failures.
- Match failure includes machine-readable rejection reasons and counts.
- Every matched contract includes timeline events.
training/statusincludes the pending contract summary.metrics_summaryincludes marketplace snapshot.- Local smoke and negative tests pass.
- Frontend build passes.
- Risk: ambiguous match outcomes.
- Mitigation: include rejection reason counters and budget rejection count.
- Risk: accidental status misuse.
- Mitigation: enforce intent status transitions server-side.
- Risk: duplicate escrow release.
- Mitigation: explicit
contract_already_releasederror.
- Backend, frontend, tests, and docs updated.
- No diagnostics errors in touched files.
- Local backend marketplace smoke test passes.
- Local backend negative-path test passes.
- Frontend production build passes.
- Create an offer from the UI.
- Create an intent from the UI.
- Run a match and inspect status.
- Trigger one FL round and inspect contract binding.
- Release escrow and confirm updated timeline.
- Inspect marketplace section in
/metrics_summary.