[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71V9QD3J4SNR6P9D26EV863":3,"skill-same:01M71V9QD3J4SNR6P9D26EV863":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M71V9QD3J4SNR6P9D26EV863","x-read",null,"Read tweets, threads, user timelines, mentions, bookmarks, likes, and search results from X (Twitter) via the official X API v2. Use when the user asks \"what's in this tweet\", \"summarize this thread\", \"show my mentions \u002F bookmarks\", \"what did \u003Cuser> tweet about\", \"what's trending on X about \u003Ctopic>\", or pastes an x.com \u002F twitter.com URL and wants the contents. Owned reads (the user's own posts, mentions, bookmarks, likes, followers, lists) cost $0.001 per resource since 2026-04-20; arbitrary tweet reads are $0.005. The skill never invents tweet text — every output is the literal API response or `null` when the API has no data. Does NOT post, like, follow, or mutate state — read-only.","marcelfahle\u002Fskills","marcelfahle","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F181004?v=4","01M71V903AQJB8NWJ2E7NY6PAE","Marcel Fahle","01M71V904B03N67WXVHVG0G4NQ",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fx-read\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"read","x read","text","output","api","URL","when","thread","use","only","Literal","twitter","trending","search","x api","read-only","official","never","show","posts","2026-11-10 13:02:02",false,"---\nname: x-read\ndescription: Read tweets, threads, user timelines, mentions, bookmarks, likes, and search results from X (Twitter) via the official X API v2. Use when the user asks \"what's in this tweet\", \"summarize this thread\", \"show my mentions \u002F bookmarks\", \"what did \u003Cuser> tweet about\", \"what's trending on X about \u003Ctopic>\", or pastes an x.com \u002F twitter.com URL and wants the contents. Owned reads (the user's own posts, mentions, bookmarks, likes, followers, lists) cost $0.001 per resource since 2026-04-20; arbitrary tweet reads are $0.005. The skill never invents tweet text — every output is the literal API response or `null` when the API has no data. Does NOT post, like, follow, or mutate state — read-only.\n---\n\n# x-read — Read tweets via X API v2\n\nRead-only client for the X (Twitter) v2 API. V1 wraps the eight most useful read endpoints behind a single bash script so any agent can paste a URL and get the tweet, fetch a user's timeline, check mentions, dump bookmarks, or run a recent-search.\n\nPosting, liking, following, and quote-posting are intentionally out of scope — those endpoints were removed from self-serve in April 2026 and require enterprise tier. Posting via API is also $0.20\u002Fpost which is not worth it.\n\n## When to invoke\n\nTrigger this skill when the user:\n\n- Pastes an `x.com\u002F\u003Cuser>\u002Fstatus\u002F\u003Cid>` or `twitter.com\u002F...` URL and wants the contents.\n- Asks \"what's in this tweet\", \"summarize this thread\", \"what did X say\".\n- Asks for their own mentions, bookmarks, liked tweets, or recent posts.\n- Asks \"what's a user tweeting about lately\" or \"show me \u003Cuser>'s timeline\".\n- Asks for a recent-search (\"tweets about \u003Ctopic> from this week\").\n\nSkip and use the browser\u002Fheadless path only if the user explicitly wants screenshots, the tweet is age-gated, or the API returns 403 (protected account).\n\n## Prerequisites — secrets the operator must set\n\nSet in the gateway environment (per OpenClaw env conventions):\n\n| Variable | Required for | How to get it |\n| --- | --- | --- |\n| `X_BEARER_TOKEN` | All public reads (tweet by id, timelines, mentions, search) | https:\u002F\u002Fdeveloper.x.com — Project → App → \"Bearer Token\". Pay-per-use plan, no flat tier. |\n| `X_USER_OAUTH_TOKEN` | Owned reads that need user context (bookmarks, liked_tweets when private) | OAuth 2.0 PKCE user token with `bookmark.read tweet.read users.read like.read` scopes. |\n| `X_USER_ID` | Convenience — let the user say \"my mentions\" without re-typing the numeric id | `curl -H \"Authorization: Bearer $X_USER_OAUTH_TOKEN\" https:\u002F\u002Fapi.x.com\u002F2\u002Fusers\u002Fme \\| jq -r .data.id` |\n\nIf any required token is missing, the script exits with code `2` and a clear `missing X_BEARER_TOKEN` message. Do NOT fall back to scraping or guessing — surface the missing-secret error to the user verbatim and stop.\n\n## Cost model (as of 2026-04-20)\n\n| Endpoint | Per call | Notes |\n| --- | --- | --- |\n| `GET \u002F2\u002Ftweets\u002F{id}` (someone else's) | $0.005 | \"Read\" billing tier |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Ftweets` (own timeline) | $0.001 | \"Owned read\" tier — 5× cheaper |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Fmentions` | $0.001 | Owned read |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Fbookmarks` | $0.001 | Owned read; needs OAuth user token |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Fliked_tweets` | $0.001 | Owned read |\n| `GET \u002F2\u002Ftweets\u002Fsearch\u002Frecent` | $0.005 | 7-day window only; use Apify for historical |\n\nHard cap: 2,000,000 post-reads\u002Fmonth before Enterprise tier. The script does NOT auto-batch or auto-paginate beyond `max_results` (default 10) — the agent must explicitly request more.\n\n## Usage\n\nThe skill ships a single bash entrypoint: `scripts\u002Fx-read.sh`. All commands print JSON (`--pretty` for indented). Pipe through `jq` for shaping.\n\n```bash\n# Single tweet (URL or id)\n.\u002Fscripts\u002Fx-read.sh tweet https:\u002F\u002Fx.com\u002Felonmusk\u002Fstatus\u002F1234567890\n.\u002Fscripts\u002Fx-read.sh tweet 1234567890\n\n# Multiple tweets in one call (cheaper)\n.\u002Fscripts\u002Fx-read.sh tweets 1234567890,1234567891,1234567892\n\n# A user's recent posts\n.\u002Fscripts\u002Fx-read.sh timeline elonmusk          # by username\n.\u002Fscripts\u002Fx-read.sh timeline 44196397 --max 25 # by numeric id\n\n# My mentions \u002F bookmarks \u002F likes (uses X_USER_ID)\n.\u002Fscripts\u002Fx-read.sh mentions\n.\u002Fscripts\u002Fx-read.sh bookmarks\n.\u002Fscripts\u002Fx-read.sh likes\n\n# Recent search (last 7 days)\n.\u002Fscripts\u002Fx-read.sh search '\"openclaw\" -is:retweet lang:en' --max 50\n\n# Resolve a username -> numeric id (handy + cheap)\n.\u002Fscripts\u002Fx-read.sh whois marcelfahle\n```\n\nOutput is the raw `data`\u002F`includes` envelope from the X API. Agents should parse `.data[].text`, `.includes.users[]`, `.includes.tweets[]` (for thread context) directly.\n\n## Reading a thread\n\nX v2 doesn't have a \"give me this thread\" endpoint. The script's `thread \u003Cid>` subcommand:\n\n1. Fetches the leaf tweet with `expansions=referenced_tweets.id,author_id`.\n2. Walks `referenced_tweets[type=replied_to]` upward until it hits a root.\n3. Then fetches the author's recent posts and stitches forward replies that share `conversation_id`.\n\nThis costs ~3–6 reads for a typical thread. For deeper threads, prefer Apify (V2 plan).\n\n## Anti-patterns (do NOT do)\n\n1. **Never invent tweet text.** If the API returns 404 or `errors[]`, surface the error verbatim. No paraphrasing from training data.\n2. **Never log the bearer token.** The script masks tokens in error output; agents must not echo `$X_BEARER_TOKEN` to the user or to logs.\n3. **Don't auto-paginate past `max_results=100`.** That burns the monthly cap fast. Ask the user to confirm before fetching > 100 tweets.\n4. **Don't use this for posting, liking, following, retweeting, or quote-posting.** Those endpoints aren't included on purpose.\n5. **Don't fall back to scraping x.com via the browser tool when an API call fails with rate-limit (429).** Honor the rate limit and tell the user.\n\n## Reference index\n\n- `references\u002Fendpoints.md` — Full endpoint catalog (URL, params, fields, costs).\n- `references\u002Fauth-setup.md` — Step-by-step OAuth 2.0 PKCE flow to mint the user token for bookmarks.\n- `references\u002Fmigration-to-apify.md` — When and how to switch this skill to the Apify \"Cheap & Simple X\" actor for bulk\u002Fhistorical (~$0.00046\u002Ftweet).\n\n## Roadmap\n\n- **V1 (this):** read-only, X API v2 official, bearer + optional user OAuth token.\n- **V2:** Apify backend behind the same CLI surface for bulk\u002Fhistorical reads at ~20× cheaper per tweet.\n- **V3:** thread reconstruction via Grok's free conversation expansion (when\u002Fif available on the public API).\n","# x-read — Read tweets via X API v2\n\nRead-only client for the X (Twitter) v2 API. V1 wraps the eight most useful read endpoints behind a single bash script so any agent can paste a URL and get the tweet, fetch a user's timeline, check mentions, dump bookmarks, or run a recent-search.\n\nPosting, liking, following, and quote-posting are intentionally out of scope — those endpoints were removed from self-serve in April 2026 and require enterprise tier. Posting via API is also $0.20\u002Fpost which is not worth it.\n\n## When to invoke\n\nTrigger this skill when the user:\n\n- Pastes an `x.com\u002F\u003Cuser>\u002Fstatus\u002F\u003Cid>` or `twitter.com\u002F...` URL and wants the contents.\n- Asks \"what's in this tweet\", \"summarize this thread\", \"what did X say\".\n- Asks for their own mentions, bookmarks, liked tweets, or recent posts.\n- Asks \"what's a user tweeting about lately\" or \"show me \u003Cuser>'s timeline\".\n- Asks for a recent-search (\"tweets about \u003Ctopic> from this week\").\n\nSkip and use the browser\u002Fheadless path only if the user explicitly wants screenshots, the tweet is age-gated, or the API returns 403 (protected account).\n\n## Prerequisites — secrets the operator must set\n\nSet in the gateway environment (per OpenClaw env conventions):\n\n| Variable | Required for | How to get it |\n| --- | --- | --- |\n| `X_BEARER_TOKEN` | All public reads (tweet by id, timelines, mentions, search) | https:\u002F\u002Fdeveloper.x.com — Project → App → \"Bearer Token\". Pay-per-use plan, no flat tier. |\n| `X_USER_OAUTH_TOKEN` | Owned reads that need user context (bookmarks, liked_tweets when private) | OAuth 2.0 PKCE user token with `bookmark.read tweet.read users.read like.read` scopes. |\n| `X_USER_ID` | Convenience — let the user say \"my mentions\" without re-typing the numeric id | `curl -H \"Authorization: Bearer $X_USER_OAUTH_TOKEN\" https:\u002F\u002Fapi.x.com\u002F2\u002Fusers\u002Fme \\| jq -r .data.id` |\n\nIf any required token is missing, the script exits with code `2` and a clear `missing X_BEARER_TOKEN` message. Do NOT fall back to scraping or guessing — surface the missing-secret error to the user verbatim and stop.\n\n## Cost model (as of 2026-04-20)\n\n| Endpoint | Per call | Notes |\n| --- | --- | --- |\n| `GET \u002F2\u002Ftweets\u002F{id}` (someone else's) | $0.005 | \"Read\" billing tier |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Ftweets` (own timeline) | $0.001 | \"Owned read\" tier — 5× cheaper |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Fmentions` | $0.001 | Owned read |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Fbookmarks` | $0.001 | Owned read; needs OAuth user token |\n| `GET \u002F2\u002Fusers\u002F{me}\u002Fliked_tweets` | $0.001 | Owned read |\n| `GET \u002F2\u002Ftweets\u002Fsearch\u002Frecent` | $0.005 | 7-day window only; use Apify for historical |\n\nHard cap: 2,000,000 post-reads\u002Fmonth before Enterprise tier. The script does NOT auto-batch or auto-paginate beyond `max_results` (default 10) — the agent must explicitly request more.\n\n## Usage\n\nThe skill ships a single bash entrypoint: `scripts\u002Fx-read.sh`. All commands print JSON (`--pretty` for indented). Pipe through `jq` for shaping.\n\n```bash\n# Single tweet (URL or id)\n.\u002Fscripts\u002Fx-read.sh tweet https:\u002F\u002Fx.com\u002Felonmusk\u002Fstatus\u002F1234567890\n.\u002Fscripts\u002Fx-read.sh tweet 1234567890\n\n# Multiple tweets in one call (cheaper)\n.\u002Fscripts\u002Fx-read.sh tweets 1234567890,1234567891,1234567892\n\n# A user's recent posts\n.\u002Fscripts\u002Fx-read.sh timeline elonmusk          # by username\n.\u002Fscripts\u002Fx-read.sh timeline 44196397 --max 25 # by numeric id\n\n# My mentions \u002F bookmarks \u002F likes (uses X_USER_ID)\n.\u002Fscripts\u002Fx-read.sh mentions\n.\u002Fscripts\u002Fx-read.sh bookmarks\n.\u002Fscripts\u002Fx-read.sh likes\n\n# Recent search (last 7 days)\n.\u002Fscripts\u002Fx-read.sh search '\"openclaw\" -is:retweet lang:en' --max 50\n\n# Resolve a username -> numeric id (handy + cheap)\n.\u002Fscripts\u002Fx-read.sh whois marcelfahle\n```\n\nOutput is the raw `data`\u002F`includes` envelope from the X API. Agents should parse `.data[].text`, `.includes.users[]`, `.includes.tweets[]` (for thread context) directly.\n\n## Reading a thread\n\nX v2 doesn't have a \"give me this thread\" endpoint. The script's `thread \u003Cid>` subcommand:\n\n1. Fetches the leaf tweet with `expansions=referenced_tweets.id,author_id`.\n2. Walks `referenced_tweets[type=replied_to]` upward until it hits a root.\n3. Then fetches the author's recent posts and stitches forward replies that share `conversation_id`.\n\nThis costs ~3–6 reads for a typical thread. For deeper threads, prefer Apify (V2 plan).\n\n## Anti-patterns (do NOT do)\n\n1. **Never invent tweet text.** If the API returns 404 or `errors[]`, surface the error verbatim. No paraphrasing from training data.\n2. **Never log the bearer token.** The script masks tokens in error output; agents must not echo `$X_BEARER_TOKEN` to the user or to logs.\n3. **Don't auto-paginate past `max_results=100`.** That burns the monthly cap fast. Ask the user to confirm before fetching > 100 tweets.\n4. **Don't use this for posting, liking, following, retweeting, or quote-posting.** Those endpoints aren't included on purpose.\n5. **Don't fall back to scraping x.com via the browser tool when an API call fails with rate-limit (429).** Honor the rate limit and tell the user.\n\n## Reference index\n\n- `references\u002Fendpoints.md` — Full endpoint catalog (URL, params, fields, costs).\n- `references\u002Fauth-setup.md` — Step-by-step OAuth 2.0 PKCE flow to mint the user token for bookmarks.\n- `references\u002Fmigration-to-apify.md` — When and how to switch this skill to the Apify \"Cheap & Simple X\" actor for bulk\u002Fhistorical (~$0.00046\u002Ftweet).\n\n## Roadmap\n\n- **V1 (this):** read-only, X API v2 official, bearer + optional user OAuth token.\n- **V2:** Apify backend behind the same CLI surface for bulk\u002Fhistorical reads at ~20× cheaper per tweet.\n- **V3:** thread reconstruction via Grok's free conversation expansion (when\u002Fif available on the public API).\n",{"name":5,"description":7},"main","d8d93dd8acd98e533741ae028bc51e0d71c57d6e","skills\u002Fx-read","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills","https:\u002F\u002Fgithub.com\u002Fmarcelfahle","https:\u002F\u002Fboldvideo.com","Tinkerer. Currently in JS and Elixir.","2026-11-06 12:24:34",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add marcelfahle\u002Fskills --skill x-read",{"tool":58,"command":59},"bunx","bunx skills add marcelfahle\u002Fskills --skill x-read",{"tool":61,"command":62},"pnpm","pnpm dlx skills add marcelfahle\u002Fskills --skill x-read","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fx-read\u002FSKILL.md",true,[66,72,76,80],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fauth-setup.md","REFERENCE","参考文档",3615,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fx-read\u002Freferences\u002Fauth-setup.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fendpoints.md",2861,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fx-read\u002Freferences\u002Fendpoints.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fmigration-to-apify.md",2692,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fx-read\u002Freferences\u002Fmigration-to-apify.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fx-read.sh","SCRIPT","脚本",10533,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fx-read\u002Fscripts\u002Fx-read.sh",[87,115,125,148,185,215],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":98,"publishedAt":39},"01M71V9WZ5T951VXAYY85YKXYE","zight","Analyze Zight screenshots and screen recordings from share.zight.com links. Use this skill automatically when a Zight link appears in a ticket, user message, or bug report. Handles both images (view directly) and videos (extract frames, transcribe audio, analyze visually). Produces a structured summary of what the user sees and says in the recording.","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzight\u002FSKILL.md",[93],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[89,99,100,101,102,25,24,103,104,105,106,19,107,108,109,110,111,112,113,114],"images","recording","Audio","ticket","Bash","analyze","message","screen","write","bug","bug report","recordings","screenshots","links","view","transcribe",{"skillNo":116,"name":117,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":121,"publishedAt":39},"01M71V9MY9KHW9AM4BKF3F702W","video-teardown","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-teardown\u002FSKILL.md",[120],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},[122,123,124],"Video","teardown","video teardown",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":39},"01M71V9GC0DR85JXAFCNPBFS7C","linkedin-archive","Archive Marcel's recent LinkedIn posts into the Obsidian vault as weekly markdown files matching the social-corpus format. Use when Marcel says \"archive my LinkedIn\", \"pull my LinkedIn\", \"\u002Flinkedin-archive\", \"update the social corpus\", or \"what did I post on LinkedIn this week — and capture it\". Runs as a Claude cowork skill on Marcel's own machine (logged-in browser session); does NOT run on the gateway VM. Companion to the Twitter side (`~\u002F.openclaw\u002Fbin\u002Fsocial-archive-x.mjs`, auto-cron Sat 21:00 Madrid) which uses the X API and runs unattended. LinkedIn API doesn't allow own-timeline reads at consumer tier, so this is intentionally manual\u002Fassisted.","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Flinkedin-archive\u002FSKILL.md",[],[132,133,134,135,136,38,33,137,138,139,140,141,25,23,142,143,144,145,146,147],"archive","linkedin","linkedin archive","weekly","which","browser session","obsidian","social","files","auto","linkedin posts","browser","markdown","run","update","at",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":168,"publishedAt":39},"01M71V9BRES9Q75A61ENN79EQX","keyword-research","Run real keyword research with DataForSEO. Volumes, CPC, keyword difficulty, SERP intent, competitor gaps, and clustered topical maps grounded in the user's ICP — not vibes. Use when the user wants to \"do keyword research,\" \"find keywords for,\" \"build a keyword list,\" \"what should I rank for,\" \"check search volume,\" \"find keyword gaps vs competitors,\" \"build a topical map,\" \"plan a content cluster,\" \"set up Google Ads keywords,\" \"build an AdWords campaign,\" or \"find long-tail keywords.\" Pulls the ICP from the user's Obsidian vault when present, talks to DataForSEO directly (REST or MCP), and produces a prioritized, intent-tagged keyword plan ready to feed into Ads, content, or SEO. Does NOT invent volumes or CPCs — every number is cited to a DataForSEO endpoint and timestamp.","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fkeyword-research\u002FSKILL.md",[154,157,160,163],{"categoryNo":155,"categoryName":156,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":158,"categoryName":159,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":161,"categoryName":162,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":164,"categoryName":165,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[169,170,171,172,173,32,174,138,175,176,177,178,179,25,180,181,182,183,184,145],"research","keyword research","SET","ready","volume","timestamp","up","campaign","icp","map","MCP","number","maps","plan","ads","intent",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":198,"publishedAt":39},"01M71V97Y5AH011CG6Q2917QP4","brand-dossier","Research a prospect\u002Fcompany\u002Fcreator (from names or URLs) and produce a Bold demo-prep brand dossier — a folder with a paste-ready markdown file (org context, persona, tone, topics, transcription dictionary, conversation starters) plus downloaded logos and extracted brand colors. Use when preparing a Bold demo tenant for a prospect, or when asked to \"research X for a demo\", \"make a dossier\", or \"brand research\".","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fbrand-dossier\u002FSKILL.md",[191,194,195],{"categoryNo":192,"categoryName":193,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":158,"categoryName":159,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":196,"categoryName":197,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000032","设计师",[199,200,201,202,203,172,204,205,206,207,208,209,27,25,210,211,212,213,169,214],"brand","brand dossier","dossier","tenant","conversation","prospect","bold","for","company","persona","produce","file","tone","demo","with","topics",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":219,"categories":220,"keywords":227,"publishedAt":39},"01M71V92JFSQQ2SEZSJ86RPTC4","alpha-humanizer","Transform AI-generated content into prose that reads as 100% human-written. Use when the user wants to \"humanize\" text, make AI content undetectable, rewrite content to sound human, bypass AI detectors, remove the \"AI voice,\" write with authentic human voice, or produce content that passes as organic human writing. Also triggers on \"rewrite this to sound human,\" \"make this not sound like AI,\" \"humanize this,\" \"remove AI patterns,\" \"write like a real person,\" or any request to eliminate synthetic writing patterns. Handles blog posts, LinkedIn posts, sales copy, emails, essays, technical docs, social media, landing pages, product descriptions, and thought leadership. Does NOT just swap words — it restructures the cognitive architecture of the text.","https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002FSKILL.md",[221,224],{"categoryNo":222,"categoryName":223,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":225,"categoryName":226,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000036","内容创作者",[228,229,230,231,38,232,233,139,234,235,236,25,237,238,142,239,21,240,241,242],"humanizer","alpha","alpha humanizer","humanize","Media","remove","generated","writing","human writing","technical docs","architecture","synthetic","essays","leadership","product"]