Help:AIPrompt
We've found these prompts to be helpful to get AI chatbots to help create new RiskiPedia pages. With the current (2025) crop of AIs it seems to be best to have a conversation with the AI, having it create pages step-by-step and checking their work instead of trying to create all the pieces of the pages at once.
Our task is to create a new RiskiPedia page about a specific subject. RiskiPedia is an interactive encyclopedia all about risks: https://riski.wiki We will be producing wikitext for a single page that includes: 1. A main section with narrative content and interactive elements 2. A <methodology> section containing data tables, risk models, and references The <methodology> tag creates a collapsible section that keeps technical details accessible but hidden by default, keeping the main page clean and readable. We will start by identifying the risk and exploring relevant mitigating factors. I want your help deciding what risk measure(s) to choose, and how to present them to the user. A good RiskiPedia page presents risks in a way that is easy to understand, with interactive elements that lets users explore how they might mitigate risks. Good RiskiPedia pages are backed by reliable data from peer-reviewed studies, reliable statistics, or well-respected organizations. Do not create any pages until I ask you to; I will be teaching you proper RiskiPedia syntax as we go. Let's start the conversation: ask me what subject I'd like to explore.
After this prompt, have a back-and-forth conversation with the AI to decide exactly what the page should be about, use this prompt to help it create good RiskData tables:
Let's start by gathering data and creating the <methodology> section with RiskData tables.
Syntax for the <riskdata> tag:
<riskdata table="TableName" columns="Column1|Column2|...">
Row1_Value1|Row1_Value2
Row2_Value1|Row2_Value2
... etc for more rows...
</riskdata>
The `columns` attribute lists all column names, separated by pipes. Each row is a pipe-separated list of values, with rows separated by newlines ('\n'). The first column is a user-friendly description of the data in that row that the user will be shown to select the data in that row to use in risk calculations.
Do not create a <riskdata> table for single-value baseline factors; instead, just insert references and put the numeric value directly into RiskModel calculation(s).
Use a unique table name for each, and give all columns globally unique names (prefix with the factor name if needed).
Whenever possible populate rows with verbatim values from references for ease of review.
Create one <riskdata> per factor
After each <riskdata> block, explain the data briefly, including the timeframe (e.g., annual, monthly), and list references as bullet points in valid WikiText markup: [referenceURL reference title as link text]
Be sure to use correct wikitext markup: https://www.mediawiki.org/wiki/Cheatsheet (e.g. ''italic'' or '''bold''', # for numbered lists, etc).
Double-check any references by:
1. Fetch them and verify the URL is still functioning
2. Read the newly fetched document and ensure it matches the data or claim
3. Match the title of the fetched document to the title in the wikitext link
If a reference cannot be found or does not support the claim or data, find another reference.
If another reference cannot be found, remove the risk factor from consideration.
Give me the complete wikitext for the <methodology> section (everything that will go inside the <methodology> tag) in a single block for easy copying.
As of October 2025, the AIs are still very prone to hallucinating references! Click on every reference, and make sure they actually exist and contain the data or fact that the AI claims.
Once the methodology section looks good, ask it to create RiskModels:
Let's create RiskModel elements and add them to the <methodology> section. This is the preferred syntax for the RiskModel tag:
<riskmodel name="ModelName"
data-var1="{{#expr: FORMULA_1 }}"
data-var2="{{#expr: {var1} * {external_variable} }}"
data-total_risk="{{#expr: {var2} / 100 }}"
>
Your RISKDESCRIPTION risk is {{One_In_X|{total_risk} }} per EXPOSUREMEASURE.
...further text to be displayed to the user, perhaps including logic based on what they have chosen using {{#if:}} or {{#ifexpr: }}
</riskmodel>
Where:
* `name="ModelName"` is the unique name for the model on the page.
* `data-*` attributes (e.g., `data-var1`, `data-total_risk`) are used to pre-calculate values. This is the best practice for all calculations, as it breaks complex formulas into clear, named steps.
* These create new internal placeholders (e.g., `{var1}`, `{total_risk}`) that can be used in other `data-` attributes or in the main content.
* For clarity, please define these `data-` attributes in a logical, top-to-bottom order.
* `RISKDESCRIPTION` is a brief description of the risk.
* `EXPOSUREMEASURE` is the unit of exposure (e.g., 'year', 'million miles').
The expressions inside `data-` attributes are arbitrary wikitext:
* Use `{{#expr: FORMULA}}` for all mathematical calculations.
* The formula can use numeric values and placeholders in curly brackets.
* Placeholders can come from external page state elements (like `{age}` from a DropDown or from other `data-` attributes in the same model (like `{var1}`).
* Use `{{One_In_X|probability}}` to convert a fractional probability into a human-friendly "one in X" format (e.g., 0.01000221 becomes "about a 1 in 100 chance"). This can be used in a `data-` attribute or in the main content.
* Placeholders can appear anywhere in the RiskModel's main text and will be dynamically replaced by their calculated values.
Rules for {{#expr: FORMULA}} forumula:
The following operators are supported:
+ - * / ^ div mod fmod
ceil trunc floor abs exp ln sin cos tan acos asin atan sqrt e pi
= != <> < > >= <= and or not
Examples:
{{#expr: e^pi + sin(0.11) }}
{{#expr: sqrt(200) round 1 }}
{{#expr: (1 < 3) and (4 < 6) }}
Create one RiskModel for each risk measure. If the calculation is complicated, append an explanation of the calculation (e.g. "The base risk is expressed per 100,000 incidents per month; that is adjusted to individual risk per year by... etc").
Be sure to use proper wikitext markup: https://www.mediawiki.org/wiki/Cheatsheet
Give me the complete wikitext for the <methodology> section in a single block for easy copying.
Review the methodology section and give the AI feedback if it got anything wrong. Once the methodology section looks good:
Now let's create the main page content (everything that comes BEFORE the <methodology> section). Tone should be friendly, and avoid jargon. It should be understandable by an intelligent 14-year-old.
Begin with an introduction of the risk and the purpose of the interactive features.
For each risk mitigation factor, include a DropDown, NumberInput or Slider to allow the user to interactively explore the risk. Or include a RiskParameter or RiskDataLookup tag to define or lookup a fixed factor.
DropDown syntax is:
<dropdown table="TableName" column="ColumnName" default="DefaultValue" />
The column attribute defaults to the first column, and will be shown to the user as choices. When a row is chosen the other columns are set as variables and any RiskModels that use them are re-calculated. If a default value is set it will be chosen when the page is initially loaded; only set default values if there is an obvious default choice. Put an easy to understand description of the dropdown choice before the dropdown (e.g. "Do you ever drive drunk?").
NumberInput and Slider syntax:
<numberinput name="PLACEHOLDERNAME" min=0 max=100 step=1 default=50/>
<slider name="PLACEHOLDERNAME" min=0 max=100 step=1 default=50/>
They allow the user enter a number between min and max to set {PLACEHOLDER} in the page state to be used in calculations; numberinput uses a text-box, slider uses a slider bar.
RiskParameter syntax is:
<riskparameter>miles_driven=14000
exposure_factor=0.5</riskparameter>
RiskParameter "hard-codes" placeholder values.
RiskDataLookup syntax is:
<riskdatalookup table=riskdata_table_name row=row_value rowindex=N />
RiskDataLookup acts like a DropDown with one row always selected, specified as either row=row_value or rowindex=N (the first row, by default, if neither is specified).
For each risk measure include a RiskDisplay to display the risk, based on the interactive factors. The syntax for RiskDisplay is:
<riskdisplay model="ModelName" />
ModelName refers to a RiskModel defined in the <methodology> section. RiskDisplays display nothing until all of the variables in the RiskModel's calculation are chosen.
After the main content, add the complete <methodology> section you created earlier:
<methodology label="Show Data and Models">
[All your RiskData tables, RiskModels, references, and attribution go here]
</methodology>
End the entire page with the attribution line: Initially created by [https://ai_link_url AI_NAME_AND_VERSION] -- e.g. "Initially created by [https://acme_ai.com Acme AI 11.0]"
Give me the complete wikitext for the entire page in a single block.
Tell the AI about any errors or if the page doesn't look correct and have it regenerate it until it looks and functions correctly. If you are having trouble with riskdisplay elements not displaying at all, add ?debug=1 to the page URL (e.g. https://riski.wiki/wiki/MyAwesomeRisk?debug=1) and they will display what variables need to be set by dropdown selections to compute a final risk value to display.
At this point the AI should be pretty good at creating valid RiskiPedia pages. Either continue the conversation to have it tweak wording, appearance, etc, or edit the page yourself to make it better.
It is a good idea to ask the AI to sanity check its work. Make some selections from the DropDowns, then ask the AI something like:
Let's do a sanity check. I've selected "10-40 years old" "No Impairment" and "Nighttime Driving" and I get a risk of 1 in 1,000 per year. Is that reasonable?
If you want to create another risk page, continue the conversation; the AI is less likely to repeat mistakes it made before if you continue rather than start a new chat.