@mailwoman/codex 8.3.0 → 8.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +21 -0
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -67,6 +67,27 @@ import { ADDRESS_SYSTEM_CONVENTIONS, conventionsForSystem } from "@mailwoman/cod
67
67
  - **Single source of truth.** The resolver, the decoder's convention masks, the
68
68
  corpus synthesis layer, and the matcher all import from `@mailwoman/codex`.
69
69
 
70
+ ## The normative tier (codex vs the libpostal dictionaries)
71
+
72
+ Mailwoman carries two closed-class vocabularies that overlap on purpose and must not
73
+ be merged:
74
+
75
+ - **Codex is normative.** USPS Pub-28 (and each system's equivalent) verbatim: the
76
+ canonical word, every _recognized_ variant, and the one _preferred_ abbreviation.
77
+ Its consumers are precision-shaped — corpus synthesis recipes, the eval harness's
78
+ invariance transforms, and formatting (rendering `N` vs `North` requires knowing
79
+ which form the authority prints).
80
+ - **The libpostal dictionaries** (`core/data/libpostal/dictionaries/`, Pelias
81
+ lineage) **are descriptive**: everything people actually write, including forms no
82
+ authority recognizes (`en/directionals.txt` lists `lower`/`upper`/`central`).
83
+ Their consumers are recall-shaped — evidence-lexicon curation laws, street
84
+ decomposition for training gold, the street-morphology FST. See the README in
85
+ that directory for the full consumer map and the four-tier curated-data layering.
86
+
87
+ Broadening codex with descriptive forms would corrupt formatting; narrowing the
88
+ descriptive lists to normative forms would weaken the evidence guards. Different
89
+ questions, different tables.
90
+
70
91
  ## Related
71
92
 
72
93
  - [`@mailwoman/core`](../core) — `ComponentTag` schema, pipeline infrastructure
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailwoman/codex",
3
- "version": "8.3.0",
3
+ "version": "8.4.0",
4
4
  "description": "Per-address-system postal reference data + branded types (USPS street suffixes, US ZIP codes). Pure, zero-runtime-dep — the shared canonical home for postal-system primitives the parser, resolver, and synthesis layers all reach for.",
5
5
  "license": "AGPL-3.0-only OR LicenseRef-Commercial",
6
6
  "repository": {
@@ -124,6 +124,6 @@
124
124
  "type-fest": "^5.8.0"
125
125
  },
126
126
  "devDependencies": {
127
- "@mailwoman/annotations": "8.3.0"
127
+ "@mailwoman/annotations": "8.4.0"
128
128
  }
129
129
  }