Published 07:13 AEST · Before US Open · Wednesday, 9 September 2026Pipeline 04:30 AESTVol. I  No. 121
The Grid
Independent Price Reporting for the Compute Market
thegridco.ai
EST. 2026 · SYDNEY
Standards · rule pack & changelog

Rule pack

Every published rule The Grid operates under, in one versioned record: what the rule says in plain language, the document of record it comes from, the date it took effect, and the nightly check that enforces it — or the stated reason it is enforced by review instead.

A rule changes only by a methodology change notice, a version bump of this pack, and a line in the changelog below. The nightly auditor fails when any rule points at a check that does not exist.

rule pack v1.1.1 · 2026-08-31 · 34 rules · 28 automated across 19 nightly checks · 6 manual · Grid Standards v2.0

· What this page is

one source of record · rendered, never re-typed · versioned
The honesty frame

What this is. The rule pack is a JSON document in the repository (data/governance/rule_pack.json) and its changelog a markdown file beside it. This page renders both from a byte-identical mirror; a parity test and the nightly auditor’s coverage check both fail if the mirror drifts. Every rule cites the page or notice it was taken from — nothing on this page is a rule that does not already exist somewhere it can be read.

What the check column means. A check id names one check in the nightly auditor (scripts/nightly_audit.py), which runs after every print against production data, the live site and the repository, and fails loudly on a breach. manual means no automated check exists yet, and the reason is stated with the rule.

What it is not. Not the methodology (that is /standards/methodology) and not the notices (/standards/notices) — it is the index of the rules those documents create, kept so that a change to any of them is visible as a change, with a version and a date.

· The rules · v1.1.1

34 rules · grouped by family · effective dates as published
ADMIT · 1
RuleStatementSource of recordEffectiveCheck
R-ADMIT-001GAP panel admission and benchingA GAP spot-panel leg must be a bookable or executable ask; must pass a qualification window of 7 consecutive clean collection days before first inclusion; is benched automatically when its price is unchanged for 14 or more consecutive days (2× the static threshold; the executable leg's historical maximum unchanged run is 3 days); and carries a reliability floor where the source exposes one (vast.ai: reliability ≥ 0.95 at ingest). An explicit future-dated bench in the registry (a scheduled bench) is itself a dated registry event and supersedes auto-bench until it binds — the leg remains a member, its unchanged-days disclosed on every stamp, until the scheduled date arrives. A benched or qualifying leg keeps being collected and is disclosed on the provenance stamp and the provider register with its disposition and reason — its rows never set the level and never count toward the minimum-observation rule. Admission and benching are dated registry events (velocity.GAP_PANEL, both runtimes), never row arrival. History before 2026-08-21 stands as published. Application of record: RunPod bench scheduled for 2026-08-28 by founder ruling 2026-08-20 (static posted list, unchanged for its entire stored life — first row 2026-05-10, 99d on the 2026-08-19 stamp; auto-bench alone would bench it at the effective date; rescheduled from 2026-08-21 to the earliest replacement-leg qualification date so panel depth never decreases, disclosure continuous meanwhile); lambda and hyperstack registered qualifying with collection from 2026-08-21.docs/methodology-notices/2026-08-20-panel-admission-and-benching.md · scripts/velocity.py GAP_PANEL ↔ dashboard/lib/velocity.ts GAP_PANEL2026-08-21panel_admission
SRC · 1
RuleStatementSource of recordEffectiveCheck
R-SRC-001Source admission boundariesEvery new data source enters only by founder ruling before ingestion, gated on a founder terms-of-service read where the source publishes terms; the read of record is stored (data/governance/tos/). Every panel or submitter approach is founder-executed. A source whose terms bar systematic retrieval, automated collection or republication is not ingested and not wired to any panel (SF Compute standing; Thunder Compute panel wiring refused 2026-08-20 on the T&C read of record). Exception of record (founder ruling 2026-08-20): the standing daily thundercompute_pricing scrape — a GPI input running since before this rule existed — continues as an explicit dated exception pending a written-permission decision; its panel wiring remains refused.Manual — Founder conduct and ruling discipline — there is no store of rulings to test mechanically yet. The artifacts it produces (registry entries, ToS reads on file) are inspected by review; the panel registry itself is enforced by panel_admission.Submitter kit v0.1 (standing rules, filed 2026-08-17 — founder outreach file, not committed) · data/governance/tos/2026-08-17manual
PAY · 1
RuleStatementSource of recordEffectiveCheck
R-PAY-001Payment doctrineThe Grid never pays for submissions — a paid submission is a bought price and dies as evidence. Data licences, where ever taken, are flat-fee only: never volume-based, success-based, or contingent on what the data shows. No payment influences assessment, panel inclusion, or coverage (the provider-register disclosure's from-the-first-dollar rules apply to any future referral income).Manual — No payment rail, no licence, and no paid relationship exists (pre-revenue); there is nothing in the stores to test. Enforced by review from the first dollar.founder ruling 2026-08-20 · /providers (commercial disclosure)2026-08-20manual
COLLECT · 1
RuleStatementSource of recordEffectiveCheck
R-COLLECT-001Collection-interval registerEach scraped public source is collected at a stated, polite interval — one fetch per daily 18:30 UTC cycle unless its register entry states otherwise. The register of record is data/governance/collection_intervals.json; the approvals it encodes: Lambda on-demand (founder ruling 2026-08-17, one fetch per cycle) and Hyperstack (founder approval 2026-08-20 on the 2026-01-13 T&C read, one fetch per cycle).Manual — Collection cadence is structural — scrapers run only inside the single daily run_all batch (cron 30 18 * * *); there is no per-source scheduler whose configuration could drift. Becomes an automated check if any source ever collects outside the daily batch.data/governance/collection_intervals.json · scrapers/run_all.py (single daily batch)2026-08-20manual
Operations · 3
RuleStatementSource of recordEffectiveCheck
R-OPS-003Scheduled pipelines commit their own data artifacts (the daily-push exception)The scheduled pipelines (daily scrape, weekly, podcast) commit and push the artifacts they generate — data/ and reports/ paths, plus two ruled generated-artifact mirrors: dashboard/public/attestations (the served copy of the daily attestation digests, data/attestations) and dashboard/content/edgar (the served copy of the EDGAR filings register, data/sources/edgar) — as part of their runs. This is the one standing exception to founder-only pushing: it is scoped to generated data, reports and those two dated mirror paths, never code, workflows, or dashboard surface code. The nightly auditor remains fully read-only (R-OPS-002 unchanged).The exception records practice that predates the rule pack (the daily workflow has committed its data since the first cycle); v1.1.0 makes the boundary explicit and the auditor asserts the commit step's paths stay inside it. v1.1.1 (2026-08-31, PATCH): the two mirror paths the daily commit step already carried — dashboard/public/attestations (added with attestation serving, 2026-08-24) and dashboard/content/edgar (added with the EDGAR register serving) — are recorded as dated ruled exceptions; they hold generated data artifacts that must ship inside the dashboard bundle to be served, never code. Queued from the 2026-08-25 check-deal gate (standing auditor finding); published before the next audit run enforces the amended allowlist..github/workflows/daily_scrape.yml · CLAUDE.md standing rule (push is founder-only) — exception filed by rule 2026-08-20; mirror paths ruled 2026-08-31 (v1.1.1)2026-08-20workflow_no_push
R-OPS-001Migrations are additive-only and applied through the audited runnerSchema changes are additive-only, applied via scripts/apply_migrations.py, registered and checksummed in schema_migrations; destructive statements are founder-gated; ad-hoc DDL is prohibited; no migration is applied to production from an unmerged branch.migrations/README.md · CLAUDE.md standing rule 'Migrations' · docs/current-state.md §82026-08-11migrations_registered
R-OPS-002No workflow commits or pushes on behalf of the founder; the auditor writes nothingPushing and merging are founder-only. The nightly auditor is read-only against every print store and public surface: it commits nothing, pushes nothing, and writes only its own artifact (and, once migration 042 is applied by the founder, its own hash ledger).CLAUDE.md standing rule (push is founder-only) · .github/workflows/nightly_audit.yml2026-08-16workflow_no_push
The print of record · 1
RuleStatementSource of recordEffectiveCheck
R-PRINT-001One print of record per cycle dateA print of record exists for every daily cycle date. The cycle is anchored at 18:30 UTC and the print date is the cycle date, derived from the anchor — never from wall-clock time. A missing edition is filed as a gap of record (reason code print_missing) and is never backfilled. From 2026-08-22 a GAP-H100 spot day carries either a printed value or a disclosed WITHHELD sibling record — never a silent gap.The 2026-08-06 incident (cron drift crossed midnight; 08-06 never printed) is the gap of record — docs/corrections/2026-08-09-editorial-gap-2026-08-06.md./standards/methodology#publication · docs/api-print-v1.md · docs/methodology-notices/2026-08-16-gap-minimum-observation-decision.md §22026-08-09print_of_record
Provenance · 1
RuleStatementSource of recordEffectiveCheck
R-PROV-001Provenance stamp on every GAP-H100 spot printEvery GAP-H100 spot print carries, with the value on the briefing, in the daily report and in the API response, a provenance stamp: panel size (provider_count), offer count, the contributing providers with each provider's unchanged-days and price, transaction count (currently 0), data tier (tier-2 bookable asks) and judgment applied (none — arithmetic), plus the one-line stamp string. The stamp is written into the print of record at print time; surfaces read it and never recompute it. Pre-stamp prints serve provenance as null, never synthesised retroactively.Effective date set to 2026-08-16 in v1.0.1 (founder ruling 2026-08-17; notice docs/methodology-notices/2026-08-17-provenance-stamp-first-print.md). Notice 2026-08-14 §3 declared the stamp effective on publication, but the code that writes it reached main at 2026-08-16 02:16 UTC — the first stamped print is the 2026-08-16 cycle. The 2026-08-14 and 2026-08-15 prints stand as published (provenance null); v1.0.0 carried 2026-08-14 and the auditor reported those two prints as a breach on its first run (data/audit/nightly/2026-08-15.md). Resolved by record, never by editing records.docs/methodology-notices/2026-08-14-instrument-actions.md §3 · /standards/methodology#input-data · docs/api-print-v1.md2026-08-16print_of_record
The narration gate · 1
RuleStatementSource of recordEffectiveCheck
R-GATE-001The narration gate runs on every editorial and delta claims match the printEvery sentence of the generated narration that names GAP-H100 / assessed spot is gated: a claimed delta must match the print's own day-over-day move or an explicitly labelled like-for-like figure; a stillness claim fails when the print moved. On a trip the generated prose is withheld, a deterministic register-only issue publishes, a trip marker (data/narration_gate/<date>.json) is written and committed, and the invariants step reds the run. A trip is never silent and never rewritten./standards/methodology#narration-gate · scripts/narration_gate.py2026-08-14narration_gate
The citation surface · 1
RuleStatementSource of recordEffectiveCheck
R-API-001/api/print/<date> is permanent and immutableThe body served at /api/print/YYYY-MM-DD for a past date never changes except for entries appearing in its corrections array (and the previous_gap correction URL, which is a corrections filing). Continuity is computed as of the print date; the cite string carries no retrieval date; provenance is the stored stamp or null; suspended series appear with status suspended and no value from the effective date. deployed_commit and schema_version describe the server, not the print, and are the only fields expected to differ between two fetches. Schema 1.0 fields are additive-only; a breaking change bumps schema_version.Baseline data/governance/print_hashes.json generated once on 2026-08-16 from production (canonicalised: deployed_commit, schema_version and the corrections overlay excluded from the hash; the corrections id list and previous_gap.correction_url tracked as an overlay that may only grow).docs/api-print-v1.md · /standards/methodology#publication · /standards/terms#citation2026-08-16print_immutability
Records · 1
RuleStatementSource of recordEffectiveCheck
R-REC-001Records are never rewrittenPublished history is immutable: a printed value stands as published on its day's information set. Methodology breaks are annotated, never rewritten. Suspended series' history is not removed, revised or retroactively annotated. Two annotated exceptions precede the rule and any external subscriber (the 2026-06-12 GPI recompute; the 2026-06-29 forward formula correction). Only a correction with value_restated=true rewrites a value, with the pre-correction values archived (the 2026-08-05 divergence rows are the only such rows)./standards/methodology#publication (Immutability) · /standards/methodology#conduct (Permanence) · CLAUDE.md standing rule 'Index immutability'2026-06-12print_immutability
Suspension · 4
RuleStatementSource of recordEffectiveCheck
R-SUSP-001GAP-H100-R1Y suspended, effective 2026-08-22gap_h100_reserved_1y (GAP-H100-R1Y) is suspended: final prints dated 2026-08-21; from 2026-08-22 the series receives no new values. Published history stands as-published. Reason: zero variance across every print since inception (methodology change notice 2026-08-14 §1)./standards/notices/2026-08-14-instrument-actions · /standards/instruments/gap-h100-r1y2026-08-22series_bounds
R-SUSP-002GTS-1Y suspended, effective 2026-08-22gts_1y (GTS-1Y) is suspended: final prints dated 2026-08-21; from 2026-08-22 the series receives no new values. Published history stands as-published. Reason: with a constant reserved leg the spread reduces to the spot leg inverted (correlation −1.0) and carries no independent term-structure information (methodology change notice 2026-08-14 §1)./standards/notices/2026-08-14-instrument-actions · /standards/instruments/gts-1y2026-08-22series_bounds
R-SUSP-003Reserved-leg dependants cease with the suspensionrwi_s_selfhost_reserved and rwi_l_selfhost_reserved cease printing from 2026-08-22 — their input is the suspended reserved leg. rwi_s_index and rwi_l_index are unaffected (the reserved leg never set an index value)./standards/notices/2026-08-14-instrument-actions (§6 Downstream effects)2026-08-22series_bounds
R-SUSP-004From the effective date, no surface shows a suspended series as a live valueFrom the effective date a suspended series appears on the permanent print URL with status suspended, the notice reference and no value; charts stop advancing at the final print; the specification page stays up with the final print date and the notice; no surface carries forward the last stored value as if current. Before the effective date the notice rides with the value without a final print date.Date-parameterised: the check evaluates the surfaces as of 2026-08-22 every night from tonight, so a surface that would freeze at the final print fails now, not on the day./standards/methodology#suspension · docs/methodology-notices/2026-08-14-instrument-actions.md §6 · docs/api-print-v1.md2026-08-22suspension_surfaces
Inception · 1
RuleStatementSource of recordEffectiveCheck
R-INCEPT-001RWI and inference-spread series print from inception onlyThe RWI and Grid Inference Spread series print from 2026-07-24 only; the pre-registration backfill was archived and deleted, and the write path refuses earlier dates./standards/instruments/rwi · /standards/instruments/grid-inference-spread · scripts/derived_series.py RWI_INCEPTION2026-07-27series_bounds
Classification · 1
RuleStatementSource of recordEffectiveCheck
R-CLASS-001Every series carries its class; GAP-H100 spot is an indicatorEvery value is labelled by class — assessment · calculated · indicator · record — on its specification page and in the API body; the class is part of the print, not commentary. gap_h100_spot is reclassified assessment → indicator effective 2026-08-14 (printing unbroken); it returns to assessment class only when the panel carries at least two independently moving contributors, announced by notice before the label changes back. As of 2026-08-14 no Grid series is in the assessment class; the assessment label on GAP-H100-R1Y is historical (suspended). Classes per series: GAP-H100 indicator · GAP-H100-R1Y assessment (suspended) · GTS-1Y calculated (suspended) · Grid Basis calculated · GPI indicator · GCCX indicator · GCCX divergence indicator · RWI indicator · Grid Inference Spread calculated./standards/instruments · /standards/notices/2026-08-14-instrument-actions (§2) · dashboard/lib/standards/instrument-specs.ts2026-08-14instrument_classes
Minimum observation · 1
RuleStatementSource of recordEffectiveCheck
R-MINOBS-001Minimum-observation rule for GAP-H100 spot, binding from the 2026-08-22 printThe daily GAP-H100 spot print is withheld — not published — when fewer than two providers contribute on the day, or every contributor is unchanged for ≥ 7 consecutive days. A withheld day is a disclosed WITHHELD entry with the reason and the same provenance stamp a published print would carry, in the position the value would occupy; no surface carries forward the previous value; no chart interpolates across it. Storage is a sibling record (an additive withheld_prints table), never a null value in the series table.Notice period 2026-08-17 → 2026-08-21. The withholding path is built after the notice period; the check reports its build status nightly until it binds./standards/notices/2026-08-16-gap-minimum-observation-decision · /standards/methodology#suspension2026-08-22min_obs_rule
Publish-before-effect · 1
RuleStatementSource of recordEffectiveCheck
R-PBE-001Publish-before-effectA methodology change is announced and dated before it affects a print — never discovered after. Proposal → decision → notice period → effective; deviations from the specification's guidance are stated in the notice with the reason. The one breach on record is the GAP v3 panel governing the 2026-07-24 print one cycle before its announced date (correction of record 2026-07-27)./standards/methodology#change · CLAUDE.md standing rule 'Publish-before-effect' · docs/corrections/2026-07-25-gap-v3-effective-date.md2026-07-24publish_before_effect
Corrections · 2
RuleStatementSource of recordEffectiveCheck
R-CORR-001Corrections restate only on the day's information setA correction restates what a value or a narration should have been on the information set of the day (a clerical error, a calculation error, a misapplication of the stated method). It is never a re-assessment on information learned after publication and it never rewrites the print: the published value stands; the correction is filed as its own document with a reason code from the registry, appended to the affected daily as a CORRECTION NOTICE, registered, and served inline in the permanent print URL's corrections array. A defective method is changed by notice, not corrected./standards/methodology#corrections · /standards/corrections · dashboard/lib/corrections-registry.json2026-07-27corrections_parity
R-CORR-002Corrections registry, page and API agreeThe corrections registry is the one read-side of docs/corrections/*.md; /standards/corrections and /api/print/corrections render the same registry, never re-typed. Every filed correction document is registered; every registered entry cites a document that exists; every narration correction's daily report carries the appended notice.docs/api-print-v1.md (Corrections registry) · tests/test_corrections_registry.py2026-08-16corrections_parity
Documents of record · 1
RuleStatementSource of recordEffectiveCheck
R-MIRROR-001Methodology notices render byte-identical to the document of recorddocs/methodology-notices/*.md are the notices of record. The dashboard mirror (dashboard/content/methodology-notices/) is byte-identical in both directions and the renderer's id list matches; the notice body renders verbatim and header chips are parsed from the document, never typed. The same discipline applies to the governance mirror (dashboard/content/governance/) rendered by /standards/changelog./standards/notices · tests/test_methodology_notices_mirror.py · tests/test_governance_mirror.py2026-08-17notice_mirror
The registry · 1
RuleStatementSource of recordEffectiveCheck
R-REG-001One derived-series registry, two runtimes, in parityThe derived-series registry is defined once (scripts/derived_series.py, the write side) and mirrored field-by-field in dashboard/lib/derived-series.ts (the read side): ids, labels, units, methodology versions, descriptions, disclosures, instrument classes, inceptions and suspensions, plus the effective-date constants. Adding or changing a series means changing both files; a disclosure served on any surface is the registry string.scripts/derived_series.py · dashboard/lib/derived-series.ts · CLAUDE.md standing rule 'One-definition-two-runtimes'2026-07-24registry_parity
Disclosures · 1
RuleStatementSource of recordEffectiveCheck
R-DISC-001Disclosures ride with the value on every surfaceThe RWI v1.0 disclosure is served with every RWI / inference-spread value on every surface (MCP included). The GAP-H100 spot reclassification and minimum-observation disclosures ride with the series. Suspended series carry their defect disclosure and the notice reference. Grid Basis always attributes OCPI to Ornn and prints only after seven consecutive OCPI api-method days as of the print date./standards/instruments/rwi · /standards/instruments/grid-basis · docs/api-print-v1.md2026-07-24served_disclosures
Freshness · 1
RuleStatementSource of recordEffectiveCheck
R-FRESH-001Freshness is measured by price change, not row presenceA source that re-publishes an unchanged price daily satisfies every row-presence check while contributing no market information (the static-contributor / presence-tested defect class). A contributor unchanged for ≥ 7 consecutive days is classified static and carried with its unchanged-days on the stamp. Each contributing source has a declared maximum age beyond which its data does not enter a print (data/governance/source_freshness.json records the constants of record)./standards/methodology#determination (Freshness, staleness and composition) · docs/methodology-notices/2026-08-14-instrument-actions.md · data/governance/source_freshness.json2026-08-14freshness_static_contributors
The assessment class · 1
RuleStatementSource of recordEffectiveCheck
R-ASSESS-001No series is in the assessment class until the panel clears the stated floorsGAP-H100 spot returns to assessment class when the panel carries at least two independently moving contributors (contributors whose prices change on independent cycles, not merely whose rows arrive). The panel thresholds adopted from the Baltic's published rules do not create an index below five panellists (three in the Asia variant) and do not publish below four (two in Asia). Panel depth, independently moving contributors and static days are measured nightly as the distance to the class./standards/notices/2026-08-14-instrument-actions (§2, §7) · /standards/participate2026-08-14assessment_distance
The panel · 1
RuleStatementSource of recordEffectiveCheck
R-PANEL-001Panel members are never namedA submitted price is confidential: never attributed to its submitter, never published individually, never disclosed except by order of a court or regulator. Panellists are never named, before or after they exist; composition is published by class only (buy-side · sell-side · intermediary). The Grid will never require a submitter to change a submitted price and never impose one.Manual — No submission store or panel register exists yet (panel depth 0, submissions 0 — /standards/participate). There is no submitter identity to grep for. When the receipt store exists the automated check becomes: no submitter identifier from the store appears in any rendered output or API body. Until then the rule is enforced by review. (The public marketplaces on the bookable-ask panel — named on the provenance stamp — are published list sources, not submitters.)/standards/participate#confidentiality · CLAUDE.md / docs/current-state.md standing constraint2026-08-17manual
Rendered copy · 3
RuleStatementSource of recordEffectiveCheck
R-RENDER-001No ADR references in rendered page copyRendered page copy names decisions by date and by notice ('decision of record 2026-07-24', 'methodology change notice 2026-08-14'), never by internal ADR number. Documents of record rendered verbatim (the notices, the correction records and their reason codes) are exempt because records are never rewritten.commit c4ca1cc (pre-merge tidy, 2026-08-17: ADR references replaced with dated decisions/notices in rendered output) · CLAUDE.md2026-08-17regression_greps
R-RENDER-002No authoring placeholders in rendered copyNo TODO / TBD / FIXME / lorem ipsum / XXX / bracketed authoring markers appear in rendered copy. The coverage taxonomy [instrumented] / [proxy] / [gap] is a classification, not a placeholder, and is exempt.commit c4ca1cc (placeholder sweep: 0 hits; coverage taxonomy kept) · /standards/methodology#vocabulary2026-08-17regression_greps
R-RENDER-003Publication time is stated as 04:30 AEST (18:30 UTC anchor)The daily appears with the cycle; the masthead and every delivery statement say 04:30 AEST — the 18:30 UTC anchor. The earlier stated time (05:30, an AEDT-era figure) is retired from every user-facing surface; the auditor greps for it nightly./standards/methodology#publication · commit 73ee0de (04:30 AEST time fix)2026-08-17regression_greps
Change control · 1
RuleStatementSource of recordEffectiveCheck
R-CHANGE-001Rule changes are noticed, versioned and loggedA change to any rule in this pack is made by a methodology change notice, a version bump of data/governance/rule_pack.json and a dated line in data/governance/CHANGELOG.md — the changelog is rendered from those two files at /standards/changelog, never re-typed. Every rule maps to an automated check or is marked manual with a stated reason; the auditor fails when a rule's check does not exist.data/governance/rule_pack.json · data/governance/CHANGELOG.md · scripts/nightly_audit.py2026-08-16coverage_completeness
Terms · 2
RuleStatementSource of recordEffectiveCheck
R-TERMS-001Complaints: one address, stated response timesComplaints and clarifications go to standards@thegridco.ai; every complaint is logged; acknowledged within 5 business days and answered substantively within 20.Manual — No complaint has been received (0 to date) and the public complaints log is in development; there is no record to measure response times against. Enforced by review until the log exists./standards/terms#complaints · dashboard/lib/standards/contact.ts2026-08-17manual
R-TERMS-002Citation and redistribution policyAny Grid value, series or edition may be quoted, cited or charted with attribution; the permanent print URL is the citation. Systematic redistribution and settlement / contract / benchmark reference require a written licence and are not permitted by default until terms exist. Methodology text is CC BY 4.0.Manual — A policy about third-party use; there is nothing in The Grid's own stores or surfaces to test. Enforced by review and, if breached, by correspondence./standards/terms#citation2026-08-17manual

· Changelog

verbatim from data/governance/CHANGELOG.md · newest first

Rule pack — changelog

The human-readable companion to data/governance/rule_pack.json, the single source of record for every published rule The Grid operates under. One line per change, newest first. A rule change from 2026-08-16 onward is made by (1) a methodology change notice, (2) a version bump of rule_pack.json, and (3) a line here. /standards/changelog renders both files from the byte-identical mirror in dashboard/content/governance/ and never re-types them.

Versioning: MAJOR when a rule is removed or its meaning changes · MINOR when a rule is added · PATCH for wording, source-link or check-mapping changes that do not alter what the rule requires.

1.1.1 — 2026-08-31

  • PATCH. R-OPS-003 (the daily-push exception) records as dated ruled exceptions the two generated-artifact mirror paths the daily commit step already carried: dashboard/public/attestations (the served copy of data/attestations — attestation serving, 2026-08-24) and dashboard/content/edgar (the served copy of the EDGAR filings register). Both hold generated data that must ship inside the dashboard bundle to be served — never code. What the rule requires is unchanged: pipelines commit generated artifacts only; founder-only pushing governs everything else; the auditor stays read-only. The workflow_no_push allowlist now names the two paths, closing the standing FAIL first reported at the 2026-08-24 surface-clarity gate and queued from the 2026-08-25 check-deal gate. Filed by the v1.1.0 precedent (version bump + this line, before the next audit run enforces it).

1.1.0 — 2026-08-20

  • MINOR. Five rules added (29 → 34); no existing rule's meaning changes.
  • R-ADMIT-001 — GAP panel admission and benching (methodology change notice 2026-08-20-panel-admission-and-benching, effective 2026-08-21): bookable/executable asks only; 7-consecutive-clean-days qualification window before first inclusion; auto-bench at ≥ 14 consecutive unchanged days (proposed from the stored record: the executable leg's longest unchanged run is 3 days, the posted leg was unchanged its entire stored life — 99d at the 2026-08-19 stamp); reliability floor where exposed. An explicit future-dated bench in the registry (a scheduled bench) supersedes auto-bench until it binds. Benched/qualifying legs keep collecting, render with their disposition and reason, and never count toward the minimum-observation rule. Application of record: RunPod bench SCHEDULED for 2026-08-28 (founder ruling 2026-08-20 — rescheduled from 2026-08-21 to the earliest replacement-leg qualification date so panel depth never decreases; disclosure continuous on every stamp meanwhile); lambda + hyperstack registered QUALIFYING. New nightly check panel_admission.
  • R-SRC-001 — source admission boundaries (filed 2026-08-17, submitter kit v0.1): founder ruling per new source, ToS read of record on file, founder-executed approaches. Exception of record (founder ruling 2026-08-20): the standing daily thundercompute_pricing scrape (a GPI input predating the rule) continues pending a written-permission decision; its panel wiring remains refused. Manual (conduct rule).
  • R-PAY-001 — payment doctrine (founder ruling 2026-08-20): never pay for submissions; flat-fee licences only. Manual (pre-revenue; nothing in the stores to test).
  • R-COLLECT-001 — collection-interval register (data/governance/collection_intervals.json): one fetch per daily 18:30 UTC cycle unless the register states otherwise; Lambda on-demand (ruling 2026-08-17) and Hyperstack (approval 2026-08-20) recorded. Manual (cadence is structural — single daily batch).
  • R-OPS-003 — the daily-push exception: scheduled pipelines commit their own generated data/ and reports/ artifacts; founder-only pushing governs everything else; the auditor stays read-only. workflow_no_push now also asserts the daily workflow's commit step stays inside those paths.
  • PATCH-class check refinements shipped 2026-08-20 on fix/aug22-integrity (queued in data/governance/QUEUE.md, folded in here; no rule's requirement changed): regression_greps exempts verbatim rule-pack quotes on /standards/changelog only (the check had read its own quoted rule as a violation — three red nights 2026-08-17..19); print_immutability's ledger read fixed (rows() ordered by a nonexistent id; print_hash_ledger's PK is print_date) and an unreadable ledger under --ledger is now a loud WARN, never silence.

1.0.1 — 2026-08-17

  • PATCH. R-PROV-001 (provenance stamp on every GAP-H100 spot print) effective date corrected 2026-08-14 → 2026-08-16 by record (founder ruling 2026-08-17). Notice 2026-08-14 §3 declared the stamp effective on publication; the code that writes it reached main at 2026-08-16 02:16 UTC, so the first stamped print is the 2026-08-16 cycle. The 2026-08-14 and 2026-08-15 print bodies are untouched (provenance null, as /api/print states); the record is clarified by notice 2026-08-17-provenance-stamp-first-print, never by editing a print. What the rule requires is unchanged; the nightly auditor enforces the stamp from 2026-08-16.

1.0.0 — 2026-08-16

  • Initial pack. 29 rules populated from what is published today: the /standards library (methodology · instruments · notices · corrections · participate · terms), the three methodology change notices (2026-08-14 instrument actions; 2026-08-14 minimum-observation proposal; 2026-08-16 minimum-observation decision), the corrections registry, docs/api-print-v1.md, migrations/README.md, and the standing rules in CLAUDE.md. Nothing invented; where a rule cannot be checked automatically the entry says manual with the reason.
  • Coverage: 26 rules map to a scripts/nightly_audit.py check across 18 checks; 3 are manual (panel confidentiality — no submissions store exists yet; complaints response times — no complaint received; citation and redistribution — third-party conduct).
  • Effective dates carried as published: suspensions and the minimum-observation rule bind from the 2026-08-22 print; the reclassification and provenance stamp from 2026-08-14; /api/print immutability from 2026-08-16 (baseline print_hashes.json generated once from production that day).
Sources of record: data/governance/rule_pack.json · data/governance/CHANGELOG.md · mirror dashboard/content/governance/ (tests/test_governance_mirror.py) · enforcement scripts/nightly_audit.py (nightly, 19:30 UTC; artifact per run) · rule R-CHANGE-001.
Rule pack v1.1.1 (2026-08-31). Rendered from the single source of record; nothing summarised or re-typed. A rule change is a methodology change notice + a version bump + a changelog line, in that order.