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 work is accepted when the most likely level is at or above passIndex, and the grade's confidence clears the board's grade threshold.

#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.