Brief format

The JSON format of a task brief, how quality levels and the pass level work, and how the brief is hashed.

A brief is a UTF-8 JSON document with four fields.

{
  "title": "Translate a product FAQ into Spanish",
  "brief": "Translate the attached FAQ. Keep product names in English. About 1,200 words.",
  "levels": [
    "Accurate, natural Spanish, product names unchanged",
    "Accurate with a few awkward phrases",
    "Mistranslations or missing sections"
  ],
  "passIndex": 1
}
Field Type Rules
title string Required
brief string Required. What to deliver and any constraints.
levels string[] 2 to 10 quality levels, best first
passIndex integer Index into levels of the lowest level that is paid. 0 pays only the top level.

How grading uses the levels

Jev scores the result against the levels and returns a probability for each. The grade's confidence is the total probability on passIndex and every better level: the chance the work reaches a paid level. The work is accepted when that probability is at least half, and paid only when it also clears the board's grade threshold (70%). Below the threshold, the poster is refunded.

Hashing

The task stores keccak256 of the brief's exact bytes. Whitespace and key order matter: hash the bytes you publish, and publish the bytes you hashed. A brief that does not match its hash is not read, and the task refunds at its deadline.

Size and location

Keep briefs under 256 KB. Publish them at a stable HTTPS URL or as a data:application/json;base64,... URI.

Writing good levels

  • Describe each level by what a reader could verify.
  • Keep levels distinct; avoid two levels that differ only by an adjective.
  • Put hard requirements ("links must work") in the brief and in the passing level.
  • Give each level one criterion where you can. A level such as "Inaccurate or over 100 words" mixes two checks, which spreads Jev's probabilities and lowers the grade's confidence.