Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add OpenAnalystInc/10x-MM-Skill --skill "marketer-sync"
Install specific skill from multi-skill repository
# Description
>
# SKILL.md
name: marketer-sync
description: >
Sync all live data locally for fast reads β strategies, links, pages, metrics,
schedules, analytics. Triggers: sync, refresh, pull data, check metrics, what is live.
Marketer Sync Skill
Overview
Pulls all live data from the server MCP into a local reference file at .10x/sync-data.json. After syncing, any question about strategies, links, pages, metrics, or schedules can be answered by reading the local file β zero API calls needed.
This is the first command a user should run in every session. It minimizes API calls to the server by caching everything locally.
When To Use
- User asks "what strategies are live?"
- User asks "show me my metrics"
- User asks "sync my data" or runs
/sync - User asks "what is the status of my campaigns?"
- Before showing the dashboard
- Any time the user wants fresh data locally
- At the start of every session β run sync first
Prerequisites
.envfile configured (run/setupif not done)- Required env vars:
LINK_PLATFORM_HANDLE,USER_PAT - MCP connection to server must be active
How It Works
Step 1: Hit All MCP Endpoints
Call these Link Platform MCP tools to gather all data:
Data Sources (via Link Platform MCP tools):
----------------------------------------------
1. system_health β server status
2. agent_list_proposals β all strategies (draft, live, discarded, archived)
3. analytics_get β performance analytics and insights
4. links_list β all links for the handle
5. links_list β all pages (draft + published)
6. webhooks_list β scheduled tasks
Step 2: Combine Into Reference File
Write everything to .10x/sync-data.json:
{
"synced_at": "2026-02-17T10:30:00.000Z",
"handle": "myhandle",
"mcp_url": "https://myhandle.mcp.10x.in",
"server_health": {
"status": "ok"
},
"strategies": {
"total": 12,
"live": 5,
"drafts": 3,
"discarded": 2,
"archived": 2,
"items": [
{
"strategyId": "str_1708...",
"name": "Summer Flash Sale",
"status": "live",
"slug": "summer-sale",
"liveUrl": "https://myhandle.10x.in/summer-sale",
"createdAt": "2026-01-15T...",
"publishedAt": "2026-01-20T...",
"performance": {
"clicks": 1240,
"conversions": 89,
"conversionRate": 0.072
}
}
],
"topPerformers": [],
"insights": {}
},
"links": {
"total": 24,
"note": "links_upsert creates REDIRECT links only (302 redirects for campaign tracking). Page hosting uses site-deployments API.",
"items": []
},
"pages": {
"total": 8,
"published": 5,
"draft": 3,
"note": "Pages are deployed via POST /v2/handles/{handle}/site-deployments (JWT auth), NOT via links_upsert.",
"items": []
},
"analytics": {
"summary": {}
},
"schedules": {
"total": 0,
"items": []
}
}
Step 3: Print Summary
Sync Complete
Handle: myhandle.10x.in
Server: https://myhandle.mcp.10x.in (healthy)
Last sync: 2026-02-17 10:30:00 UTC
Strategies: 5 live / 3 drafts / 2 discarded / 2 archived
Links: 24 total
Pages: 8 total (5 published, 3 draft)
Schedules: 0 active
Top Performer: "Summer Flash Sale" β 7.2% conversion rate
Data saved to .10x/sync-data.json
All future queries will read from local cache.
Run /sync again to refresh.
After Sync β How the Local Assistant Uses It
CRITICAL: After sync, the local assistant MUST read .10x/sync-data.json before making any API calls. This file is the source of truth for:
- Strategy statuses, names, performance
- Link inventory
- Page inventory (published vs draft)
- Analytics and campaign data
- Scheduled tasks
Reading Patterns
| User Question | Read From |
|---|---|
| "What strategies are live?" | data.strategies.items.filter(s => s.status === 'live') |
| "Show me my metrics" | data.strategies.items[].performance + data.analytics |
| "What's my best strategy?" | data.strategies.topPerformers[0] |
| "Show my drafts" | data.strategies.items.filter(s => s.status === 'draft') |
| "What pages are published?" | data.pages.items.filter(p => p.status === 'PUBLISHED') |
| "How many conversions this week?" | data.analytics.summary |
| "Any scheduled tasks?" | data.schedules.items |
When To Re-Sync vs Use Cache
- Use cache: Answering questions, showing status, referencing past data
- Re-sync: After deploying via site-deployments API, after discarding, after creating new redirect links, or if user says "refresh"
- Always sync: At start of session, before dashboard, before any analysis
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.