Two extra fields — section and passage — turn an ordinary bank into a reading test: each passage is shown once, followed by its own questions, in order. Everything else on the main format page still applies.
| Field | Where it goes | Effect |
|---|---|---|
section | On every question of a passage, spelled identically | Groups the questions under a heading. The heading is printed once, above the first question of the group. |
passage | On the first question of each section | Renders a collapsible “📖 Reading Passage” box (open by default) above that section’s questions. Blank line = new paragraph; a single newline = line break. |
sectionexplanation all work the same.section string is the group key — it must be byte-identical across a passage’s questions. "Passage 1" and "Passage 1 " become two groups.passage. Repeating it on later questions is harmless but pointless; putting a different text there silently does nothing.section and passage are plain text — HTML in them is escaped and shown literally, not rendered. Use blank lines for paragraphs.section. One sectioned question is enough to stop the whole bank from shuffling, and the un-sectioned ones then fall back to grouping by id prefix — a confusing mix in the filter panel.question instead of passage will still work, but it shows once per question and can’t be collapsed.| IELTS task | Write it as |
|---|---|
| Multiple choice (one answer) | choices + answer (0-based index) |
| Choose TWO / THREE | choices + answers: [0,2] — checkboxes, exact set required |
| True / False / Not Given | choices: ["True","False","Not Given"] + answer. Yes/No/Not Given: use ["Yes","No","Not Given"] — keep the test’s own wording so the distinction is preserved. |
| Matching headings / features / sentence endings | One question per item; choices = the whole list offered; answer = the right index. (Re-listing the full option set on each item is what makes each one answerable on its own.) |
| Sentence / summary / note / table / flow-chart completion, short answer | type:"fill" + blanks, one array per blank listing every accepted answer. Use question_html with <input data-blank="1"> to place the boxes inside the sentence; omit it and the boxes appear under the stem. |
| Diagram / map / plan labelling | Same as completion, plus image. |
| Writing / speaking tasks | Not supported — there is nothing to grade. type:"essay" displays but is dropped on import. |
question text — the player does not enforce it, so the learner needs to see it.check list = checklist), curly quotes/dashes and a trailing full stop.answer_sets when blanks are only correct in combination — e.g. two blanks that may be filled in either order. Each set lists one acceptable value per blank; any one matching set is correct.IELTS reading is won on where the answer is, so explanation is worth more than in an ordinary bank. Name the paragraph and quote the handful of words that decide it — that is exactly what turns a wrong True/False/Not Given into a lesson:
"explanation": "Paragraph 2 places glass blowing on the Syro-Palestinian coast, not Egypt — the passage contradicts the statement, so False (not Not Given)."
The reveal is gated: after submitting, the learner taps Show Correct Answers and the 💡 explanation appears together with the correct answer. Because both sit behind the same gate, a full set of explanations can never spoil a first attempt. / 揭示是有闸的:提交后点「Show Correct Answers」,💡 解析与正确答案一起出现——两者共用同一道闸,所以写满解析也不会毁掉第一次作答。
This prompt adds the IELTS-specific rules (identical section strings, passage on the first question only, task-type mapping) to the general one. / 这份提示词在通用版之上加了雅思专属规则(section 字符串必须完全一致、passage 只放每篇第一题、题型映射)。
Turn the IELTS reading material at the bottom into a question-bank JSON array. Reply with JSON only — do not restate these instructions.
BATCHES (important — free ChatGPT/Gemini cut long replies off): do ONE passage per reply, and at most 15 questions. End the reply with the line MORE AVAILABLE if a passage is still left, otherwise DONE. When I type "more", do the next passage in the same format.
GROUPING — this is what makes it a reading bank:
- Every question gets "section": the passage title, written IDENTICALLY for every question of that passage. Same wording and spacing every time — one typo splits the passage in two.
- The FIRST question of each passage also gets "passage": the full reading text, paragraphs separated by a blank line. Do not repeat it on the other questions, and do not shorten or summarise it.
- Keep the questions in the order the test asks them.
FORMAT
[
{"id":"p1-q1","section":"Passage 1 - The History of Glass","passage":"Paragraph one...
Paragraph two...","question":"Glass blowing was invented in Egypt.","choices":["True","False","Not Given"],"answer":1,"explanation":"Paragraph 2 places it on the Syro-Palestinian coast."},
{"id":"p1-q2","section":"Passage 1 - The History of Glass","type":"fill","question":"Beads may have been made during ____.","blanks":[["metalworking","metal working"]]}
]
TASK TYPES
- Multiple choice: "choices" + "answer" = 0-based index (a plain integer).
- Choose TWO/THREE: "choices" + plural "answers" = [0,2].
- True/False/Not Given: "choices":["True","False","Not Given"]. Yes/No/Not Given: ["Yes","No","Not Given"]. Keep the test's own wording.
- Matching headings/features: one question per item, "choices" = the whole list of options offered, "answer" = the right index.
- Any completion or short answer: "type":"fill" + "blanks" = one array per blank listing every accepted answer (include plurals and equally correct wordings). Respect the word limit stated in the test.
- Diagram labelling: same as completion, plus "image" if a picture is given.
- Writing/speaking tasks: skip them, they cannot be graded.
Optional and very useful: "explanation" — one sentence naming the paragraph and quoting the few words that prove the answer.
Straight ASCII quotes. No trailing commas. Do not wrap the array in an object. A sentence before the JSON or a code block around it is fine — the importer strips those.
=== MATERIAL ===
Paste the passages and the question list after === MATERIAL ===. Include the answer key if you have one — otherwise the AI guesses and marks those questions "source": "answer unverified". / 把文章和题目一起贴在 === MATERIAL === 之后;有答案就一并给,否则 AI 会猜并标记 answer unverified。
两个额外字段 section 和 passage 就能把普通题库变成阅读测试:每篇文章只显示一次,后面紧跟它自己的题目,按原顺序作答。主格式页的其他规则照旧适用。
section:每一道属于这篇的题都要写,且写法必须完全一致(多一个空格就会拆成两组)。它是分组键,篇名只在该组第一题上方打印一次。passage:只放在每篇的第一题上,渲染成可折叠的「📖 阅读文章」框(默认展开)。空行分段,单个换行 = 换行。放在后面的题上不起作用。section,整个题库就不再打乱(保证文章与题目不脱节),「Randomize + Reset」按钮改叫「Retest」=只清空本轮作答、不改顺序;筛选面板也从「按 id 前缀」变成「按篇」,可以一篇一篇练。section。漏掉的那些会退回按 id 前缀分组,筛选面板会出现两套口径。choices + answer(下标从 0 开始)choices + answers:[0,2](自动变复选框,需全对)choices:["True","False","Not Given"] + answer;Yes/No/Not Given 用 ["Yes","No","Not Given"],按原卷用词,别混用choices 放完整选项表,answer 指向正确项type:"fill" + blanks(每空一个数组,列出所有可接受写法:单复数、连字符/空格、数字与英文);想把输入框放进句子中间就用 question_html 配 <input data-blank="1">imagetype:"essay" 能显示但导入时会被剔除blanks 里列的每个写法都符合限制answer_sets,每组给出各空一个值,任一组全中即对Two passages; passage text only on each section’s first question; True/False/Not Given, Choose TWO, matching headings, gap fill and an inline-blank summary. / 两篇文章;passage 只出现在每篇第一题;含 TFNG、多选、标题匹配、填空、句中内嵌空。
[
{
"id": "ielts-r1-1",
"section": "Passage 1 — The History of Glass",
"passage": "Glass has been made by humans for at least 5,000 years. The earliest known objects are beads, which may have been made by accident during metalworking.\n\nBy the 15th century BC, hollow glass vessels were being produced in Egypt. The technique of glass blowing, however, was not developed until the 1st century BC, somewhere along the Syro-Palestinian coast.\n\nIt was the Romans who began to use glass for architectural purposes, and clear glass windows have been found in the most important buildings of Pompeii.",
"question": "The earliest glass objects were probably produced by accident while people were working with ____.",
"type": "fill",
"blanks": [["metal", "metals", "metalworking"]],
"explanation": "Paragraph 1: beads \"may have been made by accident during metalworking\"."
},
{
"id": "ielts-r1-2",
"section": "Passage 1 — The History of Glass",
"question": "Glass blowing was invented in Egypt.",
"choices": ["True", "False", "Not Given"],
"answer": 1,
"explanation": "Paragraph 2 places glass blowing on the Syro-Palestinian coast, not Egypt — the passage contradicts the statement, so False (not Not Given)."
},
{
"id": "ielts-r1-3",
"section": "Passage 1 — The History of Glass",
"question": "Which TWO uses of glass are mentioned in the passage? (Choose TWO)",
"choices": ["Beads", "Hollow vessels", "Mirrors", "Spectacle lenses"],
"answers": [0, 1]
},
{
"id": "ielts-r2-1",
"section": "Passage 2 — Urban Farming",
"passage": "Rooftop farms are appearing on warehouses and apartment blocks in cities from Tokyo to Toronto.\n\nSupporters argue that growing food where it is eaten cuts transport emissions and gives residents fresh produce within walking distance. Critics counter that the yields are too small to matter and that the water and energy costs of a rooftop greenhouse can exceed those of a rural field.",
"question": "Choose the best heading for the second paragraph.",
"choices": [
"The two sides of the rooftop-farming debate",
"How to build a rooftop greenhouse",
"Why cities are running out of food"
],
"answer": 0
},
{
"id": "ielts-r2-2",
"section": "Passage 2 — Urban Farming",
"type": "fill",
"question": "Complete the summary with NO MORE THAN TWO WORDS for each blank.",
"question_html": "Supporters say local growing reduces <input data-blank=\"1\"> and puts fresh food within <input data-blank=\"2\"> of residents.",
"blanks": [
["transport emissions", "emissions"],
["walking distance"]
]
}
]
Save as e.g. ielts-reading-1.json and import it — or paste the AI reply straight into the catalog’s “📋 Paste the AI’s reply” box, one passage per batch with “add to the same bank” ticked. / 可存成 .json 导入;也可以把 AI 回复直接粘进目录页的「📋 直接粘贴 AI 的回复」——一篇一批,勾上「并入同名题库」。