Skip to content

feat(corpus): add evidence-backed zh-CN mapping pipeline - #9

Merged
Teakowa merged 6 commits into
mainfrom
feat/zh-cn-corpus
Aug 17, 2026
Merged

feat(corpus): add evidence-backed zh-CN mapping pipeline#9
Teakowa merged 6 commits into
mainfrom
feat/zh-cn-corpus

Conversation

@Teakowa

@Teakowa Teakowa commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • complete the workshop-rs-owned zh-CN corpus at 341/341 by removing three explicitly confirmed legacy/provider syntax-sugar identities from the declared Workshop catalog: Delete All Classes, Chase Variable At Rate, and Array Element;
  • retain and verify the canonical global/player chase identities and Current Array Element;
  • retain raw settings parsing, exact settings mappings, and bidirectional conversion evidence.

Acceptance evidence

  • catalog: 165 builtins + 176 enum members; en-US 341/341, zh-CN 341/341, digest 1f84204bfd6bfd0dcaabc275185d907764e03fae0fbde54f28e162aed9935961;
  • corpus manifest exclusions: [];
  • settings: labels 19/19, modes 7/7, maps 2/2, heroes 10/10, enum values 2/2, tokens 3/3, teams 1/1;
  • raw settings fixture parse → WIR → emit → reparse passes;
  • en-US ↔ zh-CN settings conversion passes with no fallback, including both Blizzard Ultimate Generation labels;
  • removed spellings are rejected as undeclared; canonical global/player/current-array spellings remain parseable and convert bidirectionally;
  • local fmt, clippy, workspace tests, catalog check, and diff check pass;
  • latest PR CI: 4 checks passed, 0 failed.

The declared product surface was changed only by the explicit PM decision recorded in the task: the three entries are syntax sugar, not independent Workshop identities. This PR is now ready for review/merge; Wright integration should consume commit 7b0f8c3 and run its full release gates before #135 is closed.

Refs #2

Use the user-provided workshop-data export to generate catalog aliases, settings locale data, provenance, and bidirectional conversion evidence. Keep exact-match exclusions fail-explicit and record the remaining release-gate gaps.

Refs #2
Index the export paths that carry the General mode and team labels, and pin their zh-CN coverage in the corpus test. Keep the remaining exact-match exclusions and release-gate blockers explicit.

Refs #2
Complete settings-bearing raw Workshop parse, canonical round-trip, and reviewed en-US/zh-CN conversion evidence.

Refs #2
@Teakowa

Teakowa commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

Confirmed JSON mapping update

The corpus generator consumes workshop-data/workshop-data.json as build input only; workshop-rs commits its own catalog and settings mapping data and does not redistribute the JSON file.

The confirmed setAllowedHeroes identity is now implemented and tested:

  • JSON identity/GUID: actions..setAllowedHeroes / 00000000BA5B
  • source spelling: Set Player Allowed Heroes
  • canonical catalog spelling: Set Allowed Heroes
  • zh-CN mapping: 设置玩家可选的英雄
  • en-US -> zh-CN -> en-US conversion passes with no fallback

Coverage is now 328/344 (actions 56/62), with 16 catalog exclusions remaining. Settings remain 17/19 labels, with the two missing labels Ultimate Generation - Passive Blizzard and Ultimate Generation - Combat Blizzard. No other wording variant has been inferred.

Update the workshop-rs-owned zh-CN corpus from 327/344 to 328/344 using the user-confirmed JSON identity mapping, and remove stale pending source-review metadata. Keep the remaining declared gaps fail-explicit.

Refs #2
@Teakowa

Teakowa commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

Commit and CI evidence

The confirmed mapping update is now committed as 1a71af5 and pushed to Draft PR #9.

  • PR head: 1a71af5
  • CI: 4 checks passed, 0 failed
  • catalog digest: f88b1a99a8e8a5d613b2f850353b144120d8952cdf2303532134ef9ccf92fca9
  • zh-CN catalog: 328/344; remaining exclusions: 16
  • settings labels: 17/19
  • setAllowedHeroes: Set Player Allowed Heroes设置玩家可选的英雄, bidirectional conversion test passes without fallback

The external JSON remains build input only; the committed catalog and settings files are the workshop-rs-owned mapping data. The remaining missing entries stay explicit and require exact evidence before the release gate can pass.

Add exact identity mappings for legacy actions, operators, enum members, and settings templates. Parse hyphenated raw settings keys and exercise settings and corpus conversion in both directions. Refs #2
@Teakowa

Teakowa commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

Independent QA result

QA independently reran the current 7ea3288 candidate and found:

  • fmt, clippy with -D warnings, workspace tests, catalog check, and diff check pass;
  • raw settings parse → WIR → emit → reparse passes on the real fixture;
  • settings en-US ↔ zh-CN conversion passes with no fallback, including both Blizzard Ultimate Generation labels;
  • confirmed action/value/operator/enum mappings and focused bidirectional conversions pass;
  • corpus accounting is 341/344; settings labels are 19/19.

QA verdict: BLOCKED_PRODUCT, not accepted yet. The three remaining exclusions are deleteAllClasses (no exact evidence), chaseVariableAtRate (locale spelling collides with chaseAtRate), and arrayElement (locale spelling collides with currentArrayElement). The next dependency is PM/Architecture direction on those exact declared identities. Wright pin/release work must remain pending.

Remove Delete All Classes, Chase Variable At Rate, and Array Element from the declared Workshop catalog per the product decision. Keep canonical global/player chase and current-array identities, and preserve fallback coverage tests with an unsupported target locale. Refs #2
@Teakowa
Teakowa marked this pull request as ready for review August 17, 2026 08:04
@Teakowa
Teakowa merged commit 7b23329 into main Aug 17, 2026
2 checks passed
@Teakowa
Teakowa deleted the feat/zh-cn-corpus branch August 17, 2026 08:04
@Teakowa Teakowa linked an issue Aug 17, 2026 that may be closed by this pull request
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.

Establish the canonical multi-locale Workshop core

1 participant