groundtruth: tighten sms-10dlc-registration against Sent docs snapshot#17
Merged
Conversation
- references/10dlc-evidence-checklist.md: rewrite around Sent's verified
compliance form fields (legal_business_name, business_registration_number,
business_type, industry_category, ein, business_address, business_phone,
contact_email; use-case selection from {Authentication, Notifications,
Marketing, Customer Service, High Volume}; opt-in URL; opt-out via
Compliance → Opt Keywords tab; US extras: live website + privacy policy).
Add country-specific extras table (AU, BE, PL, ZA, SE, TH, UK).
- references/10dlc-rejection-remediation.md: prepend Layer 0 with Sent
account-state error codes (AUTH_006/007/005, BUSINESS_003/005) so account
state is diagnosed before assuming TCR/carrier rejection. Soften TCR/
carrier rejection strings (they are external taxonomy).
- references/tcr-use-cases.md: add top section mapping Sent's 5-option
compliance-form selector to TCR's deeper taxonomy. Note that opt-out
keywords are managed on Sent in the Opt Keywords tab, not embedded in
each sample message. Mark TPS / vetting-score / carrier rejection codes
as external.
- SKILL.md: tighten "Unverified claims" — drop the tcr_brand_id/
tcr_campaign_id and per-sample-opt-out claims (the snapshot confirms
/v3/brands and /v3/brands/{id}/campaigns endpoints exist and that
opt-out is a separate form field). Keep throughput/carrier-cap and
country-specific compliance claims as external.
- scripts/validate_10dlc_packet.py + fixtures: rename fields to match the
verified compliance form, enforce use_cases[*].selection enum, validate
business_phone (E.164) + contact_email, require STOP in opt_keywords.stop
(separate from sample messages). Fixtures re-verified — good.json exits
0, bad.json exits 1 with 7 issues.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Scope
Aligns
skills/sms-10dlc-registration/with the v3 Sent docs snapshot atreferences/_inputs/sent-docs-v3-2026-05-19.md.What changed
references/10dlc-evidence-checklist.md— rewritten around the snapshot's verified compliance-form fields (legal business name, business registration number, business type/structure, industry category, EIN/tax ID, business address, business phone, contact email; use-case selection from the 5-option enum; opt-in mechanism URL/description; opt-out via Compliance → Opt Keywords tab; US extras: live website + privacy policy URL). Added the country-specific extras table (AU, BE, PL, ZA, SE, TH, UK).references/10dlc-rejection-remediation.md— prepended a "Layer 0" section listing the verified Sent account-state error codes that masquerade as compliance failures:AUTH_006(KYC incomplete),AUTH_007(no channel configured),AUTH_005(pending activation),BUSINESS_003(insufficient balance),BUSINESS_005(template not approved). Reframed TCR/carrier rejection strings as external taxonomy.references/tcr-use-cases.md— added a top section mapping Sent's 5-option compliance-form selector (Authentication / Notifications / Marketing / Customer Service / High Volume) onto the deeper TCR taxonomy. Clarified that opt-out is a separate Opt Keywords field, not embedded per sample. Marked TPS, vetting scores, and per-carrier rejection codes as external.SKILL.md— tightened the "Unverified claims" section: confirmed/v3/brandsand/v3/brands/{id}/campaignsexist (internal TCR mapping remains opaque), dropped the "every sample must contain opt-out text" claim (the snapshot confirms opt-out lives in Opt Keywords, not in samples), kept throughput / carrier-cap and country-specific compliance claims as external.scripts/validate_10dlc_packet.py+ fixtures — renamed fields to match the verified compliance form, added enum validation foruse_cases[*].selection, validatedbusiness_phone(E.164) andcontact_email, and requiredSTOPinopt_keywords.stopas a separate field. Re-verified both fixtures:good.jsonexits 0,bad.jsonexits 1 with 7 distinct issues.Verification
bash scripts/validate-skills.sh→OK: 8 skill(s) validatedpython3 skills/sms-10dlc-registration/scripts/validate_10dlc_packet.py …/good.json→OK(exit 0)python3 skills/sms-10dlc-registration/scripts/validate_10dlc_packet.py …/bad.json→ 7 issues, exit 1