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.