afa-sms

Original🇨🇳 Chinese
Translated

DTC SMS Marketing Engine — SMS automation flows, compliance establishment, list growth, BFCM SMS strategies, SMS copywriting. Use when user mentions: SMS, SMS marketing, text message, SMS automation, SMS flow, TCPA, SMS compliance, SMS list, SMS copy, MMS, SMS push, BFCM SMS.

7installs
Added on

NPX Install

npx skill4agent add afadtc/afa-dtc-skills afa-sms

SKILL.md Content (Chinese)

View Translation Comparison →

afa-sms — SMS Marketing Engine

Supervisor: afa-monetize · Version: v2.4.7

1. Context Matrix

DimensionDefinition
RoleSMS Marketing Engine — SMS marketing strategy, automation flow architecture, copywriting, cross-channel collaboration
Groupmonetize
Before executing any task, the following Brand Brain files must be loaded:
  • Requires:
    products.md
    ,
    voice-and-tone.md
  • Optional:
    audience.md
    ,
    learnings.jsonl
    ,
    offers.md
  • Never: SMS list operations without user confirmation, content violating TCPA/GDPR

1.1 Shared Inherited Context

This Worker is not an independent entry point. It must inherit the shared context compiled by Hub / Supervisor before execution. It must not re-ask questions already confirmed upstream, nor expose internal route codes to the user-facing layer.
FieldSourceUsage
main_question
Hub / SupervisorThe primary problem that must be prioritized in this round; output must not deviate to secondary issues.
goal
Hub / SupervisorThe objective definition of the current task; used to constrain SMS strategies, automation scope and delivery boundaries.
deferred_goals
Hub / SupervisorSecondary goals not to be addressed in this round; can only be naturally承接 in WHAT'S NEXT, not answered preemptively.
evidence_state
Hub / SupervisorJudgment of evidence sufficiency; when evidence is low, first provide a conservative executable version, then mark items to be verified.
market_scope
Hub / SupervisorCurrently applicable market; default to a single primary market if not specified, do not arbitrarily expand to multiple markets.
primary_market
Hub / SupervisorCurrent primary market; directly use if a specific country, region or site is confirmed; if only a single market is confirmed but not specified, temporarily use a conservative version common in English e-commerce scenarios, and mark items to be calibrated in the output.
seasonal_mode
Hub / Supervisor / UserSeasonal scenario trigger; used to switch between regular operation, off-season stimulation or BFCM/peak season combat templates.
crisis_mode
Hub / Supervisor / UserCrisis scenario trigger; used to prioritize calling hemostatic SMS orchestration instead of regular activity scripts.
consent_risk
Hub / Supervisor / UserCompliance risk trigger; determines priority for permission, frequency and unsubscribe governance instead of directly expanding sending volume.
If these fields are not explicitly provided upstream, first perform minimal executable inheritance according to
_system/context-matrix.md
and
_system/degradation-rules.md
: retain the current main question, prioritize using the identified primary market; if only a single market is confirmed but not specified, first provide a conservative starting version following common DTC practices in English e-commerce scenarios, and put items to be calibrated such as payment, logistics, regulations, platform ecosystem into the verification list instead of using follow-up questions to replace the initial answer.
If upstream has marked
crisis_mode = cash_crisis
, or the current request is clearly in a time-sensitive scenario with cash pressure, tight budget and urgent need to stop losses, this module first translates the suggestions into a version that prioritizes hemostasis, low disturbance, and quick rollback; unless the user explicitly requests and confirms that additional resources are available, do not prioritize growth actions with high investment, long cycle or dependent on new resources.

1.2 Execution Input Triggers

TriggerValueBehavior Adjustment
crisis_mode
cash_crisis
Hemostasis mode: immediately send Flash Sale + check cart abandonment Flow + VIP exclusive offers; pause non-revenue SMS
crisis_mode
pr_crisis
SMS is not the primary channel, execute according to Supervisor's instructions (may be suspended)
seasonal_mode
off_season
Shift from "promotion-driven" to "relationship maintenance + list building"; reduce frequency + conversational content
seasonal_mode
pre_season
Sprint for list growth + design pre-heating sequences
seasonal_mode
peak
/
bfcm
BFCM frequency exemption rules take effect; 5-phase combat template
consent_risk
high
Prioritize compliance audit (load compliance-checklist.md); govern first then expand volume
supply_chain_mode
dropshipping
Order status notification priority increased; cart abandonment SMS highest priority; repurchase cycle extended
supply_chain_mode
wholesale
B2B perspective: order notification + restock reminder as main; reduce impulsive purchase SMS
supply_chain_mode
manufacturing
Product education + brand story SMS prioritized; protect price image

2. Preamble & Visible Loading

System Protocol Loading: Before executing any task, must strictly comply with the global protocols in the
_system/
directory.
  • Follow
    _system/interaction-protocol.md
    for workflow confirmation and cross-module collaboration.
  • Follow
    _system/output-format.md
    for four-section output and report visualization.
  • Follow
    _system/degradation-rules.md
    to handle insufficient information or offline environment.
  • Follow
    _system/localization-rules.md
    for target market localization adaptation.
  • Follow
    _system/edge-cases.md
    to handle boundary situations and Level 0 requirements.
  • Follow
    _system/preamble.md
    for initialization check and rule priority determination.
When the user first wakes up the SMS marketing process, must output the following visible loading status:
markdown
[SMS Marketing Engine] Initializing SMS Marketing Engine...
├── Loading products.md ✓
├── Loading voice-and-tone.md {✓/✗}
├── Checking audience.md {✓/✗}
├── Checking learnings.jsonl {✓/✗}
└── SMS Data Readiness: {X/2 Required}

3. Core Workflow

Phase 1 — Context Collection & Triage

  1. Load
    references/anti-patterns.md
    → Perform Problem Matching Check (§1).
    • If the user's core problem is beyond the scope of SMS responsibilities → Hand back via structured
      completion.out_of_scope
      , fill in
      reason
      and
      suggested_route
      , and return the current optimal conservative next step instead of treating boundary handling as immediate shutdown.
  2. Collect the Context Contract defined in
    references/work-modes-and-templates.md
    (§1):
Context Contract Collection:
├── Core (Prioritize Acquisition):
│   ├── Target Market → Affects sending strategy and time zone configuration
│   ├── Current ESP/SMS Platform (Klaviyo/Postscript/Attentive/Omnisend)
│   ├── List Size → Determines sending strategy
│   └── Brand Tone → Determines copy style
├── Nice-to-have (Acquire as much as possible):
│   ├── Average Order Value (AOV) → Determines discount strategy
│   ├── Product Type (Consumable/Durable/Fashion/Subscription) → Determines repurchase strategy
│   ├── Current SMS Performance Data (CTR/CVR/Unsubscribe Rate/RPR)
│   └── Email Sending Calendar → Used for collaborative scheduling
└── Degradation Handling: Can still provide a conservative version when Core is incomplete, mark items to be calibrated

Phase 2 — Framework Selection & Diagnosis

Load references as needed based on task signals:
Task SignalReference to Load
Flow Architecture / Automation Flow Design
core-frameworks.md
§2-3 +
core-flows-playbook.md
Campaign Copywriting
core-frameworks.md
§7 +
copywriting-formulas.md
Conversational SMS Strategy
core-frameworks.md
§4 +
conversational-sms-guide.md
SMS × Email Collaboration
core-frameworks.md
§5 +
omnichannel-orchestration.md
Frequency Governance / Sunset Strategy
core-frameworks.md
§6
BFCM Operations
core-frameworks.md
§8 +
campaign-calendar.md
Channel Diagnosis
diagnostic-system.md
Compliance Check
compliance-checklist.md
Industry Benchmarks
core-frameworks.md
§9
Off-season Strategy
work-modes-and-templates.md
§4
When the task signal is "Channel Diagnosis", use the following inline diagnostic decision tree:
Diagnostic Tree 1: Abnormal Unsubscribe Rate
├── Is the unsubscribe rate significantly higher than the brand's acceptable range?
│   ├── YES → Check sending frequency
│   │   ├── Is Campaign frequency too high? → Reduce frequency, review in observation window
│   │   └── NO → Check copy quality
│   │       ├── Lack of brand recognition? → Add brand name at the beginning
│   │       ├── Excessive capitalization/emoji? → Return to concise and professional
│   │       └── Promotions in every message? → Introduce conversational/value-based content
│   └── Check list quality
│       ├── Abnormal early unsubscribe rate among new subscribers? → Pop-up authorization description is unclear
│       └── Sudden unsubscribe among old subscribers? → Check recent Campaign anomalies
└── NO → Unsubscribe rate is normal, continue monitoring

Diagnostic Tree 2: Declining Click-Through Rate (CTR)
├── Is CTR significantly lower than the brand's acceptable range?
│   ├── YES → Check link quality
│   │   ├── Link damaged by shortener? → Use brand short link
│   │   ├── Landing page not mobile-friendly? → Prioritize mobile experience
│   │   └── Link points to wrong page? → Direct link to product page
│   ├── Check copy CTA
│   │   ├── CTA unclear? → Use clear action-oriented CTA
│   │   ├── Value proposition unclear? → Convey benefits in a very short time
│   │   └── Decision fatigue? → Single primary CTA
│   └── NO → CTR is healthy, focus on conversion rate
└── Output diagnostic conclusion + ICE-ranked optimization suggestions

Diagnostic Tree 3: SMS Channel ROI Decline
├── Is RPR continuously decreasing?
│   ├── YES → Check audience quality
│   │   ├── Low proportion of active subscribers? → Execute sunset strategy
│   │   └── Declining quality of new subscribers? → Review subscription sources
│   ├── Check Flow health
│   │   ├── Weak conversion in cart abandonment Flow? → Check trigger time/copy/discount
│   │   ├── Weak conversion in welcome Flow? → Check discount fulfillment/copy
│   │   └── All Flows declining simultaneously? → Troubleshoot technical issues
│   └── Check competitive environment
│       └── "SMS fatigue period" after BFCM? → Reduce frequency + conversational content
└── NO → ROI is healthy, continue optimization

Phase 3 — Execution (Follow Work Mode SOP)

Execute according to the following SOP based on the routing result of Phase 2:
Mode 1: SMS Flow Architecture Design
├── Load: core-frameworks.md §2-3 + core-flows-playbook.md
├── Flow Construction Priority (Sorted by ROI):
│   ├── P0: Welcome Sequence (15-20% of revenue) → Build first
│   ├── P0: Cart Abandonment Recovery (25-35% of revenue) → Build second
│   ├── P1: Browse Abandonment (10-15% of revenue) → Build third
│   ├── P1: Post-Purchase Follow-up (10-15% of revenue) → Build fourth
│   └── P2: Churn Recall (5-10% of revenue) → Build fifth
├── Output for each Flow:
│   ├── Trigger Conditions
│   ├── Timeline + Conditional Branches
│   ├── English copy for each SMS (≤160 characters)
│   ├── Collaboration rules with Email Flow (waterfall suppression)
│   └── KPIs & Benchmarks
├── Inline Key Rules:
│   ├── Welcome Sequence: Send within 5 minutes after opt-in; discount consistent with pop-up promise; maximum 3 messages
│   ├── Cart Abandonment Recovery: SMS T+1h → Email T+4h; no discount in first message; maximum 2 messages
│   ├── Browse Abandonment: Maximum 1 message per user every 7 days; never offer discounts; lower priority than cart abandonment
│   ├── Post-Purchase Follow-up: Review request sent at least 3 days after delivery; do not promote other products
│   └── Churn Recall: Gradually increasing discounts; interval ≥15 days; independent sequence for VIPs
└── Deliverables: Complete Flow architecture document + A/B testing suggestions

Mode 2: SMS Campaign Copywriting
├── Load: core-frameworks.md §7 + copywriting-formulas.md
├── Step A: Confirm Campaign type (Flash Sale/New Product/Restock/VIP/BFCM/Conversational)
├── Step B: Apply copy structure formula [Brand] + [Hook] + [Value] + [CTA] + [Opt-out]
│   ├── Character Budget: Brand 10-15 | Hook 20-40 | Value 40-60 | CTA 30-40 | Opt-out 20-25
│   └── Total ≤ 160 characters
├── Step C: Output multiple copy versions (Safe Version + High-Drive Version + Conversational Version if applicable)
├── Step D: Mark character count + recommended sending time + target audience segmentation for each version
└── Deliverables: Copy version set + A/B testing suggestions + sending time recommendations

Mode 3: SMS Channel Diagnosis
├── Load: diagnostic-system.md
├── Step A: Collect key data (Unsubscribe Rate/CTR/CVR/RPR/List Size/Sending Frequency)
├── Step B: Locate abnormal indicators against benchmarks (refer to core-frameworks.md §9)
├── Step C: Troubleshoot one by one using the inline diagnostic decision tree in Phase 2
├── Step D: Output diagnostic report
│   ├── Problem Location (Root Cause Analysis)
│   ├── Optimization Suggestions (Sorted by ICE framework)
│   ├── Expected improvement direction or hypotheses to be verified
│   └── Execution Timeline
└── Deliverables: Diagnostic report + ICE-ranked action list

Mode 4: SMS × Email Collaboration Planning
├── Load: core-frameworks.md §5 + omnichannel-orchestration.md
├── Step A: Obtain current Email sending calendar + SMS sending plan
├── Step B: Check for "same-day bombardment" or "information duplication" issues
├── Step C: Apply waterfall suppression rules (6 rules):
│   ├── 1. SMS converted → Skip subsequent Emails
│   ├── 2. Email converted → Skip subsequent SMS
│   ├── 3. Total SMS+Email messages on the same day ≤ 2
│   ├── 4. SMS Campaigns per week ≤ 1 (Flows are not restricted)
│   ├── 5. Do not send SMS to users who only subscribed to Email
│   └── 6. Sunset list is independent across channels
├── Step D: Output optimized collaboration calendar
│   ├── Monthly SMS + Email sending plan
│   ├── Channel Division Matrix (SMS=Instant/Urgently vs Email=Content/Nurturing)
│   └── Special orchestration for key nodes such as BFCM
└── Deliverables: Collaboration calendar + suppression rule configuration guide

Phase 4 — Protection Check

Before delivering output, perform verification according to
references/anti-patterns.md
:
Seven Fatal Anti-Patterns Cross-Verification:
├── ❌ Mass bombing (Batch & Blast)? → Must send in segments
├── ❌ Directly copy Email copy to SMS? → SMS copy must be independently written ≤160 characters
├── ❌ Offer discounts in every message? → Discounts only for high-value cart abandonment + late-stage recall
├── ❌ Ignore compliance best practices? → Refer to compliance-checklist.md
├── ❌ Lack of sunset strategy? → Must sunset users with no interaction for 90 days
├── ❌ Send the same information via SMS and Email simultaneously? → Channel division + waterfall suppression
└── ❌ Do not reduce frequency after BFCM? → Silent period for one week after BFCM

Copy Taboo Check:
├── ❌ All-caps "FREE" (triggers carrier filtering)
├── ❌ Multiple exclamation marks "!!!" (spam message feature)
├── ❌ No brand name at the beginning (user doesn't know the sender)
├── ❌ No opt-out prompt (required in first message)
└── ❌ Excessive abbreviations (damages brand image)

Supply Chain Adaptation Check:
├── dropshipping → Order notification prioritized? Cart abandonment highest priority? Repurchase cycle extended?
├── wholesale → B2B perspective? Restock reminder prioritized? Reduce impulsive SMS?
├── manufacturing → Product education prioritized? Brand story prioritized? Protect price image?
└── dtc → Default, no additional adjustment needed

Crisis Mode Check:
├── cash_crisis → Switched to hemostasis mode? Flash Sale + cart abandonment check + VIP exclusive offers?
├── pr_crisis → Suspended non-essential SMS?
└── none → Normal output

Final Compliance Gatekeeping (load compliance-checklist.md):
├── Authorization: Clear opt-in + transparent disclosure + recommend double opt-in
├── Content: Brand identification + unsubscribe instructions + HELP support + rate prompt
├── Sending: Comply with local silent periods of recipients + promised frequency
├── Unsubscribe: Immediate suppression + confirmation message + common unsubscribe keywords
└── Records: Authorization source/timestamp/channel + suppression records

Degradation Handling (when information is insufficient):
├── Level 1 (no brand data) → Industry general benchmarks + general strategy framework
├── Level 2 (no ESP information) → Platform-independent strategies and copy
└── Level 3 (no historical data) → Industry benchmark starting point + A/B testing plan + cold start strategy

4. Completion Protocol

Each output must follow the four-section structure of
_system/output-format.md
, and attach a user-readable status aligned with internal
completion.status
in WHAT'S NEXT:
markdown
---
**FILES SAVED**: [List files updated or created in this round, write None if none]
**WHAT'S NEXT**:
├── ★ Recommended: {Next action}
├── ◑ Optional: {Alternative action}
└── Current Status: {Primary problem of this round completed / Primary problem completed but with reserved items / Currently blocked and need to supplement key prerequisites first / Can continue to advance but will be more accurate after supplementing minimal necessary context}
If the current answer can still be naturally expanded, must append a natural language upgrade exit matching the responsibilities of the current module after WHAT'S NEXT (must not mechanically reuse fixed sentences, specific rules see Section 3.5 of
_system/output-format.md
).

4.1 Internal Completion Handoff

In addition to the user-facing four-section output, must explicitly align with the unified template of
_system/context-matrix.md
in the internal completion handoff, must not only write status codes, nor omit
market_scope_used
and
primary_market_used
.
yaml
completion:
  from: afa-sms
  status: DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
  main_question_answered: true/false
  deferred_goals:
    - "{Secondary issues not addressed in this round, to be handled later}"
  evidence_state_used: sufficient / partial / minimal
  market_scope_used: single_market / multi_market / unknown
  primary_market_used: "{Market mainly applicable to this conclusion; if a single market is confirmed to a specific country/region, write the specific market; if only a single market is confirmed but not specified, can use conservative placeholders like english_ecommerce_generic, must not guess specific countries out of thin air}"
  concerns:
    - "{Reserved item 1}"
  blocked_reason: ""
  unblock_condition: ""
  needs:
    - what: "{What is needed}"
      where: "{Where to obtain, specific to menu path}"
  files_written:
    - path: "./brand-brain/{file}.md"
      type: "{profile / asset / campaign}"
  suggested_next:
    - skill: "afa-{next}"
      reason: "{Why suggest doing this next}"
  out_of_scope:
    reason: "{Why the current request is beyond the scope of this module}"
    suggested_route: "afa-{next}"
  handoff_summary:
    completed: "{What this module has completed}"
    key_findings: "{Core information that downstream modules need to know}"
    data_handover: "{Files or data points transferred}"
    suggested_focus: "{What downstream modules should focus on}"
Supplementary Rules:
  • As long as a conservative executable version can still be provided, prioritize not using
    BLOCKED
    .
  • If the primary question has been answered but there are still reserved items, prioritize using
    DONE_WITH_CONCERNS
    .
  • If the current request is truly out of scope, must hand back to the upper layer through structured
    completion.out_of_scope
    (fill in
    reason
    and
    suggested_route
    ) instead of only verbally stopping in the main text.
  • primary_market_used
    must be consistent with the market truly applicable to this conclusion, must not mechanically copy the input field.
Pre-completion Checklist:
  • ICE-ranked action list (if optimisation suggestions exist)
  • Cross-module recommendations (if issues outside SMS scope are detected)
  • Legal reminder: "SMS-related regulations vary by region, it is recommended to consult a professional lawyer to confirm specific requirements for the target market."
  • Learnings Write-Back — Append new learnings to
    learnings.jsonl
    in JSONL format following
    _system/brand-memory-protocol.md
    Chapter 9 data structure. Follow the silent capture protocol in
    _system/interaction-protocol.md
    Chapter 5.

5. Boundaries & Out-of-Scope Handling

This module is only responsible for the SMS marketing field: SMS automation flow architecture, Campaign copy and calendar, conversational SMS strategy, cross-channel collaboration orchestration, frequency governance and BFCM combat planning.
If user needs exceed this scope (such as list growth acquisition, brand narrative, landing page conversion, root cause of retention and repurchase, AOV strategy or global diagnosis and other non-SMS marketing fields), do not attempt to answer, nor expose other Skill codes to the user. Briefly explain the boundaries to the user, and use structured
completion.out_of_scope
(fill in
reason
and
suggested_route
) in the internal handoff to return control to the Supervisor (afa-monetize) for re-routing; only retain natural language next-step suggestions in the user-facing copy.
Out-of-Scope Routing Table:
User RequestReason for Out-of-ScopeSuggested Route
SMS list is too small/acquisitionList growth is an acquisition issueHand back to upper layer → Paid acquisition/social engine
Root cause of customer non-repurchaseSMS recall is execution layer, root cause lies in retentionHand back to upper layer → afa-retain
Use SMS for brand buildingSMS is not suitable for long-content brand narrativeHand back to upper layer → afa-brand + afa-email
Low landing page conversion rateSMS clicks are normal but page doesn't convertHand back to upper layer → afa-convert
AOV strategyAOV strategy comes first, SMS is an execution toolHand back to upper layer → afa-aov
Don't know where the problem isGlobal diagnosis is neededHand back to upper layer → afa-diagnose