Install
openclaw skills install @surfagentapp/surfagent-xX platform skill for SurfAgent, covering route-aware workflows, proof rules, blockers, and when to use the X adapter over raw browser control.
openclaw skills install @surfagentapp/surfagent-xX-specific operating skill. Use this with the core
browser-operationsskill.
This skill teaches agents how to work X without guessing at selectors, trusting flaky button state, or claiming success from an attempted post.
Use this order:
Prefer X-native verbs over rediscovering the X DOM every run.
X is not a generic site.
It has:
Important: a visible button or a completed click is not proof that a post, reply, or like actually landed.
Also important: the wrong account doing the right action is still a failure.
Also important: on complex X surfaces, visual state beats partial extraction. If the switcher, composer, or community page is ambiguous, use a screenshot or visual snapshot instead of guessing.
Default loop:
Default rule: feed-first, permalink-only-when-needed.
Known-good pattern:
For replies:
For community posts:
For like flows, minimum proof is:
Do not claim success from only calling x_like_post without checking the resulting state.
For X, success requires visible evidence tied to the route.
Trust order when signals conflict:
Good proof usually includes:
Bad proof:
Prefer acting from the current surface when:
Prefer opening a dedicated post route when:
Repeatedly reopening the same post URL is usually a smell, not a best practice.
Prefer the X adapter for:
Current X adapter verbs include:
x_health_checkx_openx_get_statex_get_accountsx_switch_accountx_open_homex_open_profilex_open_notificationsx_open_searchx_open_postx_get_timelinex_search_postsx_search_profilesx_search_communitiesx_open_communityx_get_community_feedx_extract_postx_extract_profilex_get_profile_postsx_get_post_threadx_get_composer_statex_create_postx_reply_to_postx_like_postx_repost_postx_follow_profilex_verify_text_visiblex_recoverx_research_topicx_map_communityUse targeted evaluate or browser control when:
Even then:
Watch for:
When blocked:
x_recover, or human-blockedPrefer:
x_get_state over generic broad page inspectionAvoid:
Before claiming an X task done, confirm:
Before claiming account switching done, confirm:
Known-good sequence:
Do not conclude an account is unavailable from one weak extraction pass. A hidden or partially extracted menu is common on X.
This is a real X failure mode.
If the composer visibly contains text but submit is still disabled:
Known-good fallback:
Use alongside:
browser-operations for universal browser rulesx-engagement when the goal is audience growth, founder-style replies, and community participationX_STATE_MAP.md for concrete switcher, community, and composer landmarks