{"slug":"jianshuo-wjs-x-increasing-follower-8ca787","title":"X\u6da8\u7c89\u5b9e\u9a8c\u8d26\u672c\u4e0e\u8f6c\u5316\u7387\u8ddf\u8e2a","description":"\u628aX\u6da8\u7c89\u6539\u52a8\u767b\u8bb0\u4e3a\u5e26\u7f16\u53f7\u3001\u5047\u8bbe\u3001\u76ee\u6807\u6307\u6807\u4e0ebefore\u503c\u7684\u5b9e\u9a8c\uff0c\u4ee5\u65b0\u589e\u5173\u6ce8\u00f7\u4e3b\u9875\u8bbf\u95ee\u7684\u8f6c\u5316\u7387\u4e3a\u5317\u6781\u661f\u6307\u6807\uff0c\u7528\u4e2d\u4f4d\u6570\u3001\u6700\u5c0f\u6837\u672c\u4e0e\u6df7\u6dc6\u6807\u8bb0\u505a\u65b9\u5411\u6027\u5224\u51b3\uff0c\u652f\u6301keep/rollback\u5e76\u751f\u6210\u770b\u677f\u3002\u6570\u636e\u4f9d\u8d56Analytics CSV\u5bfc\u51fa\u3002","category":"\u590d\u76d8\u4e0e\u589e\u957f","tags":["jianshuo","\u5efa\u7855","\u590d\u76d8\u4e0e\u589e\u957f"],"author":"\u5efa\u7855 \u00b7 jianshuo","source_url":"https://github.com/jianshuo/claude-skills/blob/d36bc423286a34eb32adc604121e5c7714b08740/wjs-x-increasing-follower/SKILL.md","license":"MIT","status":"published","verification":"source_reviewed","verification_notes":"\u5df2\u6838\u5bf9\u539f\u59cb\u4ed3\u5e93\u3001\u56fa\u5b9a\u63d0\u4ea4\u3001\u8bb8\u53ef\u3001\u6280\u80fd\u6b63\u6587\u4e0e\u5305\u7ed3\u6784\uff0c\u5e76\u8865\u5145\u4e2d\u6587\u6267\u884c\u9a8c\u6536\u8bf4\u660e\uff1b\u672a\u8fd0\u884c\u5305\u5185\u811a\u672c\u3002","revision":"b87e6763e353462d8c4844d844c5592e","created_at":"2026-11-02T14:47:08+00:00","updated_at":"2026-11-02T14:47:08+00:00","source_repo":"jianshuo/claude-skills","source_path":"wjs-x-increasing-follower/SKILL.md","source_commit":"d36bc423286a34eb32adc604121e5c7714b08740","source_updated_at":"2026-11-02T14:46:04+00:00","stars":0,"proxy_score":null,"score":null,"grade":null,"dimensions":{},"evaluation":{},"installs":0,"platforms":[],"formats":[],"category_slug":"growth","category_name":"\u590d\u76d8\u4e0e\u589e\u957f","quality":{"review_type":"text_and_package_review","readiness":"requires_setup","reviewed_at":"2026-11-02T14:46:04+00:00","review_summary":"\u5b9e\u9a8c\u8d26\u672c\u3001\u6307\u6807\u5206\u5c42\u4e0e\u62a4\u680f\u8bbe\u8ba1\u5177\u4f53\u53ef\u6267\u884c\uff0c\u4f46\u9700\u66ff\u6362\u4e2a\u4eba\u8eab\u4efd\u4e0e\u8def\u5f84\u3001\u6e05\u7a7a\u793a\u4f8b\u72b6\u6001\uff0c\u5e76\u63a5\u53d7CSV\u4eba\u5de5\u5bfc\u51fa\u8fd9\u4e00\u7ea6\u675f\u3002","cost_notes":"\u4ec5\u672c\u5730\u811a\u672c\u4e0eX\u81ea\u5e26\u5206\u6790\u5bfc\u51fa\uff0c\u65e0\u7b2c\u4e09\u65b9\u4ed8\u8d39API\uff1bxurl\u4e3a\u516c\u5f00\u5de5\u5177\uff0c\u6388\u6743\u4e0e\u914d\u989d\u9700\u7528\u6237\u81ea\u884c\u786e\u8ba4\u3002","source_sha256":"b91dd45f1c8c4fec05227088257caa14212fc8bfe7fd39018167fb64eba9fe17","prerequisites":["Python 3\u4e0ebash\u8fd0\u884c\u73af\u5883","X\u8d26\u53f7\u53ef\u5bfc\u51faAnalytics CSV","\u53ef\u9009\uff1axurl\u547d\u4ee4\u884c\u4e0eOAuth1\u6388\u6743\u7528\u4e8eAPI\u6539profile\uff1b\u65e0\u5219\u624b\u52a8\u4fee\u6539","state\u76ee\u5f55\u53ef\u5199\uff0cinbox\u76ee\u5f55\u7528\u4e8e\u653e\u7f6eCSV"],"checks":["ingest-csv.py\u6253\u5370\u7684\u5217\u6620\u5c04\u4e0e\u5b9e\u9645CSV\u8868\u5934\u4e00\u81f4\uff0cratio\u8ba1\u7b97\u62bd\u67e5\u6b63\u786e","\u6bcf\u4e2aactive\u5b9e\u9a8c\u5747\u6709before\u5b57\u6bb5\u4e0e\u503c\uff0c\u53ef\u636e\u6b64\u8fd8\u539f","evaluate.py\u5bf9post\u6570\u636e\u4e0d\u8db33\u5929\u6216baseline\u8fc7\u8584\u7684\u5b9e\u9a8c\u7ed9\u51fameasuring\u6216thin baseline\u6807\u8bb0","\u540c\u6307\u6807\u7a97\u53e3\u91cd\u53e0\u7684\u5b9e\u9a8c\u88ab\u6807\u8bb0confounded","SCOREBOARD.md\u7684\u73b0\u72b6ratio\u4e0edaily.jsonl\u6700\u65b0\u8bb0\u5f55\u4e00\u81f4"],"limitations":["\u811a\u672c\u672a\u5728\u672c\u5ba1\u9605\u4e2d\u8fd0\u884c\uff0c\u5217\u540d\u6a21\u7cca\u5339\u914d\u4e0e\u65e5\u671fupsert\u9700\u9996\u6b21\u6267\u884c\u65f6\u6838\u5bf9","\u5355\u8d26\u53f7\u53ea\u80fd\u505a\u65f6\u95f4\u8f74\u524d\u540e\u5bf9\u6bd4\uff0c\u7ed3\u8bba\u4e3a\u65b9\u5411\u6027\uff0c\u4e0d\u6784\u6210\u56e0\u679c","ratio\u4ec5\u5b58\u5728\u4e8eAnalytics\u5bfc\u51fa\uff0c\u65e0\u6cd5\u901a\u8fc7API\u81ea\u52a8\u83b7\u53d6\uff0c\u9700\u4eba\u5de5\u5bfc\u51faCSV","\u5934\u50cf\u3001banner\u3001\u7f6e\u9876\u63a8\u65e0\u53ef\u9760\u516c\u5f00API\uff0c\u9700\u624b\u52a8\u4fee\u6539\u5e76\u81ea\u884c\u8bb0\u8d26"],"issues":["SKILL.md\u7ed1\u5b9a\u7279\u5b9a\u4f5c\u8005\u738b\u5efa\u7855\u5e76\u542b\u4e2a\u4eba\u8def\u5f84\u4e0e\u8c03\u5ea6\u793a\u4f8b\uff0c\u901a\u7528\u4f7f\u7528\u9700\u66ff\u6362\u8eab\u4efd\u4e0e\u8def\u5f84","state/daily.jsonl\u4e0eactions.jsonl\u4e3a\u793a\u4f8b\u6570\u636e\uff0c\u76f4\u63a5\u4f7f\u7528\u4f1a\u6df7\u5165\u4ed6\u4eba\u8bb0\u5f55\uff0c\u9700\u6e05\u7a7a\u6216\u786e\u8ba4","\u56de\u6eda\u4f9d\u8d56\u4eba\u5de5\u786e\u8ba4\u4e0e\u624b\u52a8\u8fd8\u539f\uff0c\u811a\u672c\u4ec5\u6253\u5370before\u503c\uff0c\u4e0d\u81ea\u52a8\u6267\u884c"],"missing_files":[]},"quality_url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/SHILIU-QUALITY.md","usage_guide":{"task":"\u7cfb\u7edf\u5316\u8fd0\u884cX\u6da8\u7c89\u5b9e\u9a8c\uff1a\u5bfc\u5165Analytics CSV\u751f\u6210\u6bcf\u65e5\u6307\u6807\uff0c\u63d0\u51fa\u5e26\u7f16\u53f7\u4e0e\u53ef\u8bc1\u4f2a\u5047\u8bbe\u7684\u5b9e\u9a8c\uff0c\u4e0a\u7ebf\u524d\u6293\u53d6profile before\u503c\uff0c\u6309\u7a97\u53e3\u5bf9\u6bd4baseline\u4e0epost\u4e2d\u4f4d\u6570\u7ed9\u51fakeep/rollback/flat\u65b9\u5411\u6027\u5224\u51b3\uff0c\u5e76\u751f\u6210\u770b\u677f\u3002","inputs":"X Analytics Overview\u5bfc\u51fa\u7684CSV\uff08\u542bProfile visits\u3001New follows\u3001Impressions\u3001Followers\u7b49\u5217\uff09\uff1b\u5f53\u524dprofile\u5b57\u6bb5\u503c\uff08name\u3001description\u3001url\u3001location\u7b49\uff09\uff1b\u53ef\u9009xurl\u4e0eOAuth1\u7528\u4e8eAPI\u6539profile\uff0c\u5426\u5219\u624b\u52a8\u6539\u5e76\u8bb0\u8d26\u3002","outputs":"state/daily.jsonl\uff08\u6bcf\u65e5\u8bbf\u95ee\u3001\u65b0\u589e\u5173\u6ce8\u3001ratio\u7b49\uff09\u3001state/actions.jsonl\uff08\u5b9e\u9a8c\u8d26\u672c\u542bbefore/after\u4e0e\u5224\u51b3\uff09\u3001state/SCOREBOARD.md\uff08\u73b0\u72b6\u3001\u5728\u8dd1\u5b9e\u9a8c\u3001\u5f85\u529e\u3001\u5df2\u7ed3\u6848\uff09\uff0c\u4ee5\u53caevaluate.py\u6253\u5370\u7684baseline\u4e0epost\u5bf9\u6bd4\u4e0e\u544a\u8b66\u6807\u8bb0\u3002","example_input":"\u5bfc\u5165\u8fd9\u4efdAnalytics CSV\uff0c\u7136\u540e\u5e2e\u6211\u767b\u8bb0\u4e00\u4e2aprofile\u5b9e\u9a8c\uff1abio\u5f00\u5934\u653e\u4e00\u884c\u786c\u8bc1\u660e\uff0c\u5047\u8bbe\u662f\u8bbf\u5ba2\u770b\u5230\u5177\u4f53\u6210\u7ee9\u66f4\u613f\u610f\u5173\u6ce8\uff0c\u6307\u6807\u7528\u8f6c\u5316\u7387\u3002","example_output":"\u793a\u610f\uff1aingest-csv.py\u6253\u5370\u8bc6\u522b\u5230\u7684\u5217\u6620\u5c04\u5e76\u5199\u5165daily.jsonl\uff1bledger.py add\u751f\u6210\u7f16\u53f7\u5b9e\u9a8c\u8bb0\u5f55\uff1bapply\u540e\u8bb0\u5f55before\u7684description\u539f\u6587\uff1bevaluate.py\u8f93\u51fabaseline\u4e0epost\u4e2d\u4f4dratio\u53ca\u0394%\u4e0econfounded/thin baseline\u6807\u8bb0\uff1bSCOREBOARD.md\u56db\u533a\u5757\u66f4\u65b0\u3002\u4ee5\u4e0a\u4e3a\u7ed3\u6784\u793a\u610f\uff0c\u975e\u771f\u5b9e\u8fd0\u884c\u7ed3\u679c\u3002"},"read_url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787","skill_url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/SKILL.md","download_url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/download","install_url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/install","files":[{"path":"LICENSE","bytes":1082,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/LICENSE"},{"path":"SHILIU-QUALITY.md","bytes":2180,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/SHILIU-QUALITY.md"},{"path":"SKILL.md","bytes":8524,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/SKILL.md"},{"path":"scripts/_common.py","bytes":1850,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/scripts/_common.py"},{"path":"scripts/daily-check.sh","bytes":1107,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/scripts/daily-check.sh"},{"path":"scripts/evaluate.py","bytes":6748,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/scripts/evaluate.py"},{"path":"scripts/ingest-csv.py","bytes":4837,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/scripts/ingest-csv.py"},{"path":"scripts/ledger.py","bytes":5452,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/scripts/ledger.py"},{"path":"scripts/scoreboard.py","bytes":4824,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/scripts/scoreboard.py"},{"path":"shiliu-quality.json","bytes":1818,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/shiliu-quality.json"},{"path":"shiliu-source.json","bytes":277,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/shiliu-source.json"},{"path":"state/SCOREBOARD.md","bytes":1958,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/state/SCOREBOARD.md"},{"path":"state/actions.jsonl","bytes":3060,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/state/actions.jsonl"},{"path":"state/daily.jsonl","bytes":46088,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/state/daily.jsonl"},{"path":"usage.json","bytes":1327,"url":"https://shiliuai.cn/api/v2/skills/jianshuo-wjs-x-increasing-follower-8ca787/files/usage.json"}],"content":"---\nname: wjs-x-increasing-follower\ndescription: Use when \u738b\u5efa\u7855 wants to systematically grow his X (Twitter) followers by running numbered, A/B-testable growth experiments and tracking which ones actually work. Every action gets a number, a hypothesis, a target metric, a before-state (for rollback), and a verdict. The North-Star metric is the new-follower \u00f7 profile-visit ratio (conversion) \u2014 every profile change is judged against it. Daily it ingests the X Analytics CSV export, scores each running experiment, and recommends keep / rollback. Triggers \u2014 \"\u6da8\u7c89\", \"\u589e\u52a0 X \u7c89\u4e1d\", \"X \u6da8\u7c89\u5b9e\u9a8c\", \"follower growth\", \"A/B test my profile\", \"\u4eca\u5929\u7684\u6da8\u7c89\u68c0\u67e5\", \"/wjs-x-increasing-follower\".\n---\n\n# wjs-x-increasing-follower\n\n\u628a\u300c\u6da8\u7c89\u300d\u5f53\u5de5\u7a0b\u505a\uff1a**\u6bcf\u4e2a\u6539\u52a8\u662f\u4e00\u4e2a\u5e26\u7f16\u53f7\u7684\u5b9e\u9a8c**\uff0c\u6709\u5047\u8bbe\u3001\u6709\u76ee\u6807\u6307\u6807\u3001\u6709 before\uff08\u53ef\u56de\u6eda\uff09\u3001\u6709\u5224\u51b3\u3002\u4e0d\u9760\u611f\u89c9\uff0c\u9760\u6570\u3002\n\n## Core Principle\n\n**\u5355\u8d26\u53f7\u6ca1\u6cd5\u505a\u5e73\u884c A/B \u2014\u2014 \u53ea\u80fd\u505a\u65f6\u95f4\u8f74\u4e0a\u7684\u524d\u540e\u5bf9\u6bd4\u3002** \u6240\u4ee5\u552f\u4e00\u53ef\u4fe1\u7684\u5317\u6781\u661f\u6307\u6807\u662f **\u8f6c\u5316\u7387 = \u65b0\u589e\u5173\u6ce8 \u00f7 \u4e3b\u9875\u8bbf\u95ee\uff08ratio\uff09**\uff1a\u5b83\u5bf9\u7206\u6b3e\u6d41\u91cf\u514d\u75ab\u3002\u4e00\u6761\u63a8\u7206\u4e86\u5e26\u6765\u4e00\u5806\u8bbf\u95ee\uff0cratio \u4e0d\u4e00\u5b9a\u52a8\uff1b\u4f46 bio \u6539\u597d\u4e86\uff0c\u6bcf\u4e2a\u6765\u8bbf\u7684\u4eba\u66f4\u613f\u610f\u5173\u6ce8\uff0cratio \u4e00\u5b9a\u52a8\u3002\n\n**\u6240\u4ee5\u6307\u6807\u5206\u5c42\uff08\u6bcf\u4e2a action \u5fc5\u987b\u58f0\u660e\u81ea\u5df1\u88ab\u54ea\u4e2a\u6307\u6807\u8003\u6838\uff09\uff1a**\n\n| Action \u7c7b\u578b | \u62e8\u52a8\u7684\u6760\u6746 | \u7528\u4ec0\u4e48\u8003\u6838 |\n|---|---|---|\n| **profile**\uff08bio / \u540d\u5b57 / \u5934\u50cf / banner / \u7f6e\u9876 / URL / \u5730\u70b9\uff09 | \u8f6c\u5316 | **ratio**\uff08\u5317\u6781\u661f\uff0c\u6297\u7206\u6b3e\uff09 |\n| **posting**\uff08\u683c\u5f0f / \u94a9\u5b50 / \u9891\u7387 / thread vs \u5355\u6761\uff09 | \u89e6\u8fbe | profile visits + impressions\uff08ratio \u5f53\u62a4\u680f\uff0c\u522b\u628a\u8f6c\u5316\u62d6\u57ae\uff09 |\n| **engagement**\uff08\u56de\u590d / \u5173\u6ce8\u522b\u4eba / \u4e92\u52a8\uff09 | \u89e6\u8fbe | new follows + visits |\n| **timing**\uff08\u53d1\u5e03\u65f6\u95f4\uff09 | \u89e6\u8fbe | profile visits |\n\n**\u8bda\u5b9e\u62a4\u680f\uff08\u5199\u6b7b\u5728 evaluate.py \u91cc\uff09\uff1a** \u7528\u4e2d\u4f4d\u6570\u4e0d\u7528\u5747\u503c\uff08\u4e00\u5929\u7206\u6b3e\u9a97\u4e0d\u4e86\u5224\u51b3\uff09\uff1b\u591f 7 \u5929 / \u591f\u6570\u636e\u624d\u4e0b\u5224\u51b3\uff1b\u540c\u6307\u6807\u5b9e\u9a8c\u7a97\u53e3\u91cd\u53e0 \u2192 \u6253 `confounded` \u6807\u8bb0\uff1b\u53ea\u7ed9\u300c\u65b9\u5411\u6027\u300d\u7ed3\u8bba\uff0c\u4e0d\u53f7\u79f0\u56e0\u679c\u3002\n\n**\u56de\u6eda\u662f\u4e00\u7b49\u516c\u6c11\u3002** \u6bcf\u4e2a action \u5b58\u4e86\u7cbe\u786e\u7684 before \u503c\uff0c#N \u6c38\u8fdc\u80fd\u8fd8\u539f\u3002\u5224 \u274c rollback **\u5148\u95ee\u738b\u5efa\u7855\uff0c\u7edd\u4e0d\u9759\u9ed8\u6539\u4ed6\u7684 bio**\u3002\n\n## \u6570\u636e\u4ece\u54ea\u6765\uff08\u5173\u952e\u7ea6\u675f\uff09\n\nratio \u8fd9\u4e2a\u6570 **X API / xurl \u62ff\u4e0d\u5230** \u2014\u2014 \u53ea\u6d3b\u5728 Analytics \u770b\u677f\u91cc\u3002\u6240\u4ee5\u9760 **CSV \u5bfc\u51fa**\uff1a\n\u6253\u5f00 `x.com/i/account_analytics` \u2192 Overview \u2192 \u53f3\u4e0a\u89d2\u4e0b\u8f7d\u56fe\u6807\uff087D/2W/4W/3M/1Y \u60f3\u8981\u54ea\u6bb5\u5148\u9009\u597d\uff09\u2192 \u5bfc\u51fa CSV \u2192 \u4e22\u8fdb `inbox/`\uff08\u6216\u76f4\u63a5\u7ed9\u8def\u5f84\uff09\u3002\n\n## When This Skill Fires\n\n- \u738b\u5efa\u7855\u8bf4\u300c\u6da8\u7c89\u300d\u300c\u641e\u4e2a X \u6da8\u7c89\u5b9e\u9a8c\u300d\u300cA/B \u6d4b\u4e00\u4e0b\u6211\u7684 profile\u300d\u300c\u4eca\u5929\u7684\u6da8\u7c89\u68c0\u67e5\u300d\n- \u8dd1 `/wjs-x-increasing-follower`\n- \u8bbe\u4e86 `/schedule daily /wjs-x-increasing-follower`\uff08\u89c1\u672b\u5c3e\u300c\u6bcf\u65e5\u68c0\u67e5\u300d\uff09\n\n## When NOT to use\n\n- \u53ea\u662f\u8981\u53d1\u4e00\u6761\u63a8 \u2192 `/wjs-tweeting-from-articles` \u6216\u76f4\u63a5 `xurl post`\n- \u63a8\u5e7f skill \u2192 `/wjs-promoting-skills` / `/publish-skill`\n- \u628a\u6587\u7ae0\u5206\u53d1\u5230\u5404\u5e73\u53f0 \u2192 `/wjs-syndicating-articles`\n\n---\n\n## Workflow\n\n\u6240\u6709\u811a\u672c\u5728 `scripts/`\uff0c\u72b6\u6001\u5728 `state/`\u3002\u5148 `cd` \u5230 skill \u76ee\u5f55\u3002\n\n### Step 1 \u2014 \u5403\u6570\u636e\uff08CSV \u2192 daily.jsonl\uff09\n\n```bash\npython3 scripts/ingest-csv.py /path/to/export.csv\n```\n\n\u811a\u672c\u6a21\u7cca\u5339\u914d\u5217\u540d\uff08Profile visits / New follows / Impressions / Followers\uff09\uff0c\u6309\u65e5\u671f upsert\uff0c\u81ea\u52a8\u7b97 ratio\u3002**\u5b83\u4f1a\u6253\u5370\u5b83\u8ba4\u7684\u5217\u6620\u5c04 \u2014\u2014 \u770b\u4e00\u773c\u5bf9\u4e0d\u5bf9**\uff0c\u4e0d\u5bf9\u5c31 `--visits-col \"X\" --follows-col \"Y\"`\u3002\u91cd\u8dd1\u66f4\u957f\u7684\u5bfc\u51fa\u4f1a\u8986\u76d6\u91cd\u53e0\u7684\u5929\uff0c\u5b89\u5168\u3002\n\n### Step 2 \u2014 \u51fa to-do\uff08\u63d0\u5b9e\u9a8c\uff09\n\n\u770b `state/daily.jsonl` \u73b0\u72b6\uff0c\u7ed9\u738b\u5efa\u7855\u4e00\u4efd**\u5e26\u7f16\u53f7\u7684\u5b9e\u9a8c\u83dc\u5355**\u3002\u6bcf\u6761\u5fc5\u987b\u6709\uff1a`category` / `title` / `hypothesis` / `metric`\u3002\u539f\u5219\uff1a\n\n- **\u4e00\u6b21\u53ea\u8ba9\u5c11\u6570 profile \u5b9e\u9a8c\u5728\u8dd1**\uff08\u540c\u6307\u6807\u91cd\u53e0\u4f1a\u4e92\u76f8\u6c61\u67d3\u8bfb\u6570\uff09\u3002\n- \u5047\u8bbe\u8981\u53ef\u8bc1\u4f2a\uff1a\u300cconcrete \u4e00\u884c\u8bc1\u660e\u6bd4\u6a21\u7cca tagline \u8f6c\u5316\u9ad8\u300d\u2705\uff1b\u300c\u8ba9 bio \u66f4\u597d\u300d\u274c\u3002\n- profile \u7c7b\u5148\u4e8e posting \u7c7b \u2014\u2014 \u8f6c\u5316\u662f\u5730\u57fa\uff0c\u5148\u628a\u6765\u8bbf\u7684\u4eba\u63a5\u4f4f\uff0c\u518d\u53bb\u653e\u5927\u6d41\u91cf\u3002\n\n\u5165\u8d26\uff08\u81ea\u52a8\u5206\u914d\u7f16\u53f7\uff0c\u522b\u624b\u6539 jsonl\uff09\uff1a\n\n```bash\npython3 scripts/ledger.py add --category profile --metric ratio \\\n  --title \"Bio: \u5f00\u5934\u4e00\u884c\u653e\u786c\u8bc1\u660e\" \\\n  --hypothesis \"\u8bbf\u5ba2\u770b\u5230\u5177\u4f53\u6210\u7ee9\u6bd4\u770b\u5230\u53e3\u53f7\u66f4\u613f\u610f\u5173\u6ce8\"\n```\n\n\u5b9e\u9a8c\u83dc\u5355\u53c2\u8003\uff08\u6309\u6760\u6746\u5206\uff09\uff1a\n- **profile/ratio**\uff1abio \u91cd\u5199\uff08\u94a9\u5b50\u524d\u7f6e / \u786c\u8bc1\u660e / CTA\u300c\u5173\u6ce8\u770b X\u300d\uff09\u3001\u663e\u793a\u540d\u52a0\u8eab\u4efd\u951a\u3001\u5934\u50cf\u6362\u6b63\u8138\u9ad8\u6e05\u3001banner \u653e\u4e00\u53e5\u8bdd\u4ef7\u503c\u4e3b\u5f20\u3001\u7f6e\u9876\u6362\u6700\u5f3a thread\u3001URL \u6307\u5411\u843d\u5730\u9875\u3002\n- **posting/visits**\uff1a\u53d1\u5e03\u683c\u5f0f\uff08thread vs \u5355\u6761\uff09\u3001\u9996\u53e5\u94a9\u5b50\u3001\u5e26\u56fe vs \u7eaf\u6587\u3001\u8bdd\u9898\u805a\u7126\u3002\n- **engagement/follows**\uff1a\u56fa\u5b9a\u56de\u590d\u67d0\u5708\u5c42\u3001\u4e3b\u52a8\u5173\u6ce8\u76ee\u6807\u4eba\u7fa4\u3001\u53c2\u4e0e\u70ed\u95e8\u8bdd\u9898\u3002\n- **timing/visits**\uff1a\u65e9 9 \u70b9 vs \u665a 9 \u70b9\u3001\u5de5\u4f5c\u65e5 vs \u5468\u672b\u3002\n\n`state/SCOREBOARD.md` \u7684\u300cTo-do\u300d\u533a\u5c31\u662f\u8fd9\u4efd\u6e05\u5355\u7684\u843d\u5730\u7248\uff08\u89c1 Step 6\uff09\u3002\n\n### Step 3 \u2014 \u4e0a\u7ebf\u4e00\u4e2a\u5b9e\u9a8c\uff08\u542b\u6293 before\uff09\n\n**\u5148\u6293 before-state**\uff08profile \u5b57\u6bb5\uff09\uff1a\n\n```bash\nxurl \"/2/users/me?user.fields=name,description,url,location,profile_image_url,pinned_tweet_id\"\n```\n\n\u8bb0\u4e0b\u5f53\u524d\u503c\u3002**\u7136\u540e\u771f\u6b63\u53bb\u6539\uff1a**\n\n- **bio / \u540d\u5b57 / URL / \u5730\u70b9** \u2014\u2014 \u53ef\u8d70 API\uff08OAuth1 v1.1\uff09\uff1a\n  ```bash\n  xurl --auth oauth1 -X POST \"/1.1/account/update_profile.json?description=<urlencoded>\"\n  ```\n  \uff08`name` / `url` / `location` \u540c\u7406\u3002\u5931\u8d25/\u6ca1 enroll OAuth1 \u2192 \u9000\u56de App \u91cc\u624b\u6539\uff0c\u7167\u6837\u8bb0\u8d26\u3002\uff09\n- **\u5934\u50cf / banner / \u7f6e\u9876\u63a8** \u2014\u2014 \u6ca1\u6709\u53ef\u9760\u516c\u5f00 API\uff0c**\u5728 App / \u7f51\u9875\u91cc\u624b\u6539**\uff0cskill \u53ea\u8d1f\u8d23\u8bb0 before/after + \u8ddf\u8e2a\u3002\n\n**\u8bb0\u8d26\uff08\u76d6\u4e0a applied \u65e5\u671f + before \u503c\uff09\uff1a**\n\n```bash\npython3 scripts/ledger.py apply 1 \\\n  --before-field description --before-value \"<\u539f bio \u539f\u6587>\" \\\n  --after-value \"<\u65b0 bio>\"\n```\n\n\u4e4b\u540e\u8fd9\u4e2a\u5b9e\u9a8c\u8fdb\u5165\u6d4b\u91cf\u671f\uff1abaseline = applied \u524d `window_days`(\u9ed8\u8ba47) \u5929\u7684\u6307\u6807\u4e2d\u4f4d\u6570\uff1b\u5224\u51b3\u8981\u7b49 applied \u540e\u6512\u591f\u6570\u636e\u3002\n\n### Step 4 \u2014 \u6bcf\u5929\u5582\u6570 + \u91cd\u7b97\uff08\u89c1\u4e5f\u7528\u4e8e\u300c\u6bcf\u65e5\u68c0\u67e5\u300d\uff09\n\n```bash\nscripts/daily-check.sh\n```\n\n\u5b83\u4f1a\uff1aingest `inbox/` \u91cc\u7684\u65b0 CSV\uff08\u7528\u5b8c\u5f52\u6863\u5230 `inbox/done/`\uff09\u2192 `evaluate.py --write-verdict` \u628a\u65b9\u5411\u6027\u5224\u51b3\u5199\u56de\u8d26\u672c \u2192 \u91cd\u751f\u6210 `SCOREBOARD.md`\u3002**\u6ce8\u610f\uff1a\u5b83\u53ea\u5199\u5224\u51b3\uff0c\u4e0d\u52a8\u72b6\u6001** \u2014\u2014 keep/rollback \u662f\u4eba\u7684\u51b3\u5b9a\u3002\n\n### Step 5 \u2014 \u5224\u51b3\u4e0e\u56de\u6eda\n\n```bash\npython3 scripts/evaluate.py          # \u770b\u6bcf\u4e2a\u5728\u8dd1\u5b9e\u9a8c\uff1abaseline vs post\uff0c\u0394%\uff0cverdict\n```\n\n\u5224\u51b3\uff08\u76f8\u5bf9 baseline \u4e2d\u4f4d\u6570\uff09\uff1a`\u0394 \u2265 +10%` \u2192 **keep**\uff1b`\u0394 \u2264 -10%` \u2192 **rollback**\uff1b\u4e4b\u95f4 \u2192 **flat**\u3002\u6ce8\u610f `\u26a0 confounded` / `\u26a0 thin baseline` \u6807\u8bb0\uff0c\u6709\u5c31\u522b\u592a\u5f53\u771f\uff0c\u5ef6\u957f\u7a97\u53e3\u6216\u505c\u6389\u91cd\u53e0\u5b9e\u9a8c\u518d\u6d4b\u3002\n\n- **keep**\uff1a`python3 scripts/ledger.py keep 1 --note \"+58% \u8f6c\u5316\"`\n- **rollback\uff08\u5148\u95ee\u738b\u5efa\u7855\uff01\uff09**\uff1a\u786e\u8ba4\u540e\uff0c\u7528 `apply` \u65f6\u5b58\u7684 before \u503c\u8fd8\u539f\uff08API \u6216\u624b\u6539\uff09\uff0c\u518d\n  `python3 scripts/ledger.py rollback 1 --note \"\u8f6c\u5316\u6389\u4e86\uff0c\u8fd8\u539f bio\"`\uff08\u547d\u4ee4\u4f1a\u6253\u5370\u8981\u8fd8\u539f\u7684 before \u503c\uff09\n- **flat**\uff1a\u4fdd\u7559\u89c2\u5bdf\uff0c\u6216\u5f52\u4e3a\u300c\u4e0d\u5f71\u54cd\u300d\u64a4\u6389\u3002\n\n### Step 6 \u2014 \u770b\u677f\n\n```bash\npython3 scripts/scoreboard.py        # \u5199\u5e76\u6253\u5370 state/SCOREBOARD.md\n```\n\n\u56db\u5757\uff1a\ud83d\udcc8 \u73b0\u72b6\uff08\u6700\u65b0 ratio / 7 \u65e5\u4e2d\u4f4d ratio / \u7c89\u4e1d\u6570\uff09\u3001\ud83e\uddea \u5728\u8dd1\u5b9e\u9a8c\uff08baseline/post/\u0394/\u5224\u51b3/\u544a\u8b66\uff09\u3001\u2705 To-do \u5f85\u529e\uff08proposed \u6e05\u5355\uff09\u3001\ud83d\udcda \u5df2\u7ed3\u6848\uff08kept / rolled_back\uff09\u3002\u7ed9\u738b\u5efa\u7855\u770b\u5c31\u53d1\u8fd9\u4e2a\u6587\u4ef6\u3002\n\n---\n\n## \u6570\u636e\u6a21\u578b\uff08state/\uff09\n\n- `daily.jsonl` \u2014\u2014 \u4e00\u5929\u4e00\u884c\uff1a`{date, profile_visits, new_follows, ratio, impressions, followers_total}`\u3002\n- `actions.jsonl` \u2014\u2014 \u4e00\u5b9e\u9a8c\u4e00\u884c\uff1a`{id, category, title, hypothesis, metric, window_days, before:{field,value}, after:{value}, applied, status, evaluated, verdict, notes}`\u3002\u72b6\u6001\u6d41\uff1a`proposed \u2192 active \u2192 (kept | rolled_back)`\u3002\n- `SCOREBOARD.md` \u2014\u2014 \u751f\u6210\u7269\uff0c\u4eba\u770b\u7684\u3002\n\n## \u9ed8\u8ba4\u53c2\u6570\uff08\u8981\u6539\u5c31\u4f20 flag\uff09\n\n- \u8bc4\u4f30\u7a97\u53e3 `--window-days` \u9ed8\u8ba4 **7 \u5929**\n- keep/rollback \u9608\u503c `--threshold` \u9ed8\u8ba4 **\u00b10.10\uff08\u76f8\u5bf9 \u00b110%\uff09**\n- \u4e0b\u5224\u51b3\u524d\u6700\u5c11 post \u6570\u636e `--min-post-days` \u9ed8\u8ba4 **3 \u5929**\n- \u56de\u6eda **\u6c38\u8fdc\u5148\u95ee**\uff0c\u4e0d\u9759\u9ed8\n\n## \u6bcf\u65e5\u68c0\u67e5\uff08\u53ef\u9009\u8c03\u5ea6\uff09\n\n`/schedule daily /wjs-x-increasing-follower` \u2014\u2014 \u6bcf\u5929\u8c03\u8d77\u672c skill\uff1a\u8dd1 `daily-check.sh`\uff0c\u628a `SCOREBOARD.md` \u73b0\u72b6 + \u4efb\u4f55\u5224 \u274c rollback \u7684\u5b9e\u9a8c **\u53d1\u7ed9\u738b\u5efa\u7855\u5e76\u5f81\u6c42\u662f\u5426\u56de\u6eda**\u3002CSV \u8fd8\u662f\u5f97\u4ed6\u624b\u52a8\u5bfc\u51fa\u4e22\u8fdb `inbox/`\uff08ratio \u6570\u636e API \u62ff\u4e0d\u5230\uff0c\u8fd9\u6b65\u7ed5\u4e0d\u5f00\uff09\u3002\n","usage":"\u8bfb\u53d6 SKILL.md\uff0c\u5e76\u6309\u9700\u8bfb\u53d6\u914d\u5957\u6587\u4ef6\uff1b\u4e0b\u8f7d ZIP \u83b7\u53d6\u5b8c\u6574\u5305\u3002\u6280\u80fd\u662f\u4efb\u52a1\u65b9\u6cd5\uff0c\u4e0d\u6388\u4e88\u65b0\u589e\u8d26\u6237\u3001\u4ed8\u8d39\u6216\u7cfb\u7edf\u6743\u9650\u3002"}
