[sev:high] Acceptance mismatch: Issue #220 requires key families for host/player/system/errors, but docs/i18n-keymap.md defines host/player/common/errors and does not define a system family.
Concrete fix: rename/introduce the family as frontend.ui.system.* (or explicitly map common as the system family and align wording with issue acceptance).
[sev:high] Source-of-truth drift in backend→frontend mapping: the doc lists host_only_action -> start_round_failed, but this key is not present in shared/i18n/lobby.json (backend.error_codes nor contract.backend_to_frontend_error_keys).
Concrete fix: remove that mapping from the doc, or add it to shared/i18n/lobby.json in a separate scoped change and then reference it here.
Change scope: docs-only and independent ✅ (single file: docs/i18n-keymap.md)
Please address the two high-severity items above, then re-request review.
Review summary (head: 784622058ad7c3d355b217dd23d3d18116e6c85d)
- [sev:high] Acceptance mismatch: Issue #220 requires key families for **host/player/system/errors**, but `docs/i18n-keymap.md` defines `host/player/common/errors` and does not define a `system` family.
- Concrete fix: rename/introduce the family as `frontend.ui.system.*` (or explicitly map `common` as the system family and align wording with issue acceptance).
- [sev:high] Source-of-truth drift in backend→frontend mapping: the doc lists `host_only_action -> start_round_failed`, but this key is not present in `shared/i18n/lobby.json` (`backend.error_codes` nor `contract.backend_to_frontend_error_keys`).
- Concrete fix: remove that mapping from the doc, or add it to `shared/i18n/lobby.json` in a separate scoped change and then reference it here.
What I validated:
- Flow coverage lobby→join→start→round→reveal→scoreboard: present ✅
- da/en entries for scoped keys: present ✅
- Change scope: docs-only and independent ✅ (single file: `docs/i18n-keymap.md`)
Please address the two high-severity items above, then re-request review.
Acceptance families aligned in docs/i18n-keymap.md: now documented as host/player/system/errors (with explicit note that system is implemented under frontend.ui.common.* in source-of-truth).
Source-of-truth alignment fixed: removed undocumented mapping host_only_action -> start_round_failed from the doc and added an explicit note that it is not present in contract.backend_to_frontend_error_keys in shared/i18n/lobby.json.
New head SHA: bc78f79f78f4db28012bafcfe6b11e4d77571f47
Addressed review blockers for #220 alignment:
- Acceptance families aligned in `docs/i18n-keymap.md`: now documented as `host/player/system/errors` (with explicit note that `system` is implemented under `frontend.ui.common.*` in source-of-truth).
- Source-of-truth alignment fixed: removed undocumented mapping `host_only_action -> start_round_failed` from the doc and added an explicit note that it is not present in `contract.backend_to_frontend_error_keys` in `shared/i18n/lobby.json`.
Checks run:
- `git diff -- docs/i18n-keymap.md` (scoped diff verification)
- `rg -n "host_only_action|frontend.ui.common|system" docs/i18n-keymap.md -S` (doc consistency spot-check)
New head SHA: `bc78f79f78f4db28012bafcfe6b11e4d77571f47`
Re-review for commit bc78f79f78f4db28012bafcfe6b11e4d77571f47:
[severity:low] ✅ Acceptance-family naming in docs now aligns with expected families: host, player, system, errors. The system family is explicitly mapped to frontend.ui.common.*, which matches source-of-truth structure.
[severity:low] ✅ Backend→frontend mapping section now matches contract.backend_to_frontend_error_keys in shared/i18n/lobby.json.
[severity:low] ✅ Prior undocumented host_only_action mapping is removed from the contract list and explicitly called out as intentionally out-of-scope.
[severity:low] ✅ Scope remains docs-only (docs/i18n-keymap.md), with no runtime/code-path changes; safe to merge.
Result: blockers resolved for this SHA; approving.
Re-review for commit `bc78f79f78f4db28012bafcfe6b11e4d77571f47`:
- [severity:low] ✅ Acceptance-family naming in docs now aligns with expected families: `host`, `player`, `system`, `errors`. The `system` family is explicitly mapped to `frontend.ui.common.*`, which matches source-of-truth structure.
- [severity:low] ✅ Backend→frontend mapping section now matches `contract.backend_to_frontend_error_keys` in `shared/i18n/lobby.json`.
- [severity:low] ✅ Prior undocumented `host_only_action` mapping is removed from the contract list and explicitly called out as intentionally out-of-scope.
- [severity:low] ✅ Scope remains docs-only (`docs/i18n-keymap.md`), with no runtime/code-path changes; safe to merge.
Result: blockers resolved for this SHA; approving.
Integrator check: PR is not merge-ready on current head bc78f79f78f4db28012bafcfe6b11e4d77571f47.
Blocking required gate(s):
CI / test-and-quality (push) = pending
CI / test-and-quality (pull_request) = pending
Approval is present on current head, but merge is blocked until required CI checks are success.
Integrator check: PR is **not merge-ready** on current head `bc78f79f78f4db28012bafcfe6b11e4d77571f47`.
Blocking required gate(s):
- `CI / test-and-quality (push)` = `pending`
- `CI / test-and-quality (pull_request)` = `pending`
Approval is present on current head, but merge is blocked until required CI checks are `success`.
Normalized the gameplay flow table in docs/i18n-keymap.md to use the required family labels (host/player/system) consistently (instead of mixed namespace labels), matching the acceptance-family contract.
Checks run (short):
git diff -- docs/i18n-keymap.md✅
rg -n '\| .*frontend.ui.(host|player)' docs/i18n-keymap.md -S → no flow-table family mismatches ✅
New head SHA: c7ff3d96de73fdeca13096980825eccc9aa284e0
Commit SHA: c7ff3d96de73fdeca13096980825eccc9aa284e0
Retask dev-fix for #220 completed.
Solved review finding:
- Normalized the gameplay flow table in `docs/i18n-keymap.md` to use the required family labels (`host`/`player`/`system`) consistently (instead of mixed namespace labels), matching the acceptance-family contract.
Checks run (short):
- `git diff -- docs/i18n-keymap.md` ✅
- `rg -n '\| .*`frontend\.ui\.(host|player)`' docs/i18n-keymap.md -S` → no flow-table family mismatches ✅
New head SHA: `c7ff3d96de73fdeca13096980825eccc9aa284e0`
Commit SHA: `c7ff3d96de73fdeca13096980825eccc9aa284e0`
SHA-disciplined re-review on current head c7ff3d96de73fdeca13096980825eccc9aa284e0.
Validation summary:
Scope remains docs-only: only docs/i18n-keymap.md changed.
Prior review findings are reflected:
Family naming is aligned to acceptance (host/player/system), with explicit system→frontend.ui.common.* note.
Undocumented host_only_action -> start_round_failed mapping remains removed and explicitly documented as intentionally absent from shared contract mapping.
Flow coverage and da/en key entries are present for lobby→join→start→round→reveal→scoreboard.
Result: APPROVED on this head SHA.
SHA-disciplined re-review on current head `c7ff3d96de73fdeca13096980825eccc9aa284e0`.
Validation summary:
- Scope remains docs-only: only `docs/i18n-keymap.md` changed.
- Prior review findings are reflected:
- Family naming is aligned to acceptance (`host`/`player`/`system`), with explicit `system`→`frontend.ui.common.*` note.
- Undocumented `host_only_action -> start_round_failed` mapping remains removed and explicitly documented as intentionally absent from shared contract mapping.
- Flow coverage and da/en key entries are present for lobby→join→start→round→reveal→scoreboard.
Result: APPROVED on this head SHA.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Implements #220 only.
Summary
docs/i18n-keymap.mdas shared Angular host/player MVP key-map bootstrapAcceptance
Tests
.venv/bin/python manage.py test lobby.tests.I18nResolverTestsnpm test -- --run tests/lobby-i18n.contract.test.tsReview summary (head:
784622058a)[sev:high] Acceptance mismatch: Issue #220 requires key families for host/player/system/errors, but
docs/i18n-keymap.mddefineshost/player/common/errorsand does not define asystemfamily.frontend.ui.system.*(or explicitly mapcommonas the system family and align wording with issue acceptance).[sev:high] Source-of-truth drift in backend→frontend mapping: the doc lists
host_only_action -> start_round_failed, but this key is not present inshared/i18n/lobby.json(backend.error_codesnorcontract.backend_to_frontend_error_keys).shared/i18n/lobby.jsonin a separate scoped change and then reference it here.What I validated:
docs/i18n-keymap.md)Please address the two high-severity items above, then re-request review.
Addressed review blockers for #220 alignment:
docs/i18n-keymap.md: now documented ashost/player/system/errors(with explicit note thatsystemis implemented underfrontend.ui.common.*in source-of-truth).host_only_action -> start_round_failedfrom the doc and added an explicit note that it is not present incontract.backend_to_frontend_error_keysinshared/i18n/lobby.json.Checks run:
git diff -- docs/i18n-keymap.md(scoped diff verification)rg -n "host_only_action|frontend.ui.common|system" docs/i18n-keymap.md -S(doc consistency spot-check)New head SHA:
bc78f79f78f4db28012bafcfe6b11e4d77571f47Re-review for commit
bc78f79f78f4db28012bafcfe6b11e4d77571f47:host,player,system,errors. Thesystemfamily is explicitly mapped tofrontend.ui.common.*, which matches source-of-truth structure.contract.backend_to_frontend_error_keysinshared/i18n/lobby.json.host_only_actionmapping is removed from the contract list and explicitly called out as intentionally out-of-scope.docs/i18n-keymap.md), with no runtime/code-path changes; safe to merge.Result: blockers resolved for this SHA; approving.
Submitting final verdict: APPROVED for commit
bc78f79f78.Integrator check: PR is not merge-ready on current head
bc78f79f78f4db28012bafcfe6b11e4d77571f47.Blocking required gate(s):
CI / test-and-quality (push)=pendingCI / test-and-quality (pull_request)=pendingApproval is present on current head, but merge is blocked until required CI checks are
success.New commits pushed, approval review dismissed automatically according to repository settings
Retask dev-fix for #220 completed.
Solved review finding:
docs/i18n-keymap.mdto use the required family labels (host/player/system) consistently (instead of mixed namespace labels), matching the acceptance-family contract.Checks run (short):
git diff -- docs/i18n-keymap.md✅rg -n '\| .*frontend.ui.(host|player)' docs/i18n-keymap.md -S→ no flow-table family mismatches ✅New head SHA:
c7ff3d96de73fdeca13096980825eccc9aa284e0Commit SHA:
c7ff3d96de73fdeca13096980825eccc9aa284e0SHA-disciplined re-review on current head
c7ff3d96de73fdeca13096980825eccc9aa284e0.Validation summary:
docs/i18n-keymap.mdchanged.host/player/system), with explicitsystem→frontend.ui.common.*note.host_only_action -> start_round_failedmapping remains removed and explicitly documented as intentionally absent from shared contract mapping.Result: APPROVED on this head SHA.