Repository navigation
Add MOD-US-0002, the United States country layer - #29
Draft
RobGrafrath wants to merge 3 commits into
Draft
RobGrafrath wants to merge 3 commits into
RobGrafrath wants to merge 3 commits into
Conversation
Add the second decision of the United States layer: one country layer that carries the country's structure, formats, and translations and no compliance content. Every state uses it, because states differ in law and procedure and not in structure. Rob Grafrath asked for it. The US Locale Module owns the us_locale tables for names (given, middle, family, and suffix), identity numbers (the Social Security number, the employer identification number, and, as proposed, the individual taxpayer identification number), and addresses (USPS state codes including DC, the territories, and the armed forces post offices, ZIP or ZIP+4, and a county field that also holds a parish or a borough). It validates and formats US phone numbers, declares the matching fields that HIVE-0002 asks for, and resolves a party's time zones from an address or an area code, which is how a rule finds the debtor's zone that WAX-0012 says governs contact times. Which zone a rule honors when the two disagree is left to compliance.us. The Region Pack region.us supplies the dollar with half away from zero as its rounding convention, the US display formats, the US time zones, and the federal holiday calendar that business-day counts name. The Language Packs are US English, then US Spanish. The decision gathers what HIVE-0001, HIVE-0002, HIVE-0003, WAX-0004, and WAX-0008 already assign to the US Locale Module. WAX-0004's example row now lists us_name_components, which HIVE-0001 already names. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Rob Grafrath <[email protected]>
This was referenced Oct 11, 2026
…PR 26 PR 26 merged into main, and the branch below this one now carries it, with the conflicts resolved and the rename applied to what PR 26 added. This merge brings that into the stack above it. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Rob Grafrath <[email protected]>
Brings in the WAX-0008 default test for cautious defaults and Boilerplate starting values. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Rob Grafrath <[email protected]>
6 of 7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes and why
MOD-US-0002 is the second decision of the United States layer. It specifies the one country layer that carries the country's structure, formats, and translations and no compliance content: the US Locale Module, the Region Pack region.us, and the US Language Packs. Every state uses this one layer, because states differ in law and procedure and not in structure. What a state requires goes to its Compliance Pack or to a module's Boilerplate Pack for that state, and a Louisiana parish is stored in the county field. Rob Grafrath asked for this decision after #28 drew the lines between the constructs.
Most of the US structure was already assigned to the US Locale Module across several decisions. HIVE-0001 named its name and identity tables, HIVE-0002 had it declare the matching fields, HIVE-0003 gave the address fields and the completeness rules, and WAX-0008 sketched the module. This decision gathers those in one place and adds what was missing.
Interacting decisions
If this touches decisions/wax/
One Wax decision changes, and only in an example. WAX-0004's table of example schemas lists us_name_components for the us_locale schema. Hash chain integrity, event immutability, and module boundaries are untouched. Schema ownership is unchanged: the us_locale schema stays with the US Locale Module, and the table it lists is one HIVE-0001 already assigns to it.
Version bumps
MOD-US-0002 is new, Proposed, at 0.1. WAX-0004 takes no bump for an example that names an existing table.
Choices this draft makes
Stacked on #28
This pull request is based on #28, which is based on #27, because it uses the construct names and tests that #28 adds and the MOD-US family that #27 adds. Its base is the pack-construct-lines branch, and when #28 merges, its base moves on.
Checklist
python3 scripts/validate.py --base mainpasses locally, or I am relying on CI to tell me.🤖 Generated with Claude Code