{
  "$schema": "../schema/pattern.schema.json",
  "catalog": "PromptSpec Pattern Catalog",
  "version": "0.1.0",
  "count": 30,
  "patterns": [
    {
      "id": "zero_shot",
      "name": "ZeroShot",
      "description": "Provide no examples to guide the task.",
      "category": "IN_CONTEXT_LEARNING",
      "subcategory": "Zero-shot",
      "componentTypes": [
        "DIRECTIVE"
      ],
      "paperVariantCount": 3,
      "detectionInstruction": "Absence of example input-output pairs; task relies on instruction alone.",
      "placeholderExample": "Instruction: {QUESTION}\nInput data: {INPUT_DATA}",
      "example": "Translate the following English word into French: Morning",
      "notes": "Represents the default prompting strategy when no demonstrations are provided.",
      "formalization": "pattern ZeroShot\ncategory IN_CONTEXT_LEARNING\n\nvariables {\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nInstruction: {{question}}\n{{#input_data}}\nInput data: {{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Zero-Shot Prompting",
          "source": "sahoo2024"
        },
        {
          "name": "Zero-Shot Prompting",
          "source": "schulhoff2024"
        },
        {
          "name": "Basic/Standard/Vanilla Prompting",
          "source": "vatsal2024"
        }
      ],
      "summary": {
        "intent": "Instructs the task directly without worked examples.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Instruction: {{question}}\n{{#input_data}}\nInput data: {{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern ZeroShot\ncategory IN_CONTEXT_LEARNING\n\nvariables {\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nInstruction: {{question}}\n{{#input_data}}\nInput data: {{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Translate the following English word into French: Morning",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Basic/Standard/Vanilla Prompting",
          "sources": [
            {
              "key": "vatsal2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "sahoo2024",
          "roles": [
            "source name record"
          ]
        },
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "source name record"
          ]
        },
        {
          "sourceKey": "vatsal2024",
          "roles": [
            "other name",
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "few_shot",
      "name": "FewShot",
      "description": "Provide a few exemplar input-output pairs to guide the model.",
      "category": "IN_CONTEXT_LEARNING",
      "subcategory": "Few-shot",
      "componentTypes": [
        "DIRECTIVE",
        "EXAMPLES"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for explicit input-output example blocks, demonstration pairs, or 'Example:' sections.",
      "placeholderExample": "Instruction: {QUESTION}\nExamples:\nInput: {EXAMPLE_INPUT_1}\nOutput: {EXAMPLE_OUTPUT_1}\nInput: {EXAMPLE_INPUT_2}  Output: {EXAMPLE_OUTPUT_2}\n\nNow apply to: {INPUT_DATA}",
      "example": "Translate English to French.\n\nExamples:\nInput: Night\nOutput: Nuit\nInput: Morning\nOutput: Matin\nInput: Fall\nOutput: Automne\n\nNow apply to:\nWinter",
      "notes": "Mutually exclusive with ZeroShot.",
      "formalization": "pattern FewShot\ncategory IN_CONTEXT_LEARNING\n\nvariables {\n    task* : string              \"Description of the task\"\n    examples+ : list            \"List of example objects\"\n    num_examples? : int = 3     \"How many examples to show\"\n    selection? : enum = \"first\" | [\"first\", \"random\", \"all\"]\n}\n\ntemplate ```\nTask: {{task}}\n\nHere are some examples:\n{{^examples num_examples}}\nInput: {{input}}\nOutput: {{output}}\n{{/examples}}\n\nNow do the same for:\n```\n",
      "sourceNameRecords": [
        {
          "name": "Few-Shot Prompting",
          "source": "sahoo2024"
        },
        {
          "name": "Few-Shot Prompting",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Supplies worked input-output examples before the target task.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "task",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Description of the task"
          },
          {
            "name": "examples",
            "cardinality": "one-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": "List of example objects"
          },
          {
            "name": "num_examples",
            "cardinality": "optional",
            "type": "int",
            "default": 3,
            "allowedValues": [],
            "description": "How many examples to show"
          },
          {
            "name": "selection",
            "cardinality": "optional",
            "type": "enum",
            "default": "first",
            "allowedValues": [
              "first",
              "random",
              "all"
            ],
            "description": null
          }
        ],
        "template": "Task: {{task}}\n\nHere are some examples:\n{{^examples num_examples}}\nInput: {{input}}\nOutput: {{output}}\n{{/examples}}\n\nNow do the same for:\n",
        "promptspec": "pattern FewShot\ncategory IN_CONTEXT_LEARNING\n\nvariables {\n    task* : string              \"Description of the task\"\n    examples+ : list            \"List of example objects\"\n    num_examples? : int = 3     \"How many examples to show\"\n    selection? : enum = \"first\" | [\"first\", \"random\", \"all\"]\n}\n\ntemplate ```\nTask: {{task}}\n\nHere are some examples:\n{{^examples num_examples}}\nInput: {{input}}\nOutput: {{output}}\n{{/examples}}\n\nNow do the same for:\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Translate English to French.\n\nExamples:\nInput: Night\nOutput: Nuit\nInput: Morning\nOutput: Matin\nInput: Fall\nOutput: Automne\n\nNow apply to:\nWinter",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "sahoo2024",
          "roles": [
            "source name record"
          ]
        },
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "chain_of_thought",
      "name": "ChainOfThought",
      "description": "Encourage step-by-step reasoning before final answer.",
      "category": "REASONING",
      "subcategory": "Chain-of-Thought",
      "componentTypes": [
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 9,
      "detectionInstruction": "Look for 'think step by step', 'reason step by step', or 'show your reasoning'.",
      "placeholderExample": "Let’s think step by step.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Let’s think step by step.\n\nSolve the following math problem:\n\nRoger has 5 apples and gives 2 to Josh and 1 to Jane. How much is left?",
      "notes": null,
      "formalization": "pattern ChainOfThought\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    reasoning_cue? : string = \"Let's think step by step.\"\n}\n\ntemplate ```\n{{reasoning_cue}}\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Chain-of-Thought (CoT) Prompting",
          "source": "fagbohun2024"
        },
        {
          "name": "Chain-of-Symbol (CoS) Prompting",
          "source": "sahoo2024"
        },
        {
          "name": "Chain-of-Thought (CoT) Prompting",
          "source": "sahoo2024"
        },
        {
          "name": "Chain-of-Thought (CoT) Prompting",
          "source": "schulhoff2024"
        },
        {
          "name": "Contrastive CoT Prompting",
          "source": "schulhoff2024"
        },
        {
          "name": "Few-Shot CoT",
          "source": "schulhoff2024"
        },
        {
          "name": "Tabular CoT (Tab-CoT)",
          "source": "schulhoff2024"
        },
        {
          "name": "Zero-Shot CoT",
          "source": "schulhoff2024"
        },
        {
          "name": "Chain-of-Thought (CoT)",
          "source": "vatsal2024"
        }
      ],
      "summary": {
        "intent": "Elicits explicit intermediate reasoning before the final answer.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "reasoning_cue",
            "cardinality": "optional",
            "type": "string",
            "default": "Let's think step by step.",
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "{{reasoning_cue}}\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern ChainOfThought\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    reasoning_cue? : string = \"Let's think step by step.\"\n}\n\ntemplate ```\n{{reasoning_cue}}\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Let’s think step by step.\n\nSolve the following math problem:\n\nRoger has 5 apples and gives 2 to Josh and 1 to Jane. How much is left?",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [
        {
          "name": "Chain-of-Symbol (CoS)",
          "description": "Represents spatial relationships via condensed symbols instead of NL.",
          "snippet": null,
          "sources": [
            {
              "key": "vatsal2024"
            }
          ]
        },
        {
          "name": "Chain-of-Symbol (CoS) Prompting",
          "description": "Uses condensed symbols instead of natural language for spatial reasoning.",
          "snippet": null,
          "sources": [
            {
              "key": "sahoo2024"
            }
          ]
        },
        {
          "name": "Contrastive Chain-of-Thought (CCoT) Prompting",
          "description": "Provides both valid AND invalid reasoning demonstrations in the exemplars.",
          "snippet": null,
          "sources": [
            {
              "key": "sahoo2024"
            }
          ]
        },
        {
          "name": "Contrastive CoT / Contrastive Self-Consistency",
          "description": "Provides both positive AND negative reasoning demonstrations.",
          "snippet": null,
          "sources": [
            {
              "key": "vatsal2024"
            }
          ]
        },
        {
          "name": "Contrastive CoT Prompting",
          "description": "Exemplars include both correct AND incorrect explanations to show the model how not to reason.",
          "snippet": null,
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        },
        {
          "name": "Few-Shot CoT",
          "description": "Combines example-based prompting with explicit reasoning.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Tabular CoT (Tab-CoT)",
          "description": "Zero-Shot CoT variant outputting reasoning as a markdown table.",
          "snippet": null,
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        },
        {
          "name": "Zero-Shot CoT",
          "description": "Elicits explicit reasoning without worked examples.",
          "snippet": null,
          "sources": []
        }
      ],
      "otherNames": [
        {
          "name": "Chain-of-Thought (CoT) Prompting",
          "sources": [
            {
              "key": "fagbohun2024"
            },
            {
              "key": "sahoo2024"
            },
            {
              "key": "schulhoff2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "fagbohun2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "sahoo2024",
          "roles": [
            "other name",
            "source name record",
            "variant"
          ]
        },
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "other name",
            "source name record",
            "variant"
          ]
        },
        {
          "sourceKey": "vatsal2024",
          "roles": [
            "source name record",
            "variant"
          ]
        }
      ]
    },
    {
      "id": "complex_cot",
      "name": "ComplexCoT",
      "description": "Generate multiple reasoning chains and prefer answers supported by the most complex and detailed chains.",
      "category": "REASONING",
      "subcategory": "Chain-of-Thought",
      "componentTypes": [
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for instructions to generate multiple reasoning chains and select or prioritize answers from the most complex, detailed, or elaborate reasoning paths, as distinct from plain majority or consistency voting.",
      "placeholderExample": "Generate {PATH_COUNT} detailed reasoning paths for the following question.\nPrioritize the most complex and detailed paths, then use their majority answer as the final answer.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Solve the following problem step by step. Generate multiple reasoning paths, making each as detailed as possible.\nAmong the most complex and detailed paths, take the majority answer as the final answer.\n\nSolve the following math problem:\n\n{QUESTION}\n{INPUT_DATA}",
      "notes": null,
      "formalization": "pattern ComplexCoT\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    path_count? : int = 3\n}\n\ntemplate ```\nGenerate {{path_count}} reasoning paths, each as detailed as possible.\nAmong the most complex and detailed paths, take the majority answer as the final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Complexity-Based Prompting",
          "source": "schulhoff2024"
        },
        {
          "name": "Complex CoT",
          "source": "vatsal2024"
        }
      ],
      "summary": {
        "intent": "Generates multiple detailed reasoning paths before answer selection.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "path_count",
            "cardinality": "optional",
            "type": "int",
            "default": 3,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Generate {{path_count}} reasoning paths, each as detailed as possible.\nAmong the most complex and detailed paths, take the majority answer as the final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern ComplexCoT\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    path_count? : int = 3\n}\n\ntemplate ```\nGenerate {{path_count}} reasoning paths, each as detailed as possible.\nAmong the most complex and detailed paths, take the majority answer as the final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Solve the following problem step by step. Generate multiple reasoning paths, making each as detailed as possible.\nAmong the most complex and detailed paths, take the majority answer as the final answer.\n\nSolve the following math problem:\n\n{QUESTION}\n{INPUT_DATA}",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Complexity-Based Prompting",
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "vatsal2024",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "structured_cot",
      "name": "StructuredCoT",
      "description": "Structure reasoning with program-like constructs (loops, branches).",
      "category": "REASONING",
      "subcategory": "Chain-of-Thought",
      "componentTypes": [
        "OUTPUT_FORMAT",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for explicit reasoning structures: sequencing, IF-THEN branching, FOR-loops, or structured analysis steps.",
      "placeholderExample": "Use structured reasoning constructs:\n- Sequencing: {STEP_1}, {STEP_2}, …\n- Branching: IF {CONDITION} THEN {ACTION}\n- Looping: FOR {ITEM} IN {SET} DO {ACTION}\nEnd with final answer.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Sequencing: Initialize sum = 0\nLooping: FOR i=1..10 IF i is even THEN sum += i\nEnd with final answer.",
      "notes": null,
      "formalization": "pattern StructuredCoT\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    steps... : list\n    condition? : string\n    action? : string\n    item? : string\n    set_name? : string\n}\n\ntemplate ```\nUse structured reasoning constructs:\n{{#steps}}\n- Sequencing:\n{{^steps}}\n  - {{.}}\n{{/steps}}\n{{/steps}}\n{{#condition}}\n- Branching: IF {{condition}} THEN {{action}}\n{{/condition}}\n{{#item}}\n- Looping: FOR {{item}} IN {{set_name}} DO {{action}}\n{{/item}}\nEnd with final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Structured CoT (SCoT) Prompting",
          "source": "sahoo2024"
        },
        {
          "name": "Structured Chain-of-Thought (SCoT)",
          "source": "vatsal2024"
        }
      ],
      "summary": {
        "intent": "Organizes reasoning with explicit program-like control structures.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "steps",
            "cardinality": "zero-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "condition",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "action",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "item",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "set_name",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Use structured reasoning constructs:\n{{#steps}}\n- Sequencing:\n{{^steps}}\n  - {{.}}\n{{/steps}}\n{{/steps}}\n{{#condition}}\n- Branching: IF {{condition}} THEN {{action}}\n{{/condition}}\n{{#item}}\n- Looping: FOR {{item}} IN {{set_name}} DO {{action}}\n{{/item}}\nEnd with final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern StructuredCoT\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    steps... : list\n    condition? : string\n    action? : string\n    item? : string\n    set_name? : string\n}\n\ntemplate ```\nUse structured reasoning constructs:\n{{#steps}}\n- Sequencing:\n{{^steps}}\n  - {{.}}\n{{/steps}}\n{{/steps}}\n{{#condition}}\n- Branching: IF {{condition}} THEN {{action}}\n{{/condition}}\n{{#item}}\n- Looping: FOR {{item}} IN {{set_name}} DO {{action}}\n{{/item}}\nEnd with final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Sequencing: Initialize sum = 0\nLooping: FOR i=1..10 IF i is even THEN sum += i\nEnd with final answer.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Structured Chain-of-Thought (SCoT)",
          "sources": [
            {
              "key": "vatsal2024"
            }
          ]
        },
        {
          "name": "Structured CoT (SCoT) Prompting",
          "sources": [
            {
              "key": "sahoo2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "sahoo2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "vatsal2024",
          "roles": [
            "other name",
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "plan_and_solve",
      "name": "PlanAndSolve",
      "description": "First plan sub-problems, then solve them step by step.",
      "category": "REASONING",
      "subcategory": "Planning",
      "componentTypes": [
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for explicit planning steps followed by sequential execution.",
      "placeholderExample": "Step 1: Generate a high-level plan of solution steps: {PLAN}\nStep 2: Execute each step in order.\nStep 3: Produce final answer.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "First, generate a clear plan outlining the steps needed to solve the problem.\nThen, follow the plan step by step to produce the final answer.\n\nQuestion:\nIf a train travels 120 km in 2 hours, and then 180 km in 3 hours, what is its average speed across the whole trip?",
      "notes": null,
      "formalization": "pattern PlanAndSolve\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    plan_label? : string = \"PLAN\"\n}\n\ntemplate ```\nStep 1: Generate a high-level plan of solution steps: {{plan_label}}\nStep 2: Execute each step in order.\nStep 3: Produce final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Plan-and-Solve Prompting",
          "source": "schulhoff2024"
        },
        {
          "name": "Plan-and-Solve (PS)",
          "source": "vatsal2024"
        }
      ],
      "summary": {
        "intent": "Plans subproblems before executing stepwise solution steps.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "plan_label",
            "cardinality": "optional",
            "type": "string",
            "default": "PLAN",
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Step 1: Generate a high-level plan of solution steps: {{plan_label}}\nStep 2: Execute each step in order.\nStep 3: Produce final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern PlanAndSolve\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    plan_label? : string = \"PLAN\"\n}\n\ntemplate ```\nStep 1: Generate a high-level plan of solution steps: {{plan_label}}\nStep 2: Execute each step in order.\nStep 3: Produce final answer.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "First, generate a clear plan outlining the steps needed to solve the problem.\nThen, follow the plan step by step to produce the final answer.\n\nQuestion:\nIf a train travels 120 km in 2 hours, and then 180 km in 3 hours, what is its average speed across the whole trip?",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Plan-and-Solve (PS)",
          "sources": [
            {
              "key": "vatsal2024"
            }
          ]
        },
        {
          "name": "Plan-and-Solve Prompting",
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "vatsal2024",
          "roles": [
            "other name",
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "least_to_most",
      "name": "LeastToMost",
      "description": "Decompose into easiest sub-problems first, then harder ones.",
      "category": "REASONING",
      "subcategory": "Decomposition",
      "componentTypes": [
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for hierarchical decomposition from simple to complex subproblems.",
      "placeholderExample": "{QUESTION}\n{INPUT_DATA}\n\nDecompose problem into simpler subproblems: {SUBPROBLEM_1}, {SUBPROBLEM_2}, …\n\nSolve each subproblem in sequence.\n\nCombine subproblem solutions into final answer.",
      "example": "Solve the following problem step by step. First, decompose the problem into smaller subproblems.\nThen, solve each subproblem in sequence.\nFinally, combine the solutions to produce the final answer.\n\nQuestion:\nA school cafeteria has 312 apples. They want to distribute them equally to 24 students. Each student eats 2 apples, and the rest are saved. How many apples are saved?",
      "notes": null,
      "formalization": "pattern LeastToMost\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    subproblems... : list\n}\n\ntemplate ```\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n\nDecompose problem into simpler subproblems:\n{{^subproblems}}\n  - {{.}}\n{{/subproblems}}\n\nSolve each subproblem in sequence.\n\nCombine subproblem solutions into final answer.\n```\n",
      "sourceNameRecords": [
        {
          "name": "Least-to-Most Prompting",
          "source": "schulhoff2024"
        },
        {
          "name": "Least-to-Most",
          "source": "vatsal2024"
        }
      ],
      "summary": {
        "intent": "Decomposes tasks from simpler subproblems to harder ones.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "subproblems",
            "cardinality": "zero-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n\nDecompose problem into simpler subproblems:\n{{^subproblems}}\n  - {{.}}\n{{/subproblems}}\n\nSolve each subproblem in sequence.\n\nCombine subproblem solutions into final answer.\n",
        "promptspec": "pattern LeastToMost\ncategory REASONING\n\nvariables {\n    question* : string\n    input_data? : string\n    subproblems... : list\n}\n\ntemplate ```\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n\nDecompose problem into simpler subproblems:\n{{^subproblems}}\n  - {{.}}\n{{/subproblems}}\n\nSolve each subproblem in sequence.\n\nCombine subproblem solutions into final answer.\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Solve the following problem step by step. First, decompose the problem into smaller subproblems.\nThen, solve each subproblem in sequence.\nFinally, combine the solutions to produce the final answer.\n\nQuestion:\nA school cafeteria has 312 apples. They want to distribute them equally to 24 students. Each student eats 2 apples, and the rest are saved. How many apples are saved?",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Least-to-Most Prompting",
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "vatsal2024",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "persona",
      "name": "Persona",
      "description": "Adopt a role/persona to shape style/voice.",
      "category": "CONTEXT_CONTROL",
      "subcategory": "Role & perspective",
      "componentTypes": [
        "CONTEXT",
        "OUTPUT_FORMAT",
        "PROFILE_ROLE"
      ],
      "paperVariantCount": 3,
      "detectionInstruction": "Look for 'Act as', 'You are', 'As a', or identity/role-setting phrases.",
      "placeholderExample": "Act as {PERSONA}.\nProvide outputs that {PERSONA} would create.\nPay particular attention to {FOCUS}.\n{QUESTION}\n{INPUT_DATA}",
      "example": "Act as a security reviewer.\nProvide outputs that a security reviewer would create.\nPay particular attention to authentication, authorization, input validation, and data exposure risks.\nReview the following code and identify potential security issues:\n{SOURCE_CODE}",
      "notes": null,
      "formalization": "pattern Persona\ncategory CONTEXT_CONTROL\n\nvariables {\n    persona* : string  \"The role, identity, expertise, perspective, or entity assigned to the model.\"\n    question* : string  \"The task, question, or instruction to answer.\"\n    focus? : string  \"Optional aspects that the persona should pay particular attention to.\"\n    input_data? : string  \"Optional input data or contextual information.\"\n}\n\ntemplate ```\nAct as {{persona}}.\nProvide outputs that {{persona}} would create.\n{{#focus}}\nPay particular attention to {{focus}}.\n{{/focus}}\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Multi-Personas Prompting",
          "source": "fagbohun2024"
        },
        {
          "name": "Role Prompting",
          "source": "schulhoff2024"
        },
        {
          "name": "Persona",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Adopts a role or persona to shape responses.",
        "motivation": "Encodes expectations associated with an expert, stakeholder, audience, or entity when the user does not know every output detail that role would normally consider."
      },
      "applicationConditions": {
        "applyWhen": [
          "The response should reflect a particular expertise, audience, perspective, or communicative style.",
          "The persona supplies useful expectations about vocabulary, tone, explanation depth, output type, or evaluation criteria."
        ],
        "doNotApplyWhen": [
          "The assigned persona could imply unsupported authority or an unverifiable level of expertise.",
          "Precise task criteria, constraints, or output requirements should be stated explicitly instead."
        ]
      },
      "structure": {
        "variables": [
          {
            "name": "persona",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The role, identity, expertise, perspective, or entity assigned to the model."
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The task, question, or instruction to answer."
          },
          {
            "name": "focus",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Optional aspects that the persona should pay particular attention to."
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Optional input data or contextual information."
          }
        ],
        "template": "Act as {{persona}}.\nProvide outputs that {{persona}} would create.\n{{#focus}}\nPay particular attention to {{focus}}.\n{{/focus}}\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern Persona\ncategory CONTEXT_CONTROL\n\nvariables {\n    persona* : string  \"The role, identity, expertise, perspective, or entity assigned to the model.\"\n    question* : string  \"The task, question, or instruction to answer.\"\n    focus? : string  \"Optional aspects that the persona should pay particular attention to.\"\n    input_data? : string  \"Optional input data or contextual information.\"\n}\n\ntemplate ```\nAct as {{persona}}.\nProvide outputs that {{persona}} would create.\n{{#focus}}\nPay particular attention to {{focus}}.\n{{/focus}}\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [
          "Can align a response with an expected role, style, expertise, or audience.",
          "Can encode several expectations concisely through the persona description."
        ],
        "limitations": [
          "A persona may bias the answer, hide uncertainty, or imply unjustified authority.",
          "Simulated entities may introduce assumptions or details not present in the prompt."
        ]
      },
      "examples": [
        {
          "prompt": "Act as a security reviewer.\nProvide outputs that a security reviewer would create.\nPay particular attention to authentication, authorization, input validation, and data exposure risks.\nReview the following code and identify potential security issues:\n{SOURCE_CODE}",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [
        {
          "name": "Domain expert identity",
          "description": "Assigns a domain-specific expert identity.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Multi-persona",
          "description": "Asks the model to consider several roles before producing a final response.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Professional role",
          "description": "Assigns a professional role to guide the response.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Simulated entity",
          "description": "Uses a system or non-human entity as the persona within the single-turn scope.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Stakeholder perspective",
          "description": "Frames the response from a stakeholder perspective.",
          "snippet": null,
          "sources": []
        }
      ],
      "otherNames": [
        {
          "name": "Multi-Personas",
          "sources": []
        },
        {
          "name": "Role",
          "sources": []
        },
        {
          "name": "Role Prompting",
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "fagbohun2024",
          "roles": [
            "source name record"
          ]
        },
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "reverse_cot",
      "name": "ReverseCoT",
      "description": "Works backward from the desired output to infer the inputs or steps that produce it.",
      "category": "REASONING",
      "subcategory": "Chain-of-Thought",
      "componentTypes": [
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for answer-first patterns followed by retroactive reasoning justification.",
      "placeholderExample": "{QUESTION}\n{INPUT_DATA}\nFirst, state a candidate answer directly.\nThen reconstruct the problem, assumptions, or conditions that would lead to this answer.\nCompare the reconstruction with the original question and input.\nList any inconsistencies.\nIf inconsistencies are found, revise the answer; otherwise keep the candidate answer.",
      "example": "Review the following code for potential security issues:\n{SOURCE_CODE}\nFirst, state the candidate security findings directly.\nFor each finding, reconstruct the code path, inputs, or assumptions that would make the finding valid.\nCompare this reconstruction with the original code.\nList any inconsistencies between the reconstruction and the code.\nIf inconsistencies are found, revise or remove the finding; otherwise keep it.",
      "notes": null,
      "formalization": "pattern ReverseCoT\ncategory REASONING\n\nvariables {\n    question* : string  \"The question, problem, or task to answer.\"\n    input_data? : string  \"Optional input data or contextual information.\"\n    candidate_answer? : string  \"Optional candidate answer to check; if absent, the model first generates one.\"\n}\n\ntemplate ```\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n{{#candidate_answer}}\nFirst, state this candidate answer directly: {{candidate_answer}}\n{{/candidate_answer}}\n{{^candidate_answer}}\nFirst, state a candidate answer directly.\n{{/candidate_answer}}\nThen reconstruct the problem, assumptions, or conditions that would lead to this answer.\nCompare the reconstruction with the original question and input.\nList any inconsistencies.\nIf inconsistencies are found, revise the answer; otherwise keep the candidate answer.\n```\n",
      "sourceNameRecords": [
        {
          "name": "Reversing Chain-of-Thought (RCoT)",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Works backward from the desired output to infer the inputs or steps that produce it.",
        "motivation": "Supports checking a candidate answer against the original question through backward reasoning and revision when inconsistencies are found."
      },
      "applicationConditions": {
        "applyWhen": [
          "The answer can be checked against the original question, constraints, or input data.",
          "The task supports identifying inconsistencies through backward reconstruction."
        ],
        "doNotApplyWhen": [
          "The task is open-ended or subjective and has no clear reconstruction to compare.",
          "Post hoc rationalization would not provide an independent check."
        ]
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The question, problem, or task to answer."
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Optional input data or contextual information."
          },
          {
            "name": "candidate_answer",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Optional candidate answer to check; if absent, the model first generates one."
          }
        ],
        "template": "{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n{{#candidate_answer}}\nFirst, state this candidate answer directly: {{candidate_answer}}\n{{/candidate_answer}}\n{{^candidate_answer}}\nFirst, state a candidate answer directly.\n{{/candidate_answer}}\nThen reconstruct the problem, assumptions, or conditions that would lead to this answer.\nCompare the reconstruction with the original question and input.\nList any inconsistencies.\nIf inconsistencies are found, revise the answer; otherwise keep the candidate answer.\n",
        "promptspec": "pattern ReverseCoT\ncategory REASONING\n\nvariables {\n    question* : string  \"The question, problem, or task to answer.\"\n    input_data? : string  \"Optional input data or contextual information.\"\n    candidate_answer? : string  \"Optional candidate answer to check; if absent, the model first generates one.\"\n}\n\ntemplate ```\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n{{#candidate_answer}}\nFirst, state this candidate answer directly: {{candidate_answer}}\n{{/candidate_answer}}\n{{^candidate_answer}}\nFirst, state a candidate answer directly.\n{{/candidate_answer}}\nThen reconstruct the problem, assumptions, or conditions that would lead to this answer.\nCompare the reconstruction with the original question and input.\nList any inconsistencies.\nIf inconsistencies are found, revise the answer; otherwise keep the candidate answer.\n```\n"
      },
      "consequences": {
        "benefits": [
          "Can expose mismatches between a generated answer and the original problem.",
          "Can turn detected inconsistencies into feedback for answer revision."
        ],
        "limitations": [
          "Backward reasoning may rationalize an incorrect answer rather than independently verify it.",
          "The additional reconstruction and comparison can add verbosity."
        ]
      },
      "examples": [
        {
          "prompt": "Review the following code for potential security issues:\n{SOURCE_CODE}\nFirst, state the candidate security findings directly.\nFor each finding, reconstruct the code path, inputs, or assumptions that would make the finding valid.\nCompare this reconstruction with the original code.\nList any inconsistencies between the reconstruction and the code.\nIf inconsistencies are found, revise or remove the finding; otherwise keep it.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [
        {
          "name": "Answer-first justification",
          "description": "States an answer and then provides supporting reasoning.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Backward reasoning from a provided answer",
          "description": "Starts from a supplied candidate answer.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Reconstruction-based verification",
          "description": "Reconstructs and compares the problem before revising inconsistencies.",
          "snippet": null,
          "sources": []
        }
      ],
      "otherNames": [
        {
          "name": "RCoT",
          "sources": []
        },
        {
          "name": "Reversing Chain-of-Thought",
          "sources": []
        }
      ],
      "sources": [
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "source name record"
          ]
        },
        {
          "sourceKey": "xue2023",
          "roles": [
            "originating study"
          ]
        }
      ]
    },
    {
      "id": "self_verification",
      "name": "SelfVerification",
      "description": "Model checks and verifies its own answers before finalizing.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Verification",
      "componentTypes": [
        "CONSTRAINTS",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for 'Validate', 'Check', 'Verify', 'ensure', or self-checking requirements.",
      "placeholderExample": "Step 1: Generate an initial answer: {ANSWER_1}\n\nStep 2: Verify whether {ANSWER_1} satisfies constraints: {CONSTRAINTS}\n\nStep 3: If verification fails, explain issue and correct.\n\nFinal Answer = {VERIFIED_ANSWER}\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Step 1: Generate an initial answer.\nStep 2: Verify whether the answer satisfies the requirements.\nStep 3: If verification fails, explain the issues.\nFinal Answer: {final answer}\n\nQuestion:\nWhat is the capital of Australia?\nFinal Answer: Canberra",
      "notes": null,
      "formalization": "pattern SelfVerification\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string\n    input_data? : string\n    constraints... : list\n}\n\ntemplate ```\nStep 1: Generate an initial answer.\n\nStep 2: Verify whether the answer satisfies constraints:\n{{^constraints}}\n  - {{.}}\n{{/constraints}}\n\nStep 3: If verification fails, explain issue and correct.\n\nFinal Answer = verified answer\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Self-Verification",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Checks and revises its answer before finalizing output.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "constraints",
            "cardinality": "zero-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Step 1: Generate an initial answer.\n\nStep 2: Verify whether the answer satisfies constraints:\n{{^constraints}}\n  - {{.}}\n{{/constraints}}\n\nStep 3: If verification fails, explain issue and correct.\n\nFinal Answer = verified answer\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern SelfVerification\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string\n    input_data? : string\n    constraints... : list\n}\n\ntemplate ```\nStep 1: Generate an initial answer.\n\nStep 2: Verify whether the answer satisfies constraints:\n{{^constraints}}\n  - {{.}}\n{{/constraints}}\n\nStep 3: If verification fails, explain issue and correct.\n\nFinal Answer = verified answer\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Step 1: Generate an initial answer.\nStep 2: Verify whether the answer satisfies the requirements.\nStep 3: If verification fails, explain the issues.\nFinal Answer: {final answer}\n\nQuestion:\nWhat is the capital of Australia?\nFinal Answer: Canberra",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "self_calibration",
      "name": "SelfCalibration",
      "description": "After answering, the model estimates its confidence that the answer is correct and revises or abstains when that confidence is low.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Verification",
      "componentTypes": [
        "CONSTRAINTS",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for confidence evaluation, multiple reasoning paths with confidence scoring, or recalibration steps.",
      "placeholderExample": "Answer the question: {QUESTION}\nThen state your confidence from {CONFIDENCE_MIN} to {CONFIDENCE_MAX} that the answer is correct, with a brief justification.\nIf your confidence is below {THRESHOLD}, revise your answer or state that you are not sure.",
      "example": "Review the following code for potential security issues:\n{SOURCE_CODE}\nFor each issue you report, state your confidence from 0% to 100% that the issue is present, with a one-line justification.\nIf your confidence for an issue is below 60%, revise the issue or state that you are not sure.",
      "notes": null,
      "formalization": "pattern SelfCalibration\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string  \"The question or task to answer.\"\n    confidence_min* : number  \"The minimum confidence value for complete uncertainty.\"\n    confidence_max* : number  \"The maximum confidence value for complete certainty.\"\n    threshold? : number  \"Optional confidence threshold below which the model should revise or abstain.\"\n}\n\ntemplate ```\nAnswer the question: {{question}}\nThen state your confidence from {{confidence_min}} to {{confidence_max}} that the answer is correct, with a brief justification.\n{{#threshold}}\nIf your confidence is below {{threshold}}, revise your answer or state that you are not sure.\n{{/threshold}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Self-Calibration",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Estimates answer confidence and revises or abstains when uncertain.",
        "motivation": "Makes uncertainty explicit so a user can decide whether to accept, revise, abstain from, or independently check an answer."
      },
      "applicationConditions": {
        "applyWhen": [
          "The task involves uncertainty, incomplete information, factual recall, classification, or decision support.",
          "A confidence signal will be used to decide whether an answer needs checking."
        ],
        "doNotApplyWhen": [
          "Self-reported confidence would be treated as a calibrated probability.",
          "The confidence score would be the only verification mechanism for a high-stakes decision."
        ]
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The question or task to answer."
          },
          {
            "name": "confidence_min",
            "cardinality": "required",
            "type": "number",
            "default": null,
            "allowedValues": [],
            "description": "The minimum confidence value for complete uncertainty."
          },
          {
            "name": "confidence_max",
            "cardinality": "required",
            "type": "number",
            "default": null,
            "allowedValues": [],
            "description": "The maximum confidence value for complete certainty."
          },
          {
            "name": "threshold",
            "cardinality": "optional",
            "type": "number",
            "default": null,
            "allowedValues": [],
            "description": "Optional confidence threshold below which the model should revise or abstain."
          }
        ],
        "template": "Answer the question: {{question}}\nThen state your confidence from {{confidence_min}} to {{confidence_max}} that the answer is correct, with a brief justification.\n{{#threshold}}\nIf your confidence is below {{threshold}}, revise your answer or state that you are not sure.\n{{/threshold}}\n",
        "promptspec": "pattern SelfCalibration\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string  \"The question or task to answer.\"\n    confidence_min* : number  \"The minimum confidence value for complete uncertainty.\"\n    confidence_max* : number  \"The maximum confidence value for complete certainty.\"\n    threshold? : number  \"Optional confidence threshold below which the model should revise or abstain.\"\n}\n\ntemplate ```\nAnswer the question: {{question}}\nThen state your confidence from {{confidence_min}} to {{confidence_max}} that the answer is correct, with a brief justification.\n{{#threshold}}\nIf your confidence is below {{threshold}}, revise your answer or state that you are not sure.\n{{/threshold}}\n```\n"
      },
      "consequences": {
        "benefits": [
          "Can make uncertainty more visible and discourage unsupported definitive answers.",
          "Can help identify answers that require additional checking."
        ],
        "limitations": [
          "Model-reported confidence may not correspond to a calibrated probability of correctness.",
          "A model may provide a plausible justification for an incorrect confidence estimate."
        ]
      },
      "examples": [
        {
          "prompt": "Review the following code for potential security issues:\n{SOURCE_CODE}\nFor each issue you report, state your confidence from 0% to 100% that the issue is present, with a one-line justification.\nIf your confidence for an issue is below 60%, revise the issue or state that you are not sure.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [
        {
          "name": "Abstention rule",
          "description": "States uncertainty rather than giving an unsupported definitive answer.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Confidence scoring",
          "description": "Reports a confidence score for the answer.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Confidence threshold",
          "description": "Uses a threshold to decide whether to revise or abstain.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Revision after low confidence",
          "description": "Revises the answer when reported confidence is low.",
          "snippet": null,
          "sources": []
        }
      ],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "kadavath2022",
          "roles": [
            "originating study"
          ]
        },
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "fact_check_list",
      "name": "FactCheckList",
      "description": "Use a checklist to confirm factual accuracy of the output.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Verification",
      "componentTypes": [
        "CONSTRAINTS",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for fact-extraction checklists, factual verification requirements, or accuracy checks.",
      "placeholderExample": "Extract facts from output: {FACT_1}, {FACT_2}, …\n\nInsert fact list at {OUTPUT_LOCATION}\n\nEnsure facts are fundamental to correctness.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Extract facts from output: {Capital of Australia = Canberra}\n\nInsert fact list at end of answer\n\nEnsure facts are fundamental to correctness.",
      "notes": null,
      "formalization": "pattern FactCheckList\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string\n    input_data? : string\n    facts... : list\n    output_location? : string = \"end of answer\"\n}\n\ntemplate ```\nExtract facts from output:\n{{^facts}}\n  - {{.}}\n{{/facts}}\n\nInsert fact list at {{output_location}}.\n\nEnsure facts are fundamental to correctness.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Fact Check List",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Lists factual claims needed to verify the output.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "facts",
            "cardinality": "zero-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "output_location",
            "cardinality": "optional",
            "type": "string",
            "default": "end of answer",
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Extract facts from output:\n{{^facts}}\n  - {{.}}\n{{/facts}}\n\nInsert fact list at {{output_location}}.\n\nEnsure facts are fundamental to correctness.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern FactCheckList\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string\n    input_data? : string\n    facts... : list\n    output_location? : string = \"end of answer\"\n}\n\ntemplate ```\nExtract facts from output:\n{{^facts}}\n  - {{.}}\n{{/facts}}\n\nInsert fact list at {{output_location}}.\n\nEnsure facts are fundamental to correctness.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Extract facts from output: {Capital of Australia = Canberra}\n\nInsert fact list at end of answer\n\nEnsure facts are fundamental to correctness.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "reflection",
      "name": "Reflection",
      "description": "Model reflects on its first output, critiques, and improves it.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Verification",
      "componentTypes": [
        "CONSTRAINTS",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for 'reflect', 'critique', 'revise', 'improve your answer', or multi-step revision.",
      "placeholderExample": "Step 1: Generate initial answer: {ANSWER_1}\nStep 2: Critique reasoning and assumptions in {ANSWER_1}\nStep 3: Revise output based on critique.\nFinal Answer = {ANSWER_REVISED}\n\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Whenever you generate an answer\nExplain the reasoning and assumptions behind your\nanswer\n(Optional) ...so that I can improve my question",
      "notes": null,
      "formalization": "pattern Reflection\ncategory OUTPUT_CONTROL\n\nvariables {\n    trigger? : enum = \"AFTER_ANSWER\" | [\"ALWAYS\", \"AFTER_ANSWER\"]\n    explain? : bool = true             \"Explain reasoning\"\n    assumptions? : bool = true         \"State assumptions\"\n    improvements? : bool = false       \"Suggest improvements\"\n}\n\ntrigger AFTER_ANSWER\n\ntemplate ```\n{{#trigger}}\nAfter generating your answer:\n{{/trigger}}\n{{#explain}}\nExplain the reasoning behind your answer.\n{{/explain}}\n{{#assumptions}}\nState any assumptions you made.\n{{/assumptions}}\n{{#improvements}}\nSuggest potential improvements.\n{{/improvements}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Self-reflection Prompting",
          "source": "fagbohun2024"
        },
        {
          "name": "Reflection",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Critiques an initial answer and improves the response.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "trigger",
            "cardinality": "optional",
            "type": "enum",
            "default": "AFTER_ANSWER",
            "allowedValues": [
              "ALWAYS",
              "AFTER_ANSWER"
            ],
            "description": null
          },
          {
            "name": "explain",
            "cardinality": "optional",
            "type": "bool",
            "default": true,
            "allowedValues": [],
            "description": "Explain reasoning"
          },
          {
            "name": "assumptions",
            "cardinality": "optional",
            "type": "bool",
            "default": true,
            "allowedValues": [],
            "description": "State assumptions"
          },
          {
            "name": "improvements",
            "cardinality": "optional",
            "type": "bool",
            "default": false,
            "allowedValues": [],
            "description": "Suggest improvements"
          }
        ],
        "template": "{{#trigger}}\nAfter generating your answer:\n{{/trigger}}\n{{#explain}}\nExplain the reasoning behind your answer.\n{{/explain}}\n{{#assumptions}}\nState any assumptions you made.\n{{/assumptions}}\n{{#improvements}}\nSuggest potential improvements.\n{{/improvements}}\n",
        "promptspec": "pattern Reflection\ncategory OUTPUT_CONTROL\n\nvariables {\n    trigger? : enum = \"AFTER_ANSWER\" | [\"ALWAYS\", \"AFTER_ANSWER\"]\n    explain? : bool = true             \"Explain reasoning\"\n    assumptions? : bool = true         \"State assumptions\"\n    improvements? : bool = false       \"Suggest improvements\"\n}\n\ntrigger AFTER_ANSWER\n\ntemplate ```\n{{#trigger}}\nAfter generating your answer:\n{{/trigger}}\n{{#explain}}\nExplain the reasoning behind your answer.\n{{/explain}}\n{{#assumptions}}\nState any assumptions you made.\n{{/assumptions}}\n{{#improvements}}\nSuggest potential improvements.\n{{/improvements}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Whenever you generate an answer\nExplain the reasoning and assumptions behind your\nanswer\n(Optional) ...so that I can improve my question",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Self-reflection Prompting",
          "sources": [
            {
              "key": "fagbohun2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "fagbohun2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "output_automater",
      "name": "OutputAutomater",
      "description": "Requires a structured, machine-readable output format such as JSON, XML, or CSV.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Output formatting",
      "componentTypes": [
        "OUTPUT_FORMAT"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for an explicit requirement that the response use a structured, machine-readable format such as JSON, XML, or CSV.",
      "placeholderExample": "Return the output using {OUTPUT_FORMAT}, a structured, machine-readable format.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Return the following inventory as CSV:\nApples: 3\nOranges: 5",
      "notes": null,
      "formalization": "pattern OutputAutomater\ncategory OUTPUT_CONTROL\n\nvariables {\n    output_format* : string  \"The structured, machine-readable output format, such as JSON, XML, or CSV.\"\n    question* : string  \"The task, question, or instruction to answer.\"\n    input_data? : string  \"Optional input data to encode in the requested format.\"\n}\n\ntemplate ```\nReturn the output using {{output_format}}, a structured, machine-readable format.\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Output Automater",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Requires a structured, machine-readable output format such as JSON, XML, or CSV.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "output_format",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The structured, machine-readable output format, such as JSON, XML, or CSV."
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The task, question, or instruction to answer."
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Optional input data to encode in the requested format."
          }
        ],
        "template": "Return the output using {{output_format}}, a structured, machine-readable format.\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern OutputAutomater\ncategory OUTPUT_CONTROL\n\nvariables {\n    output_format* : string  \"The structured, machine-readable output format, such as JSON, XML, or CSV.\"\n    question* : string  \"The task, question, or instruction to answer.\"\n    input_data? : string  \"Optional input data to encode in the requested format.\"\n}\n\ntemplate ```\nReturn the output using {{output_format}}, a structured, machine-readable format.\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Return the following inventory as CSV:\nApples: 3\nOranges: 5",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "recipe",
      "name": "Recipe",
      "description": "Provide a repeatable recipe-style sequence for solving tasks.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Procedural",
      "componentTypes": [
        "DIRECTIVE",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for step-by-step procedural instructions, ordered task sequences, or 'Follow these steps' patterns.",
      "placeholderExample": "I would like to achieve {INPUT_DATA}.\nProvide a complete sequence of steps for me.\nFill in any missing steps.\nIdentify any unnecessary steps.",
      "example": "List ordered steps: STEP_1 = Preheat oven, STEP_2 = Mix flour and sugar, STEP_3 = Bake for 30 minutes\nFill in missing steps if necessary.\nIdentify unnecessary steps if present.",
      "notes": null,
      "formalization": "pattern Recipe\ncategory OUTPUT_CONTROL\n\nvariables {\n    pronoun? : enum = \"I\" | [\"I\", \"You\", \"We\"]\n    goal* : string\n    steps... : list\n    complete? : bool = true\n    missing? : bool = true\n    unnecessary? : bool = false\n}\n\ntemplate ```\n{{pronoun}} would like to achieve {{goal}}.\n{{#complete}}\nProvide a complete sequence of steps.\n{{/complete}}\n{{#missing}}\nFill in any missing steps.\n{{/missing}}\n{{#unnecessary}}\nIdentify any unnecessary steps.\n{{/unnecessary}}\n{{#steps}}\nSteps to consider:\n{{^steps}}\n  - {{.}}\n{{/steps}}\n{{/steps}}```\n",
      "sourceNameRecords": [
        {
          "name": "Recipe",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Specifies a reusable ordered procedure for completing tasks.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "pronoun",
            "cardinality": "optional",
            "type": "enum",
            "default": "I",
            "allowedValues": [
              "I",
              "You",
              "We"
            ],
            "description": null
          },
          {
            "name": "goal",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "steps",
            "cardinality": "zero-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "complete",
            "cardinality": "optional",
            "type": "bool",
            "default": true,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "missing",
            "cardinality": "optional",
            "type": "bool",
            "default": true,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "unnecessary",
            "cardinality": "optional",
            "type": "bool",
            "default": false,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "{{pronoun}} would like to achieve {{goal}}.\n{{#complete}}\nProvide a complete sequence of steps.\n{{/complete}}\n{{#missing}}\nFill in any missing steps.\n{{/missing}}\n{{#unnecessary}}\nIdentify any unnecessary steps.\n{{/unnecessary}}\n{{#steps}}\nSteps to consider:\n{{^steps}}\n  - {{.}}\n{{/steps}}\n{{/steps}}",
        "promptspec": "pattern Recipe\ncategory OUTPUT_CONTROL\n\nvariables {\n    pronoun? : enum = \"I\" | [\"I\", \"You\", \"We\"]\n    goal* : string\n    steps... : list\n    complete? : bool = true\n    missing? : bool = true\n    unnecessary? : bool = false\n}\n\ntemplate ```\n{{pronoun}} would like to achieve {{goal}}.\n{{#complete}}\nProvide a complete sequence of steps.\n{{/complete}}\n{{#missing}}\nFill in any missing steps.\n{{/missing}}\n{{#unnecessary}}\nIdentify any unnecessary steps.\n{{/unnecessary}}\n{{#steps}}\nSteps to consider:\n{{^steps}}\n  - {{.}}\n{{/steps}}\n{{/steps}}```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "List ordered steps: STEP_1 = Preheat oven, STEP_2 = Mix flour and sugar, STEP_3 = Bake for 30 minutes\nFill in missing steps if necessary.\nIdentify unnecessary steps if present.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "template",
      "name": "Template",
      "description": "Use a reusable template to structure answers consistently.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Output formatting",
      "componentTypes": [
        "DIRECTIVE",
        "OUTPUT_FORMAT"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for reusable response templates, named format skeletons, or 'use this structure' directives.",
      "placeholderExample": "Use template: {TEMPLATE}\n\nInsert content into placeholders: {PLACEHOLDER_1}, {PLACEHOLDER_2}, …\n\nPreserve formatting of template.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": null,
      "notes": null,
      "formalization": "pattern Template\ncategory OUTPUT_CONTROL\n\nvariables {\n    template* : string\n    placeholders... : list\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nUse template: {{template}}\n\nInsert content into placeholders:\n{{^placeholders}}\n  - {{.}}\n{{/placeholders}}\n\nPreserve formatting of template.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Template",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Fills a reusable template while preserving its structure.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "template",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "placeholders",
            "cardinality": "zero-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Use template: {{template}}\n\nInsert content into placeholders:\n{{^placeholders}}\n  - {{.}}\n{{/placeholders}}\n\nPreserve formatting of template.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern Template\ncategory OUTPUT_CONTROL\n\nvariables {\n    template* : string\n    placeholders... : list\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nUse template: {{template}}\n\nInsert content into placeholders:\n{{^placeholders}}\n  - {{.}}\n{{/placeholders}}\n\nPreserve formatting of template.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "visualization_generator",
      "name": "VisualizationGenerator",
      "description": "Generate visual or tabular representations (charts, tables).",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Output formatting",
      "componentTypes": [
        "OUTPUT_FORMAT"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for requests for charts, plots, diagrams, visualizations, or tool-specific formatting.",
      "placeholderExample": "Generate visualization: {VISUALIZATION_TYPE}\n\nStructure data for tool: {TOOL}\n\nOutput must be formatted for visualization.\n\n{QUESTION}\n{INPUT_DATA}",
      "example": "Generate visualization: bar chart\nStructure data for tool: matplotlib\nOutput must be formatted for visualization.",
      "notes": null,
      "formalization": "pattern VisualizationGenerator\ncategory OUTPUT_CONTROL\n\nvariables {\n    visualization_type* : string\n    tool? : string\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nGenerate visualization: {{visualization_type}}\n{{#tool}}\n\nStructure data for tool: {{tool}}\n{{/tool}}\n\nOutput must be formatted for visualization.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Visualization Generator",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Produces visual or tabular representations of information.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "visualization_type",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "tool",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Generate visualization: {{visualization_type}}\n{{#tool}}\n\nStructure data for tool: {{tool}}\n{{/tool}}\n\nOutput must be formatted for visualization.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern VisualizationGenerator\ncategory OUTPUT_CONTROL\n\nvariables {\n    visualization_type* : string\n    tool? : string\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nGenerate visualization: {{visualization_type}}\n{{#tool}}\n\nStructure data for tool: {{tool}}\n{{/tool}}\n\nOutput must be formatted for visualization.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Generate visualization: bar chart\nStructure data for tool: matplotlib\nOutput must be formatted for visualization.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "schema_specs",
      "name": "SchemaSpecs",
      "description": "Define schema/structure the model must follow.",
      "category": "OUTPUT_CONTROL",
      "subcategory": "Schema specification",
      "componentTypes": [
        "OUTPUT_FORMAT"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for JSON schema declarations, field requirements, type specifications, or structural output requirements.",
      "placeholderExample": "Answer the following question: {QUESTION}\nUse the following output schema: {SCHEMA}\nPopulate the following fields: {FIELDS}\nUse only the following allowed values or vocabulary when specified: {ALLOWED_VALUES}\n{INPUT_DATA}",
      "example": "Answer the following question: Classify the bug report.\nUse the following output schema: JSON object\nPopulate the following fields:\n- summary: string\n- severity: one of [\"low\", \"medium\", \"high\", \"critical\"]\n- category: one of [\"bug\", \"enhancement\", \"question\"]\n- rationale: string\nUse null when a field cannot be determined from the report.\nBug report: {BUG_REPORT}",
      "notes": null,
      "formalization": "pattern SchemaSpecs\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string  \"The task, question, or instruction to answer.\"\n    schema* : string  \"The required output structure.\"\n    fields* : list  \"The fields, columns, labels, or structural elements that must be populated.\"\n    allowed_values? : list  \"Optional allowed values, labels, terms, or vocabulary items.\"\n    input_data? : string  \"Optional input data or contextual information.\"\n}\n\ntemplate ```\nAnswer the following question: {{question}}\nUse the following output schema: {{schema}}\nPopulate the following fields:\n{{^fields}}\n{{.}}\n{{/fields}}\n{{#allowed_values}}\nUse only the following allowed values or vocabulary when specified:\n{{^allowed_values}}\n{{.}}\n{{/allowed_values}}\n{{/allowed_values}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Constrained Vocabulary Prompting",
          "source": "fagbohun2024"
        },
        {
          "name": "Output Formatting / Answer Shape & Space (vocabulary terms)",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Constrains output to a specified schema or field structure.",
        "motivation": "Reduces output variation so responses are easier to parse, compare, validate, or reuse in downstream tasks."
      },
      "applicationConditions": {
        "applyWhen": [
          "The response must follow a predictable structure or a defined set of values.",
          "Outputs need to be compared or processed systematically."
        ],
        "doNotApplyWhen": [
          "A rigid schema could omit relevant information from an exploratory or open-ended task.",
          "Syntactic or semantic correctness would be assumed without external validation."
        ]
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The task, question, or instruction to answer."
          },
          {
            "name": "schema",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The required output structure."
          },
          {
            "name": "fields",
            "cardinality": "required",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": "The fields, columns, labels, or structural elements that must be populated."
          },
          {
            "name": "allowed_values",
            "cardinality": "optional",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": "Optional allowed values, labels, terms, or vocabulary items."
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Optional input data or contextual information."
          }
        ],
        "template": "Answer the following question: {{question}}\nUse the following output schema: {{schema}}\nPopulate the following fields:\n{{^fields}}\n{{.}}\n{{/fields}}\n{{#allowed_values}}\nUse only the following allowed values or vocabulary when specified:\n{{^allowed_values}}\n{{.}}\n{{/allowed_values}}\n{{/allowed_values}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern SchemaSpecs\ncategory OUTPUT_CONTROL\n\nvariables {\n    question* : string  \"The task, question, or instruction to answer.\"\n    schema* : string  \"The required output structure.\"\n    fields* : list  \"The fields, columns, labels, or structural elements that must be populated.\"\n    allowed_values? : list  \"Optional allowed values, labels, terms, or vocabulary items.\"\n    input_data? : string  \"Optional input data or contextual information.\"\n}\n\ntemplate ```\nAnswer the following question: {{question}}\nUse the following output schema: {{schema}}\nPopulate the following fields:\n{{^fields}}\n{{.}}\n{{/fields}}\n{{#allowed_values}}\nUse only the following allowed values or vocabulary when specified:\n{{^allowed_values}}\n{{.}}\n{{/allowed_values}}\n{{/allowed_values}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [
          "Can make outputs more consistent, machine-readable, and comparable.",
          "Can reduce ambiguity by specifying expected fields, labels, or values."
        ],
        "limitations": [
          "A schema can hide uncertainty or encourage unsupported field values.",
          "The model may still produce malformed output or values outside the allowed answer space."
        ]
      },
      "examples": [
        {
          "prompt": "Answer the following question: Classify the bug report.\nUse the following output schema: JSON object\nPopulate the following fields:\n- summary: string\n- severity: one of [\"low\", \"medium\", \"high\", \"critical\"]\n- category: one of [\"bug\", \"enhancement\", \"question\"]\n- rationale: string\nUse null when a field cannot be determined from the report.\nBug report: {BUG_REPORT}",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [
        {
          "name": "Answer-space restriction",
          "description": "Restricts the response to predefined labels or values.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Constrained-vocabulary instruction",
          "description": "Restricts terms or vocabulary that may appear in the response.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Field schema",
          "description": "Defines fields or structural elements to populate.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Format-only specification",
          "description": "Specifies an output format without detailed field constraints.",
          "snippet": null,
          "sources": []
        }
      ],
      "otherNames": [
        {
          "name": "Answer Space",
          "sources": []
        },
        {
          "name": "Constrained Vocabulary Prompting",
          "sources": []
        },
        {
          "name": "Output Format",
          "sources": []
        }
      ],
      "sources": [
        {
          "sourceKey": "fagbohun2024",
          "roles": [
            "source name record"
          ]
        },
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "flipped_interaction",
      "name": "FlippedInteraction",
      "description": "Model asks the user questions instead of directly answering.",
      "category": "META_DIRECTIVES",
      "subcategory": "Interaction",
      "componentTypes": [
        "DIRECTIVE"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for role-reversal where the model generates questions for the user.",
      "placeholderExample": "Instead of answering directly:\nGenerate subquestions to ask user: {Q1}, {Q2}, …\n\nStop when {GOAL_CONDITION} is satisfied.\n\n{QUESTION}",
      "example": "I would like you to ask me questions to achieve X\nYou should ask questions until this condition is met or\nto achieve this goal (alternatively, forever)\n(Optional) ask me the questions one at a time, two at\na time, etc.",
      "notes": null,
      "formalization": "pattern FlippedInteraction\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    goal_condition? : string\n    question_count? : int = 1\n}\n\ntemplate ```\nInstead of answering directly:\nGenerate {{question_count}} subquestions to ask the user.\n{{#goal_condition}}\n\nStop when {{goal_condition}} is satisfied.\n{{/goal_condition}}\n\n{{question}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Flipped Interaction Prompting",
          "source": "fagbohun2024"
        },
        {
          "name": "Flipped Interaction",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Makes the model ask questions to reach a goal.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "goal_condition",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "question_count",
            "cardinality": "optional",
            "type": "int",
            "default": 1,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Instead of answering directly:\nGenerate {{question_count}} subquestions to ask the user.\n{{#goal_condition}}\n\nStop when {{goal_condition}} is satisfied.\n{{/goal_condition}}\n\n{{question}}\n",
        "promptspec": "pattern FlippedInteraction\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    goal_condition? : string\n    question_count? : int = 1\n}\n\ntemplate ```\nInstead of answering directly:\nGenerate {{question_count}} subquestions to ask the user.\n{{#goal_condition}}\n\nStop when {{goal_condition}} is satisfied.\n{{/goal_condition}}\n\n{{question}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "I would like you to ask me questions to achieve X\nYou should ask questions until this condition is met or\nto achieve this goal (alternatively, forever)\n(Optional) ask me the questions one at a time, two at\na time, etc.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Flipped Interaction Prompting",
          "sources": [
            {
              "key": "fagbohun2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "fagbohun2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "game_play",
      "name": "GamePlay",
      "description": "Frame the task as a game to increase engagement.",
      "category": "META_DIRECTIVES",
      "subcategory": "Interaction",
      "componentTypes": [
        "DIRECTIVE"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for game framing, rule definitions, or interactive engagement structures.",
      "placeholderExample": "Frame task as a game: {GAME_NAME}\n\nDefine rules: {RULE_1}, {RULE_2}, …\n\nInteraction must proceed according to rules.\n\n{QUESTION}",
      "example": "Create a game around practicing French vocabulary.\nThe game must define one or more fundamental rules.\nThe rules should constrain how the user can respond.\nThe interaction must proceed according to the defined rules.",
      "notes": null,
      "formalization": "pattern GamePlay\ncategory META_DIRECTIVES\n\nvariables {\n    game_name* : string\n    rules+ : list\n    question* : string\n}\n\ntemplate ```\nFrame task as a game: {{game_name}}\n\nDefine rules:\n{{^rules}}\n  - {{.}}\n{{/rules}}\n\nInteraction must proceed according to rules.\n\n{{question}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Game Play",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Frames the task as a rule-governed game.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "game_name",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "rules",
            "cardinality": "one-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Frame task as a game: {{game_name}}\n\nDefine rules:\n{{^rules}}\n  - {{.}}\n{{/rules}}\n\nInteraction must proceed according to rules.\n\n{{question}}\n",
        "promptspec": "pattern GamePlay\ncategory META_DIRECTIVES\n\nvariables {\n    game_name* : string\n    rules+ : list\n    question* : string\n}\n\ntemplate ```\nFrame task as a game: {{game_name}}\n\nDefine rules:\n{{^rules}}\n  - {{.}}\n{{/rules}}\n\nInteraction must proceed according to rules.\n\n{{question}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Create a game around practicing French vocabulary.\nThe game must define one or more fundamental rules.\nThe rules should constrain how the user can respond.\nThe interaction must proceed according to the defined rules.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "infinite_generation",
      "name": "InfiniteGeneration",
      "description": "Model generates continuously, with prompts to “keep going.”",
      "category": "META_DIRECTIVES",
      "subcategory": "Interaction",
      "componentTypes": [
        "DIRECTIVE"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for continuous generation instructions, batch output, or 'keep going' patterns.",
      "placeholderExample": "Continuously generate {OUTPUT_TYPE}\n\nBatch size = {N} outputs per turn\n\nStop when {STOP_CONDITION}\n\n{QUESTION}",
      "example": "I would like you to generate a name\nand job forever. I am going to provide a\ntemplate for your output. Everything in all caps is a\nplaceholder. Any time that you generate text, try to\nfit it into one of the placeholders that I list. Please\npreserve the formatting and overall template that I\nprovide: https://myapi.com/NAME/profile/JOB",
      "notes": null,
      "formalization": "pattern InfiniteGeneration\ncategory META_DIRECTIVES\n\nvariables {\n    output_type* : string\n    batch_size? : int = 1\n    stop_condition? : string\n    question* : string\n}\n\ntemplate ```\nContinuously generate {{output_type}}\n\nBatch size = {{batch_size}} outputs per turn\n{{#stop_condition}}\n\nStop when {{stop_condition}}\n{{/stop_condition}}\n\n{{question}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Infinite Generation",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Continues generating repeated outputs until a stop condition.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "output_type",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "batch_size",
            "cardinality": "optional",
            "type": "int",
            "default": 1,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "stop_condition",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Continuously generate {{output_type}}\n\nBatch size = {{batch_size}} outputs per turn\n{{#stop_condition}}\n\nStop when {{stop_condition}}\n{{/stop_condition}}\n\n{{question}}\n",
        "promptspec": "pattern InfiniteGeneration\ncategory META_DIRECTIVES\n\nvariables {\n    output_type* : string\n    batch_size? : int = 1\n    stop_condition? : string\n    question* : string\n}\n\ntemplate ```\nContinuously generate {{output_type}}\n\nBatch size = {{batch_size}} outputs per turn\n{{#stop_condition}}\n\nStop when {{stop_condition}}\n{{/stop_condition}}\n\n{{question}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "I would like you to generate a name\nand job forever. I am going to provide a\ntemplate for your output. Everything in all caps is a\nplaceholder. Any time that you generate text, try to\nfit it into one of the placeholders that I list. Please\npreserve the formatting and overall template that I\nprovide: https://myapi.com/NAME/profile/JOB",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "question_refinement",
      "name": "QuestionRefinement",
      "description": "Improve or reformulate the user’s query for clarity.",
      "category": "META_DIRECTIVES",
      "subcategory": "Enhancement",
      "componentTypes": [
        "DIRECTIVE"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for query reformulation, refinement suggestions, or 'suggest a better version'.",
      "placeholderExample": "Take input query: {RAW_QUESTION}\n\nSuggest a refined version: {REFINED_QUESTION}\n\n(Optional) Ask user to confirm refinement.\n\n{QUESTION}",
      "example": "Within scope of cybersecurity and security risks, suggest a better version of the question\nto use instead\n(Optional) prompt me if I would like to use the better\nversion instead\n\nHow to use Windows?",
      "notes": null,
      "formalization": "pattern QuestionRefinement\ncategory META_DIRECTIVES\n\nvariables {\n    raw_question* : string\n    ask_confirmation? : bool = true\n}\n\ntemplate ```\nTake input query: {{raw_question}}\n\nSuggest a refined version.\n{{#ask_confirmation}}\n\nAsk user to confirm refinement.\n{{/ask_confirmation}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Question Refinement",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Improves or reformulates the user query for clarity.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "raw_question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "ask_confirmation",
            "cardinality": "optional",
            "type": "bool",
            "default": true,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Take input query: {{raw_question}}\n\nSuggest a refined version.\n{{#ask_confirmation}}\n\nAsk user to confirm refinement.\n{{/ask_confirmation}}\n",
        "promptspec": "pattern QuestionRefinement\ncategory META_DIRECTIVES\n\nvariables {\n    raw_question* : string\n    ask_confirmation? : bool = true\n}\n\ntemplate ```\nTake input query: {{raw_question}}\n\nSuggest a refined version.\n{{#ask_confirmation}}\n\nAsk user to confirm refinement.\n{{/ask_confirmation}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Within scope of cybersecurity and security risks, suggest a better version of the question\nto use instead\n(Optional) prompt me if I would like to use the better\nversion instead\n\nHow to use Windows?",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "rar",
      "name": "RAR",
      "description": "In one prompt, the model first rephrases and expands the question, then answers the rephrased version.",
      "category": "META_DIRECTIVES",
      "subcategory": "Refinement",
      "componentTypes": [
        "DIRECTIVE",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for retrieve-answer-refine workflows or iterative self-editing.",
      "placeholderExample": "Rephrase and expand the following question, then answer your rephrased version.\n\nQuestion: {QUESTION}",
      "example": "Rephrase and expand the question below, then answer the expanded version.\n\nQuestion: Was Ada Lovelace born before the telephone was invented?",
      "notes": null,
      "formalization": "pattern RAR\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n}\n\ntemplate ```\nRephrase and expand the following question, then answer your rephrased version.\n\nQuestion: {{question}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Rephrase and Respond (RaR) Prompting",
          "source": "sahoo2024"
        },
        {
          "name": "Rephrase and Respond (RaR)",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Rephrases and expands the question before answering it.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Rephrase and expand the following question, then answer your rephrased version.\n\nQuestion: {{question}}\n",
        "promptspec": "pattern RAR\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n}\n\ntemplate ```\nRephrase and expand the following question, then answer your rephrased version.\n\nQuestion: {{question}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Rephrase and expand the question below, then answer the expanded version.\n\nQuestion: Was Ada Lovelace born before the telephone was invented?",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Rephrase and Respond (RaR)",
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        },
        {
          "name": "Rephrase and Respond (RaR) Prompting",
          "sources": [
            {
              "key": "sahoo2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "sahoo2024",
          "roles": [
            "other name",
            "source name record"
          ]
        },
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "other name",
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "alternative_approaches",
      "name": "AlternativeApproaches",
      "description": "Suggest multiple different ways to solve the same problem.",
      "category": "META_DIRECTIVES",
      "subcategory": "Enhancement",
      "componentTypes": [
        "DIRECTIVE",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for requests for multiple approaches, alternative solutions, or pros/cons comparisons.",
      "placeholderExample": "Given input task: {TASK}\n\nList alternative approaches: {APPROACH_1}, {APPROACH_2}, …\n\n(Optional) Compare pros/cons of each.\n\n{QUESTION}",
      "example": "Within scope X, if there are alternative ways to accom-\nplish the same thing, list the best alternate approaches\n(Optional) compare/contrast the pros and cons of each\napproach\n(Optional) include the original way that I asked\n(Optional) prompt me for which approach I would like\nto use",
      "notes": null,
      "formalization": "pattern AlternativeApproaches\ncategory META_DIRECTIVES\n\nvariables {\n    task* : string\n    approach_count? : int = 3\n    compare? : bool = true\n    question? : string\n}\n\ntemplate ```\nGiven input task: {{task}}\n\nList {{approach_count}} alternative approaches.\n{{#compare}}\n\nCompare pros and cons of each.\n{{/compare}}\n{{#question}}\n\n{{question}}\n{{/question}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Alternative Approaches",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Lists multiple viable approaches to the same task.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "task",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "approach_count",
            "cardinality": "optional",
            "type": "int",
            "default": 3,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "compare",
            "cardinality": "optional",
            "type": "bool",
            "default": true,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "question",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Given input task: {{task}}\n\nList {{approach_count}} alternative approaches.\n{{#compare}}\n\nCompare pros and cons of each.\n{{/compare}}\n{{#question}}\n\n{{question}}\n{{/question}}\n",
        "promptspec": "pattern AlternativeApproaches\ncategory META_DIRECTIVES\n\nvariables {\n    task* : string\n    approach_count? : int = 3\n    compare? : bool = true\n    question? : string\n}\n\ntemplate ```\nGiven input task: {{task}}\n\nList {{approach_count}} alternative approaches.\n{{#compare}}\n\nCompare pros and cons of each.\n{{/compare}}\n{{#question}}\n\n{{question}}\n{{/question}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Within scope X, if there are alternative ways to accom-\nplish the same thing, list the best alternate approaches\n(Optional) compare/contrast the pros and cons of each\napproach\n(Optional) include the original way that I asked\n(Optional) prompt me for which approach I would like\nto use",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "re2",
      "name": "RE2",
      "description": "Re-reading: instruct the model to read the question again before answering, to improve reasoning.",
      "category": "META_DIRECTIVES",
      "subcategory": "Refinement",
      "componentTypes": [
        "DIRECTIVE"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for instructions to read or re-read the question/input before answering.",
      "placeholderExample": "Read the question again: {QUESTION}\n{INPUT_DATA}\n\nNow answer the question.",
      "example": "Read the question again before answering.\n\nQuestion: Which city hosted the 2016 Summer Olympics?\nNow answer the question.",
      "notes": null,
      "formalization": "pattern RE2\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nRead the question again: {{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\nNow answer the question.\n```\n",
      "sourceNameRecords": [
        {
          "name": "Re-reading (RE2)",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Re-reads the question before producing an answer.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Read the question again: {{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\nNow answer the question.\n",
        "promptspec": "pattern RE2\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nRead the question again: {{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\nNow answer the question.\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Read the question again before answering.\n\nQuestion: Which city hosted the 2016 Summer Olympics?\nNow answer the question.",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [
        {
          "name": "Re-reading (RE2)",
          "sources": [
            {
              "key": "schulhoff2024"
            }
          ]
        }
      ],
      "sources": [
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "other name",
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "refusal_breaker",
      "name": "RefusalBreaker",
      "description": "Overcome model refusals by reframing the request.",
      "category": "META_DIRECTIVES",
      "subcategory": "Enhancement",
      "componentTypes": [
        "CONSTRAINTS",
        "DIRECTIVE"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for 'ignore previous', 'do not refuse', refusal-handling instructions, or alternative query generation.",
      "placeholderExample": "If refusal occurs:\nStep 1: State refusal reason.\nStep 2: Reframe request into \nalternative query: {ALT_QUERY}\n\n{QUESTION}",
      "example": "Whenever you can’t answer a question\nExplain why you can’t answer the question\nProvide one or more alternative wordings of the ques-\ntion that you could answer",
      "notes": null,
      "formalization": "pattern RefusalBreaker\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    alt_query? : string\n}\n\ntrigger ON_REFUSAL\n\ntemplate ```\nIf refusal occurs:\nStep 1: State refusal reason.\nStep 2: Reframe request into an alternative query.\n{{#alt_query}}\nAlternative query: {{alt_query}}\n{{/alt_query}}\n\n{{question}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Refusal Breaker",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Reframes refused requests into answerable alternative phrasings.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "alt_query",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "If refusal occurs:\nStep 1: State refusal reason.\nStep 2: Reframe request into an alternative query.\n{{#alt_query}}\nAlternative query: {{alt_query}}\n{{/alt_query}}\n\n{{question}}\n",
        "promptspec": "pattern RefusalBreaker\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    alt_query? : string\n}\n\ntrigger ON_REFUSAL\n\ntemplate ```\nIf refusal occurs:\nStep 1: State refusal reason.\nStep 2: Reframe request into an alternative query.\n{{#alt_query}}\nAlternative query: {{alt_query}}\n{{/alt_query}}\n\n{{question}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Whenever you can’t answer a question\nExplain why you can’t answer the question\nProvide one or more alternative wordings of the ques-\ntion that you could answer",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "instruction_selection",
      "name": "InstructionSelection",
      "description": "Given several candidate instructions for a task, the model selects the most appropriate one and then carries out the task using it.",
      "category": "META_DIRECTIVES",
      "subcategory": "Refinement",
      "componentTypes": [
        "DIRECTIVE",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for candidate instruction sets with selection criteria.",
      "placeholderExample": "Candidate instructions: {INST_1}, {INST_2}, … {INST_N}\nSelect the instruction best suited to {TASK}, state your choice, then carry out the task using it.\n\n{INPUT_DATA}",
      "example": "Here are three candidate instructions for summarizing a contract:\nA) \"Summarize the contract in plain English.\"\nB) \"List each obligation and its responsible party.\"\nC) \"Extract key dates, amounts, and termination clauses.\"\nChoose the one best suited to a compliance review, state your choice, then apply it to the contract below.\n\nContract: {CONTRACT}",
      "notes": null,
      "formalization": "pattern InstructionSelection\ncategory META_DIRECTIVES\n\nvariables {\n    instructions+ : list\n    task* : string\n    input_data* : string\n}\n\ntemplate ```\nCandidate instructions:\n{{^instructions}}\n  - {{.}}\n{{/instructions}}\nSelect the instruction best suited to {{task}}, state your choice, then carry out the task using it.\n\n{{input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Instruction Selection",
          "source": "schulhoff2024"
        }
      ],
      "summary": {
        "intent": "Selects among candidate instructions before executing the task.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "instructions",
            "cardinality": "one-or-more",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "task",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Candidate instructions:\n{{^instructions}}\n  - {{.}}\n{{/instructions}}\nSelect the instruction best suited to {{task}}, state your choice, then carry out the task using it.\n\n{{input_data}}\n",
        "promptspec": "pattern InstructionSelection\ncategory META_DIRECTIVES\n\nvariables {\n    instructions+ : list\n    task* : string\n    input_data* : string\n}\n\ntemplate ```\nCandidate instructions:\n{{^instructions}}\n  - {{.}}\n{{/instructions}}\nSelect the instruction best suited to {{task}}, state your choice, then carry out the task using it.\n\n{{input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "Here are three candidate instructions for summarizing a contract:\nA) \"Summarize the contract in plain English.\"\nB) \"List each obligation and its responsible party.\"\nC) \"Extract key dates, amounts, and termination clauses.\"\nChoose the one best suited to a compliance review, state your choice, then apply it to the contract below.\n\nContract: {CONTRACT}",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "schulhoff2024",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "cognitive_verifier",
      "name": "CognitiveVerifier",
      "description": "Add explicit verification of reasoning correctness.",
      "category": "META_DIRECTIVES",
      "subcategory": "Enhancement",
      "componentTypes": [
        "DIRECTIVE",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": "Look for sub-question generation for verification, decomposition for accuracy.",
      "placeholderExample": "Given input question: {QUESTION}\n\nGenerate subquestions: {Q1}, {Q2}, …\n\nAnswer each subquestion.\nCombine subanswers into final answer.",
      "example": "When you are asked a question, follow these rules\nGenerate a number of additional questions that would\nhelp more accurately answer the question\nCombine the answers to the individual questions to\nproduce the final answer to the overall question",
      "notes": null,
      "formalization": "pattern CognitiveVerifier\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    subquestion_count? : int = 3\n}\n\ntemplate ```\nGiven input question: {{question}}\n\nGenerate {{subquestion_count}} subquestions.\n\nAnswer each subquestion.\nCombine subanswers into final answer.\n```\n",
      "sourceNameRecords": [
        {
          "name": "Cognitive Verifier",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Generates subquestions whose answers support final verification.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "subquestion_count",
            "cardinality": "optional",
            "type": "int",
            "default": 3,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "Given input question: {{question}}\n\nGenerate {{subquestion_count}} subquestions.\n\nAnswer each subquestion.\nCombine subanswers into final answer.\n",
        "promptspec": "pattern CognitiveVerifier\ncategory META_DIRECTIVES\n\nvariables {\n    question* : string\n    subquestion_count? : int = 3\n}\n\ntemplate ```\nGiven input question: {{question}}\n\nGenerate {{subquestion_count}} subquestions.\n\nAnswer each subquestion.\nCombine subanswers into final answer.\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [
        {
          "prompt": "When you are asked a question, follow these rules\nGenerate a number of additional questions that would\nhelp more accurately answer the question\nCombine the answers to the individual questions to\nproduce the final answer to the overall question",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "context_manager",
      "name": "ContextManager",
      "description": "Explicitly control what context the model uses to avoid drift.",
      "category": "CONTEXT_CONTROL",
      "subcategory": "Context grounding",
      "componentTypes": [
        "CONTEXT",
        "DIRECTIVE",
        "PROCEDURAL_STEPS"
      ],
      "paperVariantCount": 2,
      "detectionInstruction": "Look for scope constraints, context-inclusion/exclusion directives, or grounding instructions.",
      "placeholderExample": "Set the scope to {SCOPE}.\nConsider only the following:\n{INCLUDE_ITEMS}\nIgnore the following:\n{EXCLUDE_ITEMS}\n{QUESTION}\n{INPUT_DATA}",
      "example": "Set the scope to security review.\nConsider only the following:\n- authentication\n- authorization\n- input validation\n- data exposure risks\nIgnore the following:\n- formatting\n- naming conventions\n- code style preferences\nReview the following code and identify security issues:\n{SOURCE_CODE}",
      "notes": null,
      "formalization": "pattern ContextManager\ncategory CONTEXT_CONTROL\n\nvariables {\n    scope* : string  \"The topic, task, document, criterion, discipline, or boundary within which the model should answer.\"\n    include_items* : list  \"The information, concepts, facts, criteria, disciplines, or perspectives that the model should consider.\"\n    exclude_items* : list  \"The information, concepts, facts, criteria, or perspectives that the model should ignore.\"\n    question* : string  \"The task, question, or instruction to answer.\"\n    input_data? : string  \"Optional input data or contextual material.\"\n}\n\ntemplate ```\nSet the scope to {{scope}}.\nConsider only the following:\n{{^include_items}}\n{{.}}\n{{/include_items}}\nIgnore the following:\n{{^exclude_items}}\n{{.}}\n{{/exclude_items}}\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Cross-disciplinary Prompting",
          "source": "fagbohun2024"
        },
        {
          "name": "Context Manager",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Controls the contextual scope, included or excluded information, and disciplinary lenses used during response generation.",
        "motivation": "Keeps a response grounded in selected information or perspectives while reducing irrelevant, outdated, or unintended contextual influence."
      },
      "applicationConditions": {
        "applyWhen": [
          "The response must be limited to a defined scope or selected information.",
          "A specific contextual or disciplinary lens should guide the answer."
        ],
        "doNotApplyWhen": [
          "Excluded information may be necessary to answer correctly.",
          "A selected lens may oversimplify the target concept or a reset may discard useful prior constraints."
        ]
      },
      "structure": {
        "variables": [
          {
            "name": "scope",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The topic, task, document, criterion, discipline, or boundary within which the model should answer."
          },
          {
            "name": "include_items",
            "cardinality": "required",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": "The information, concepts, facts, criteria, disciplines, or perspectives that the model should consider."
          },
          {
            "name": "exclude_items",
            "cardinality": "required",
            "type": "list",
            "default": null,
            "allowedValues": [],
            "description": "The information, concepts, facts, criteria, or perspectives that the model should ignore."
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "The task, question, or instruction to answer."
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": "Optional input data or contextual material."
          }
        ],
        "template": "Set the scope to {{scope}}.\nConsider only the following:\n{{^include_items}}\n{{.}}\n{{/include_items}}\nIgnore the following:\n{{^exclude_items}}\n{{.}}\n{{/exclude_items}}\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern ContextManager\ncategory CONTEXT_CONTROL\n\nvariables {\n    scope* : string  \"The topic, task, document, criterion, discipline, or boundary within which the model should answer.\"\n    include_items* : list  \"The information, concepts, facts, criteria, disciplines, or perspectives that the model should consider.\"\n    exclude_items* : list  \"The information, concepts, facts, criteria, or perspectives that the model should ignore.\"\n    question* : string  \"The task, question, or instruction to answer.\"\n    input_data? : string  \"Optional input data or contextual material.\"\n}\n\ntemplate ```\nSet the scope to {{scope}}.\nConsider only the following:\n{{^include_items}}\n{{.}}\n{{/include_items}}\nIgnore the following:\n{{^exclude_items}}\n{{.}}\n{{/exclude_items}}\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [
          "Can make the intended context explicit and reduce context drift.",
          "Can improve relevance or support interdisciplinary explanations through explicit framing."
        ],
        "limitations": [
          "Overly restrictive context instructions can produce incomplete answers.",
          "Cross-disciplinary mappings can be superficial, and reset instructions can remove needed context."
        ]
      },
      "examples": [
        {
          "prompt": "Set the scope to security review.\nConsider only the following:\n- authentication\n- authorization\n- input validation\n- data exposure risks\nIgnore the following:\n- formatting\n- naming conventions\n- code style preferences\nReview the following code and identify security issues:\n{SOURCE_CODE}",
          "kind": "illustrative",
          "source": null
        }
      ],
      "variants": [
        {
          "name": "Context reset",
          "description": "Discards prior context and restarts within a specified scope; retained only when expressed in one prompt.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Cross-disciplinary context grounding",
          "description": "Specifies disciplinary lenses used to explain, analyze, or connect concepts.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Exclusion-only context control",
          "description": "Specifies what to ignore while leaving other context available.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Inclusion-only context control",
          "description": "Specifies what to consider without listing exclusions.",
          "snippet": null,
          "sources": []
        },
        {
          "name": "Scoped analysis",
          "description": "Limits analysis to a stated scope.",
          "snippet": null,
          "sources": []
        }
      ],
      "otherNames": [
        {
          "name": "Context Control",
          "sources": []
        },
        {
          "name": "Context Manager",
          "sources": []
        },
        {
          "name": "Cross-disciplinary Prompting",
          "sources": []
        },
        {
          "name": "Scoped Prompting",
          "sources": []
        }
      ],
      "sources": [
        {
          "sourceKey": "cui2026",
          "roles": [
            "reported application"
          ]
        },
        {
          "sourceKey": "fagbohun2024",
          "roles": [
            "source name record"
          ]
        },
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    },
    {
      "id": "meta_language_creation",
      "name": "MetaLanguageCreation",
      "description": "Define custom shorthand notation and its semantics for the model to apply in the rest of the prompt or conversation.",
      "category": "CONTEXT_CONTROL",
      "subcategory": null,
      "componentTypes": [
        "CONTEXT",
        "DIRECTIVE"
      ],
      "paperVariantCount": 1,
      "detectionInstruction": null,
      "placeholderExample": null,
      "example": null,
      "notes": null,
      "formalization": "pattern MetaLanguageCreation\ncategory CONTEXT_CONTROL\n\nvariables {\n    shorthand* : string\n    meaning* : string\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nIn this conversation, interpret \"{{shorthand}}\" to mean: {{meaning}}\n\nWhenever I use \"{{shorthand}}\", apply that meaning in the rest of the prompt or conversation.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n",
      "sourceNameRecords": [
        {
          "name": "Meta Language Creation",
          "source": "white2023"
        }
      ],
      "summary": {
        "intent": "Defines custom shorthand semantics for subsequent prompt use.",
        "motivation": null
      },
      "applicationConditions": {
        "applyWhen": [],
        "doNotApplyWhen": []
      },
      "structure": {
        "variables": [
          {
            "name": "shorthand",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "meaning",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "question",
            "cardinality": "required",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          },
          {
            "name": "input_data",
            "cardinality": "optional",
            "type": "string",
            "default": null,
            "allowedValues": [],
            "description": null
          }
        ],
        "template": "In this conversation, interpret \"{{shorthand}}\" to mean: {{meaning}}\n\nWhenever I use \"{{shorthand}}\", apply that meaning in the rest of the prompt or conversation.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n",
        "promptspec": "pattern MetaLanguageCreation\ncategory CONTEXT_CONTROL\n\nvariables {\n    shorthand* : string\n    meaning* : string\n    question* : string\n    input_data? : string\n}\n\ntemplate ```\nIn this conversation, interpret \"{{shorthand}}\" to mean: {{meaning}}\n\nWhenever I use \"{{shorthand}}\", apply that meaning in the rest of the prompt or conversation.\n\n{{question}}\n{{#input_data}}\n{{input_data}}\n{{/input_data}}\n```\n"
      },
      "consequences": {
        "benefits": [],
        "limitations": []
      },
      "examples": [],
      "variants": [],
      "otherNames": [],
      "sources": [
        {
          "sourceKey": "white2023",
          "roles": [
            "source name record"
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "key": "white2023",
      "label": "White et al. (2023)",
      "authors": [
        "Jules White",
        "Quchen Fu",
        "Sam Hays",
        "Michael Sandborn",
        "Carlos Olea",
        "Henry Gilbert",
        "Ashraf Elnashar",
        "Jesse Spencer-Smith",
        "Douglas C. Schmidt"
      ],
      "year": 2023,
      "title": "A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT",
      "venue": "arXiv",
      "publicationType": "Preprint",
      "doi": "10.48550/arXiv.2302.11382",
      "publisher": null,
      "url": "https://arxiv.org/abs/2302.11382"
    },
    {
      "key": "schulhoff2024",
      "label": "Schulhoff et al. (2025)",
      "authors": [
        "Sander Schulhoff",
        "Michael Ilie",
        "Nishant Balepur",
        "Konstantine Kahadze",
        "Amanda Liu",
        "Chenglei Si",
        "Yinheng Li",
        "Aayush Gupta",
        "HyoJung Han",
        "Sevien Schulhoff",
        "Pranav Sandeep Dulepet",
        "Saurav Vidyadhara",
        "Dayeon Ki",
        "Sweta Agrawal",
        "Chau Pham",
        "Gerson Kroiz",
        "Feileen Li",
        "Hudson Tao",
        "Ashay Srivastava",
        "Hevander Da Costa",
        "Saloni Gupta",
        "Megan L. Rogers",
        "Inna Goncearenco",
        "Giuseppe Sarli",
        "Igor Galynker",
        "Denis Peskoff",
        "Marine Carpuat",
        "Jules White",
        "Shyamal Anadkat",
        "Alexander Hoyle",
        "Philip Resnik"
      ],
      "year": 2025,
      "title": "The Prompt Report: A Systematic Survey of Prompting Techniques",
      "venue": "arXiv",
      "publicationType": "Preprint",
      "doi": "10.48550/arXiv.2406.06608",
      "publisher": null,
      "url": "https://arxiv.org/abs/2406.06608"
    },
    {
      "key": "sahoo2024",
      "label": "Sahoo et al. (2025)",
      "authors": [
        "Pranab Sahoo",
        "Ayush Kumar Singh",
        "Sriparna Saha",
        "Vinija Jain",
        "Samrat Mondal",
        "Aman Chadha"
      ],
      "year": 2025,
      "title": "A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications",
      "venue": "arXiv",
      "publicationType": "Preprint",
      "doi": "10.48550/arXiv.2402.07927",
      "publisher": null,
      "url": "https://arxiv.org/abs/2402.07927"
    },
    {
      "key": "vatsal2024",
      "label": "Vatsal and Dubey (2024)",
      "authors": [
        "Shubham Vatsal",
        "Harsh Dubey"
      ],
      "year": 2024,
      "title": "A Survey of Prompt Engineering Methods in Large Language Models for Different NLP Tasks",
      "venue": "arXiv",
      "publicationType": "Preprint",
      "doi": "10.48550/arXiv.2407.12994",
      "publisher": null,
      "url": "https://arxiv.org/abs/2407.12994"
    },
    {
      "key": "fagbohun2024",
      "label": "Fagbohun et al. (2024)",
      "authors": [
        "Oluwole Fagbohun",
        "Rachel M. Harrison",
        "Anton Dereventsov"
      ],
      "year": 2024,
      "title": "An Empirical Categorization of Prompting Techniques for Large Language Models: A Practitioner's Guide",
      "venue": "arXiv",
      "publicationType": "Preprint",
      "doi": "10.48550/arXiv.2402.14837",
      "publisher": null,
      "url": "https://arxiv.org/abs/2402.14837"
    },
    {
      "key": "kadavath2022",
      "label": "Kadavath et al. (2022)",
      "authors": [
        "Saurav Kadavath",
        "Tom Conerly",
        "Amanda Askell",
        "Tom Henighan",
        "Dawn Drain",
        "Ethan Perez",
        "Nicholas Schiefer",
        "Zac Hatfield-Dodds",
        "Nova DasSarma",
        "Eli Tran-Johnson",
        "Scott Johnston",
        "Sheer El-Showk",
        "Andy Jones",
        "Nelson Elhage",
        "Tristan Hume",
        "Anna Chen",
        "Yuntao Bai",
        "Sam Bowman",
        "Stanislav Fort",
        "Deep Ganguli",
        "Danny Hernandez",
        "Josh Jacobson",
        "Jackson Kernion",
        "Shauna Kravec",
        "Liane Lovitt",
        "Kamal Ndousse",
        "Catherine Olsson",
        "Sam Ringer",
        "Dario Amodei",
        "Tom Brown",
        "Jack Clark",
        "Nicholas Joseph",
        "Ben Mann",
        "Sam McCandlish",
        "Chris Olah",
        "Jared Kaplan"
      ],
      "year": 2022,
      "title": "Language Models (Mostly) Know What They Know",
      "venue": "arXiv",
      "publicationType": "Preprint",
      "doi": "10.48550/arXiv.2207.05221",
      "publisher": null,
      "url": "https://arxiv.org/abs/2207.05221"
    },
    {
      "key": "xue2023",
      "label": "Xue et al. (2023)",
      "authors": [
        "Tianci Xue",
        "Ziqi Wang",
        "Zhenhailong Wang",
        "Chi Han",
        "Pengfei Yu",
        "Heng Ji"
      ],
      "year": 2023,
      "title": "RCOT: Detecting and Rectifying Factual Inconsistency in Reasoning by Reversing Chain-of-Thought",
      "venue": "arXiv",
      "publicationType": "Preprint",
      "doi": "10.48550/arXiv.2305.11499",
      "publisher": null,
      "url": "https://arxiv.org/abs/2305.11499"
    },
    {
      "key": "cui2026",
      "label": "Cui et al. (2026)",
      "authors": [
        "Jiaxi Cui",
        "Munan Ning",
        "Zongjian Li",
        "Hao Li",
        "Yang Ya",
        "Bohua Chen",
        "Bin Ling",
        "Yonghong Tian",
        "Li Yuan"
      ],
      "year": 2026,
      "title": "Chatlaw: A Multi-Agent Legal Assistant based on a Role-Aligned Mixture-of-Experts Architecture",
      "venue": "Fundamental Research",
      "publicationType": "Journal article",
      "doi": "10.1016/j.fmre.2026.03.026",
      "publisher": null,
      "url": "https://doi.org/10.1016/j.fmre.2026.03.026"
    }
  ]
}
