docs(04): commit plan-revision residue + 04-01 SUMMARY

This commit is contained in:
araharah-executor
2026-10-24 00:39:32 +08:00
parent 8b6ad2047f
commit 2e724cbee1
3 changed files with 23 additions and 3 deletions
@@ -244,6 +244,7 @@ Lebuh → Lbh
Simpang → Spg
Kampung → Kg
Kampong → Kg
Kpg → Kampung
Taman → Tmn
Bangunan → Bgn
Bukit → Bkt
@@ -537,7 +538,7 @@ NO `exports`/`main` field — consumers import sub-paths directly (the `@arahara
*/
```
**`search/src/rules/abbreviations.ts`** — the vendored table as DATA, exactly per the `<abbreviation_table_contract>` block: a `ReadonlyArray<readonly [string, string]>` named `ABBREVIATION_ROWS` with all 47 rows listed there plus the explicit `Presint → Prsn` row, and an exported `buildAbbreviationMap(): Map<string, string[]>` that inverts the table once (abbreviation → full forms; full form → itself) — the canonical form is ALWAYS the long form. The header comment MUST cite the source:
**`search/src/rules/abbreviations.ts`** — the vendored table as DATA, exactly per the `<abbreviation_table_contract>` block: a `ReadonlyArray<readonly [string, string]>` named `ABBREVIATION_ROWS` with every row listed there (48 minimum rows, including `Kpg → Kampung` — required by the `"Kpg Ampang" → "kampung ampang"` normalizer vector) plus the explicit `Presint → Prsn` row, and an exported `buildAbbreviationMap(): Map<string, string[]>` that inverts the table once (abbreviation → full forms; full form → itself) — the canonical form is ALWAYS the long form. The header comment MUST cite the source:
```typescript
/*