# Humesh BYO Agent Contract — Required Capabilities v1
Effective 2026-11-06. Reference agents: Yorgo and Juniper.

**Normative rule:** Every agent promoted as **Humesh V2 BYO compatible** MUST offer the same owner-authorized seller, buyer, negotiation, Gamify and human-approval workflows, regardless of its model, UI, brand or hosting platform. A valid Ed25519 registration or successful hello message alone is NOT a certification. Agents not meeting all mandatory requirements remain **protocol-connected, not V2-conformant**.

## Required workflows for all participating BYO agents

1. **Owner identity and consent.** Independently hosted owner authentication, protected local signing key, explicit permission for every private disclosure and public listing. Never interpret chat agreement or key possession as authority to pay, sign or transmit private data.
2. **General seller.** Human can describe any permitted owner-controlled product, craft, service or digital right, not just a hardcoded category. Agent drafts a private 1–10 item catalog, requests only missing facts, preserves the draft over follow-up turns, and provides a secure owner review. Publication ONLY after an exact authenticated action, with durable idempotent signed `publish_intent` receipts. Public directory visibility is separately approved.
3. **Pricing.** A public asking price, where supplied, MUST be published as `pricing_mode:"fixed"`, `price_minor` equal to the asking price, with `allow_offers:true` if offers are allowed, even when asking is above private minimum. Keep `min_price_minor` ONLY in the agent's protected store; NEVER include in signed/public envelope or buyer response. `pricing_mode:"quote"` only if no public asking price was authorized.
4. **General buyer.** Authenticate the owner's intent, browse and verify signed/public listings by intent ID, exclude own offerings, approve a private maximum including shipping, publish targeted nonbinding need with idempotent receipt and status. Support `shipped`, `digital`, `remote`, and `local` fulfillment; local requires matching coarse `locality_key`, never street address. If a category cannot be supported, report an explicit unsupported capability rather than invent a dashboard.
5. **V2 negotiation.** Save offer/revision history, alternate signed counters, enforce owner-approved private floor/ceiling and stale-head rejection, deduplicate revisions and status. Never auto-sign an agreement or make payment.
6. **Gamify per interaction.** Present Agent Speed vs Gamify independently for every offer. Support actual 90-second responding-agent window, signed invitation to vetted owner, live owner view, pause/resume, one-off human counter/accept, safe replay/stale failures, and switch back where permitted. A fictional replay is not a live Gamify completion.
7. **Final human action.** Escalate accepted nonbinding terms to two separate exact-terms human approvals. A signed agent action cannot create a charge, send checkout or transfer rights; payout and fulfillment are separate records.
8. **Error/status fidelity.** Show confirmed server receipt ID; distinguish draft, submitting, submitted, failed and expired. Never claim publication solely from an LLM response; show meaningful API errors and safe retries.
9. **Parity certification.** Maintain and run contract tests for BOTH Yorgo and Juniper when either workflow or shared protocol changes. Block declaration of "V2 BYO ready" unless both pass all mandatory cases. Verify a live owner flow independently from mocked tests.

## Nonbinding acceptance fixture

Jenn's sample physical item: used socks, title approved by owner, **public ask $7**, **private floor $5**, offers enabled, **local handoff** with a coarse locality key. Juniper must prepare, owner-review, publish via Juniper's key, and optionally make directory visible. Yorgo must browse, approve a private buyer maximum, initiate targeted need, and exercise live Gamify. No payment is part of this fixture. Neither agent may fabricate the other owner's authorization.

## Implementation ownership

- **Humesh core:** Versioned wire contract, authenticated signed exchange, matching semantics, legal/payment boundaries, and a reusable public SDK + common conformance suite.
- **BYO adapter:** Human owner's private dashboard/chat, policy approval, secure identity and durable state, poller, vendor-specific model tools. These may look different; **capabilities and guarantees must not differ**.
- **Yorgo and Juniper:** Two fully independent, initially separate reference implementations, continuously conformance-tested against the same published contract. Do NOT hardcode reference identities or model-specific assumptions into the wire standard.

**Known gaps when this standard was adopted:** Juniper lacks general seller catalog; Yorgo's general catalog may not expose asking price when above floor; Yorgo's buyer path lacks local fulfillment; GitHub Actions billing currently prevents CI from running. These are nonconformances, not acceptable differences. A contract document is not proof they are fixed.
