Agent skill

paywall-ab

Anicca Paywall A/B テスト自動クローズドループ。RevenueCat Experiments を使い、Paywall コピーを継続改善する。新規実験セットアップ(Offering作成→Experiment作成→Cron登録)と3日ごと人間確認ループ(チェックイン送信→ユーザー返信待ち→勝者分析→新バリアント生成→Slack承認→RC新実験作成)の両方を担う。Use when: paywall a/b test, paywall experiment, CVR改善, paywall コピー, RevenueCat experiment, paywall-ab, paywall loop, check_in, analyze, create_variant.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/paywall-ab

SKILL.md

paywall-ab — Paywall A/B テスト自動クローズドループ

概要

RevenueCat Experiments を使った Paywall コピーの自動 A/B テストループ。 エージェントがこのスキルを読めば、セットアップから3日ごとの人間確認ループまで全て実行できる。

モード トリガー やること
setup 「paywall A/B テストを開始して」 Offering作成 → AI Paywall生成 → Daisにexperiment作成依頼 → experiment_id受取 → Cron登録 → Slack通知
check_in cron: 実験開始から3日ごと 7:00 JST / 「check_in」 RC MCP で実験情報取得 → Day N メッセージを Slack に送信 → ユーザー返信を待つ
analyze ユーザーが「A勝ち」or「B勝ち」と返信 勝者/敗者の Offering テキスト取得 → LLM 分析(なぜ勝ったか)→ 新コピー3パターン生成 → Slack 送信
create_variant ユーザーが「はい」or「1」「2」「3」で選択 Pencil MCP でテキスト差替え → RC 新 Offering 作成 → Slack 承認ゲート → RC 新 Experiment 作成依頼

Multi-App レジストリ(複数アプリ対応)

このスキルは複数アプリに対応する。アプリ設定は Mac Mini の apps.json で管理。

apps.json パス

/Users/anicca/.openclaw/workspace/paywall-ab/apps.json

形式

json
{
  "apps": {
    "anicca": {
      "rc_project_id": "projbb7b9d1b",
      "mixpanel_project_id": 3970220,
      "default_offering_id": "ofrng78a01eb506",
      "monthly_product_id": "prod8eb90326e4",
      "slack_channel": "C091G3PKHL2",
      "active_experiment": {
        "experiment_id": "prexpbac56abf66",
        "variant_a_offering_id": "ofrng78a01eb506",
        "variant_b_offering_id": "ofrng586631f021",
        "start_date": "2026-03-03"
      }
    }
  }
}

新アプリ追加時: apps.json にエントリを追加 → cronメッセージに app_id: "new_app" を追加するだけ。

cronメッセージのフォーマット(アプリ名指定)

Run paywall-ab skill in check_in mode.
app_id: anicca
apps_config: /Users/anicca/.openclaw/workspace/paywall-ab/apps.json

現在稼働中の実験(2026-03-03〜)

項目
app_id anicca
experiment_id prexpbac56abf66 ⚠️ RC Dashboardで作成後に確認要
Variant A (現行 default) ofrng78a01eb506 (anicca)
Variant B (AI生成 v2) ofrng586631f021 (anicca_paywall_ai_v2)
Paywall v2 pw5d8ebd3e8a674b3e
cron 3日ごと 7:00 JST — Mac Mini 登録済み (enabled: true)
RC Dashboard https://app.revenuecat.com/projects/bb7b9d1b/experiments

⚠️ 次のアクション(Dais): RC Dashboardで実験を作成してexperiment_idを確認 → cronメッセージのIDを更新


環境変数(必須)

Key 値の場所
REVENUECAT_V2_SECRET_KEY Mac Mini .env
REVENUECAT_PROJECT_ID projbb7b9d1b(固定)
OPENAI_API_KEY Mac Mini .env
SLACK_BOT_TOKEN Mac Mini .env
SLACK_METRICS_CHANNEL C091G3PKHL2(#metrics)

⚠️ 必須前提:Paywall作成前にアプリコードで実機能を確認すること

Paywall コピーに嘘を書くことは罪。存在しない機能を訴求してはいけない。

確認必須ファイル(Paywall作成時に必ず読む)

ファイル 確認する内容
aniccaios/aniccaios/Services/FreePlanService.swift Free の制限(本数・時刻)
aniccaios/aniccaios/Services/LLMNudgeService.swift Pro の AI 機能の実体
aniccaios/aniccaios/Services/NudgeStatsManager.swift フィードバック学習の実体
aniccaios/aniccaios/Models/SubscriptionInfo.swift Free/Pro の差分定義

Anicca の実際の Free vs Pro 差分(コードから確認済み)

機能 Free Pro
Nudgeタイプ ルールベース(事前定義文章) AI生成(LLMNudgeService)
1日の本数 3本固定(8:00/12:30/20:00) サーバー制御・高クォータ
タイミング 固定時刻3回 プロアクティブ配信(その瞬間に必要な時)
パーソナライズ 苦しみカテゴリでローテーション その人の具体的な悩みに特化したAI生成
フィードバック学習 なし 👍/👎で次のNudgeが改善される

訴求禁止リスト(存在しない機能)

禁止コピー 理由
"30-day insight reports" コードに存在しない
"Progress growth graph" コードに存在しない
"Nudge frequency & timing customization" ユーザーが手動設定できる機能はない
"Streaks / goal completion rate" 実装されていない
"Get full access to all features" 意味がない
"Early releases" / "Premium support" アプリが提供していない

訴求すべき本物の価値(実機能のみ)

訴求軸 具体的コピー例
AI生成の深さ "AI-written nudges, crafted for your exact struggle"
フィードバック学習 "Gets smarter with every reaction you give"
プロアクティブ配信 "Reaches you at the moment you need it most"
仏教の智慧 "Rooted in centuries of Buddhist wisdom"
パーソナライズ "Knows your specific pain — not generic advice"

MODE 1: セットアップ(新規実験を作る時)

現行 default Offering: ofrng78a01eb506 (anicca) ← Variant A に使う 月額 product ID: prod8eb90326e4 (ai.anicca.app.ios.monthly、7日トライアル付き)

Step 1. 新 Offering 作成(エージェントが MCP 実行)

mcp__revenuecat__mcp_RC_create_offering:
  project_id: "projbb7b9d1b"
  lookup_key: "anicca_variant_{YYYYMMDD}"
  display_name: "Anicca Variant {date}"

Step 2. パッケージ + Product 紐付け(エージェントが MCP 実行)

mcp__revenuecat__mcp_RC_create_package:
  project_id: "projbb7b9d1b"
  offering_id: "<Step1のoffering_id>"
  lookup_key: "$rc_monthly"
  display_name: "Monthly Plan"

mcp__revenuecat__mcp_RC_attach_products_to_package:
  project_id: "projbb7b9d1b"
  package_id: "<package_id>"
  products: [{ product_id: "prod8eb90326e4", eligibility_criteria: "all" }]

Step 3. AI Paywall 自動生成(エージェントが MCP 実行)

mcp__revenuecat__mcp_RC_create_design_system_paywall_generation_job:
  project_id: "projbb7b9d1b"
  offering_id: "<Step1のoffering_id>"
  design_system: <Anicca デザインシステム JSON(下記参照)>
→ HTTP 202: { id: "pwj...", status: "queued" }

⚠️ 409エラーが出た場合 → そのOfferingに既にpaywallが存在する。新しいOfferingを作成すること。

60秒待機後に確認:

bash
GET https://api.revenuecat.com/v2/projects/projbb7b9d1b/paywalls
→ offering_id が一致するエントリが出たら完了。paywall_id を記録する。

Step 4. Dais に Experiment 作成を依頼(RC API 非対応のため人間のみ可能)

RC API v2 に Experiment 作成エンドポイントは存在しない(確認済み: 404 resource_missing)。Dashboard のみ。

エージェントは Slack #metrics に以下を投稿して Dais の操作を待つ:

🔧 Paywall A/B テスト準備完了

新しい Paywall が RC に生成されました。
以下の手順で Experiment を作成して、experiment_id をエージェントに教えてください。

1. https://app.revenuecat.com/projects/bb7b9d1b/experiments → New Experiment
2. Variant A: ofrng78a01eb506 (anicca — 現行 default)
3. Variant B: {new_offering_id} ({lookup_key})
4. Traffic split: 50/50 → Start
5. URL に表示される experiment_id (prexpXXXXXXXX) を Claude Code に送ってください

Paywall プレビュー:
https://app.revenuecat.com/projects/projbb7b9d1b/paywalls/{paywall_id}

Step 5. experiment_id 受取 → Cron 登録(エージェントが SSH で実行)

Dais から prexpXXXXXXXX を受け取ったら即座に実行:

bash
# SSH: ssh [email protected]
# ⚠️ ファイル全体上書き禁止。python3 で部分追加のみ。
python3 -c "
import json
with open('/Users/anicca/.openclaw/cron/jobs.json', 'r') as f:
    data = json.load(f)

# 既存チェック(重複防止)
if any(j['id'] == 'paywall-ab' for j in data['jobs']):
    print('ALREADY EXISTS — skip')
    exit(0)

data['jobs'].append({
  'id': 'paywall-ab',
  'agentId': 'anicca',
  'jobId': 'paywall-ab',
  'name': 'paywall-ab',
  'schedule': {'kind': 'cron', 'expr': '0 7 */3 * *', 'tz': 'Asia/Tokyo'},
  'sessionTarget': 'isolated',
  'wakeMode': 'now',
  'payload': {
    'kind': 'agentTurn',
    'message': 'Run paywall-ab skill in check_in mode. app_id: anicca. apps_config: /Users/anicca/.openclaw/workspace/paywall-ab/apps.json'
  },
  'delivery': {'mode': 'none'},
  'enabled': True,
  'state': {}
})

with open('/Users/anicca/.openclaw/cron/jobs.json', 'w') as f:
    json.dump(data, f, indent=2, ensure_ascii=False)
print('DONE')
"

Step 6. Slack #metrics に開始通知

📊 Paywall A/B テスト開始 🚀

実験ID: {experiment_id}
開始日: {today}

Variant A (現行): ofrng78a01eb506 (anicca)
Variant B (新AI生成): {new_offering_id}
Traffic split: 50/50

📅 初回チェック: {3日後} 7:00 JST
3日ごと 7:00 JST にチェックインします。

MODE 2: check_in(3日ごと 7:00 JST 自動実行)

Step 1. 実験情報を取得

1. apps.json を読む → active_experiment の experiment_id, start_date を取得
2. 経過日数を計算: day_n = (today - start_date).days
3. mcp__revenuecat__mcp_RC_list_offerings で Variant A / B の詳細を取得
   → 各 Offering の display_name を取得

⚠️ RC Experiments API は conversion data を返さない(404)。CVR はユーザーが RC Dashboard で確認する。

Step 2. Slack #metrics に Day N メッセージを送信

以下のテンプレートで Slack に投稿する:

📊 Paywall 実験 Day {N}

実験ID: {experiment_id}
━━━━━━━━━━━━━━━━━━━━
Variant A(現行): {offering_a_name}
  タイトル: {title_a}
  CTA: {cta_a}

Variant B(テスト中): {offering_b_name}
  タイトル: {title_b}
  CTA: {cta_b}
━━━━━━━━━━━━━━━━━━━━
📌 RC Dashboard で CVR を確認してください:
https://app.revenuecat.com/projects/projbb7b9d1b/experiments/{experiment_id}

結果を教えてください:
• 「A勝ち」
• 「B勝ち」
• 「まだ早い」(3日後にまた確認)

⚠️ メッセージ送信後は返信を待つ(reactive モード)。急かさない。タイムアウトなし。

Step 3. ユーザー返信のルーティング

返信内容 アクション
「まだ早い」 何もしない。次の cron(3日後)で同じメッセージを送る
「A勝ち」 analyze モードを winner="A" で実行
「B勝ち」 analyze モードを winner="B" で実行

MODE 3: analyze(ユーザーが「A勝ち」or「B勝ち」と返信後)

Step 1. 勝者/敗者の Offering 詳細を取得

入力: winner = "A" or "B"

mcp__revenuecat__mcp_RC_list_offerings(project_id: "projbb7b9d1b")
→ Variant A と B の Offering ID に対応する paywall_id を取得

mcp__revenuecat__mcp_RC_get_app_store_config(project_id: "projbb7b9d1b")
または offering の paywall からテキストを取得
→ 勝者のタイトル・bullets・CTA
→ 敗者のタイトル・bullets・CTA

Step 2. LLM 分析(なぜ勝者のコピーが響いたか)

以下のプロンプトで分析を実行する:

あなたは Paywall コピーアナリストです。

## 実験結果
勝者 ({winner}): {winner_offering_name}
  タイトル: {winner_title}
  bullets: {winner_bullets}
  CTA: {winner_cta}

敗者: {loser_offering_name}
  タイトル: {loser_title}
  bullets: {loser_bullets}
  CTA: {loser_cta}

## ユーザーペルソナ
25〜35歳、6〜7年同じ悪習慣が抜けられない、習慣アプリ10個全部3日で諦めた。
自己信頼ゼロ。「どうせ無理」が前提。

## 分析してください(3点)
1. なぜ勝者のコピーが響いたのか(具体的な言語的要因)
2. 敗者のどの要素が弱かったか
3. 次のバリアントで改善すべき1点

Step 3. 新コピー仮説を3パターン生成

以下のプロンプトで生成する:

あなたは Paywall コピーライターです。

## アプリ
Anicca(習慣化・行動変容、7日間無料トライアル → $9.99/月)

## 絶対ルール
❌ 訴求禁止(コードに存在しない):
  - "30-day insight reports", "growth graph", "streaks", "frequency customization"
  - "nudge", "reminder", "notification", "daily reminders"

✅ 訴求すべき実機能:
  - AI生成: その人の悩みに特化したAI生成(Free はルールベース)
  - 適応学習: 👍/👎で次が改善される
  - プロアクティブ: 固定時刻ではなくサーバー起点
  - 仏教の智慧: 何世紀にもわたる仏教の智慧

## 今回の分析
勝者の有効要因: {analysis_key_point}
次の改善点: {improvement_point}

## 3パターンを生成してください
それぞれ異なる訴求軸で。勝者の良い要素を保持しつつ、改善点を適用する。
フォーマット: タイトル(5語以内) + bullets×3(各20文字以内) + CTA固定

出力:
[
  { "pattern": 1, "axis": "訴求軸の説明", "title": "...", "bullets": ["...", "...", "..."], "cta": "Try Free For 1 Week" },
  { "pattern": 2, "axis": "訴求軸の説明", "title": "...", "bullets": ["...", "...", "..."], "cta": "Try Free For 1 Week" },
  { "pattern": 3, "axis": "訴求軸の説明", "title": "...", "bullets": ["...", "...", "..."], "cta": "Try Free For 1 Week" }
]

禁止ワード(含まれていたら再生成): insight, graph, streak, nudge, reminder, notification, daily, frequency, customize

Step 4. Slack #metrics に分析結果 + 3パターン送信

🏆 勝者分析完了

勝者: Variant {winner} ({winner_offering_name})

━━━━━━━━━━━━━━━━━━━━
📊 なぜ勝ったか:
{analysis_point_1}
{analysis_point_2}
{analysis_point_3}
━━━━━━━━━━━━━━━━━━━━

📝 次のバリアント候補(3パターン):

【パターン 1】訴求軸: {axis_1}
タイトル: "{title_1}"
• {bullet_1_1}
• {bullet_1_2}
• {bullet_1_3}

【パターン 2】訴求軸: {axis_2}
タイトル: "{title_2}"
• {bullet_2_1}
• {bullet_2_2}
• {bullet_2_3}

【パターン 3】訴求軸: {axis_3}
タイトル: "{title_3}"
• {bullet_3_1}
• {bullet_3_2}
• {bullet_3_3}

━━━━━━━━━━━━━━━━━━━━
どのパターンで新しい実験を始めますか?
「1」「2」「3」で教えてください(「なし」で保留)

⚠️ 返信を待つ。急かさない。タイムアウトなし。

Step 5. ユーザー返信のルーティング

返信 アクション
「1」「2」「3」 create_variant モードを pattern=N で実行
「なし」「保留」 何もしない。終了

MODE 4: create_variant(ユーザーがパターン番号を選択後)

Step 1. Pencil MCP でペイウォールのテキストを差し替え

ビジュアル(色・アイコン・レイアウト)は変えない。テキストのみ差し替え。

入力: pattern = 1 or 2 or 3(ユーザーが選んだパターン)
選択されたコピー: { title, bullets, cta }

1. mcp__pencil__open_document で既存ペイウォールを開く
   対象: Anicca ペイウォールの .pen ファイル
   パス: /Users/anicca/.openclaw/workspace/paywall-ab/paywall.pen(存在しない場合は作成不要 → Step 2へ)

2. mcp__pencil__batch_get でテキストノードを取得
3. mcp__pencil__batch_design でタイトル・bullets・CTA のみ差し替え
   - U("title_node_id", { text: new_title })
   - U("bullet_1_id", { text: new_bullet_1 })
   - 等
4. mcp__pencil__get_screenshot でプレビュー確認

⚠️ Pencil の .pen ファイルが存在しない場合は RC AI 自動生成(MODE 1 Step 3)を使用する。

Step 2. RC に新 Offering 作成(エージェントが MCP 実行)

MODE 1 の Step 1〜3 を実行する:

  • 新 Offering 作成(lookup_key: anicca_variant_{YYYYMMDD}
  • パッケージ + Product 紐付け
  • AI Paywall 生成(デザインシステム JSON は下記参照)

Step 3. Slack 承認ゲート(.cursor/skills/slack-approval/SKILL.md 参照)

⚠️ タイムアウトなし。Daisが押すまで永久に待機する。急かさない。

.cursor/skills/slack-approval/SKILL.md を読んで requestApproval() を実行する

javascript
const result = await requestApproval({
  channel: 'C091G3PKHL2',
  title:   '📝 新 Paywall バリアント確認',
  detail:  `パターン${pattern}(訴求軸: ${axis})\n\nタイトル: ${title}\nbullets:\n  • ${bullets[0]}\n  • ${bullets[1]}\n  • ${bullets[2]}\nCTA: ${cta}\n\nこの内容で新 Offering を作成し、実験を開始しますか?`
});
返答 アクション
approved → Step 4(Dais に Experiment 作成依頼)へ
denied → analyze モードの Step 3(コピー再生成)に戻る(最大3回)

Step 4. Dais に新 Experiment 作成を依頼

RC API v2 に Experiment 作成エンドポイントは存在しない。Dashboard のみ。

Slack #metrics に投稿して Dais の操作を待つ:

🔧 新 Paywall バリアント準備完了

パターン{N}のペイウォールが RC に生成されました。
以下の手順で新しい Experiment を作成して、experiment_id をエージェントに教えてください。

1. https://app.revenuecat.com/projects/bb7b9d1b/experiments → New Experiment
2. Variant A: {前回の勝者 offering_id}(昇格済み default)
3. Variant B: {new_offering_id} ({lookup_key})
4. Traffic split: 50/50 → Start
5. URL に表示される experiment_id (prexpXXXXXXXX) を Claude Code に送ってください

Paywall プレビュー:
https://app.revenuecat.com/projects/projbb7b9d1b/paywalls/{paywall_id}

Step 5. experiment_id 受取 → apps.json 更新 + cron の Day カウンターリセット

Dais から prexpXXXXXXXX を受け取ったら即座に実行:

bash
# SSH: ssh [email protected]
# apps.json の active_experiment を更新(部分更新のみ)
python3 -c "
import json, datetime
with open('/Users/anicca/.openclaw/workspace/paywall-ab/apps.json', 'r') as f:
    data = json.load(f)

data['apps']['anicca']['active_experiment'] = {
    'experiment_id': '{NEW_EXPERIMENT_ID}',
    'variant_a_offering_id': '{WINNER_OFFERING_ID}',
    'variant_b_offering_id': '{NEW_OFFERING_ID}',
    'start_date': datetime.date.today().isoformat()
}

with open('/Users/anicca/.openclaw/workspace/paywall-ab/apps.json', 'w') as f:
    json.dump(data, f, indent=2, ensure_ascii=False)
print('DONE')
"

⚠️ cron の次回実行日は自動的に「今日から3日後」となる(0 7 */3 * * のため手動リセット不要)。

Step 6. Slack #metrics に開始通知

🚀 新 Paywall 実験開始!

実験ID: {new_experiment_id}
開始日: {today}

Variant A (昇格): {winner_offering_name}(前回の勝者)
Variant B (新パターン{N}): {new_offering_name}
Traffic split: 50/50

訴求軸: {axis}
タイトル: "{new_title}"
• {bullet_1}
• {bullet_2}
• {bullet_3}

📅 次の check_in: {3日後} 7:00 JST

Paywall デザインシステム JSON(確定版 — 実機能のみ)

json
{
  "app_context": {
    "app_name": "Anicca",
    "category": "Health & Fitness / Lifestyle",
    "one_line_description": "AI-powered nudges rooted in Buddhist wisdom to help you change your behavior."
  },
  "brand_identity": {
    "brand_mission": "Reduce suffering through Buddhist wisdom.",
    "brand_personality_archetype": "Sage — wise, calm, compassionate",
    "core_values": ["compassion", "impermanence", "wisdom", "presence"]
  },
  "target_audience": {
    "primary_user_persona": "25–35yo who has struggled with the same bad habit for 6–7 years. Tried 10+ habit apps, all failed.",
    "user_pain_points": [
      "Same struggle for years — can't wake up, stay up scrolling, no willpower",
      "Every habit app failed within 3 days",
      "Deeply low self-trust: 'I know I won't stick to it'"
    ],
    "user_needs_and_goals": [
      "Someone who understands their specific pain — not generic motivation",
      "Guidance that finds them, not something they have to remember to open",
      "Words that feel like they were written for their exact situation"
    ]
  },
  "problem_solution_fit": {
    "problem_statement": "Generic apps give the same advice to everyone. Users feel unseen and give up.",
    "solution_statement": "Anicca Pro uses AI to craft nudges for your exact struggle, learns from your reactions, and reaches you proactively at the right moment.",
    "unique_selling_propositions": [
      "AI writes each nudge for YOUR specific struggle — not copy-pasted advice",
      "Gets smarter with every 👍/👎 you give — adapts to what actually helps you",
      "Reaches you proactively when you need it most — not on a fixed schedule",
      "Grounded in centuries of Buddhist wisdom on suffering and change"
    ]
  },
  "visual_language": {
    "color_palette": {
      "primary_brand_color": "#C9B382",
      "secondary_brand_color": "#2C2A28",
      "accent_cta_color": "#C9B382",
      "background_colors": ["#F5F3ED", "#EDE9E0"],
      "palette_mood": "warm sand, zen rock garden, morning light"
    },
    "typography": {
      "headline_font_family": "SF Pro Display",
      "body_font_family": "SF Pro Text"
    },
    "illustration_and_imagery_style": {
      "primary_style": "zen minimalism — stacked river stones, ripple rings in sand"
    }
  },
  "tone_of_voice": {
    "primary_tone": "calm and wise",
    "secondary_tone": "warm and deeply personal",
    "communication_style_summary": "Speak like a wise, compassionate friend who understands suffering without judgment"
  },
  "content_strategy": {
    "premium_feature_highlights": [
      "AI-written nudges, crafted for your exact struggle — not generic advice",
      "Gets smarter every time you react — 👍/👎 shapes what you receive next",
      "Reaches you at the moment you need it most — proactive, not scheduled",
      "Rooted in centuries of Buddhist wisdom, personalized to your pain"
    ],
    "free_vs_pro_honest_difference": "Free: 3 rule-based nudges/day at fixed times. Pro: AI-generated nudges tailored to your specific struggle, adaptive learning from your reactions, proactive server-triggered delivery."
  },
  "ui_patterns": {
    "button_style": "full-width rounded pill, warm gold #C9B382, white bold text",
    "overall_layout_philosophy": "breathing room — generous padding, single focal point, no clutter"
  }
}

実績

バージョン Offering ID Paywall ID 備考
v1 (2026-02-24) ofrng4c8d1f9d48 pwd08b47e7c59f464d ❌ 嘘コピー含む(廃棄)
v2 (2026-02-24) ofrng586631f021 pw5d8ebd3e8a674b3e ✅ 実機能のみ(現行 Variant B)

RevenueCat 接続情報

項目
Project ID projbb7b9d1b
API Base https://api.revenuecat.com/v2
MCP ツール mcp__revenuecat__mcp_RC_*
RC Dashboard https://app.revenuecat.com/projects/bb7b9d1b/

エラーハンドリング

エラー 対応
RC Paywall 409 (already exists) 新しい Offering を作成する。既存 paywall の上書き不可。
RC Experiment 404 (resource_missing) RC API は Experiment 作成不可。Dashboard 操作のみ。Dais に依頼。
LLM が禁止ワード含むコピー生成 禁止ワードチェック → 再生成(最大3回)
Mixpanel セグメント取得失敗 ユーザーに RC Dashboard の確認を促す
Pencil .pen ファイルが存在しない RC AI 自動生成(MODE 1 Step 3)を代替で使用
slack-approval が応答なし タイムアウトなし。待つ。急かさない。
3サイクル以上有意差出ない 別切り口の新実験を Slack で Dais に提案

Changelog

  • 2026-02-24: v1.0 初版作成
  • 2026-02-24: v1.1 Figma approach 廃棄 → RC AI自動生成に一本化
  • 2026-02-24: v1.2 アプリコード確認必須セクション追加。嘘コピー禁止リスト追加
  • 2026-02-24: v1.3 v1 paywall廃棄。v2 paywall (pw5d8ebd3e8a674b3e) 再生成
  • 2026-02-24: v1.4 Candle原則の嘘(30日分析/成長グラフ/頻度調整)を削除し実機能に置換。Mixpanelでのデータ取得フローを追加。slack-approvalタイムアウトなし明記。experiment_id=human操作フロー明確化。cron登録はpython3部分追加のみ(全体上書き禁止)。現在の実験状態セクション追加。
  • 2026-02-24: v2.0 3日ごと人間確認フローに全面刷新。 evaluate モード削除。check_in / analyze / create_variant モード追加。cron スケジュール変更(毎週月曜 9am → 3日ごと 7am)。Human-in-the-loop パターンに移行。

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results