Skip to content

Slides: detail the intermediate change-mapping JSON with a real example#41

Merged
cmungall merged 1 commit into
mainfrom
claude/agentic-curation-research-docs-6dgt7l
Jul 1, 2026
Merged

Slides: detail the intermediate change-mapping JSON with a real example#41
cmungall merged 1 commit into
mainfrom
claude/agentic-curation-research-docs-6dgt7l

Conversation

@cmungall

Copy link
Copy Markdown
Collaborator

Follow-up to #39. Adds three technical slides to docs/manuscript/slides/index.html going deeper on the intermediate change-mapping JSON the harmonizer produces.

What's added

  1. The change-mapping JSON — its structure: the 7 top-level fields and the per-variable pattern_n rules (source_pattern, source_files, destination_variable, transformation, unit_conversion), and how excluded datasets collapse to an EXCLUDED: <reason> string.
  2. Real rules — four rules taken verbatim from an agent leave-one-out run (dataset 7, "Bradley Meadow"), showing timezone→UTC parsing, the cm → m unit conversion, explicit-NA handling for unreported variables, unit reasoning ("fractional m³/m³, not percent"), and a caught coordinate gotcha. Sourced from the open evaluation PRs (evaluations/fold-05-holdout-7/).
  3. Scoring the mapping — makes the output-equivalence argument concrete with that fold's machine-readable metrics: the free-text transformation field matched gold 0/8, yet executing both programs on the same raw files reproduced 56,861 / 56,861 rows and all VWC/potential cells (only 6 interval_min values differ, from interval-ordering across depth transitions). Stylistic divergence in the mapping is irrelevant when the harmonized table is identical.

Also centers the reveal.js slide number so it no longer overlaps the footer.

Deck is now 18 slides; verified to render with all network blocked (reveal.js + Mermaid remain vendored). The example is clearly framed as one illustrative fold from an in-progress evaluation, not an aggregate result.

🤖 Generated with Claude Code


Generated by Claude Code

Insert three slides detailing the intermediate change-mapping artifact:
its schema (top-level fields + per-variable pattern rules), real rules
taken verbatim from an agent leave-one-out run (dataset 7, "Bradley
Meadow"; from the open evaluation PRs), and how the mapping is scored.

The scoring slide makes the output-equivalence case concrete: on that
fold the free-text transformation field matched gold 0/8, yet executing
both programs reproduced 56,861/56,861 cells (all but 6 interval_min
values). Also center the slide number so it no longer overlaps the footer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FD9C8gFuJGBBYqemVFtwTx
@claude

claude Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Claude finished @cmungall's task —— View job


PR Review

  • Read changed file
  • Review code quality and best practices
  • Check for potential bugs or issues
  • Review performance considerations
  • Check security concerns
  • Assess test coverage

This PR adds three technical slides (4b, 4c, 4d) to docs/manuscript/slides/index.html detailing the change-mapping JSON artifact, with real agent-generated examples and scoring metrics. Here's my review:

Code Quality & Best Practices

Positive:

  • New .json CSS class follows the same conventions as the existing .schema class (same dark background #0e3b3a, same border-radius pattern). Consistent with the established design system.
  • The .chip badge style is a clean, reusable addition that works well for contextual labels on slide eyebrows.
  • The slide-number centering fix (left:50%; transform:translateX(-50%)) is the correct CSS idiom for horizontal centering with position:fixed.
  • The three new slides follow the same structural template as existing slides (eyebrow → h2 → rule → cols).

Minor concerns:

  1. Raw HTML in <div class="json"> blocks — The JSON examples in slides 4b/4c are hand-authored HTML with manual <br/>, &nbsp;, and <span> tags. This is fragile and hard to maintain:

    • index.html:216-224 (schema example) and index.html:239-263 (real rules): if the underlying JSON schema changes, each <span> element must be manually updated.
    • Consider using a <pre> block with highlighted content or at minimum a comment noting these are manually formatted.
  2. Truncated/abbreviated values in the example — At index.html:219, "source_files": ["BM_…VWC….csv"] and index.html:241-242, "date.time" as source_pattern with the transformation split across two lines using a raw string break. This is presentation-only content, but if a reader tries to correlate against the actual evaluation file, the truncations may be confusing.

  3. No source_pattern on the datetime rule (slide 4c, line 240) — The JSON shown omits source_pattern at the top of the datetime block and jumps to transformation. While this is intentional to save space, it makes the snippet structurally inconsistent with the schema shown in slide 4b, which always shows all 5 fields. A comment like // … or source_pattern: "date.time" being shown more explicitly would help.

Potential Bugs / Issues

  1. font-weight:740 and font-weight:680 — These values appear in the existing CSS (index.html:19 and index.html:74), not introduced by this PR. However, these are non-standard font-weight values; browsers will round to the nearest supported weight (700 or 600). This is pre-existing but worth noting if precise typography matters.

  2. Scoring table uses absolute counts without context (slide 4d, index.html:276-283) — The table shows 8/8, 7/8, 3/8, 0/8 without clarifying what "8" represents (8 target variables). This is implicit from context but could be made explicit with a table caption or a <p class="tiny muted">n=8 target variables</p> below the table.

  3. source_pattern: 3/8 inconsistency — The slide states source_pattern matched 3/8, yet in the real-rules slide (4c), the datetime rule shows source_pattern: "date.time" which presumably did match. The relationship between the two slides' data is not explicitly connected — a brief forward-reference ("see slide 4c for examples of matched and unmatched rules") would help the narrative flow.

Performance

No performance concerns. The additions are static HTML/CSS and inline no new assets. The slide deck remains fully offline-capable.

Security

No security concerns. This is a presentation HTML file with no form inputs, no dynamic data loading, and no external resource references introduced.

Content Accuracy

  1. "Verbatim" claim needs verification (index.html:264) — The slide notes the rules are "verbatim from an agent run." Since the JSON values are hand-embedded in HTML with <span> tags, any typo in transcription would silently break the "verbatim" claim. Consider linking to or quoting the actual source path evaluations/fold-05-holdout-7/ in a way that's verifiable.

  2. The "0/8 transformation matches" framing is compelling — The argument at index.html:286-297 that prose divergence doesn't matter when output tables are identical is the deck's strongest methodological point. Well-presented.

Test Coverage

There are no automated tests for HTML slide decks, which is appropriate for this type of content. The PR description confirms manual rendering verification with network blocked.


Summary: This is clean, well-structured HTML that follows the existing slide conventions. The main maintainability concern is the hand-rolled JSON syntax highlighting in <div class="json"> blocks — this works fine now but is brittle if the schema evolves. All other issues are minor presentation polish. No blocking concerns.

@cmungall
cmungall merged commit 08194b7 into main Jul 1, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants