mod-actions について
mod-actions は、Civitai のモデレーター向けコマンドライン監査ツール集です。Civitai tRPC API を介して、ユーザー、違反記録、画像、通報、生成コンテンツ、モデル、NCMEC/CSAM 報告を扱います。
主な機能
- 01ユーザー検索と禁止・ミュート管理
- 02違反記録の確認・作成・取り消し
- 03画像と関連通報のモデレーション
- 04生成制限とモデル審査の処理
- 053D モデルと CSAM 報告の管理
活用シーン
- 01ユーザーの違反履歴を確認して対応
- 02画像キューとコンテンツ通報を処理
- 03生成制限とモデルの状態を審査
- 04CSAM 報告を作成または確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ civitai/ civitai --skill mod-actionsインストール後、Claude Code で/mod-actionsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.examplecontent.mjscsam.mjsgeneration.mjsimages.mjslib.mjsmodel3ds.mjsquery.mjsreports.mjsstrikes.mjs詳細
モデレーション操作
Civitai 向けの包括的なモデレーションツールキットです。ユーザー操作、ストライク管理、画像モデレーション、報告の処理、生成モデレーション、コンテンツ/トレーニングのモデレーション、NCMEC/CSAM の報告に対応しています。
すべてのスクリプトは Bearer トークン認証を使用して Civitai tRPC API を利用するため、あらゆる副作用を伴う操作が適切なサービスレイヤーを通じて実行されます。
セットアップ
- このスキルディレクトリ内で
.env-exampleを.envにコピーします - Civitai API キーを追加します(モデレーターアカウントに属している必要があります)
- 必要に応じて API URL を設定します(デフォルトは本番環境です)
cp .claude/skills/mod-actions/.env.example .claude/skills/mod-actions/.env
# Edit .env and add your API key
重要: API キーは、モデレーター権限を持つユーザーに属している必要があります。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
CIVITAI_API_KEY | はい | - | Civitai API キー |
CIVITAI_API_URL | いいえ | https://civitai.com | API ベース URL |
スキルファイル
| ファイル | 分野 | コマンド |
|---|---|---|
query.mjs | ユーザーモデレーション | user, ban, mute, leaderboard, remove-content, dm |
strikes.mjs | ストライクシステム | get-user, standings, list, create, void |
images.mjs | 画像モデレーション | review-queue, review-counts, moderate, tos-violation, rescan, report-csam, poi-tags, user-images, rating-requests, ingestion-errors, resolve-ingestion, downleveled, pending-ingestion, toggle-flag |
reports.mjs | 報告の処理 | list, set-status, bulk-status, update, appeals, appeal-details, resolve-appeal |
generation.mjs | 生成モデレーション | flagged-consumers, flagged-reasons, consumer-strikes, review-strikes, user-generations, restrictions, resolve-restriction, allowlist-add, debug-audit, todays-counts, suspicious-matches |
content.mjs | コンテンツモデレーション | models, flagged-models, resolve-flagged, model-versions, rescan-model, restore-model, toggle-cannot-promote, toggle-cannot-publish, articles, mod-rule |
model3ds.mjs | 3D モデルのモデレーション | list, get, files, unpublish, delete, restore, set-nsfw-level, toggle-tos, toggle-poi, toggle-minor, toggle-nsfw, toggle-unlisted |
csam.mjs | NCMEC/CSAM 報告 | reports, stats, image-resources, create-report |
query.mjs — ユーザーモデレーション
node .claude/skills/mod-actions/query.mjs <command> [options]
| コマンド | 説明 |
|---|---|
user <id|username> | ユーザー情報を検索します |
ban <id|username> | BAN 状態を切り替えます |
mute <id|username> | ミュート状態を切り替えます |
leaderboard <id|username> <true|false> | リーダーボードへの参加資格を設定します |
remove-content <id|username> | ユーザーのすべてのコンテンツを削除します(破壊的操作) |
dm <id|username> | DM を送信します(--message が必要です) |
オプション: --json、--dry-run、--reason <code>、--message <text>、--internal <text>
BAN 理由コード: SexualMinor, SexualMinorGenerator, SexualMinorTraining, SexualPOI, Bestiality, Scat, Nudify, Harassment, SpamBot, LeaderboardCheating, BuzzCheating, RRDViolation, Other
node .claude/skills/mod-actions/query.mjs user 3879899
node .claude/skills/mod-actions/query.mjs ban 3879899 --reason Other --message "ToS violation" --dry-run
node .claude/skills/mod-actions/query.mjs dm 3879899 --message "Please review our guidelines"
strikes.mjs — ストライクシステム
node .claude/skills/mod-actions/strikes.mjs <command> [options]
| コマンド | R/W | 説明 |
|---|---|---|
get-user <userId> | READ | ユーザーのストライク履歴 |
standings | READ | ユーザーの状況(フィルター:active/muted/flagged) |
list | READ | フィルター付きのページ分割されたストライクリスト |
create <userId> | WRITE | ストライクを発行します(--reason、--description が必要です) |
void <strikeId> | WRITE | ストライクを無効化します(--reason が必要です) |
ストライク理由: BlockedContent, RealisticMinorContent, CSAMContent, TOSViolation, HarassmentContent, ProhibitedContent, ManualModAction
オプション: --reason、--description、--points <1-3>、--entity-type、--entity-id、--report-id、--expires-days、--status <Active,Expired,Voided>、--sort <points|score|lastStrike|created>、--sort-order <asc|desc>、--flagged-for-review、--has-active-strikes、--page、--limit、--json、--dry-run
node .claude/skills/mod-actions/strikes.mjs get-user 3879899
node .claude/skills/mod-actions/strikes.mjs standings --has-active-strikes --limit 10
node .claude/skills/mod-actions/strikes.mjs create 3879899 --reason BlockedContent --description "Uploaded prohibited content" --points 1 --dry-run
node .claude/skills/mod-actions/strikes.mjs void 42 --reason "False positive from scanner"
images.mjs — 画像モデレーション
node .claude/skills/mod-actions/images.mjs <command> [options]
| コマンド | R/W | 説明 |
|---|---|---|
review-queue | READ | 画像レビューキュー |
review-counts | READ | キューのタブ別件数 |
moderate <ids> <action> | WRITE | 画像をブロック/ブロック解除 |
tos-violation <imageId> | WRITE | 利用規約違反としてフラグを付ける |
rescan <imageId> | WRITE | 画像を再取り込み/再スキャンする |
report-csam <imageIds> | WRITE | 画像をCSAMとして報告する |
poi-tags | READ | 要注意人物のタグ |
user-images <userId> | READ | ユーザーのすべての画像 |
rating-requests | READ | NSFWレーティングのレビュー依頼 |
ingestion-errors | READ | 取り込みエラーのある画像 |
resolve-ingestion <id> | WRITE | 取り込みエラーを解決する |
downleveled | READ | レベルを下げられた画像 |
pending-ingestion | READ | 取り込み待ちの画像 |
toggle-flag <imageId> | WRITE | 画像のフラグを切り替える |
オプション: --ids、--action、--review-type、--cursor、--page、--limit、--json、--dry-run
node .claude/skills/mod-actions/images.mjs review-counts
node .claude/skills/mod-actions/images.mjs review-queue --limit 20
node .claude/skills/mod-actions/images.mjs moderate 12345,67890 block --dry-run
node .claude/skills/mod-actions/images.mjs user-images 3879899 --json
node .claude/skills/mod-actions/images.mjs rescan 12345
reports.mjs — レポート対応
node .claude/skills/mod-actions/reports.mjs <command> [options]
| コマンド | R/W | 説明 |
|---|---|---|
list | READ | エンティティタイプ別のレポート(--typeが必要) |
set-status <reportId> <status> | WRITE | レポートのステータスを設定する |
bulk-status <status> | WRITE | ステータスを一括更新する(--idsが必要) |
update <reportId> | WRITE | ステータス/メモを指定してレポートを更新する |
appeals | READ | 最近の異議申し立て |
appeal-details <id> | READ | 異議申し立ての詳細 |
resolve-appeal | WRITE | 異議申し立てを解決する(--ids、--entity-type、--statusが必要) |
レポートのエンティティタイプ: model、comment、commentV2、image、resourceReview、article、post、reportedUser、collection、bounty、bountyEntry、chat、comicProject
レポートのステータス: Pending、Processing、Actioned、Unactioned
異議申し立てのステータス: Pending、Approved、Rejected
オプション: --type、--status、--ids、--entity-type、--internal、--message、--user-id、--start-date、--page、--limit、--query、--json、--dry-run
node .claude/skills/mod-actions/reports.mjs list --type image --limit 20
node .claude/skills/mod-actions/reports.mjs set-status 456 Actioned --dry-run
node .claude/skills/mod-actions/reports.mjs bulk-status Actioned --ids 1,2,3
node .claude/skills/mod-actions/reports.mjs appeals --user-id 3879899
node .claude/skills/mod-actions/reports.mjs resolve-appeal --ids 10,11 --entity-type Image --status Approved
generation.mjs — 生成モデレーション
node .claude/skills/mod-actions/generation.mjs <command> [options]
| コマンド | R/W | 説明 |
|---|---|---|
flagged-consumers | READ | フラグが付いた生成利用者 |
flagged-reasons | READ | フラグ付けの理由 |
consumer-strikes <userId> | READ | 利用者の生成に関する違反回数 |
review-strikes <userId> | WRITE | 違反をレビュー済みとしてマークする |
user-generations <userId> | READ | ユーザーが生成した画像 |
restrictions | READ | すべての生成制限 |
resolve-restriction <id> | WRITE | 制限を解決する(Upheld/Overturned) |
allowlist-add | WRITE | プロンプトトリガーを許可リストに追加する |
debug-audit <prompt> | READ | プロンプト監査をテストする |
todays-counts | READ | 本日の禁止リクエスト件数 |
suspicious-matches | READ | 保存済みの不審な監査マッチ |
オプション: --status <Pending|Upheld|Overturned>、--reason、--start-date、--message、--trigger、--category、--negative-prompt、--user-id、--username、--restriction-id、--page、--limit、--json、--dry-run
node .claude/skills/mod-actions/generation.mjs flagged-consumers
node .claude/skills/mod-actions/generation.mjs consumer-strikes 3879899
node .claude/skills/mod-actions/generation.mjs restrictions --status Pending
node .claude/skills/mod-actions/generation.mjs resolve-restriction 42 --status Upheld --message "Confirmed violation" --dry-run
node .claude/skills/mod-actions/generation.mjs debug-audit "some prompt text"
node .claude/skills/mod-actions/generation.mjs allowlist-add --trigger "girl" --category "age" --reason "False positive"
content.mjs — コンテンツモデレーション
node .claude/skills/mod-actions/content.mjs <command> [options]
| コマンド | 読み取り/書き込み | 説明 |
|---|---|---|
models | 読み取り | モデレーションレビュー用のモデル |
flagged-models | 読み取り | フラグが付けられたモデル |
resolve-flagged | 書き込み | フラグが付けられたモデルを解決します(--ids が必要です) |
model-versions | 読み取り | モデレーション用のモデルバージョン |
rescan-model <id> | 書き込み | モデルを再取り込みします |
restore-model <id> | 書き込み | 削除済みのモデルを復元します |
toggle-cannot-promote <id> | 書き込み | プロモーションの可否を切り替えます |
toggle-cannot-publish <id> | 書き込み | 公開の可否を切り替えます |
articles | 読み取り | モデレーションレビュー用の記事 |
mod-rule <id> | 読み取り | モデレーションルールを取得します |
オプション: --ids、--page、--limit、--json、--dry-run
トレーニングのモデレーション(トレーニングデータの一覧表示/承認/拒否)は、moderator-app の移行に伴い moderator spoke
(/audit/training-models、/audit/training-data)に移動され、tRPC 経由ではアクセスできなくなりました。詳しくは docs/moderator-app/page-migration-checklist.md をご覧ください。
node .claude/skills/mod-actions/content.mjs flagged-models --limit 10
node .claude/skills/mod-actions/content.mjs resolve-flagged --ids 1,2,3 --dry-run
node .claude/skills/mod-actions/content.mjs rescan-model 789
model3ds.mjs — 3D モデルのモデレーション
node .claude/skills/mod-actions/model3ds.mjs <command> [options]
| コマンド | 読み取り/書き込み | 説明 |
|---|---|---|
list | 読み取り | Model3D を一覧表示します(--status、--username、--limit、--cursor) |
get <id> | 読み取り | ID で Model3D を取得します |
files <id> | 読み取り | Model3D に添付されたファイルを一覧表示します |
unpublish <id> | 書き込み | ステータスを Unpublished に設定します |
delete <id> | 書き込み | 論理削除します(ステータスを Deleted にし、deletedAt/deletedBy を設定します) |
restore <id> | 書き込み | 復元します(Deleted → Unpublished、Unpublished → Published) |
set-nsfw-level <id> | 書き込み | nsfwLevel を上書きします(--level <n> [--lock]) |
toggle-tos <id> | 書き込み | tosViolation を切り替えます(フィールドをロックします) |
toggle-poi <id> | 書き込み | poi を切り替えます(フィールドをロックします) |
toggle-minor <id> | 書き込み | minor を切り替えます(フィールドをロックします) |
toggle-nsfw <id> | 書き込み | nsfw を切り替えます(フィールドをロックします) |
toggle-unlisted <id> | 書き込み | unlisted を切り替えます(フィールドをロックします) |
Model3D に対するストライクには、既存の strikes.mjs を使用します(ストライクシステムはエンティティの種類に依存しません)。
node .claude/skills/mod-actions/strikes.mjs create <userId> \
--entity-type Model3D --entity-id <model3dId> --reason TOSViolation --points 1
共通フラグ:
--json— 生の JSON 出力--dry-run— 変更を加えずにプレビューします(書き込みコマンドのみ)
例:
node .claude/skills/mod-actions/model3ds.mjs list --status Draft --limit 100
node .claude/skills/mod-actions/model3ds.mjs get 42
node .claude/skills/mod-actions/model3ds.mjs unpublish 42
node .claude/skills/mod-actions/model3ds.mjs set-nsfw-level 42 --level 16 --lock
node .claude/skills/mod-actions/model3ds.mjs toggle-tos 42 --dry-run
node .claude/skills/mod-actions/model3ds.mjs restore 42
csam.mjs — NCMEC/CSAM 報告
node .claude/skills/mod-actions/csam.mjs <command> [options]
| コマンド | 読み取り/書き込み | 説明 |
|---|---|---|
reports | 読み取り | ページ分割された CSAM レポート |
stats | 読み取り | CSAM レポートの統計 |
image-resources <imageIds> | 読み取り | フラグが付けられた画像の生成に使用されたリソース |
create-report <userId> | 書き込み | NCMEC CyberTipline レポートを作成します |
CSAM レポートの種類: Image、TrainingData、GeneratedImage
オプション: --type <CsamReportType>、--image-ids <id1,id2,...>、--minor-depiction <real|non-real>、--page、--limit、--json、--dry-run
node .claude/skills/mod-actions/csam.mjs stats
node .claude/skills/mod-actions/csam.mjs reports --limit 10
node .claude/skills/mod-actions/csam.mjs image-resources 12345,67890
node .claude/skills/mod-actions/csam.mjs create-report 3879899 --type GeneratedImage --image-ids 111,222 --dry-run
グローバルオプション
すべてのスクリプトで、次のオプションを使用できます。
| フラグ | 説明 |
|---|---|
--json | 生の JSON を出力します(エージェント/スクリプトでの利用向け) |
--dry-run | 書き込み操作を実行せずにプレビューします |
--page <n> | ページ分割された結果のページ番号(デフォルト:1) |
--limit <n> | ページ分割された結果のページサイズ(デフォルト:20) |
安全に関する注意事項
- 破壊的な操作や書き込み操作の前には、必ず最初に
--dry-runを使用してください - すべての操作は ModActivity テーブルに記録されます
- BAN 操作を行うと、ユーザーセッションはただちに無効になります
- CSAM レポートは NCMEC に送信されます。細心の注意を払って使用してください
--reasonおよび--messageフラグを使って理由を記録してください- API キーにはモデレーター権限が必要です
- エージェントデーモンでプログラムから利用する場合は
--jsonを使用してください