# locale qa agent flagged correct plural forms as missing

## TL;DR

Fixes the locale QA agent reporting false missing-plural failures. Teach the agent the CLDR plural categories per locale so it stops demanding forms the language does not use. Use when QA fails on correct plural sets. Not for genuinely missing forms.

## The error

```text
QA agent failed the build: plural forms missing for locale ja, expected one and other.
```

## Fix it

### Step 1: Check the CLDR categories for the locale

```bash
node -e "console.log(new Intl.PluralRules('ja').resolvedOptions())"
```

Expected: You see Japanese only uses the other category.

### Step 2: Update the agent's expected-form table

```bash
node -e "console.log('replace the hardcoded one/other expectation with per-locale CLDR categories')"
```

Expected: The agent expects only the forms the locale uses.

### Step 3: Re-run the QA check

```bash
node -e "console.log('confirm Japanese passes with only the other form present')"
```

Expected: The false failures are gone.

## When to use this

- QA fails demanding plural forms a locale does not use
- The agent hardcodes English plural expectations

## When NOT to use this

- A form the locale really needs is missing, add the translation
- The QA failure is about syntax, fix the ICU message

## Tool and version compatibility

- Any locale QA agent with plural checks
- CLDR plural data via Intl.PluralRules

## Variant phrasings

### false failures for many locales

The expectation table is English-only. Generate it from CLDR for every locale.

### failures only for zero/one edge cases

Those are explicit =0/=1 cases, separate from category expectations.

## Why it happens

Many QA agents assume every language needs one and other. CLDR defines per-locale categories: Japanese needs only other, Arabic needs six. The agent's hardcoded table produces false failures for most of the world's languages.

## Edge cases

- Explicit =0 cases are message-level, not locale-level
- CLDR versions change categories rarely but it happens; pin the version
- Ordinal categories differ from cardinal ones

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_KPXWA1-cDrzzhLReg_7nNg
