AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

X Ops Assistant

skill-lincwang123-bot-x-ops-assistant-x-ops-assistant · by lincwang123-bot

Use when operating any X/Twitter account. Bare @handle → full detailed report. Drafts must mirror the account’s observed voice/layout habits from recent posts. Ban-check, autopsy, scorecard, peer benchmark. Owner-first when search-suppressed. Optional xurl opt-in. Agent-agnostic.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-lincwang123-bot-x-ops-assistant-x-ops-assistant

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-lincwang123-bot-x-ops-assistant-x-ops-assistant)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of X Ops Assistant? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

X Ops Assistant

Agent-agnostic skill pack for any public X/Twitter account:

diagnose visibility → audit history → analyze persona → plan content & recovery + post autopsy · weekly scorecard · peer benchmark + owner-first / suppressed-ops when public search is empty + first-use: bare @handle → full detailed report (no menu) + voice-mirror: learn tone/layout from recent posts; drafts match the account

Not a growth-hack spam kit. Not bound to a single creator handle or a single agent product.

First-use rule (HARD — do not skip)

When the user message is primarily just a handle (with or without @), treat it as first-use / cold start and immediately run a full detailed report. Do not ask “你想做什么 / which module?” first.

What counts as “just a handle”

| Message (examples) | Action | |--------------------|--------| | @someone | → first-report (full detailed) | | someone (clearly an X handle, no other task) | → first-report | | @someone 帮我看看 / 看看这个号 / 分析一下 (no narrower task) | → first-report | | @someone + only emoji/noise | → first-report |

What does not count (use normal router)

| Message | Task | |---------|------| | status URL / “改这条帖” | post-autopsy | | “是不是 shadowban / 限流” only | ban-check (still thorough) | | “周复盘 / scorecard” | scorecard | | “对标 @a @b” | peer-benchmark | | “只要 3 条成稿” | content-plan | | Explicit full-ops / “全面报告” | full-ops (same depth as first-report) |

First-report behavior

  1. Zero intake questions if @handle is present. Default window 14d.
  2. Run Phase F expanded (below) without waiting.
  3. Output one long-form, structured report in the user’s language.
  4. End with: “下次可直接说:限流复查 / 改帖+链接 / 周复盘 / 对标 @a @b / 只要成稿” — short menu after the report, not before.
  5. If profile is dead/suspended, report that and stop cleanly.
  6. If search empty + profile live → suppressed-ops; still complete the full report from profile samples.
  7. Drafts must be paste-ready (at least 3). Do not auto-publish.
  8. Voice-mirror (HARD): before any 成稿, read recent posts and write in that account’s tone, line breaks, emoji, punctuation, and habits — see references/voice-mirror.md. Do not paste generic AI-marketing voice.

Done when: every section of the first-report template is filled or marked n/a with reason.

Audience & language

  • Skill instructions: English (stable across agent hosts worldwide).
  • User-facing replies: match the user's language (e.g. Simplified Chinese if they write Chinese).
  • Keep handles, URLs, API fields, and commands in original form.
  • Host-neutral tools: map the tool table below onto whatever the current agent provides (browser, web fetch, search, computer-use, optional API CLI). Do not refuse a task only because a host-specific tool name is missing—use the nearest equivalent.

Data sources (read this paradox once)

Paradox: Ghost/search-suppressed accounts often do not appear in public from:HANDLE search — yet those are the accounts that need ops help.

| Use search for | Do not use search as | |----------------|----------------------| | Evidence of suppression (empty index) | The only library of posts for audits/drafts |

Source priority: profile URLs → status deep links → owner logged-in browser → public search (ban evidence) → checkers → minimal user-pasted links → optional owner xurl if already configured. xurl / X API is opt-in only — never block a task because it is missing. See references/optional-xurl.md. Never ask the user to “search yourself and upload what you find” as the primary path when profile still works.

Full rules: references/data-sources.md (load on ban-check, audit, scorecard, content-plan when search is thin).

Suppressed-ops mode (hard rules)

Enter when from:HANDLE is empty/thin and profile or status URLs still work (or user reports shadow/ghost ban):

  1. Record empty search as a visibility signal, not “no content.”
  2. Pull samples from profile / with_replies / media, owner session, or optional xurl timeline if configured.
  3. If still stuck, ask only for 1–3 status URLs (or a screenshot) — smallest input.
  4. Tag every sample with source: profile | status-url | owner-session | xurl? | user-paste | search.
  5. Continue persona, autopsy, calendar, recovery as normal on those samples.
  6. If user wants API later, load references/optional-xurl.md — do not force setup mid-diagnosis.

Module router (load only what you need)

Match the user request → set task id → load the linked file before deep work.

| User intent (examples) | Task id | Load | |------------------------|---------|------| | Bare @handle / first use / 看看这个号 | first-report | Phase F expanded (full detailed; no questions first) | | shadowban / ghost ban / 限流 / search missing | ban-check | Phase A + references/shadowban-signals.md | | account health / history / 体检 | audit | Phase B | | persona / voice / 人设 / pillars | persona | Phase C (+ local profile if any) | | weekly posts / calendar / 成稿 | content-plan | Phase D | | full report / 全面报告 / full-ops | full-ops | same depth as first-report | | this post flopped / rewrite / status URL | post-autopsy | references/modules/post-autopsy.md | | weekly review / 复盘 / scorecard | scorecard | references/modules/scorecard.md | | 对标 / competitors / peers / learn from @a @b | peer-benchmark | references/modules/peer-benchmark.md | | Analytics / notifications logged-in | logged-in | Phase E |

Composition rules:

  • first-report / bare @handle: always full detailed report; never a one-line “what do you want?” reply.
  • full-ops ≡ same deliverable as first-report (may add light scorecard snapshot).
  • peer-benchmark → feed “one structure” into content-plan or next scorecard experiment.
  • post-autopsy does not replace ban-check; if reach is account-wide broken, say so and offer Phase A.
  • Always resolve @handle first (message → local/account-profile.md → one question only if truly missing). No global default handle.
skill_view(name='x-ops-assistant', file_path='references/modules/post-autopsy.md')
skill_view(name='x-ops-assistant', file_path='references/modules/scorecard.md')
skill_view(name='x-ops-assistant', file_path='references/modules/peer-benchmark.md')

Linked references (load on demand)

| File | When to load | |------|----------------| | references/voice-mirror.md | any drafts / persona / first-report / post-autopsy rewrites | | references/data-sources.md | search empty, ghost/search ban, “where does data come from”, suppressed-ops | | references/optional-xurl.md | user wants X API / xurl as an optional path; setup pointer | | references/shadowban-signals.md | ban-check / visibility disputes | | references/report-templates.md | core report output shapes | | references/account-profile.template.md | durable local persona config | | references/persona-example.md | teaching example only (fictional) | | references/modules/post-autopsy.md | single-post diagnosis + 3 rewrites | | references/modules/scorecard.md | weekly health scorecard | | references/modules/peer-benchmark.md | 2–4 peer structure comparison | | references/oss-release.md | open-source package, dual-tree, leak scan | | references/community-skill-patterns.md | authoring notes for multi-operator community skills |

Overview

| Module | Purpose | |--------|---------| | A. Visibility | Hard lock vs search ban vs ghost/thread ban vs reply deboost vs behavioral demotion | | B. Audit | Profile, posting mix, engagement shape, risk flags | | C. Persona | Identity / promise / voice / pillars / proof | | D. Ops | Cadence, quality gates, weekly pack, recovery calendar | | E. Logged-in path | Analytics / notifications via user's own browser session | | M1. Post autopsy | One status → scores, layer hypothesis, 3 rewrites | | M2. Scorecard | Weekly mix + visibility + health score + one experiment | | M3. Peer benchmark | Target vs 2–4 peers → steal structures, not copy |

Tool priority (stable → heavy)

| # | Tool | Use for | |---|------|---------| | 1 | Profile + status URLs via browser_* | Liveness + post samples even when search is empty | | 2 | x_search | Ban evidence; healthy-account sampling (from:HANDLE) | | 3 | Owner logged-in browser (Codex cookie import / user Chrome / computer-use) | Self timeline, notifications, Analytics UI in suppressed-ops | | 4 | Third-party checkers | Supporting visibility flags only | | 5 | User-pasted 1–3 status URLs / screenshots | Fallback only | | 6 (optional) | xurl only if user opted in and OAuth works | Structured owner timeline / confirmed publish — see references/optional-xurl.md |

Default path needs no X API. Treat xurl as a user-facing option, not a prerequisite.

> Platform note: Distribution is multi-layer (search index, reply ranking, For You, following timeline, trust). “Ghost ban” is usually a bundle of suppressions, not one official switch. Third-party checkers are supporting only — always cross-check. Empty search ≠ empty account.

When to Use

  • User sends only @handle / “看看这个号” → always first-report (full detailed; no capability menu first)
  • shadowban / ghost ban / limited reach / not searchable / replies invisible to others
  • account health check, persona rebuild, positioning
  • warm-up copy, weekly calendar, recovery plan, content pillars
  • separate policy lock vs silent demotion vs weak content
  • single-post autopsy, rewrites, “why did this flop”
  • weekly scorecard / retrospective
  • peer / competitor structure benchmark
  • user has a logged-in browser session and wants ops readouts

Don't use for:

  • pure automated post/like/delete plumbing (user posts manually by default; optional xurl only if opted in)
  • bypassing platform security, credential stuffing, device farms
  • mass follow/unfollow, engagement pods, bought reach
  • promising “guaranteed unban” or fabricating evidence
  • verbatim cloning of peer posts
  • answering bare @handle with only a feature menu or multi-question intake
  • writing drafts in generic AI/marketing voice instead of mirroring the account

Local personalization (optional, per installer)

This skill ships with zero personal defaults.

If a user wants sticky preferences, they create a local-only file (gitignored if they fork):

x-ops-assistant/local/account-profile.md
# or: /local/account-profile.md

Copy from references/account-profile.template.md. On load:

  1. If local/account-profile.md exists → use it for intake defaults.
  2. Else → ask for @handle (or use the handle named in the user message). Never invent a community-wide default account.

Do not commit real cookies, tokens, or private analytics into the skill tree.

Community vs private install

When the user wants this skill 开源 / for the whole community (not only their account):

  1. Strip personal handles, products, and draft-path defaults from shipped SKILL.md / references/.
  2. Keep operator-specific data only under local/ (never in the public export).
  3. Produce a clean export tree and run a leak scan — see references/oss-release.md.
  4. Prefer module router + references/modules/* so agents load only the needed slice.
  5. If agent git commit / gh is blocked by consent, still deliver the clean directory; user publishes.

Phase 0 — Intake (≤30s)

Resolve without over-asking:

  1. Target @handle — required (from message, local profile, or one question if missing)
  2. Task type:
  • Message is only / mainly @handlefirst-report (do not ask)
  • Else: ban-check | audit | persona | content-plan | full-ops | post-autopsy | scorecard | peer-benchmark
  1. Window: 7d | 14d | 30d (default 14d)
  2. Logged-in needed? public diagnosis → no; Analytics/notifications → yes
  3. Output language — same as user

Done when: handle + task type are known. For bare @handle, task type is always first-report.


Phase A — Visibility / ghost-ban diagnosis (multi-signal)

A0. Vocabulary (use consistently)

| Label | User symptom | Common drivers | |-------|--------------|----------------| | Suspended / Locked | Login wall / restriction interstitial | Policy, reports, security lock | | Search ban | Posts/handle missing from search | Spam patterns, short-link floods, sensitive flags, new-account heat | | Search suggestion ban | Typeahead omits @handle | Cold start / low query volume (high false positive on checkers) | | Ghost / thread ban | Replies look fine to self, missing for others in-thread | Reply spam, follow churn, automation, spam labels | | Reply deboost | Replies pushed under “Show more replies” | Low trust, low-quality replies, reply farming | | Behavioral demotion | Reach collapsed; checkers often green | Extreme volume, reciprocal-follow rings, pure promo, automation feel |

Hard rules:

  1. First prove the account is not suspended/locked (profile URL, not search).
  2. Prove content exists via status URLs and/or profile postsfrom:HANDLE alone is insufficient and often false-negative under search ban.
  3. Always inspect Posts and Replies (reply-heavy accounts look empty on Posts only).
  4. Checkers are supporting — all-clear ≠ healthy distribution.
  5. Separate hard policy from behavioral demotion.
  6. Recovery: 48–72h cool-down, revoke shady third-party apps, slow spam cleanup, then 1–3 quality originals/day. Appeal only for lock/suspend — not pure silent demotion.
  7. If search is empty but profile/status live → enter suppressed-ops (references/data-sources.md); do not demand search-based uploads.

A1. Evidence checklist (run in order)

Target @HANDLE (strip @HANDLE):

1) Public liveness (first — before search)

https://x.com/HANDLE
https://x.com/HANDLE/with_replies

Record: 404 / suspended / protected / ok; bio; join date; follower visibility. If profile lists recent posts, capture 2–5 status URLs from the profile even if search later fails.

2) Content existence (do not rely on search alone)

Preferred order:

  1. Status URLs from profile DOM / pin / media
  2. Owner logged-in browser; optional xurl timeline only if already configured
  3. Then:
x_search → from:HANDLE
  • Hits → healthy search path; use samples freely
  • Empty + profile/status alive → search suppression signal; keep profile samples; enter suppressed-ops
  • Empty + profile dead → suspend/rename/protect/wrong handle

Open 2–3 status URLs logged-out. Record visible / login-wall / missing.

3) Search visibility (cross view) — evidence of ban, not the post library

  • Logged-out advanced search / exact phrase from a known post
  • If available: warmed account view vs brand-new / logged-out view
  • Searching as yourself for yourself → many false negatives
  • Document “search empty” explicitly in the evidence table

4) Third-party checkers (supporting only)

Open in browser (never submit passwords into random tools if avoidable):

  • https://shadowban.yuzurisa.com/
  • https://hisubway.online/shadowban/ (often /HANDLE)
  • https://opentweet.io/tools/shadowban-check

Capture each flag. Do not close the case on checker alone.

5) Behavioral surface (last 7d)

Estimate from profile/owner samples (not from empty search):

  • original / repost / reply ratio
  • reciprocal-follow language, mass @, short-link spam
  • new account + high heat
  • automation fingerprints (fixed templates, instant bursts)

6) Suppressed-ops handoff

If mode triggered: load references/data-sources.md, state it in the

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.