# Methodology and terminology

> Evidence boundaries, lifecycle rules, default-value semantics, Pigsty fixtures, and the bilingual glossary used across the GUC Atlas.
---

Every dossier uses the same evidence model so a measured value cannot silently
turn into tuning folklore.

## Evidence labels {#evidence-labels}

| Label | Meaning | Publication rule |
| --- | --- | --- |
| Fact | Directly measured or traced to a pinned source | Publish with version, path, link, or verification status |
| Analysis | Explanation derived from facts and documented mechanisms | Keep the reasoning visible and avoid claiming source authorship |
| Advice | A workload-specific operational recommendation | State assumptions, trade-offs, and the measurements needed to validate it |
| Pending human review | Editorial inference about Pigsty's reason for a value | Never present it as a maintainer's stated rationale |
{.full-width}

## Lifecycle rules {#lifecycle-rules}

- The catalog is the union of `pg_settings.name` from PostgreSQL 9.0 through 19 Beta 3.
- **First observed** is the first release point in that matrix. PG9.0 means “present at the research boundary,” not “introduced in PG9.0.”
- **Removed in** is the first major after the final contiguous appearance, after checking all later snapshots.
- An introduction commit is a separate Git fact found with pickaxe search in the GUC table source; it never overrides the measured presence matrix.

## Default-value vocabulary {#default-value-vocabulary}

| Term | Definition |
| --- | --- |
| `boot_val` | The upstream `pg_settings` boot value. This is the value compared across majors. |
| `setting` | The active value in a freshly initialized official container. `initdb` may make it differ from `boot_val`. |
| Raw unit | The `unit` column exactly as reported, including block-count units such as `8kB`. |
| Human value | A conservative display conversion that never replaces the raw value and unit. |

## Pigsty fixture {#pigsty-fixture}

The comparison matrix renders all four complete Patroni templates—OLTP, OLAP,
CRIT, and TINY—against each PostgreSQL major using an 8-vCPU, 32-GiB RAM,
100-GiB SSD primary and the role defaults. It records the raw template
expression, rendered value, configuration layer, and comparison with upstream
`boot_val`. Missing keys are explicitly “unmodified.” User `pg_parameters`
remain a separate, empty-by-default `postgresql.auto.conf` override layer.
Rendering a current Pigsty template for an EOL or beta PostgreSQL version is a
historical projection, not a claim that current Pigsty supports that release.

## Beta boundary {#beta-boundary}

PostgreSQL 19 Beta 3 is pinned as a prerelease evidence point. It participates
in the union and the PG18→19 Beta 3 diff, but every beta-only dossier warns that
names, defaults, and behavior can still change before GA.

## Official links {#official-links}

For each major, the crawler fetches every official `runtime-config*.html` page,
hashes the response, and checks for the expected `GUC-*` ID. A URL is published
only when that exact anchor was observed; internal or undocumented settings are
recorded without an invented link.
