Format reference
Questions
Question kinds, answer keys, feedback and explanations, and the held questions Kapi's test draws from.
Every question, with its answer, feedback and explanation. Practice questions sit on pages; held questions sit only in a test's pool.
Every question
A question. Its kind sets the keys it takes besides id, kind, prompt, situation and explanation.
id: ID, required. The question's ID. Its text IDs start with it, such as q1.prompt.kind:"choice","multi","exact","order","match", required. The question's kind.prompt: text ID, required. The text ID of the question.situation: text ID. The text ID of the situation it's set in, shown before the question.explanation: text ID. The text ID of why the answer is right, shown after an answer.
Kinds
| Kind | What it asks |
|---|---|
choice | One right choice. |
multi | One or more right choices. |
exact | A typed answer. |
order | Put items in order. |
match | Sort items into groups. |
choice
One right choice.
choices: list of choices, required. The choices.choices[].id: ID, required. The choice's ID.choices[].text: text ID, required. The text ID of the choice.choices[].feedback: text ID. The text ID of why this choice is right or wrong, shown after an answer.answer: ID, required. The ID of the right choice.
multi
One or more right choices.
choices: list of choices, required. The choices.choices[].id: ID, required. The choice's ID.choices[].text: text ID, required. The text ID of the choice.choices[].feedback: text ID. The text ID of why this choice is right or wrong, shown after an answer.answer: list of IDs, required. The IDs of every right choice.
exact
A typed answer.
accepted: list of texts, required. The answers Kapi accepts, as the words themselves.match:"prose","exact", required. prose ignores case, accents, punctuation and extra spaces. exact keeps them all, for code and symbols.
order
Put items in order.
items: list of items, required. The items.items[].id: ID, required. Its ID.items[].text: text ID, required. The text ID of its words.answer: list of IDs, required. The item IDs, in the right order.
match
Sort items into groups.
items: list of items, required. The items to sort.items[].id: ID, required. Its ID.items[].text: text ID, required. The text ID of its words.groups: list of items, required. The groups.groups[].id: ID, required. Its ID.groups[].text: text ID, required. The text ID of its words.answer: object, required. Each item's ID, with the ID of its group.
Choices and items
Each choice in choices:
id: ID, required. The choice's ID.text: text ID, required. The text ID of the choice.feedback: text ID. The text ID of why this choice is right or wrong, shown after an answer.
Each item or group in items and groups:
id: ID, required. Its ID.text: text ID, required. The text ID of its words.
Practice and the test
A practice question sits on one page, in a question block, and shows its feedback and explanation after an answer. A held question sits only in a test's pool, in assessments in kapi-works.json, and Kapi's test draws from it.
assessments[].id: ID, required. The test's ID.assessments[].title: text ID, required. The text ID of the test's name.assessments[].pool: list of IDs, required. The IDs of the questions the test draws from. These held questions sit on no page.assessments[].suggest: object. The test settings Kapi suggests. The company decides.assessments[].suggest.draw: whole number, required. How many questions each attempt draws, up to 50.assessments[].suggest.passMark: whole number, required. The pass mark, as a percentage.assessments[].suggest.attempts: whole number. How many attempts a person gets, up to 10.
What Kapi checks
| Check | Severity | What Kapi says |
|---|---|---|
answer_key_invalid | Error | The answer key …. |
explanation_missing | Error | This question has no explanation of why the answer is right. |
feedback_missing | Error | Choice … has no feedback. Every choice says why it's right or wrong. |
held_question_on_page | Error | This question is in …'s pool, so it can't also sit on a page. Kapi's test would show it again. |
held_kind_not_allowed | Error | Kapi's test takes choice and multi questions only. |
pool_too_small | Error | The pool holds fewer questions than the test draws (…). |
pool_small | Warning | The pool holds less than one and a half times the draw (…), so retakes repeat questions. |
question_unused | Warning | No page or pool uses this question. |
few_situations | Tip | … Questions set in a situation check that people can use what they learned. |