Govern X (Twitter) account work through three lanes: evidence reads, typed act plans for posting and account hygiene, and gated execution with per-act…
Skill by runxhq
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/runxhq-twitter
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/twitter
What's inside
- Skill name
twitter- Description
- Govern X (Twitter) account work through three lanes: evidence reads, typed act plans for posting and account hygiene, and gated execution with per-act provider evidence. Nothing reaches a live timeline or mutates an account without an explicit approval recorded in the receipt.
- License
- Apache-2.0
- Instructions
- 391 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (35)
- SKILL.md
- account-stop.yaml · fixtures/
- composes-in-graph.yaml · fixtures/
- continue-saved-plan.yaml · fixtures/
- archive-follower.js · fixtures/data/
- archive-following.js · fixtures/data/
- archive-tweets.js · fixtures/data/
- default-requires-twitter-binding.yaml · fixtures/
- execute-digest-mismatch-refuses.yaml · fixtures/
- execute-missing-plan.yaml · fixtures/
- execute-post-publishes-and-reads-back.yaml · fixtures/
- execute-refused-plan-noop.yaml · fixtures/
- execute-unfollow-batch-stops-at-rate-limit.yaml · fixtures/
- failure-continuation.yaml · fixtures/
- plan-missing-evidence-needs-input.yaml · fixtures/
- plan-prune-ready.yaml · fixtures/
- read-archive-audit.yaml · fixtures/
- read-own-posts-pages.yaml · fixtures/
- recent-empty.yaml · fixtures/
- select-nonmutual-ready.yaml · fixtures/
- select-retweets-ready.yaml · fixtures/
- status-missing-plan.yaml · fixtures/
- account-stop.graph · fixtures/support/
- composed.graph · fixtures/support/
- continuation.graph · fixtures/support/
- failure-continuation.graph · fixtures/support/
- catalog.md · references/
- run.yaml
- twitter-execution-batch.mjs
- twitter-execution-result.mjs
- twitter-execution-values.mjs
- twitter-execution.mjs
- twitter-memory.mjs
- twitter-read.mjs
- twitter-selection.mjs
SKILL.md (first lines)
# Twitter One account, three lanes: read evidence, plan typed acts, execute an approved plan. This is the public branded X (Twitter) catalog skill for the `message-send` action family. Its core invariant: the agent may read, audit, draft, and plan freely, but every act that publishes to a public timeline or mutates the account stops at a human approval gate, and the sealed receipt proves which acts ran, against which plan digest, with which provider evidence. Write for the operator who owns the account, the reviewer who approves a live act, and downstream skills that consume the resulting packets. Keep each plan to the smallest evidence-backed act set that satisfies the objective. Existing post and user ids must come from supplied evidence, never memory or guesswork; name missing evidence as a blocker. ## What this skill does Seven runners: - `read`: collect account evidence from the live API through the `twitter` connector. Queries: `snapshot`, `posts`, `mentions`, `search`, `following`, `followers`. A query without `params.user_id` reads the authenticated account; with it, another account. The connector reads whole pages until it has at least `max_items`, keeps every item of them, and reports in `next_cursor` where a further read starts (pass it back as `params.pagination_token`). Emits `runx/twitter.evidence.v1`. Read-only; no gate. - `read-archive`: inspect one contained X archive export (`tweets.js`, `following.js`, or `follower.js`) through the runtime's digest-bound artifact page seam. Twitter code receives bounded, record-complete pages and never a path or whole-file escape hatch. The runtime snapshots up to 512 MiB and this skill requests 512 KiB pages; the page size is not a total archive limit. Emits the same `runx/twitter.evidence.v1` packet; no gate. - `plan`: turn one bounded objective plus evidence into `runx/twitter.plan.v1`, an explicit list of typed acts with rationale, using agent judgment, then bind the exact plan through native `data.digest`. This is the curated lane, for dozens of acts that each deserve a reason. A plan is a draft; it delivers nothing. The result exposes `twitter_plan.data` and the matching `digest_result.data.digest` required by `execute`; callers never calculate the digest themselves. - `select`: the bulk lane. Apply a deterministic predicate to an archive export and emit a compact plan, no agent judgment. Use it when the criterion is mechanical and the match set runs to thousands, where a per-item rationale would be wrong and would exceed the runtime output limit. Two targets: `posts` pages `tweets.js` and emits `delete_post` acts (predicate: author, date range, engagement threshold), with identical results across page sizes; `users` reads a bounded `following.js` bundle and emits `unfollow` acts (predicate: `non_mutual: true` for accounts you follow that do not follow back, needing `follower.js` too, or an explicit `user_ids` list). Emits `runx/twitter.selection.v1` carrying a digest-bound `twitter_plan`. - `execute`: run the next batch of an approved plan as one `twitter` connector operation behind its own approval, sealing per-act outcomes into `runx/twitter.execution.v1` and appending one compact progress fact to a durable execution ledger. A batch is one published act (a post, reply, quote, or one thread segment), or the contiguous run of up to 50 acts of one other kind from the cursor. The approval binds that exact call. The kernel records each act's outcome as it lands and stops sending at a rate limit, so a monotonic cursor, not an accumulated id list, is enough to resume safely. ### Durable operation memory and continuation The skill remembers an operation in its bound `store`, local to the workspace by default. It saves the exact plan once under its native digest, separately from the compact execution progress stream. The saved plan preserves the objective, account principal, exact content and targets, rationale, evidence references and any applied context bindings. Progress preserves the pinned account id, next act, partial thread cursor, cumulative processed, succeeded and failed act counts, a bounded last failure evidence reference, the last batch summary and structured stop advice. No host opens the store database, reconstructs completed ids or calculates plan hashes. On the first `execute`, supply `plan_json` and its native `plan_digest` from `plan` or `select`. A valid plan is saved before the effect approval; saving it is not approval. On later calls, omit `plan_json` and supply only the digest. The skill reads its own progress, selects the next batch and derives the expected stream version and canonical retry key. The logical store defaults to `local://twitter`; pass `data_source_uri` when the operation uses another binding, and keep using that same workspace and store. - `status` reads one plan and its progress without contacting X. It returns the objective, principal, current cursor, partial thread, last batch, next batch summary, cumulative outcome counts, failure evidence, structured `stop`, `retry_at`, and compact `next_input` for `execute`. It never returns an approval or claims a proposed batch has run. `needs_plan` means this store has no saved plan: provide the original exact plan once, rather than inventing it or resetting a progress stream. - `recent` lists a bounded page of prior execution summaries and plan digests. It does not scan history or return every post. A plan saved at an approval pause has no completed batch yet; find that paused invocation through native run history and resume its run id. Each execution reads the bound account. It runs only when that account matches the plan's principal (`account:@handle`, case insensitive) and, once progress has pinned an account id, that same account. The exact approval identifies the verified handle, account id, target and payload. Another available account is never a fallback. A native invocation and a multi-batch plan have different identities. If the invocation pauses, continue **that run id** through `runx resume`; do not start another run to escape an approval. If a call is interrupted or its outcome is unknown, read native history and reconcile that same invocation first. Runx owns in-flight custody and whether an effect may be retried. Only after a batch is sealed and its result understood should another `execute` start the next batch. A saved plan, status, receipt or supplied approval reference is context, never new authority. Relay only actual operator decisions bound to the exact native request. Threads advance one segment per batch. The saved cursor contains the next segment and confirmed reply id, so continuation does not repost earlier segments. The cursor counts processed acts. Only provider-confirmed successful acts increment `counts.succeeded`; settled refusals increment `counts.failed`. A partially published thread is not a completed act. Failures remain visible across later batches through cumulative counts and a bounded `last_failure` containing the act, reason and native evidence reference. At the end, execution returns `completed_with_failures` and status returns `complete_with_failures` when any terminal act failed. Detailed outcomes remain in native evidence. A refused plan, digest mismatch or already-complete plan does not append a fake progress event.
From runxhq/runx, Apache-2.0.
More from runxhq/runx
- 0.719score
code-plan
runxhq
Compile a bounded objective or code-intake change set into a dependency-safe Runx execution plan, with deterministic checks for evidence preservation…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
policy-draft
runxhq
Draft or tighten a Runx operational policy from a governance brief, then validate the exact runx.operational_policy.v1 contract with the native policy engine.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
redact-pii
runxhq
Detect and remove personal data before content crosses a trust boundary, returning usable scrubbed content only when a deterministic residual scan passes.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
skill-review
runxhq
Inspect, safely test, and assess one Runx skill package for capability, trust, and operator readiness.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
reddit
runxhq
Manage named Reddit accounts through their existing browser sessions, find useful conversations, draft in each account's voice, and submit one exactly…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
prior-art
runxhq
Inspect bounded local repository and Runx catalog evidence before a design, draft, or operator decision, then produce citation-bound findings and a reuse…
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
cold-outreach
runxhq
Prepare one relevant, evidence-bound cold email for an exact prospect using scoped brand and taste context; hold unsafe or unsupported contact and leave…
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
conversation-review
runxhq
Review one grounded provider-neutral conversation, prepare an unsent reply or follow-up, and identify genuine coding requests for a separate engineering intake.
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
crm-update-plan
runxhq
Reconcile a call transcript against current CRM records and propose allowlisted field updates, each traced to a verbatim transcript quote, with the write left…
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
attention-review
runxhq
Decide which bounded personal observations warrant attention, then return a source-bound private briefing intent and next-check proposal.
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
contact-consent-review
runxhq
Decide and record conservative contact-consent transitions from bounded engagement, bounce, and consent evidence before any send.
SkillAFreshness: A★ 104Claude Code +9 - 0.716score
content-package
runxhq
Turn governed source evidence into a citation-bound reader-facing draft, channel package, and provider-neutral publication handoff.
SkillAFreshness: A★ 104Claude Code +9
Signals
- Stars
- 104
- Forks
- 109
- Open issues
- 16
- Contributors
- 16
- Last commit (this folder)
- Oct 22, 2026 (6 days ago)
- Last release
- Oct 18, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/runxhq/runx
- Website
- runx.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from runxhq
- 0.719score
redact-pii
runxhq
Detect and remove personal data before content crosses a trust boundary, returning usable scrubbed content only when a deterministic residual scan passes.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
reddit
runxhq
Manage named Reddit accounts through their existing browser sessions, find useful conversations, draft in each account's voice, and submit one exactly…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
policy-draft
runxhq
Draft or tighten a Runx operational policy from a governance brief, then validate the exact runx.operational_policy.v1 contract with the native policy engine.
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
prior-art
runxhq
Inspect bounded local repository and Runx catalog evidence before a design, draft, or operator decision, then produce citation-bound findings and a reuse…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
code-plan
runxhq
Compile a bounded objective or code-intake change set into a dependency-safe Runx execution plan, with deterministic checks for evidence preservation…
SkillAFreshness: A★ 104Claude Code +9 - 0.719score
skill-review
runxhq
Inspect, safely test, and assess one Runx skill package for capability, trust, and operator readiness.
SkillAFreshness: A★ 104Claude Code +9
Cite this page
twitter skill. Agent Mart. https://agentmart.dev/skills/runxhq-twitter (last updated 2026-10-24)