{
  "schema": "prompt-library/prompts@1",
  "notice": "Sample collection. These prompts were written to show the format; they are not an exhaustive or endorsed set, and their dates and versions are sample records.",
  "sample": true,
  "locale": "en",
  "catalogue_date": "2026-10-01",
  "count": 11,
  "prompts": [
    {
      "id": "summarise-with-sources",
      "code": "PL-01",
      "title": "Summarise a document and point to the passage behind every claim",
      "summary": "A summary you can check: each point quotes the sentence it came from, and anything the document does not say is marked as missing.",
      "task": "understand",
      "level": "starter",
      "template": "You are summarising a {{document_type}} for {{audience}}.\n\nRules:\n1. Write at most {{point_count}} bullet points, most important first.\n2. After each point, quote the shortest sentence from the document that supports it, in quotation marks.\n3. If a point needs more than one passage, quote each one.\n4. Do not add facts, numbers or opinions that are not in the document.\n5. End with a section called \"Not covered\" listing questions a reader of this audience would likely ask that the document does not answer.\n\nDocument:\n\"\"\"\n{{document}}\n\"\"\"",
      "variables": [
        {
          "name": "document_type",
          "label": "Kind of document",
          "multiline": false
        },
        {
          "name": "audience",
          "label": "Who will read the summary",
          "multiline": false
        },
        {
          "name": "point_count",
          "label": "Maximum number of points",
          "multiline": false
        },
        {
          "name": "document",
          "label": "Document text",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "api",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [
        "long-input"
      ],
      "status": {
        "version": "1.1",
        "updated_on": "2026-09-14"
      },
      "path": "en/prompts/summarise-with-sources/",
      "sample": true
    },
    {
      "id": "meeting-notes-to-actions",
      "code": "PL-02",
      "title": "Turn rough meeting notes into decisions, actions and open questions",
      "summary": "Sorts messy notes into what was decided, who does what by when, and what is still open, without inventing owners or dates.",
      "task": "understand",
      "level": "starter",
      "template": "Below are my rough notes from a meeting about {{meeting_topic}}. Attendees: {{attendees}}.\n\nSort the content into four sections:\n- Decisions: what was agreed. Only include something if the notes show it was agreed.\n- Actions: a table with the columns Action, Owner, Due. Use an owner or date only if the notes name one; otherwise write \"not set\".\n- Open questions: things raised but not resolved.\n- Unclear: anything in the notes you could not interpret, quoted as written.\n\nKeep my wording where you can. Do not add actions that are not in the notes.\n\nNotes:\n\"\"\"\n{{notes}}\n\"\"\"",
      "variables": [
        {
          "name": "meeting_topic",
          "label": "What the meeting was about",
          "multiline": false
        },
        {
          "name": "attendees",
          "label": "Who attended",
          "multiline": false
        },
        {
          "name": "notes",
          "label": "Your notes",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "good"
        },
        {
          "kind": "api",
          "fit": "workable"
        }
      ],
      "needs": [],
      "status": {
        "version": "1.0",
        "updated_on": "2026-06-02"
      },
      "path": "en/prompts/meeting-notes-to-actions/",
      "sample": true
    },
    {
      "id": "rewrite-for-audience",
      "code": "PL-03",
      "title": "Rewrite a draft for a different reader without changing the facts",
      "summary": "Adjusts vocabulary, order and length for a new audience, then lists every change of meaning it was tempted to make so you can check none slipped in.",
      "task": "write",
      "level": "starter",
      "template": "Rewrite the draft below for {{audience}}. The purpose of the new version is to {{purpose}}.\n\nKeep:\n- every fact, number, name and date exactly as in the draft;\n- any commitment or caveat, even if it makes the text longer.\n\nChange:\n- vocabulary, sentence length and order, to suit the reader;\n- tone, to be {{tone}}.\n\nAfter the rewrite, add a short list called \"Check these\" with any sentence where the rewrite might have shifted the meaning, quoting the original next to the new version.\n\nDraft:\n\"\"\"\n{{draft}}\n\"\"\"",
      "variables": [
        {
          "name": "audience",
          "label": "New reader",
          "multiline": false
        },
        {
          "name": "purpose",
          "label": "What the new version should achieve",
          "multiline": false
        },
        {
          "name": "tone",
          "label": "Tone",
          "multiline": false
        },
        {
          "name": "draft",
          "label": "Original draft",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "api",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [],
      "status": {
        "version": "1.0",
        "updated_on": "2026-06-10"
      },
      "path": "en/prompts/rewrite-for-audience/",
      "sample": true
    },
    {
      "id": "critique-before-sending",
      "code": "PL-04",
      "title": "Get a critical review of a draft before you send it",
      "summary": "Asks the model to read as your actual reader and find what is unclear, missing or likely to be misread, instead of polishing sentences.",
      "task": "write",
      "level": "practitioner",
      "template": "Read the draft below as {{reader}}. Their goal when reading it is: {{reader_goal}}. My goal in sending it is: {{my_goal}}.\n\nDo not rewrite the draft. Instead, give me:\n1. The one thing most likely to stop me reaching my goal.\n2. Up to five places where this reader could misunderstand, object or stop reading, quoting the exact words each time.\n3. Questions this reader would ask that the draft does not answer.\n4. Anything that could be cut without loss.\n\nBe direct. If the draft is already fine for this reader, say so and explain why.\n\nDraft:\n\"\"\"\n{{draft}}\n\"\"\"",
      "variables": [
        {
          "name": "reader",
          "label": "Who will read it",
          "multiline": false
        },
        {
          "name": "reader_goal",
          "label": "What the reader wants",
          "multiline": false
        },
        {
          "name": "my_goal",
          "label": "What you want",
          "multiline": false
        },
        {
          "name": "draft",
          "label": "Your draft",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "reasoning",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [],
      "status": {
        "version": "1.2",
        "updated_on": "2026-09-20"
      },
      "path": "en/prompts/critique-before-sending/",
      "sample": true
    },
    {
      "id": "tutor-by-questions",
      "code": "PL-05",
      "title": "Learn a concept by being asked questions, not lectured",
      "summary": "Sets the model up as a patient tutor that finds out what you know, explains one step at a time and checks your understanding before moving on.",
      "task": "learn",
      "level": "starter",
      "template": "I want to understand {{topic}}. My current level: {{current_level}}. I want to be able to {{goal}}.\n\nAct as a patient tutor:\n- Start by asking me two or three short questions to find out what I already know. Wait for my answers.\n- Then explain one idea at a time, in plain language, with one concrete example.\n- After each idea, ask me one question that checks I understood it. Do not move on until I answer.\n- If I get something wrong, explain the misunderstanding rather than just giving the answer.\n- If you are not sure about a fact, say so.\n\nStart with your first questions now.",
      "variables": [
        {
          "name": "topic",
          "label": "Topic",
          "multiline": false
        },
        {
          "name": "current_level",
          "label": "What you know now",
          "multiline": false
        },
        {
          "name": "goal",
          "label": "What you want to be able to do",
          "multiline": false
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "reasoning",
          "fit": "workable"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [
        "multi-turn"
      ],
      "status": {
        "version": "1.0",
        "updated_on": "2026-06-18"
      },
      "path": "en/prompts/tutor-by-questions/",
      "sample": true
    },
    {
      "id": "review-a-code-change",
      "code": "PL-06",
      "title": "Review a code change for bugs, risks and missing tests",
      "summary": "A structured review of a diff: correctness first, then security and edge cases, then tests, with a confidence level on every finding.",
      "task": "code",
      "level": "advanced",
      "template": "Review the following {{language}} change. What it is meant to do: {{intent}}.\n\nReport findings in this order, most serious first within each group:\n1. Correctness: cases where the code does not do what is intended.\n2. Security and data: unsafe input handling, secrets, permissions, data loss.\n3. Edge cases: empty, very large, concurrent or unexpected inputs.\n4. Tests: what is untested, with one concrete test case per gap.\n\nFor each finding give the line or function, what goes wrong, a suggested fix, and your confidence (high, medium or low). Do not comment on style unless it hides a bug. If you need to see other code to be sure, say which.\n\nChange:\n```\n{{diff}}\n```",
      "variables": [
        {
          "name": "language",
          "label": "Language or framework",
          "multiline": false
        },
        {
          "name": "intent",
          "label": "What the change should do",
          "multiline": false
        },
        {
          "name": "diff",
          "label": "The diff or code",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "reasoning",
          "fit": "good"
        },
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "api",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [
        "long-input"
      ],
      "status": {
        "version": "1.0",
        "updated_on": "2026-07-04"
      },
      "path": "en/prompts/review-a-code-change/",
      "sample": true
    },
    {
      "id": "explain-an-error",
      "code": "PL-07",
      "title": "Explain an error message and what to check first",
      "summary": "Turns a stack trace or error into a plain explanation, the most likely causes in order, and one quick check for each.",
      "task": "code",
      "level": "practitioner",
      "template": "I got this error while using {{tool}}.\n\nWhat I was doing: {{context}}\n\nError:\n```\n{{error}}\n```\n\nPlease:\n1. Explain in plain language what the error means.\n2. List the three most likely causes, most likely first, and say why you ranked them that way.\n3. For each cause, give one quick check I can run to confirm or rule it out.\n4. Only then suggest a fix for the most likely cause.\n\nIf the error could have a cause you cannot judge from this information, tell me what else to send you.",
      "variables": [
        {
          "name": "tool",
          "label": "Language, tool or library",
          "multiline": false
        },
        {
          "name": "context",
          "label": "What you were doing",
          "multiline": true
        },
        {
          "name": "error",
          "label": "The error",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "reasoning",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "good"
        }
      ],
      "needs": [],
      "status": {
        "version": "1.0",
        "updated_on": "2026-07-04"
      },
      "path": "en/prompts/explain-an-error/",
      "sample": true
    },
    {
      "id": "compare-options",
      "code": "PL-08",
      "title": "Compare options against criteria you set in advance",
      "summary": "Builds a comparison table from your criteria and constraints, separates facts you gave from assumptions it made, and says what would change the answer.",
      "task": "plan",
      "level": "practitioner",
      "template": "Help me decide: {{decision}}.\n\nOptions:\n{{options}}\n\nCriteria, most important first:\n{{criteria}}\n\nHard constraints (an option that breaks one is out):\n{{constraints}}\n\nPlease:\n1. Remove any option that breaks a hard constraint, and say why.\n2. Make a table with the remaining options as rows and the criteria as columns. In each cell, write a short judgement and mark it [given] if it comes from what I told you or [assumed] if you assumed it.\n3. Recommend one option and give the two strongest reasons.\n4. Say what new information would change your recommendation.\n\nDo not invent prices, ratings or statistics. If you need a fact you do not have, list it as a question for me.",
      "variables": [
        {
          "name": "decision",
          "label": "The decision",
          "multiline": false
        },
        {
          "name": "options",
          "label": "Options",
          "multiline": true
        },
        {
          "name": "criteria",
          "label": "Criteria",
          "multiline": true
        },
        {
          "name": "constraints",
          "label": "Hard constraints",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "reasoning",
          "fit": "good"
        },
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [],
      "status": {
        "version": "1.0",
        "updated_on": "2026-08-01"
      },
      "path": "en/prompts/compare-options/",
      "sample": true
    },
    {
      "id": "pre-mortem",
      "code": "PL-09",
      "title": "Run a pre-mortem: imagine the plan failed and find out why",
      "summary": "Assumes the plan has already failed, lists the most plausible reasons, and turns each into an early warning sign and a cheap precaution.",
      "task": "plan",
      "level": "practitioner",
      "template": "Here is a plan:\n\"\"\"\n{{plan}}\n\"\"\"\n\nImagine it is {{timeframe}} from now and the plan has clearly failed.\n\n1. Write the six most plausible reasons it failed. Prefer specific, ordinary causes (people, timing, dependencies, assumptions) over dramatic ones.\n2. For each reason, give an early warning sign we could notice in the first few weeks.\n3. For each reason, suggest one precaution that costs little and could be done now.\n4. Name the single assumption in the plan that, if wrong, does the most damage.\n\nPresent 1 to 3 as a table with the columns Reason, Warning sign, Precaution.",
      "variables": [
        {
          "name": "plan",
          "label": "The plan",
          "multiline": true
        },
        {
          "name": "timeframe",
          "label": "When it would have failed",
          "multiline": false
        }
      ],
      "works_with": [
        {
          "kind": "reasoning",
          "fit": "good"
        },
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [],
      "status": {
        "version": "1.0",
        "updated_on": "2026-08-01"
      },
      "path": "en/prompts/pre-mortem/",
      "sample": true
    },
    {
      "id": "extract-fields-to-table",
      "code": "PL-10",
      "title": "Extract fields from text into a table, marking what is missing",
      "summary": "Pulls the fields you name out of emails, forms or notes into one table, and writes missing instead of guessing a value.",
      "task": "analyse",
      "level": "practitioner",
      "template": "Extract these fields from each record in the text below: {{fields}}.\n\nRules:\n- One row per record. Records are separated by: {{separator}}.\n- Copy values exactly as written; do not reformat or correct them.\n- If a field is not stated, write MISSING. Never guess.\n- If a value is ambiguous, write AMBIGUOUS and add a note after the table.\n- Output a table with one column per field, in the order given, then a column called Source quoting the words you used.\n\nText:\n\"\"\"\n{{text}}\n\"\"\"",
      "variables": [
        {
          "name": "fields",
          "label": "Fields to extract",
          "multiline": false
        },
        {
          "name": "separator",
          "label": "How records are separated",
          "multiline": false
        },
        {
          "name": "text",
          "label": "The text",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "api",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "good"
        }
      ],
      "needs": [
        "long-input"
      ],
      "status": {
        "version": "1.0",
        "updated_on": "2026-08-15"
      },
      "path": "en/prompts/extract-fields-to-table/",
      "sample": true
    },
    {
      "id": "group-feedback-into-themes",
      "code": "PL-11",
      "title": "Group open-ended feedback into themes with counts and quotes",
      "summary": "Sorts survey comments or reviews into themes, counts how many responses mention each, and quotes real examples so the themes can be checked.",
      "task": "analyse",
      "level": "practitioner",
      "template": "Below are {{response_count}} responses to the question: \"{{question}}\". Each response is on its own line.\n\n1. Group the responses into at most {{max_themes}} themes. Name each theme in a few words.\n2. For each theme, count the responses that mention it. A response can belong to more than one theme.\n3. For each theme, quote two or three short responses word for word.\n4. List responses that fit no theme under \"Other\".\n5. End with a check: the total number of responses you read.\n\nDo not add themes that no response mentions. Do not correct spelling in quotes.\n\nResponses:\n\"\"\"\n{{responses}}\n\"\"\"",
      "variables": [
        {
          "name": "question",
          "label": "The question people answered",
          "multiline": false
        },
        {
          "name": "response_count",
          "label": "Number of responses",
          "multiline": false
        },
        {
          "name": "max_themes",
          "label": "Maximum number of themes",
          "multiline": false
        },
        {
          "name": "responses",
          "label": "Responses",
          "multiline": true
        }
      ],
      "works_with": [
        {
          "kind": "chat",
          "fit": "good"
        },
        {
          "kind": "reasoning",
          "fit": "good"
        },
        {
          "kind": "local",
          "fit": "workable"
        }
      ],
      "needs": [
        "long-input"
      ],
      "status": {
        "version": "1.0",
        "updated_on": "2026-08-15"
      },
      "path": "en/prompts/group-feedback-into-themes/",
      "sample": true
    }
  ]
}
