Skip to content

groundtruth: tighten sms-10dlc-registration against Sent docs snapshot#17

Merged
sent-dm merged 1 commit into
devfrom
batch2/unit-4-sms-gt
May 19, 2026
Merged

groundtruth: tighten sms-10dlc-registration against Sent docs snapshot#17
sent-dm merged 1 commit into
devfrom
batch2/unit-4-sms-gt

Conversation

@sent-dm
Copy link
Copy Markdown
Contributor

@sent-dm sent-dm commented May 19, 2026

Scope

Aligns skills/sms-10dlc-registration/ with the v3 Sent docs snapshot at references/_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/brands and /v3/brands/{id}/campaigns exist (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 for use_cases[*].selection, validated business_phone (E.164) and contact_email, and required STOP in opt_keywords.stop as a separate field. Re-verified both fixtures: good.json exits 0, bad.json exits 1 with 7 distinct issues.

Verification

  • bash scripts/validate-skills.shOK: 8 skill(s) validated
  • python3 skills/sms-10dlc-registration/scripts/validate_10dlc_packet.py …/good.jsonOK (exit 0)
  • python3 skills/sms-10dlc-registration/scripts/validate_10dlc_packet.py …/bad.json → 7 issues, exit 1

- 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>
@sent-dm sent-dm merged commit ce92511 into dev May 19, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant