What you give beside your code: five example days, three negative cases, each source's terms, release notes, five attestations, and the listing readers see.
A person reviews every plug-in, reading what machines already checked against your output in the locked room. Prepare it while your fixtures are fresh. An optional review.json at the top of your folder, outside the digest, fills in the portal's form (examples, negatives, sources, releaseNotes, notes). DOP Economy's:
plugins/dop-economy/review.json
{
"examples": [
{ "date": "2026-09-28", "series": "usd-dop", "expect": { "compra": 59.27, "venta": 59.56 }, "note": "A business day." },
{ "date": "2026-09-25", "series": "usd-dop", "expect": { "compra": 59.28, "venta": 59.65 }, "note": "The Friday whose rate is in force over the weekend." },
{ "date": "2026-09-23", "series": "usd-dop", "expect": { "compra": 59.35, "venta": 59.79 }, "note": "The business day before the 24 September holiday." },
{ "date": "2026-09-15", "series": "usd-dop", "expect": { "compra": 58.76, "venta": 59.08 } },
{ "date": "2008-03-04", "series": "usd-dop", "expect": { "compra": 33.85, "venta": 33.98 }, "note": "From the start of the workbook's history, as the listing shows it." }
],
"negatives": [
{ "kind": "no-record", "date": "2026-09-24", "series": "usd-dop", "why": "Our Lady of Las Mercedes, a public holiday: the Banco Central publishes no rate." },
{ "kind": "in-force", "date": "2026-09-27", "from": "2026-09-25", "series": "usd-dop", "why": "A Sunday shows Friday's rate, muted." },
{ "kind": "source-fails", "case": "renamed-sheet", "why": "A renamed sheet stops the run with its reason, so nothing wrong is written." }
],
"sources": [
{
"source": "rate",
"holder": "Banco Central de la República Dominicana",
"terms": "https://opendatacommons.org/licenses/odbl/1-0/",
"basis": "open-licence",
"evidence": "datos.gob.do publishes the Banco Central's reference-rate series under the Open Database License 1.0. The current workbook on cdn.bancentral.gov.do states no licence of its own."
}
],
"releaseNotes": {
"en": "DOP Economy in the Plug-in Store: a listing with example days. The rate on your days is the same as before.",
"es": "Economía RD en la tienda de complementos: una ficha con días de ejemplo. La tasa en tus días es la misma de antes."
},
"notes": "Kanboombo's own plug-in, moving from the release folder to the store (docs/plans/plugin-store.md R5). The code is the 1.1.0 already approved at host › Plug-ins."
}
Five example days
Each with its date, series, what you expect (a value's figures, an event's state and title, an item's title) and an optional note. Each is checked against what your fixtures print, so you know before a person does. Show each series and each thing your fetcher does: a revision, a scheduled event, a link. Harbour Almanac's 10 September shows August's catch and July's revised:
Harbour Almanac on Thu 10 Sep, as the app draws it
THURSDAY
Sep 10
2026
High and low tide
2.37
High
0.47
Low
+7.24%
Harbour Almanac
Fish landed · 2026-07
461.60
Landed
−0.94%
Harbour Almanac
Fish landed · 2026-08
399.00
Landed
−14.38%
Harbour Almanac
Three negative cases
Each is checked like an example day.
•
A day with no record, and why: for DOP Economy, Thursday 24 September 2026, a holiday with no rate.
•
A day where a value is in force, and the date it comes from: DOP Economy's Sunday 27 September shows Friday's rate, muted:
DOP Economy on Sun 27 Sep, as the app draws it
SUNDAY
Sep 27
2026
Dollar
59.28
Buy
59.65
Sell
Rate of Fri 25 Sep · Banco Central
•
A source that fails: at least one fixtures/runs/<case>/ with an expect.json (Fixtures), which check already holds to it with PLG-RUN-EXPECTED-FAILURE.
Each source's terms
For each source: its holder, its terms, your basis and your evidence (the licence on the holder's page, the permission you were given).
Basis
It means
Basis
open-licence
It means
The holder publishes it under an open licence that allows it, such as the ODbL.
Basis
permission
It means
The holder gave you permission. Keep it in writing.
What changed, in each language your plug-in speaks; every update needs them. Optionally, notes for the reviewer and a video link.
Attestations
Your organization makes five statements about each version; submit is refused until all five are given:
Code
You state that
Code
A-RIGHTS
You state that
You may publish every source's data this way: its holder's licence allows it, the holder gave you permission, it is in the public domain, or it is your own.
Code
A-AUTHORITATIVE
You state that
Each source is the holder's own publication, not a copy of it someone else keeps.
Code
A-NO-PERSONAL-DATA
You state that
Your records name no private person and carry nothing that identifies one.
Code
A-NO-NETWORK
You state that
Your fetcher reads only the files Kanboombo hands it, and never tries the network.
Code
A-NEUTRAL
You state that
Your records report what the source says. Titles inform; they do not persuade, sell or advertise.
A plug-in has no network or keys, so the form never asks for an account, password or key for a reviewer; a plug-in that needs one is not one contract 1 can run.
The listing
Readers have a minute to decide whether your plug-in belongs on their days: the listing is that minute. listing.json and listing/icon.png sit outside the code digest, with a digest and approval of their own; readers see only an approved listing, and check holds it to the store's rules (DOP Economy's).
Field
What it holds
Field
listing, plugin, publisher.domain
What it holds
1, your id, your verified domain
Field
tagline, description
What it holds
Per language, English required: a line of 80 characters; plain text of 2,000
Field
category
What it holds
economy, public-life, faith, sports, weather, science, culture or work
Field
keywords
What it holds
At most 12, each at most 30 characters
Field
links
What it holds
privacy, required; homepage, optional; support, a url or an email, required. Links are https
Field
sources
What it holds
For a declared source: its title (120 characters), page and licence (name, 60 characters, and url)
Field
examples
What it holds
1 to 3 dates, each with an optional caption per language (120 characters)
Field
listing/icon.png
What it holds
A 256 × 256 PNG, at most 64 KB
Example days are drawn from your verified output: a typical day, a quiet one, one that shows what it is for; a date with nothing refuses the listing (PLG-LISTING-EXAMPLE). Your series and hosts come from the approved manifest, never the listing. Installs show rounded (100+, 1,000+, 10,000+), and not at all below 100.