wjs-x-increasing-follower について
Xのフォロワー増加を改善するため、番号付き実験を管理するClaudeスキルです。Analytics CSVと中央値でプロフィール、投稿、交流、時間帯の変更を評価し、変更前の値を記録して人の判断によるロールバックに備えます。
主な機能
- 01Analytics CSVの取り込みと転換率計算
- 02仮説と指標を添えた実験の記録
- 03ロールバック用の変更前状態の保存
- 04中央値による方向性の判定
- 05実験スコアボードの生成
活用シーン
- 01bio変更がフォロー転換に与える影響の評価
- 02投稿形式によるプロフィール訪問数の比較
- 03投稿時間と訪問数の関係の追跡
- 04ロールバック前の実験結果の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jianshuo/ claude-skills --skill wjs-x-increasing-followerインストール後、Claude Code で/wjs-x-increasing-followerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
inbox/.gitignorescripts/_common.pydaily-check.shevaluate.pyingest-csv.pyledger.pyscoreboard.pystate/.gitignoreactions.jsonldaily.jsonlSCOREBOARD.md詳細
wjs-x-increasing-follower
「フォロワーを増やす」ことをエンジニアリングとして捉えます。変更はすべて、番号付きの実験です。仮説、目標指標、before(ロールバック可能)、判定を用意します。感覚ではなく、数値を頼りにします。
基本原則
1つのアカウントでは並行して A/B テストできません。できるのは、時間軸上での前後比較だけです。 そのため、信頼できる唯一の北極星指標は コンバージョン率 = 新規フォロワー数 ÷ プロフィールへのアクセス数(ratio) です。これはバズ投稿による流入の影響を受けません。投稿がバズってアクセスが大量に増えても、ratio は変わらないことがあります。一方、bio を改善すれば、訪問者一人ひとりがフォローしやすくなり、ratio は必ず変化します。
そのため、指標を階層化します(各 action は、どの指標で評価されるかを必ず宣言します)。
| Action の種類 | 動かすレバー | 評価指標 |
|---|---|---|
| profile(bio / 名前 / アバター / バナー / 固定投稿 / URL / 場所) | コンバージョン | ratio(北極星指標。バズ投稿の影響を受けにくい) |
| posting(形式 / フック / 頻度 / スレッド vs 単独投稿) | リーチ | プロフィールへのアクセス数 + インプレッション数(コンバージョンを損なわないよう、ratio はガードレールとして使用) |
| engagement(返信 / 他者のフォロー / 交流) | リーチ | 新規フォロワー数 + アクセス数 |
| timing(投稿時間) | リーチ | プロフィールへのアクセス数 |
誠実さを守るガードレール(evaluate.py に固定): 平均値ではなく中央値を使います(1日のバズ投稿で判定が左右されないようにします)。7日分または十分なデータが集まるまでは判定しません。同じ指標を対象とする実験期間が重なる場合は、confounded のマークを付けます。結論は「傾向」にとどめ、因果関係を主張しません。
ロールバックは最優先事項です。 各 action には正確な before 値が保存されるため、#N はいつでも元に戻せます。❌ rollback と判定した場合は、必ず先に王建硕さんに確認してください。本人の bio を黙って変更してはいけません。
データの取得元(重要な制約)
ratio の値は X API / xurl では取得できません。Analytics ダッシュボードにしかありません。そのため、CSV エクスポートを使います。
x.com/i/account_analytics を開く → Overview → 右上のダウンロードアイコン(必要な期間が 7D/2W/4W/3M/1Y のどれかを選択)→ CSV をエクスポート → inbox/ に入れる(またはファイルパスを直接指定)。
このスキルが使われる場面
- 王建硕さんが「フォロワーを増やしたい」「X のフォロワーを増やす実験をしよう」「プロフィールを A/B テストして」「今日のフォロワー増加チェック」と言った場合
/wjs-x-increasing-followerを実行した場合/schedule daily /wjs-x-increasing-followerを設定した場合(末尾の「毎日のチェック」を参照)
使用しない場面
- 投稿を1つだけしたい場合 →
/wjs-tweeting-from-articlesまたはxurl postを直接実行 - スキルを宣伝する場合 →
/wjs-promoting-skills//publish-skill - 記事を各プラットフォームに配信する場合 →
/wjs-syndicating-articles
ワークフロー
すべてのスクリプトは scripts/ に、状態は state/ にあります。まずスキルのディレクトリに cd してください。
Step 1 — データを取り込む(CSV → daily.jsonl)
python3 scripts/ingest-csv.py /path/to/export.csv
スクリプトは列名をあいまい検索し(Profile visits / New follows / Impressions / Followers)、日付ごとに upsert して、ratio を自動計算します。認識した列の対応関係が表示されるので、正しいか確認してください。正しくない場合は --visits-col "X" --follows-col "Y" を指定します。より長い期間のデータをエクスポートして再実行すると、重複する日付が上書きされます。安全に実行できます。
Step 2 — To-do を作成する(実験を提案)
state/daily.jsonl の現在の状態を確認し、王建硕さんに番号付きの実験メニューを提示します。各項目には必ず category / title / hypothesis / metric を含めます。原則は以下のとおりです。
- 同時に実施する profile 実験は少数にします(同じ指標を対象とする実験が重なると、測定値が互いに汚染されます)。
- 仮説は反証可能なものにします。「具体的な1行の説明は、曖昧なタグラインよりコンバージョン率が高い」✅。「bio を良くする」❌。
- profile の実験を posting の実験より優先します。コンバージョンが土台です。まず訪問者を受け止めてから、流入を増やします。
記録します(番号は自動割り当てのため、jsonl を直接編集しないでください)。
python3 scripts/ledger.py add --category profile --metric ratio \
--title "Bio: 开头一行放硬证明" \
--hypothesis "访客看到具体成绩比看到口号更愿意关注"
実験メニューの参考(レバー別):
- profile/ratio:bio の書き換え(フックを前に出す / 確かな実績 / CTA「X を見るにはフォロー」)、表示名に身元を示す情報を追加、アバターを正面からの高解像度写真に変更、バナーに価値提案を一文で掲載、固定投稿を最も強いスレッドに変更、URL をランディングページに設定。
- posting/visits:投稿形式(スレッド vs 単独投稿)、冒頭のフック、画像付き vs テキストのみ、トピックの絞り込み。
- engagement/follows:特定のコミュニティへの返信、対象層を積極的にフォロー、話題のテーマに参加。
- timing/visits:朝9時 vs 夜9時、平日 vs 週末。
state/SCOREBOARD.md の「To-do」セクションが、このリストを反映したものです(Step 6 を参照)。
Step 3 — 実験を1つ開始する(before を取得)
まず before-state を取得します(プロフィールのフィールド)。
xurl "/2/users/me?user.fields=name,description,url,location,profile_image_url,pinned_tweet_id"
現在の値を記録します。次に、実際に変更します。
- bio / 名前 / URL / 場所 —— API(OAuth1 v1.1)を使用できます。
(xurl --auth oauth1 -X POST "/1.1/account/update_profile.json?description=<urlencoded>"name/url/locationも同様です。失敗した場合や OAuth1 が有効になっていない場合は、アプリで手動変更し、同じように記録してください。) - アバター / バナー / 固定投稿 —— 信頼できる公開 API がないため、アプリまたはウェブページで手動変更します。スキルが担当するのは before/after の記録と追跡のみです。
記録します(applied 日付と before 値を設定)。
python3 scripts/ledger.py apply 1 \
--before-field description --before-value "<原 bio 原文>" \
--after-value "<新 bio>"
その後、この実験は測定期間に入ります。baseline は、applied 前の window_days(デフォルトは7日間)における指標の中央値です。applied 後のデータが十分に集まってから判定します。
Step 4 — 毎日データを取り込み、再計算する(「毎日のチェック」でも使用)
scripts/daily-check.sh
次の処理を行います。inbox/ の新しい CSV を取り込み(処理後は inbox/done/ にアーカイブ)、evaluate.py --write-verdict で傾向に基づく判定を記録に書き戻し、SCOREBOARD.md を再生成します。注意:判定を書き込むだけで、状態は変更しません。keep / rollback は人が決定します。
Step 5 — 判定とロールバック
python3 scripts/evaluate.py # 看每个在跑实验:baseline vs post,Δ%,verdict
判定(baseline の中央値との比較):Δ ≥ +10% → keep、Δ ≤ -10% → rollback、その間 → flat。⚠ confounded / ⚠ thin baseline のマークに注意してください。表示されている場合は判定を鵜呑みにせず、測定期間を延長するか、重複している実験を停止してから再測定してください。
- keep:
python3 scripts/ledger.py keep 1 --note "+58% 转化" - rollback(先に王建硕さんに確認してください!):確認後、
apply時に保存した before 値に戻します(API または手動変更)。その後、 `python3 scripts/ledger.py rollback 1 --note "転化が落ちたため、bio を元に戻す" を実行します(コマンドは復元する before 値を表示します)。 - flat:観察を続けるか、「影響なし」として変更を戻します。
Step 6 — ダッシュボード
python3 scripts/scoreboard.py # 写并打印 state/SCOREBOARD.md
次の4つのセクションがあります。📈 現状(最新の ratio / 7日間の ratio の中央値 / フォロワー数)、🧪 実施中の実験(baseline/post/Δ/判定/警告)、✅ To-do(提案済みの項目)、📚 完了した実験(kept / rolled_back)。王建硕さんにはこのファイルを共有してください。
データモデル(state/)
daily.jsonl—— 1日1行:{date, profile_visits, new_follows, ratio, impressions, followers_total}。actions.jsonl—— 実験ごとに1行:{id, category, title, hypothesis, metric, window_days, before:{field,value}, after:{value}, applied, status, evaluated, verdict, notes}。状態の遷移:proposed → active → (kept | rolled_back)。SCOREBOARD.md—— 生成ファイル。人が読むためのものです。
默认参数(要改就传 flag)
- 评估窗口
--window-days默认 7 天 - keep/rollback 阈值
--threshold默认 ±0.10(相对 ±10%) - 下判决前最少 post 数据
--min-post-days默认 3 天 - 回滚 永远先问,不静默
每日检查(可选调度)
/schedule daily /wjs-x-increasing-follower —— 每天调起本 skill:跑 daily-check.sh,把 SCOREBOARD.md 现状 + 任何判 ❌ rollback 的实验 发给王建硕并征求是否回滚。CSV 还是得他手动导出丢进 inbox/(ratio 数据 API 拿不到,这步绕不开)。