diff --git a/docs/manuscript/slides/index.html b/docs/manuscript/slides/index.html index aa4dfc9..36fb941 100644 --- a/docs/manuscript/slides/index.html +++ b/docs/manuscript/slides/index.html @@ -24,7 +24,8 @@ .reveal strong{ color:var(--teal-d); } .reveal a{ color:var(--teal); } .reveal ul{ margin-left:1em; } .reveal li{ margin:.32em 0; } - .reveal .slide-number{ background:transparent; color:var(--muted); font-size:14px; } + .reveal .slide-number{ background:transparent; color:var(--muted); font-size:14px; + right:auto; left:50%; transform:translateX(-50%); bottom:8px; } /* accent + eyebrow */ .eyebrow{ text-transform:uppercase; letter-spacing:.14em; font-size:.52em; font-weight:700; @@ -61,6 +62,15 @@ background:#0e3b3a; color:#d8efec; border-radius:12px; padding:.7em .9em; line-height:1.55; } .schema .k{ color:#7fd9d2; } .schema .u{ color:var(--gold); } + .json{ font-family: ui-monospace,"SF Mono",Menlo,Consolas,monospace; background:#0e3b3a; color:#cfe6e2; + border-radius:12px; padding:.6em .8em; line-height:1.45; font-size:.5em; overflow:auto; margin:.2em 0; } + .json .k{ color:#7fd9d2; } /* key */ + .json .s{ color:#e9c06a; } /* string value */ + .json .v{ color:#bcded9; } /* literal (null / number / bool) */ + .json .c{ color:#6f9b96; font-style:italic; } /* annotation */ + .chip{ display:inline-block; font-size:.5em; font-weight:700; letter-spacing:.04em; color:#0a5a59; + background:#cdeeea; border:1px solid #7fd9d2; border-radius:999px; padding:.1em .6em; vertical-align:middle; } + .stat{ font-size:2.0em; font-weight:740; color:var(--teal-d); line-height:1; } .stat .unit{ font-size:.42em; color:var(--muted); font-weight:600; } @@ -180,6 +190,114 @@
Implemented as Anthropic Agent Skills — versioned instruction+tool bundles; the 19 expert harmonizations act as retrievable in-context exemplars. [Agent Skills 2025]
+ +The intermediate artifact
+Between "decide" and "executed table," the harmonizer emits a + machine-readable change-mapping: one entry per dataset, with a rule for every target + variable. It is the auditable record of what maps to what, and how — decoupled from the + Python that implements it.
+Top level (7 fields):
+index, dataset_identifier, doi, archive_repositorydata_payload_files, location_metadata_files, sensor_metadata_filesharmonization_mappings — the per-variable rulesEach rule (one per target variable):
+Excluded datasets collapse to "harmonization_mappings": "EXCLUDED: <reason>".
Real rules leave-one-out fold · dataset 7 · "Bradley Meadow"
+Verbatim from an agent run that never saw dataset 7's gold. Source: open evaluation PRs (evaluations/fold-05-holdout-7/).
Scoring the mapping same fold · machine-readable metrics
+The change-mapping is compared to the expert's, field by field:
+| Field | Exact match vs gold |
|---|---|
destination_variable | 8 / 8 |
unit_conversion | 7 / 8 |
source_files | 7 / 8 |
source_pattern | 3 / 8 |
transformation (free text) | 0 / 8 |
| mapping categories covered | 8 / 8 |
The prose never matches — yet the data does.
+ The agent and expert describe transformations in different words (transformation 0/8),
+ but executing both programs on the same raw files gives:
rows recovered (P=R=1.0)
VWC & potential cells match
interval_min cells differ (ordering)
This is the whole argument for an output-equivalence endpoint: stylistic divergence in the + mapping/code is irrelevant when the harmonized table is identical. The mapping JSON gives auditable + semantics; the executed output gives the verdict.
+Figure 1