mcpField
B
backlink

backlink

github.com/yan-labsマーケティング・グロース227111 回インストール4 日前に更新
リポジトリ

backlink について

backlink は、リンク調査・評価・公開を含む外部リンクのライフサイクル全体を扱う業務向け Skill です。データファイル、スクリプト、運用資料をまとめ、競合調査や品質評価、ブラウザーでのデータ収集を支援します。

主な機能

  1. 01リンク掲載先の検索と絞り込み
  2. 02競合リンクの発見と見込み管理
  3. 03リンク品質と毒性の評価
  4. 04Similarweb と Semrush による調査
  5. 05API のないサイトからのレポート取得

活用シーン

  1. 01リンクを投稿するサイトの選定
  2. 02競合リンクと新たな機会の発見
  3. 03リンク品質と否認要否の評価
  4. 04ログイン済み SaaS ダッシュボードからのレポート抽出

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yan-labs/yan-skills --skill backlink

インストール後、Claude Code で/backlinkを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CONTRIBUTING.md
agents/
openai.yaml
data/
free-channels.json
index-submission.json
network-fingerprints.json
paid-platforms.json
data/schema/
free-channels.schema.json
index-submission.schema.json
submission-targets.schema.json
evals/
evals.json
evidence/
screenshot-chain-VERDICTS.md
references/
acquisition-doctrine.md
analysis-templates.md
authorized-data-sources.md
backlinkdirs.md
batch-campaign.md
browser-runtime-detail.md
browser-runtime.md
credits.md
data-source-operations.md
directory-run-playbook.md
discovery-loop.md
field-notes.md
harvest.md
index-submission.md
instant-publish.md
intent-routing.md
known-forms.md
LICENSE-analysis-templates-Apache-2.0
link-quality-rubric.md

詳細

上記のフロントマターは、Skill ローダーが検出に使用するため、YAML のままにします。Skill の大部分は規則とルーティングで構成されるため、以下はすべて XML です。読み飛ばしやすい規則は破られやすい規則です。タグ付きブロックにすることで、「どの規則に違反したのか」を名前で確認できます。 バックリンクのライフサイクル全体を扱う、1 つのビジネス Skill です。分割し直さないでください。また、別のブラウザー拡張機能 Skill も作成しないでください。OpenCLI とその Chrome 拡張機能は、この Skill の基盤となるコネクターであり、独立したビジネスワークフローではありません。

2026-08-16 に、以前の 2 つの Skill が統合され、削除されました。backlink-analyzer(分析テンプレート、毒性評価基準、アウトリーチ。現在は元の Apache-2.0 ライセンスのまま、3 つのリファレンスに収録)と、browser-harvest(ログインが必要なダッシュボードから表を取得。現在は )です。データ取得の知識は汎用的です。広告プラットフォーム、E コマースのバックエンド、API のない SaaS レポートなどに使えます。リンクに関係しないデータ取得タスクでも、この Skill を読み込み、そのリファレンスを参照してください。

ここには 2 種類のものがあり、それぞれ異なる問いに答えます。**データファイルは資産であり、リファレンスはその使い方と、自分を誤解させないための方法です。** — データファイル、スクリプトコマンド、リファレンスのインデックスです。ツールを探すときに参照してください。 このファイルとそのリファレンスに記載されたすべてのパスは、この SKILL.md を基準に解決してください。 該当する項目を選んでください。ユーザーの言い換えや、プラットフォームごとの具体的なページについては、を参照してください。
依頼開始点
どこに投稿するか、一括送信node scripts/targets-select.mjs --stats; ; 100 件以上のターゲット:
無料・登録不要、即時公開data/free-channels.json (account:none, status:live);
競合のバックリンク、新たな機会 と Semrush プラットフォームマニュアルを参照し、見込み情報をレジストリに書き戻します
品質、毒性、disavow するかどうか と data/network-fingerprints.json
公開できたかどうか; 公開されている正確なアンカーと rel を確認します
インデックス登録の送信; バックリンクは公開されません
Semrush/Similarweb のレポート、トラフィック; ../platforms/ のプラットフォームマニュアル
API のない管理画面の表

例から推測するのではなく、データベースを照会してください。

所有者が認証済みの Chrome で OpenCLI を使用します。ブラウザー操作の前に `node scripts/health.mjs` を実行し、 を読みます。測定値、失敗事例、コマンドの詳細については、 を参照してください。日付付きの Semrush/Similarweb のルート調査結果については、 を参照してください。 説明的なセッション名ごとに所有できるタブは1つです。並行して開くページには別々のセッションを割り当て、使用後はそれぞれ閉じてください。 共有ダッシュボードツールのロックは、データ収集の全期間にわたって保持してください。既存のランチャーとそのセッションを使用してください。 1つのセッション名の下で複数のページを保持するために、`tab new`、`tab select`、または `open --tab` を使用しないでください。別々のセッションを使用してください。 共有の固定デフォルトセッション名は決して使用しないでください。`defaultSession(base)` または明示的で説明的な一意の名前を使用してください。 並行ブラウザーループを開始する前に、必要なセッションハンドルをすべて確保してください。 通常のページ操作には専用環境を使用してください。利用可能な場合は、サブディスプレイ上の独立した非フォーカスウィンドウを使います。フォアグラウンドでの操作には、人間による操作のための明示的なオプションが必要です。クォータレポートのルートでは、スクリプトに既存の仮想ディスプレイ/アクティブ戦略を引き続き使用してください。 非表示で空のレポートだけでは結論を出せません。実際の表示状態と値を含む領域を確認し、空と判断する前にルート固有の準備完了条件に従ってください。 レポートが準備完了かどうかを判断する際は、要求されたルート、対象、範囲、内容と照合してください。ヘッダー、スケルトン、または以前の対象の数値は、準備完了の証拠にはなりません。 不慣れなレポートルートでは `scripts/ground-truth.mjs` を使用してください。詳細な DOM 調査とスクリーンショットを組み合わせます。スクリプトが収集し、AI が判断します。 共有クォータツールでは、収集処理を同時に1つだけ実行してください。タスク中は同じセッションを維持し、バッチ処理の前にクォータを確認してください。 証拠となる画面が判定を裏付けるまでは、機械による分類や空状態を提案として扱ってください。 **ユーザーが「データパネル」「データ調査」「データを調べて」「Similarweb で見て」「Semrush で取得して」と言った場合、 いずれも同じ意味です。共有アカウントのプロキシパネルを使い、Similarweb または Semrush で調べます。** この2つの製品が、ここで唯一のサードパーティデータソースです。他の候補はなく、どちらのプラットフォームを指しているのかユーザーに聞き返す必要もありません。 役割分担は固定です。質問の種類に応じて選び、一度に開くのは1つだけです。
質問使用するもの取得できる情報
このサイトの規模、トラフィックの流入元、類似サイトSimilarweb総訪問数(直接/参照を含む)、チャネル構成、類似サイト、地域分布
このキーワードの検索量、難易度、検索順位、被リンクの状況Semrush国別の検索量と KD、キーワードデータベース全体のエクスポート、自然検索順位、主要ページ、参照ドメインとバックリンク

両者の「トラフィック」は基準が異なるため、数値が一致しないのは正常です。 Semrush のドメイン概要は自然検索トラフィックの推定値を示し、 Similarweb は総訪問数を示します。同じサイトでも両者の数値に3倍以上の差が出るのはよくあることです。結論を書く際は必ず基準を明記してください。 そうしないと、「競合は思ったより弱い」といった誤った判断につながります。両者を同じ列に入れてはいけません。 node scripts/tools-share-open.mjs --tool semrush または --tool similarweb を使用します。タスク中は同じセッションを再利用し、遷移先のルート、対象、クォータを確認してください。Semrush の自然検索推定値と Similarweb の総訪問数では分母が異なります。パネルの起動、ノードのクォータ、Semrush 概要の基準については、 を参照してください。ツールアカウントとデータソースの詳細については、 を参照してください。

その場限りの閲覧もスクリプト化された作業です。閲覧を再現できるよう、OpenCLI を使用してください。 に従い、閲覧対象にちなんだ名前を付けます: # 一意でも意味のない名前では、「このタブは誰のものか」という問いに答えられません。 ]]> # ここでは $$ を使わないでください。Claude Code の Bash ツールでは、呼び出すたびに値が変わります。 S="explore-pricing" opencli browser "$S" open "https://example.com/pricing" opencli browser "$S" get url # ページが開いたことを確認 opencli browser "$S" extract opencli browser "$S" close opencli browser "$S" tab list # [] が返される想定 ]]> 価格とペイウォールの兆候を抽出したい公開ページの場合: node scripts/page-read.mjs --url https://example.com/pricing --out .backlink/pricing.json `page-read.mjs` は読み取り専用です。入力や送信は行いません。`curl | grep` では、これらのサイトで使われている SPA のシェルは空になります。その `paywallSignals` は、文脈とともに一致したテキスト範囲を証拠ディレクトリ内のスクリーンショットと組み合わせたものです。それらをもとに、一回払いかサブスクリプションかを判断するのはあなたです。このスクリプトは判定を示すブール値を出力しなくなりました。 同じ調査を二度行っていることに気づいたら、それがスクリプトを書く合図です。`scripts/` のすべてのスクリプトは、そうして生まれました。 再帰的な発見:競合他社を起点にする → 認可済みの Semrush/Ahrefs エクスポートまたはログイン済みブラウザーから、その競合他社の被リンク行を取得する → ソース URL を分類する(編集記事、リソース、ディレクトリ、プロフィール、コメント、ログイン壁、有料、CAPTCHA、却下)→ 実際の記事ページからコメント投稿者のドメインを収集する → それらをキューに戻す → 深さに上限を設けて繰り返す。トピックとの適合性、ページの品質、モデレーション、公開範囲、紹介流入の可能性を基準に順位付けします。低品質なコメントの量は補助的なものであり、目的ではありません。

一括処理:認可済みの参照ドメインのエクスポートを直接取り込みます。

エッジは refdomain として型付けされます。観測していないコメント投稿者の関係を

記録してしまうため、これらを import-commenters に渡さないでください。

node scripts/discovery-queue.mjs import-refdomains --file .backlink/discovery.json
--source competitor.com --input .backlink/competitor-refdomains.csv

node scripts/harvest-commenters.mjs --session "discovery-commenters" --url https://example.com/article --out .backlink/commenters.json node scripts/discovery-queue.mjs import-commenters --file .backlink/discovery.json --input .backlink/commenters.json node scripts/discovery-queue.mjs next --file .backlink/discovery.json --limit 10 ]]> もう一つの非再帰的な方法は、競合他社の被リンク行ではなく、検索演算子のフットプリントを使うことです。footprint-discover.mjs は、SERPER_API_KEY が設定されている場合、Serper.dev の API を優先します(HTTP 経由の実際の Google SERP を使用し、ブラウザーも CAPTCHA も不要です)。無料枠では、演算子クエリは 10 件に制限されます。キーがない場合は、OpenCLI 経由でオーナー自身のログイン済み Chrome にフォールバックします。この場合、セッションは演算子クエリをおよそ 4 件実行すると CAPTCHA/「通常と異なるトラフィック」の壁に当たり、フラグが立った出口 IP は、新しい独立プロファイルからのアクセスもブロックされます(2026-09-12 agent-browser の調査結果)。一般的な検索 API と Bing/DuckDuckGo は、どちらの方法でも inurl:/intitle: 演算子を実行しません。実際に一括検索を実行する前に、効果のあるフットプリントとノイズの多いフットプリントの表、および CAPTCHA に関する方針について、references/discovery-loop.md §「Footprint discovery」を参照してください。 <![CDATA[ node scripts/health.mjs # ブラウザーを開く前に opencli を確認 node scripts/footprint-discover.mjs --keyword "browser games" --preset submit
--num 20 --out .backlink/footprint-browser-games.jsonl

JSONL を逐次書き込みます。CAPTCHA の兆候があると停止し、

.backlink/footprint-browser-games.jsonl.evidence/ に状況を残します。

# --resume は停止した実行を後から再開し、完了済みのクエリを再実行しません。 ]]> ドメイン概要は1ページで、残りの8ページは `semrush-report.mjs` が対応します。これらのページにはエクスポートボタンがなく、実際に競合調査を行う場所です。8ページのうち5つ(organic-overview/organic-positions/organic-pages/keyword-magic/ keyword-overview)には全世界のオプションがなく、`--db` を指定しないと予測不能な国のデータが表示されます。明示的に指定しないと、スクリプトはエラーで終了します。残りの3つ(backlinks-list/referring-domains/backlinks-overview)は国別ではありません。**競合調査全体で同じ `--session` を渡してください** — パネルの起動には20〜40秒とログインが必要で、レポート自体には約15秒かかります。セッションがツールのオリジンにすでにとどまっている場合、`semrush-report.mjs` は起動をスキップします(`sessionReused: true` でその状況を示します)。 1つのセッションで複数の*レポート*を正当に扱うのは、ここだけです。ページは一度に1つだけで、順番に移動します。これは が認めている方法です。同時に開いたままにするには、N個のセッション名が必要です。 これらの指標は、候補の発見と優先順位付けに役立ちます。バックリンクが公開されている、インデックスに登録されている、フォロー可能である、またはトラフィックを因果的に生み出していることを証明するものではありません。レポートで気づかないうちにゼロが返される原因となる解析上の落とし穴については、 に記載されています。新しいリーダーを書く前に必ず読んでください。特に、準備完了を判定する条件は、タブ名、列見出し、フィルターチップではなく、**データ行**を基準にしなければならないというルールに注意してください。

次に、パーサーを使ってパーサーを検証します。 ページの準備ができていることと、正しく解析できたことは別の主張であり、後者の失敗は気づかれないままです。ある実行では、処理対象となった5つすべてのドメインで件数が過少になりました。最もひどいものでは93行中91行が失われ、最も健全に見えたものでも49行が失われました。どこにもエラーはなく、そのうえ誤った結論が記述されました。

確認は2つの比較で行います。この2つを混同すると誤検知が発生します。

`rawText` 内のレコード形式の行数を数え、`parsed.rows.length` と比較します。ここに差がある場合は、**正規表現に見落としがあります**。行は届いているのに、取りこぼしています。これは気づかれにくく、危険な問題です。パーサーを修正してください。 Semrush は独自の合計(`自然検索ランキング: N`)を表示します。これが `rawText` に含まれる件数を超えているなら、行は**そもそも届いていません**。これらのテーブルは仮想スクロールで、一度に一部しかマウントされないため、すべて取得するにはエクスポートが必要になり、クォータを消費します。これは既知の上限であり、バグではありません。「パーサーを修正した」ではなく、そのように説明してください。

実際に再実行すると、両方のケースが同時に確認できます。3つのドメインは見出しの件数と完全に一致(14/14、22/22、5/5)しましたが、1つは430件と表示されているのに91件しか読み取れませんでした。最初の3つはパーサーが正しいことを示しています。4つ目はレベル2の問題であり、修正は不要です。

適格性の判定基準は実際のトラフィック(毎月の訪問数`>= 100`)であり、DRではありません。また、この判定はフォームの入力前に行います。役割分担は固定されています。**スクリプトが証拠を収集し、AIが証拠を読み取って判定し、人間がその両方を再確認できます。** バッチスクリプトは、測定された生の値と解析ステータス、生テキストの抜粋、`<out>.jsonl.evidence/` 内のスクリーンショット、および `stopReason` を出力します。合否の判定は出力しません。`apply-traffic-screen` は数値と証拠のパスをテーブルにコピーし、しきい値は `targets-select` のクエリ時に計算されます。 # 行:{totalVisits, parse, stopReason, rawExcerpt, evidence:{screenshot,raw}} node scripts/apply-traffic-screen.mjs --in sw.jsonl --source similarweb node scripts/targets-select.mjs --cohort open --min-traffic 100 ]]> **null 値は低トラフィックではありません。未計測または取得失敗を意味し、結論として扱うことは禁止されています。** `stopReason` で理由を確認できます。 `stable`/`empty-state` は取得が完了したことを意味します(`empty-state` は、データがないことを示す文をソース自体が出力したことを意味します。それが「測定するには小さすぎる」という意味かどうかは、スクリーンショットと生テキストに照らして AI が判断します)。 `unstable`/`timeout`/`exception` は*この確認が完了しなかった*ことを意味します。再開すると再試行され、このような行を適用すると、同じソースの古い測定値があれば、それをクリアし、新たな値は書き込みません。数値のない行が「基準未達」の分類に入ることはありません。`targets-select --min-traffic` では別に表示され、`--unmeasured` で処理対象に追加されます。 ドメインの測定に必要なのはクエリ1回ですが、フォームの入力にはその2桁多い回数がかかります。ある実行では、73ドメインからなるファミリーのすべてのフォームに入力した後で、トラフィックを5件だけサンプリングしました。その結果、入力したフォームはすべて破棄されました。 対象をそれぞれ独立して調査してください。類似サイトからフォームの構成を推測してはいけません。 `inspect-page.mjs` は、すべてのフォームとすべてのフィールド(表示・非表示を問わず)について、意味的なタプルと安定したマーカーを含む**フォームの全数調査結果**に加え、エビデンスディレクトリにcaptureSceneのペア(piercingによる全数調査+スクリーンショット)を出力します。`fillable`/`blocker`/`reason`/`selectedForm` の各フィールドは、**ヒューリスティックによる提案**(出力内の `suggested` に関する注記を参照)であり、判定ではありません。AIは、全数調査結果とスクリーンショットをもとに「このページに入力できるか、どのような制限があるか」を判断し、提案に従わないこともできます。機械的なルールであるsafe-fillは引き続き強制され、曖昧さのない適格なフォームが1つだけの場合に限って処理を進めます。CAPTCHAページをステージングできるのは、サイト所有者が通常の人による完了を明示的に承認した場合のみです。外部のCAPTCHAサービスを使って回避または解決してはいけません。 モードは `comment`、`directory`、`auto` のいずれかです。エビデンスは `.backlink/scan.json.evidence/` に保存されます(`--evidence-dir` で変更できます)。 内容が事実に即した、レビュー済みのJSONペイロードを作成してください。commentモードでは、`description` がコメント本文になります。 URL、フォームの識別情報、フィールドの意味、ログイン状態、CAPTCHAの状態を再検証し、送信ガードを設定します。送信は行いません。人間が表示されたページを確認し、最後の送信操作を行います。ユーザーがレビュー済みの特定の送信を明示的に許可した後に限り、エージェントは `release-submit-guard.mjs` を実行できます。ただし、ガードを解除しても[送信]はクリックされません。 サイト所有者が通常のCAPTCHA完了を明示的に承認している場合は、`--allow-captcha` を追加してください。これにより、ガードされた入力のみが許可され、CAPTCHAと最終送信には手を加えません。CAPTCHAを含むルートは、常に引き継ぎ専用です。入力済みフォームがサイト所有者から見て準備完了であることを確認したら、`release-submit-guard.mjs --human-handoff` でガードだけを解除し、その後は停止してください。バッチ処理の許可がすでに存在する場合でも、エージェントがチャレンジを解決したり、[送信]をクリックしたりしてはいけません。 レーンBでは、サイト所有者が完了できるよう、フォームを画面上に表示したままにします。**ステージングするサイトごとにセッション名を1つ使用してください**。1つのセッションが所有するタブは1つだけなので、セッションを再利用すると、レポートにはステージング済みとしてN件と表示されたまま、前のフォームが上書きされます。`adapter-phpld.mjs` にリファレンス実装があります。 参照ドメインの品質とトピックとの関連性、不審なネットワーク、サイト全体にわたるリンク、有害なパターン、アンカーテキストとターゲットページの多様性、**確認できた場合の**follow/nofollow/UGC/sponsoredの分布、競合との差分、優先度を付けた次の機会を分析します。 — スコアリング、有害性、否認。 — レポートの形式。 — フレームワーク。メッセージの送信には、メッセージごとにユーザーの明示的な承認が必要です。 これらのテンプレートは、データをすでに取得済みであることを前提としています。データを取得するものではありません。**テンプレートだけを使い、実際に確認した行データに裏付けられていないレポートは、捏造です。** ユーザーから別途依頼されない限り、リンクを否認したり、サイト所有者に連絡したり、本番サイトを変更したりしてはいけません。第三者が示す権威性やトラフィックの推定値は、参考値であり、時間とともに変わるものとして扱ってください。 スクレイピングループを書く前にを読んでください。 **もっともらしく見えるものの、気付かないまま誤った出力になる**失敗例を解説しています。`<table>`ではない仮想スクロールテーブルがエラーを出さずに行を落とす問題、長い URL によって行全体が消える問題、ページループが実行中なのに失敗したように見える実行チャネルのタイムアウト、Chrome の集中型スロットリングによって4秒のループが25分に延びる問題です。 `scripts/harvest.browser.js`はページ内コレクターです。出力は戻り値ではなく Blob のダウンロードとして届きます。実行チャネルが約1 KBで切り詰めるためです。

**テーブル全体をファイルとして必要とする場合にのみ使用してください。**レポートを読む場合(「このページには何が書かれているか」「ここにデータはあるか」など)は、代わりにを使用してください。これはが名指しするコレクターであり、harvest.browser.jsには証拠が1つ(DOM)しかなく、マニフェストも、それに反証するスクリーンショットもありません。harvest.browser.jsを使用する場合は、スクリーンショットを自分で撮影してください。

候補 → 適格性確認済み → 下書き済み → フォーム入力済み → 送信済み → 公開済み → インデックス登録済み → 関連性確認済み

プロジェクトごとの進捗:送信済みのものと残りのものを確認します

node scripts/ledger.mjs stats --file .backlink/ledger.json node scripts/ledger.mjs remaining --file .backlink/ledger.json --min-traffic 100 node scripts/ledger.mjs remaining --file .backlink/ledger.json --cohort open --free-only

次のバッチを選択します。.backlink/ledger.json(デフォルトでは

cwdからの相対パス)を読み込み、フラグなしで送信済み以降および却下済みのドメインを除外します

node scripts/targets-select.mjs --cohort open --min-traffic 100 ]]> submitted、public、indexed、rel_verifiedには、それぞれ証拠のメモが必要です。入力済みフォーム、保留中の通知、過去の推測を根拠にレコードを昇格させないでください。indexedには検索エンジン名を必ず指定してください(indexed@google、indexed@brave)。修飾なしの「indexed」は、1つのクローラーの判断からウェブ全体について主張することになります。 座標ベースの「人間のような」クリックは禁止です。 CAPTCHA、Turnstile、ログイン、ペイウォール、クォータ、アカウントの適用範囲を回避してはいけません。 「まだ測定されていない」ものを「適格」として扱ってはいけません。トラフィックゲートが機能するのは、未測定の行を通過させるのではなく、バッチから除外する場合だけです。 --min-traffic は仕様上それらを除外し、--unmeasured は次のスクリーニングキューとして一覧表示します。バッチとして表示することはありません。 ゲート指標は有名なドメインではなく、既知の不良ドメインに対して検証します。リンクネットワークが自ら作り出せるシグナル(DR、人気ランキング、インデックスサイズなど)は、いずれもファームを通過させます。Tranco のトップ100万件は、まさにこの理由で失敗しました。ファームと確認された73ドメインのうち48件が、134k位から998k位の範囲で含まれていました。 一般的なお世辞、偽の身元、捏造した指標、掲載先の記事を無視したコメント本文は禁止です。フィールドを埋めるために製品情報を捏造してはいけません。創業者、価格、住所、ローンチ日、ユーザー数、所有権、法務、連絡先などが該当します。不明な任意項目は空欄にし、必須項目が不明な行はそこで止めてください。 異なるトピックを扱うホストサイトでも問題ありません。関連性とDRは候補の順位付けに使いますが、候補を除外する基準にはしません。また、nofollow は記録すべき観測情報であり、スキップする理由ではありません。品質上の理由でターゲットを却下する前に、を読んでください。 リンクファーム、スパム生成ツール、アダルト/マルウェアの掲載面、隠れた相互リンク、一時的な適格性確認ページ、クローキングは禁止です。同じ場所で同一の見返りが2つ確認された場合(1つのサイトスクリプトが数十のドメインに展開されている、または同じ宣伝文句が一字一句同じ形で繰り返されている)は、同一の運営者と見なします。その運営者のN個のドメインに送信しても、リンクの価値は1つ分しか得られず、フットプリントはN倍になります。 送信をバックリンクとして記録してはいけません。これには検索エンジンへのURL送信も含まれます。これはインデックス送信チャネルであり、リンクを公開しないため、掲載台帳ではなくdata/index-submission.jsonに記録します。 対象のURLで実際に確認せずに、follow、nofollow、ugc、sponsored、indexedを記録してはいけません。クリック、登録の完了、下書きの保存、入力内容が消えたフォーム、一般的なサンクスURLは、送信の証拠にはなりません。これらが記録するのは実行した操作であり、台帳が記録するのはサイトが行ったことです。 結果が確認できていないターゲットを自動的に再送信してはいけません。最後の操作が曖昧な場合、つまり送信を実行したものの結果が確認できなかった場合は、絶対に再試行しないでください。アカウントのバックエンドを確認し、次にメールボックスを確認し、その後で公開ページを確認してください。この状態はoutcome-unknownであり、失敗ではありません。 バッチを選択する前に、プロジェクト固有の.backlink/ledger.jsonを必ず読んでください。すでにsubmitted以降(public、indexed、rel_verified)の状態にあるドメインは、再度選択しません。Skill のターゲットデータベースは全プロジェクトで共有されているため、「送信済み」と言えるのはプロジェクト単位に限られ、それを把握しているのはプロジェクトの台帳だけです。rejectedドメインも同じく既定ではスキップします。メモを読み直し、却下理由が該当しなくなったことを確認した場合に限り、--include-rejectedを使って再度選択してください。scripts/targets-select.mjsは、作業ディレクトリを基準に.backlink/ledger.jsonからこれを自動的に行います。プロジェクト内から実行するだけで十分で、フラグは不要です。 結果を台帳に書き戻さずに終了した実行(ledger.mjs upsertとtransitionを行い、submitted/public/indexed/rel_verifiedには証拠を添える)は、次回の選択からは認識できません。そのドメインは選択可能なまま残り、再度送信されます。結果の書き戻しはバッチ完了の一部であり、任意の後続作業ではありません。 台帳はプロジェクトが行ったことを記録し、data/submission-targets.jsonとdata/free-channels.jsonはチャネルの実態を記録します。この第2層も第1層と同様に古くなります。実際の送信によって、記録されたゲートやフィールドが誤っていたと判明した場合(オープンフォームと記録されているサイトでログインが必要になった、captchaがnoneと記録されているのに実際にはチャレンジが表示された、無料と記録されたチャネルで有用な経路が有料だった、新しい場所へリダイレクトされるようになった、またはサイトが閉鎖されていたなど)は、その記録を修正することも実行完了の一部であり、後回しにしてはいけません。バッチが終わる前にフィールドを修正し、観測した内容と日付をnotesに追記して、実行を完了とする前にscripts/validate-data.mjsを実行してください。誤った記録を残すことは、中立的な欠落ではありません。次の選択ではそれが真実として読み込まれ、同じサイトで同じ間違いが繰り返されます。 アンカーテキストは、ブランド名、製品名、または正規URLをそのまま使用します。dofollow の扱いを求めてはいけません。キャンペーン全体で商用の完全一致アンカーを繰り返してはいけません。有料またはインセンティブ付きの掲載が通常のfollowリンクとして公開された場合、それを成果ではなく非準拠として扱ってください。 記録にはエイリアスと証拠IDを使用します。パスワード、OTP、リカバリーコード、Cookie、OAuthパラメーター、マジックリンク、生のセッションID、生のメールアドレス、電話番号は、いずれの記録にも含めてはいけません。生のCookie、トークン、認証ヘッダー、認証情報をログに残さないでください。 source · metric · month · geography · device · date verifiedが揃っていないサードパーティのトラフィック数値は、数値として扱えません。6つすべてを記録するか、いずれも記録しないでください。 同じクォータから同じデータを取得できる場合は、MCP サーバーより、ドキュメント化されたHTTPエンドポイントを優先してください。MCP を使うと、機能が増えないまま接続とプロセスが追加され、障害時にサービス停止との切り分けが難しくなります。MCP は認可された唯一のチャネルである場合に限って使用し、置き換え先が一度正常に実行されるまでは、動作中の経路を廃止しないでください。 この種の記録は変化よりも早く陳腐化するため、lastVerifiedAtを保持します。3か月前に機能していたチャネルも、現在は消失していたり、利用条件が課されていたり、noindexになっていたりする可能性があります。キャンペーンの前に再検証してください。バリデーターは、liveの状態で180日を超えた記録に警告を出します。誤った行の修正は、新しいチャネルの追加より価値があります。 free-channels.jsonは公開ページ上にある公開済みリンクを記録し、relObserved/anchorRenderedが必須です。submission-targets.jsonは存在する送信経路を記録し、バリデーターはそのファイルでこれらのフィールドを拒否します。実際のアンカーが確認された時点で、ターゲットは後者から前者に移ります。それまでは、rel、アンカーテキスト、インデックス可能性について何も保証せず、レポートでも保証があるように示してはいけません。 2つのボリューム情報源の数値が約3倍以上食い違っていても、「ボリュームは信頼できない」という証拠にはなりません。解決可能な算術上の問題であり、どちらかの数値を判断に用いる前に、必ず解決しなければなりません。議論の対象となっているキーワードでドメインランキング1位のサイトを選び、Similarwebで実際のトラフィックとOrganic-Searchの割合を取得し、Semrushでそのサイトのランキング対象キーワードと検索ボリュームを取得してください。観測されたオーガニッククリック数を候補のボリューム合計で割り、推定CTRを求めます。40%未満なら妥当な可能性がありますが、100%を超える場合はそのボリュームを誤りと判定できます。これはボリュームのみを検証するもので、検索意図は検証しません。SERPから検索者が販売するものを求めていないと分かれば、CTRの確認を通過したキーワードでも価値がないことがあります。ツールのある機能(ボリュームモデル)が誤りと判明しても、同じツールの別の機能(例:推定モデルを持たないSERP構成の読み取り)については何も否定されず、影響もありません。詳しい例はを参照してください。 クローズドループの検索ボリュームチェックで確認できるのは、ある時点での検索数です。その需要が持続するかどうかは分からず、この2つの問いにはそれぞれ別の根拠が必要です。トラフィックツールが示すのは直近の期間のデータなので、バイラルな急増中に測定されたキーワードは、実際に正しく計算された、しかしすでに古くなった数値でCTRチェックに合格してしまいます。キーワードを商品ライン、ページ作成、リンクキャンペーンの軸にする前に、そのキーワードと同じカテゴリの、常に需要があることで知られる用語について、複数年にわたる Google Trends の推移を確認してください。ある月までゼロのまま推移し、その後急上昇して落ち込む用語は一過性の流行です。それを選ぶと縮小する市場を奪い合うことになり、既存サイトのトラフィックが崩れても、順位データには表れません。2つの原因を見分ける診断方法は次のとおりです。既存サイトが依然として#1を維持しているのにトラフィックが減っているなら、順位ではなく需要が落ちたということです。これは需要の衰退であってペナルティではなく、リンク構築をどれだけ行っても回復できません。実例:クローズドループで月間72k~143kと確認されたキーワードが、3か月以内にGoogle Trendsで2.2/100まで落ちました。その間、#1のサイトは順位を維持したまま、トラフィックの87%を失いました。

実行して問題が起きてからではなく、実行する前にリファレンスを読んでください。 references/browser-runtime.md references/safety-policy.md references/batch-campaign.md — 単一ターゲットのループは重複排除が遅すぎ、最初の CAPTCHA で停止し、処理が中断された行と未着手の行を区別できず、リンクではなくフォームの数を集計してしまいます references/directory-run-playbook.md — 実際の実行で難しいのはフォームの前後であり、フォーム自体ではありません。成功した送信5件のうち4件は、有料プランへのアップセルの背後に無料プランが隠されており、送信を行わなくてもすでに掲載済みだったターゲットが1件あり、担当者の台帳の行は、ほかの誰かが作業を終えた瞬間に古くなりました references/field-notes.md — 個人の連絡先が必須という条件は CAPTCHA より優先され、ランディングページの CAPTCHA スキャンは誤検出を起こします references/instant-publish.md の「サードパーティのリストを読む」セクション — Dofollow 列はプラットフォームについての主張であり、リンクを確認した結果ではありません references/paid-platforms.md references/index-submission.md references/acquisition-doctrine.md references/backlinkdirs.md references/prompts.md references/credits.md データソースと権限の境界 種類別の候補と、適格または不適格とした理由 現在の台帳の状態。後の状態を推測して記載しないこと 根拠を示すリンクまたはローカルの根拠ファイル 次に行う安全なアクションと、人による確認または送信が必要かどうか ソース:[Skills.sh](https://skills.sh/yan-labs/yan-skills) プロジェクト単位でインストールする場合は `-g` を省略してください。更新するには `npx skills update backlink -p -y` を実行してください。 **まずは`opencli`です。** このスキルのブラウザー操作はすべて`opencli`を通じて実行され、このスキルで要約されているルールも`opencli`が担います。

また、yan-labs/OpenCLI releasesからOpenCLIのバイナリとブラウザー拡張機能を入手する必要があります。Chrome ウェブストア版ではありません。 ストア版はデフォルトでフォアグラウンド動作するため、ウィンドウを前面に表示し、ユーザーが読んでいるタブを奪ってしまいます。この不具合は通知されません。コマンドは引き続き成功し、動作だけが誤ったままです。そのため、opencli doctorは1.0.32より古い拡張機能を明示的に警告します。警告された場合は、回避策を探すのではなく、拡張機能を更新してください。

コメント