Skip to content

docs(codechart): document the U1F200-class failure mode + strategy chain#83

Merged
ronaldtse merged 2 commits into
mainfrom
docs/codechart-extraction-u1f200
Jul 8, 2026
Merged

docs(codechart): document the U1F200-class failure mode + strategy chain#83
ronaldtse merged 2 commits into
mainfrom
docs/codechart-extraction-u1f200

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

Updates extraction docs to reflect the v0.4.0 EmbeddedFonts pipeline changes (PR #82):

  • README.md — new "Which blocks work" subsection under Code Chart extraction enumerating the three failure shapes (no /ToUnicode, wrong /ToUnicode, partial overlap) and how the orchestrator handles each. "What pillar 1 does not cover" gains the wrong-CMap case alongside the existing no-CMap case.
  • docs/architecture.md — Pillar 1 + Pillar 2 sections rewritten to describe the new orchestration: positional? predicate, partition, range-aware bail, force_positional_for_font_ids override, positional-precedence merge. Provenance numbers updated to include U1F200 (64/64 in-block via positional attribution after auto-bail, was 0 before).

No code changes — documentation only.

Test plan

  • Doc-only change; no specs run
  • Internal links to docs/architecture.md still valid (anchor unchanged)
  • No mention of AI attribution in commit message

The U1F200 fix shipped in v0.4.0 (PR #82) introduced three new
behaviors in the EmbeddedFonts pipeline that the docs did not
reflect:

  * range-aware bail — when the caller threads a block_range and
    ToUnicode's result has zero in-block intersection, the
    intrinsic strategy is dropped so positional strategies can
    take over.
  * force_positional_for_font_ids override — escape hatch for the
    partial-overlap case where ToUnicode covers some in-block
    codepoints but positional attribution is still required for
    the rest.
  * positional-precedence merge — when both produce a result,
    positional wins on conflict (chart geometry is authoritative
    for in-block specimens).

README.md gains a "Which blocks work" subsection under Code Chart
extraction that enumerates the three failure shapes (no /ToUnicode,
wrong /ToUnicode, partial overlap) and points at the architecture
doc. The "What pillar 1 does not cover" list gains the wrong-CMap
case alongside the existing no-CMap case.

docs/architecture.md Pillar 1 + Pillar 2 sections describe the new
orchestration: Catalog threads block_range through to CodepointMapper;
positional strategies declare positional? == true so the orchestrator
partitions them apart; positional is gated behind three conditions;
results merge with positional precedence. Provenance numbers updated
to include U1F200 (64/64 in-block via positional attribution after
auto-bail, was 0 before).
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

🔗 Link Check Failed

Release workflow bumped lib/ucode/version.rb to 0.4.0 (PR #82 shipped
as v0.4.0) but the source-config YAML stamp is a manual sync. Same
drift class as the 0.3.2 → 0.3.3 sync in PR #82.
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

🔗 Link Check Failed

@ronaldtse ronaldtse merged commit e336e2c into main Jul 8, 2026
19 of 21 checks passed
@ronaldtse ronaldtse deleted the docs/codechart-extraction-u1f200 branch July 8, 2026 06:09
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.

1 participant