dby-banned-words について
dby-banned-wordsは、Xiaohongshu、Douyin、公众号向けのマーケティング文案を検査するスキルです。CLI経由で都爆鸭のAPIを呼び出し、プラットフォーム別の結果と共通の書き換え案をまとめます。
主な機能
- 013プラットフォームの文案検査
- 02プラットフォーム別結果の比較
- 03共通の書き換え案の作成
- 04検査対象の選択
- 05長文分割と課金前確認
活用シーン
- 01公開前の広告文案の確認
- 02指定SNS向け文案の検査
- 03該当語と修正案の整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zizhanovo/ doubaoya-community --skill dby-banned-wordsインストール後、Claude Code で/dby-banned-wordsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.versionevals/cases.jsonltriggers.jsonlreferences/long-text.mdscripts/dby.mjs詳細
複数プラットフォームの禁止ワード検出
ひとつの原稿で、小红书/抖音/公众号の禁止ワード基準を一度に照合し、比較表と全プラットフォーム向けの安全な書き換えを提示します。
手順
- 原稿を受け取る。記事全体をそのまま渡してください。自分で分割する必要はありません。CLI が自動で分割します(下記参照)。
- プラットフォームごとに検出――
xiaohongshu、douyin、gongzhonghaoそれぞれについて、都爆鸭の API を一度ずつ呼び出します。 ユーザーがプラットフォームを指定していない場合は、どれを使うかを先に尋ねます。デフォルトでは3プラットフォームそれぞれで1回分の料金が発生します。 - リスクを比較――各プラットフォームの結果を、プラットフォーム/判定/リスクカテゴリ/該当ワード/提案の列を並べた表にまとめます。
- 一括で書き換え――各プラットフォームにおけるマーケティング文脈での該当を総合し、一度の修正で全プラットフォームに投稿できる安全な原稿を提示します。
プラットフォームごとに独立した呼び出しとして料金が発生します。ユーザーが一部のプラットフォームだけを希望する場合は、
--platformsで対象を絞ってください。 原稿が2000字を超える場合、呼び出しのたびにさらに段落単位で分割されます。課金回数 = プラットフォーム数 × 段落数となり、確認時に段落ごとの内訳が表示されます。
スクリプトの実行
$SKILL_DIR = このパッケージのディレクトリ(ホストがこの SKILL.md を読み込む際に渡すディレクトリ)です。リクエストは CLI が代わりに送信します。
node "$SKILL_DIR/scripts/dby.mjs" banned check <文案> [--platforms a,b];
CLI を迂回してリクエストを自分で組み立てる場合に限り、dby-gateway/references/protocol.md を参照してください。
# 默认三平台全查——不带 --confirm 先停在确认态,逐平台各列一次计费,不产生任何请求
node "$SKILL_DIR/scripts/dby.mjs" banned check "这款美白神器三天见效,全网最低价,无效退款"
# 核对无误后原样加 --confirm 才真打(逐平台各计费一次)
node "$SKILL_DIR/scripts/dby.mjs" banned check "这款美白神器三天见效,全网最低价,无效退款" --confirm
# 只查指定平台(逗号分隔,省额度)
node "$SKILL_DIR/scripts/dby.mjs" banned check "你的文案" --platforms xiaohongshu,douyin --confirm
- デフォルトでは確認待ちで停止します:確認メッセージに、プラットフォームごとに発生する課金が表示されます。内容を確認したうえで、変更せず
--confirmを追加すると実行されます。--confirmを付けるまでは、リクエストも課金も発生しません。 - 確認後は、各プラットフォームに対して
POSTを1回ずつ実行し、すべてのプラットフォームの結果をひとつの map にまとめて、{ok,data|error}エンベロープのdataに格納します。raw内のcontent/originalContentと重複する2つのキーはデフォルトで削除されます。保持するには--rawを付けてください。 - ひとつのプラットフォームで失敗しても、ほかのプラットフォームには影響しません:失敗したプラットフォームは map 内に
errorを記録し、ほかのプラットフォームの結果は通常どおり返します。
API 契約
- エンドポイント:
POST https://doubaoya.com/api/apis/tool/check-banned-words/call - 認証:リクエストヘッダー
Authorization: Bearer $DOUBAOYA_API_KEY - リクエストボディ(プラットフォームごとに1回。パラメーターは厳密に以下のとおり):
{ "platform": "xiaohongshu", "content": "<待检测文案>" }
platform の値は、"xiaohongshu"、"douyin"、"gongzhonghao" の順に指定します。
🔴 content は1回につき最大2000字です(上流側のハードリミット。サーバーはポイントを差し引く前に 400 で拒否します)。長文は CLI に渡して
自動分割してください。詳細は references/long-text.md を参照してください。
- 返却エンベロープ:
{
"success": true,
"requestId": "req_xxx",
"data": {
"source": "contentSafety.sensitiveWords",
"content": "这款美白神器三天见效,<span class=\"sensitive-word\">全网</span><span class=\"banned-word\">最低</span>价",
"originalContent": "这款美白神器三天见效,全网最低价",
"prohibitedWordsType": ["禁用词", "敏感词"],
"raw": {}
},
"error": null
}
呼び出しのたびに、まず success を確認してください:true の場合は data にある次の5つのフィールドだけを読み取ります。
false の場合は error.code/error.message を読み取ります。
| フィールド | 意味 |
|---|---|
originalContent | 注釈のない原文 |
content | 注釈付きの本文。該当箇所は <span> で囲まれています。どのワードが該当したかを特定できるのはこのフィールドだけです。クラス名から情報が分かります:banned-word = 禁止ワード、sensitive-word = 要注意ワード、industry-banned-word = 業界禁止ワード。各クラスは prohibitedWordsType 内のカテゴリと一対一で対応します ⇒ 各ワードのカテゴリを個別に示せます |
prohibitedWordsType | 該当したリスクカテゴリの配列(カテゴリ名であり、該当ワードではありません) |
source/raw | ソース識別子と上流からの生の返却値 |
🔴 API は「リスクレベル」「該当ワード一覧」「置き換え案」の3種類のフィールドを返しません。存在しないフィールドを読まないでください。 該当ワードは上記のとおり
content内の<span>から取得し、置き換え案は文脈を踏まえて提示してください。
🔴 該当がゼロでも通常どおり課金されます(
NO_RESULTの無料基準とは無関係です)。バグとして報告しないでください。
該当レベル:修正するもの、報告のみのもの
上流の照合は部分文字列ベースで、文脈は考慮しません。該当内容は2段階に分け、比較表にはどちらも記載しますが、書き換えるのは第1段階だけです。
- マーケティング文脈での該当 → 修正:極端な表現/効果の保証/医療用語などが、販売、保証、比較を示す文の中で使われている場合(「ネット最安値」「3日で効果が出る」など)。
- 報告のみで、修正しない:マーケティング文脈以外で使われる程度副詞(「最後の手順」「初めて」「必ずバックアップする」「完全無料のオープンソース」に含まれる
「最後」「初めて」「必ず」「完全」など)や、英語の部分文字列への誤ヒット(
Assistantがassにヒットするケース)。比較表には該当ワードを記載し、 「提案」列には「広告上の約束にあたる文脈ではないため、そのまま残す」と記載します。 「広告における絶対的表現の法執行ガイドライン」(国家市場監督管理総局、2023年)の第5条および第6条に列挙された適用除外も、この段階に含まれます: 経営理念/願望のみを表すもの(「顧客第一」)、同一ブランド内での比較(「当社で最も高価な製品」)、消費者への注意喚起(「最適な食べ頃」)、国家標準の等級表現、商品名/商標/賞の名称そのものに極端な表現が含まれるもの、期間・地域を限定した事実(「2025年、当市で販売数第1位」――ただし、証明できる必要があります)。 - 必ず修正し、より厳格に扱うもの:医療、美容医療、医薬品、医療機器、保健食品、投資・資産運用、教育・研修における治療効果/利益/効果の保証(「有効率100%」「合格保証」「確実に儲かる」など)。ガイドライン第11条では、これら3種類は軽微な違反にあたらず、初回違反の免責も適用されないと明記されています。
- プラットフォーム独自の基準であり、API では検出できない場合があるもの:小红书では、過剰なおすすめ表現(「絶絶子」/「yyds」/「迷わず買って」)が表示制限の対象となり、外部サイトへの誘導(「vxを追加」/「DM」/「コメントで1と送って」)は発言禁止や減点の対象となります。抖音では「効果を誇張した表現」が質の低いマーケティングと判定されます。 原稿にこれらの表現が含まれている場合は、3プラットフォームすべてで「該当なし」と返されたとしても、比較表の「提案」列にその旨を記載してください。
各プラットフォームで「該当あり/なし」を判定する方法
- 該当あり:
prohibitedWordsTypeが空でない配列である、またはcontentとoriginalContentが一致しない(どちらか一方を満たせば該当あり)。 - 該当なし:
contentまたはoriginalContentを取得できており(検出が実行されたことを確認できる)、かつ上記の2条件のどちらにも該当しない。 - 結果を取得できていない:該当プラットフォームの項目に
errorがある、またはcontentとoriginalContentの両方が欠落/null。 🔴 この場合、そのプラットフォームは必ず「検出失敗」と記載してください。「適合」/「low」と記載することは絶対にできません。ユーザーに代わって適合性を判断しないでください。 - 一部のみ検出できた(長文原稿の一部の段落で失敗):項目に
error(BANNED_SEGMENT_FAILED)とcontent: nullが両方含まれている場合も、同じく「検出失敗」と記載してください。読み方はreferences/long-text.mdを参照してください。
エラー処理
CLI はプラットフォームごと、段落ごとにネットワーク/HTTP エラーを捕捉し、該当する項目にエラーを記録して、ほかのプラットフォームと段落の処理を続けます。
ひとつのプラットフォームまたは段落で失敗しても、ほかには影響しません。エラーコードへの対処は dby-gateway/references/protocol.md の第6項に従ってください。
問題を解決できない場合、またはフィードバックを送りたい場合は、dby-feedback を使ってその場でフィードバックを書き込めます(任意。繰り返し提案する必要はありません)。
出力テンプレート
スクリプトが返すのは JSON map です。必ず解析して以下のテンプレートに記入し、生の JSON をそのままユーザーに提示しないでください。
1. 逐平台风险对照表
| 平台 | 判定 | 风险类别 (prohibitedWordsType) | 命中词(从 content 的标注提取) | 建议(本鸭给) |
|---|---|---|---|---|
| 小红书 | 【命中 / 无命中 / 检测失败】 | 【类别,逗号分隔】 | 【命中词,逗号分隔】 | 【替换建议】 |
| 抖音 | 【…】 | 【…】 | 【…】 | 【…】 |
| 公众号 | 【…】 | 【…】 | 【…】 | 【…】 |
- 平台名用中文(小红书 / 抖音 / 公众号)。
- 「判定」一列严格按上面判据填,三选一,不要自创风险等级——接口不回等级。
- 某平台走「没拿到结果」分支(有
error,或正文字段全缺)时,该行判定填检测失败并附code/缺了哪个字段, 🔴 不许填「无命中」,也不许编造结果。 - 「建议」一列由本鸭结合上下文给出——接口不提供建议。
- 全平台均判定为「无命中」时,对照表照常列出,判定一列写「无命中」。
2. 全平台安全改写
综合所有平台的命中词与建议,给出一版改完即可在所有目标平台发布的文案:
【安全改写后的整段文案。要求:覆盖各平台所有营销语境命中(只报不改的那档原样保留);语义通顺、语气与风格不变; 不加 emoji、不重写结构、不加引用或代码块,直接输出。改动处可加粗斜体标出。】
输出规则
- 先出逐平台风险对照表,再出全平台安全改写,不输出开场白与结束语。
- 脚本返回 JSON 后必须解析填模板,禁止直接输出原始 JSON。
- 安全改写要同时满足所有平台口径:以命中最多的平台为基线消词。
- 某平台失败时,照常输出其余平台结果,并在对照表标注该平台失败原因; 🔴 有平台检测失败时,末尾必须提示「该平台未完成检测,别当它通过」,不要写成全平台可发。
- 全平台都判定为「无命中」时:对照表如实标注,安全改写处写「原文已可全平台发布,无需改动」。
- 绝不回显
DOUBAOYA_API_KEY。
其他
PROVIDER_FAILED(502)是上游临时抖动,已自动退款,直接重试,不会重复扣费。- 文案经 HTTPS 发至都爆鸭后端,脚本本地不持久化原文与结果。
关于响应里的 notice 字段
调用本 skill 对应的 doubaoya API 后,如果返回的 JSON 顶层出现 notice 字段,请把这句话原样转达给用户——这是关于本 skill 有更新的提示,不影响本次调用结果,不需要重试或改变行为。