Communityコーディング&開発github.com

tripwire

GTM チーム向けの競合変更トラッカー。競合ページ(ホームページ、料金、変更履歴、採用情報)をスナップショットし、前回のスキャンと差分を取って、変更点を GTM 読み上げレポートに変換します。

tripwire とは?

Tripwire は、競合他社の Web ページの変更を自動的に監視し、マーケティングや製品チームが迅速に行動できるようにするスキルです。このスキルは、Python スクリプト (`scripts/tripwire.py`) を使用して、指定された競合ページ(例:ホームページ、料金ページ、変更履歴)のテキストスナップショットを定期的に取得し、前回のスキャンとの差分を検出します。検出された変更は、マークダウンレポートと JSON データとして保存され、ユーザーは「競合の変更点を教えて」「週次ダイジェスト」といった自然言語のトリガーでいつでも最新の情報を取得できます。Tripwire は、単なる変更の通知に留まらず、各変更の重要度を評価し、具体的なアクション提案を含む GTM(Go-to-Market)読み上げレポートを生成します。これにより、営業チームへのブリーフィング、バトルカードの更新、自社の価格ページへの反映など、実践的な次の一手を即座に判断できます。Claude Code や Cursor などの AI エージェント環境で動作し、API キー不要でセットアップも簡単です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thisisconnielin/tripwire/tree/main/skills/tripwire

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

tripwire は何をしますか?

Tripwire は、競合他社が重要なページを変更したときにそれを通知し、何をすべきかを提案します。 スキャナーは scripts/tripwire.py(Python 3.9 以降、pyyaml が必要、API キー不要)です。 すべてのデータは、現在のプロジェクト内のウォッチリスト watch/targets.yml の隣に保持されます。

watch/targets.yml          監視対象の設定
watch/snapshots/*.txt      各ページの最後に取得したテキスト
watch/data/changes.json    すべての変更イベント(新しい順)
watch/data/status.json     最新スキャン時のページごとの状態
watch/reports/latest.md    最新のスキャンまたはダイジェストのマークダウンレポート

SKILL_DIR は、このファイルが存在するディレクトリを指します。

1. ウォッチリストが存在することを確認する

watch/targets.yml が存在しない場合は、python SKILL_DIR/scripts/tripwire.py init を実行し、ユーザーに監視する競合とページを尋ねてファイルに書き込みます。適切なページの例:ホームページ、料金ページ、変更履歴 / リリースノート、採用情報、「vs」や比較ページ。公式 URL を使用し、読み込めることを確認してください。

項目を追加または削除するには、watch/targets.yml を編集します(ページを一時停止するには enabled: false を設定します)。

2. データを取得する

ユーザーのリクエストに応じて、適切なコマンドを選択します。

リクエスト内容コマンド
「何が変わった?」/「スキャンを実行」(本日まだスキャンがない場合)python SKILL_DIR/scripts/tripwire.py scan
特定の競合のみpython SKILL_DIR/scripts/tripwire.py scan --only "名称"
「今週」/ ダイジェストpython SKILL_DIR/scripts/tripwire.py report --days 7
「先月」python SKILL_DIR/scripts/tripwire.py report --days 30

リポジトリに本日のスキャンがすでにある場合(watch/data/status.json の last_run を確認)、スキャンをスキップしてレポートを読みます。初回スキャンではベースラインが記録されるだけです。その旨を伝え、変更は次回のスキャンから表示されることを説明します。

その後、watch/reports/latest.md(または出力されたレポート)を読みます。ハイライトする変更については、watch/data/changes.json の added / removed 行を確認し、正確に引用します。

3. GTM 読み上げレポートを作成する

ユーザーの言語で返信します。簡潔にし、重要なことから述べます。

  1. 主要な変更(最大5件、重要度順)。各項目:競合名、変更内容を平易な言葉で、具体的な詳細(旧価格 → 新価格、新機能名、新しい見出し)とともに。ページへのリンクを付けてください。
  2. なぜ重要か:各変更につき1行。料金とパッケージング > 新製品 / ローンチ > ポジショニング / 見出し > 採用シグナル > コピーの微調整。
  3. 何をすべきか:1~3個の具体的なアクション(バトルカードの更新、自社の価格ページで回答、営業に伝える、比較記事を公開する)。対応する価値がない場合は省略してください。
  4. カバレッジ:読み取れなかったページがあれば、1行で記載します。

ルール:

  • 差分に表示されているもののみを報告します。意図を事実として推測せず、推測する場合は「おそらく」と述べてください。
  • 回転するお客様の声、カウンター、日付、Cookie テキストはノイズとして扱い、報告しません。スキャンごとにページがノイズだらけの場合は、watch/targets.yml に無視する正規表現を追加する提案をしてください。
  • 「変更なし」も有効な回答です。1行でその旨を述べ、カバレッジに触れてください。

読み取れないページの修正

  • HTTP Error 403:サイトがボットをブロックしています。同じ情報が掲載されている別の公式 URL(ドキュメントやヘルプセンターのページ、RSS フィード)を試してください。それもだめな場合は、理由をコメントに書いて enabled: false に設定します。
  • no readable text (JS-only page?):ページがブラウザでレンダリングされます。静的な代替ページ(/ の代わりに /pricing、ブログフィード、サイトマップページ)を探してください。
  • URL が間違っている、または移動している:公式ページを見つけて watch/targets.yml を更新してください。

関連スキル