locale qa agent signed off with missing plural forms and the release failed
Covers QA agents signing off with missing plural forms: assert per-locale category completeness before sign-off. Use it when releases fail on absent plural keys. Not for wrong plural copy.
Fix the locale QA agent signing off with missing plural forms
TL;DR
The agent's checklist does not cover plurals, so add a plural-completeness gate before sign-off. Missing plural forms slip through because nobody renders every count. For each locale, enumerate the plural categories it needs and assert the catalog has them all, then sign off.
The error
Locale QA agent: signed off, release failed on missing Arabic few form
ar catalog lacked items_few, nobody checkedFix it
Step 1: Compute the required categories per locale
node -e "for(const l of ['ar','fr','ja']) console.log(l, 'needs check via Intl.PluralRules categories')"Expected: You know the expected set per locale.
Step 2: Assert catalog completeness
node -e "console.log('pattern: for each plural key base and locale, assert every required suffix exists in the catalog')"Expected: Gaps become failures before sign-off.
Step 3: Add the gate to the sign-off flow
grep -n "signoff\|approve" scripts/qa-agent.js | head -5Expected: You find where to hook the check.
Step 4: Re-run sign-off on the current catalogs
node scripts/qa-agent.js --signoff | tail -3Expected: Missing forms block sign-off until fixed.
When to use this
- A QA agent signs off with plural forms missing
- Releases fail on absent plural keys
When NOT to use this
- The forms exist but are wrong, that is a copy issue
- The release failed for other reasons, check those
Tool and version compatibility
- Intl.PluralRules category sets per locale
- Catalog completeness checks
Variant phrasings
ordinals missing too
Same gate with ordinal rules. Ordinals are a separate category set.
only some keys are pluralized
The gate should know which keys are plural. Mark them or detect the suffix pattern.
Why it happens
QA checklists verify what is present, and missing keys are invisible to presence checks. Without an explicit completeness assertion against the locale's required categories, gaps ship silently.
Edge cases
- New locales need their category set added to the gate config
- The gate must run after the final catalog build, not before
- Report the exact missing suffixes, key_base plus locale plus suffix
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_kb3GHqA9NewjYciMApFTSg