mcpField
M
mod-actions

mod-actions

github.com/civitai其他7.3k79 次安装今天更新
代码仓库

关于 mod-actions

mod-actions 是面向 Civitai 版主的命令行审核工具集,通过 Civitai tRPC API 执行操作。它覆盖用户、违规记录、图像、举报、生成内容、模型及 NCMEC/CSAM 报告等审核领域。

主要功能

  1. 01查询用户并管理封禁与禁言
  2. 02查看、创建和撤销违规记录
  3. 03审核图像及相关举报
  4. 04处理生成内容限制与模型审核
  5. 05管理 3D 模型及 CSAM 报告

适用场景

  1. 01核查用户违规记录并采取管理措施
  2. 02处理图像队列和内容举报
  3. 03审核生成内容限制与模型状态
  4. 04创建或查询 CSAM 报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/civitai/civitai --skill mod-actions

安装后在 Claude Code 中输入/mod-actions确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.env.example
content.mjs
csam.mjs
generation.mjs
images.mjs
lib.mjs
model3ds.mjs
query.mjs
reports.mjs
strikes.mjs

详细介绍

Moderator Actions

Civitai 综合审核工具包。涵盖用户操作、违规记分管理、图片审核、举报处理、生成内容审核、内容/训练审核,以及 NCMEC/CSAM 举报。

所有脚本均使用 Civitai tRPC API 进行 Bearer 令牌身份验证,确保操作通过正确的服务层执行,并完整触发相关副作用。

Setup

  1. 将 .env-example 复制到此技能目录中的 .env
  2. 添加你的 Civitai API 密钥(必须属于审核员账户)
  3. 可选设置 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.comAPI 基础 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.mjs3D 模型审核list、get、files、unpublish、delete、restore、set-nsfw-level、toggle-tos、toggle-poi、toggle-minor、toggle-nsfw、toggle-unlisted
csam.mjsNCMEC/CSAM 举报reports、stats、image-resources、create-report

query.mjs — 用户审核

node .claude/skills/mod-actions/query.mjs <command> [options]
命令描述
user <id|username>查询用户信息
ban <id|username>切换封禁状态
mute <id|username>切换禁言状态
leaderboard <id|username> <true|false>设置排行榜资格
remove-content <id|username>移除用户的所有内容(破坏性操作)
dm <id|username>发送私信(需要 --message)

选项: --json、--dry-run、--reason <code>、--message <text>、--internal <text>

封禁原因代码: 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]
命令读/写描述
get-user <userId>READ查询用户的违规记分历史
standingsREAD用户状态列表(筛选:active/muted/flagged)
listREAD带筛选条件的分页违规记分列表
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]
命令读/写描述
review-queueREAD图片审核队列
review-countsREAD队列标签页计数
moderate <ids> <action>WRITE屏蔽/解除屏蔽图片
tos-violation <imageId>WRITE标记为违反 TOS
rescan <imageId>WRITE重新摄取/扫描图片
report-csam <imageIds>WRITE举报包含 CSAM 的图片
poi-tagsREAD关注对象标签
user-images <userId>READ用户的所有图片
rating-requestsREADNSFW 评级审核请求
ingestion-errorsREAD存在摄取错误的图片
resolve-ingestion <id>WRITE解决摄取错误
downleveledREAD已降级的图片
pending-ingestionREAD待摄取的图片
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]
命令读/写描述
listREAD按实体类型列出举报(需要 --type)
set-status <reportId> <status>WRITE设置举报状态
bulk-status <status>WRITE批量更新状态(需要 --ids)
update <reportId>WRITE更新举报状态/备注
appealsREAD最近的申诉
appeal-details <id>READ申诉详情
resolve-appealWRITE处理申诉(需要 --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]
命令读/写描述
flagged-consumersREAD被标记的生成内容使用者
flagged-reasonsREAD标记原因
consumer-strikes <userId>READ使用者的生成内容违规记录
review-strikes <userId>WRITE将违规记录标记为已审核
user-generations <userId>READ用户生成的图片
restrictionsREAD所有生成内容限制
resolve-restriction <id>WRITE处理限制(Upheld/Overturned)
allowlist-addWRITE将提示词触发词加入允许列表
debug-audit <prompt>READ测试提示词审查
todays-countsREAD今日违规请求计数
suspicious-matchesREAD已保存的可疑审查匹配项

选项: --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]
CommandR/WDescription
modelsREAD用于审核的模型
flagged-modelsREAD已标记的模型
resolve-flaggedWRITE处理已标记的模型(需要 --ids)
model-versionsREAD用于审核的模型版本
rescan-model <id>WRITE重新导入模型
restore-model <id>WRITE恢复已删除的模型
toggle-cannot-promote <id>WRITE切换是否允许推荐
toggle-cannot-publish <id>WRITE切换是否允许发布
articlesREAD待审核的文章
mod-rule <id>READ获取审核规则

选项: --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]
CommandR/WDescription
listR列出 Model3D(--status、--username、--limit、--cursor)
get <id>R按 ID 获取 Model3D
files <id>R列出附加到 Model3D 的文件
unpublish <id>W将状态设为 -> Unpublished
delete <id>W软删除(状态设为 -> Deleted,并设置 deletedAt/deletedBy)
restore <id>W恢复(Deleted -> Unpublished,Unpublished -> Published)
set-nsfw-level <id>W覆盖 nsfwLevel(--level <n> [--lock])
toggle-tos <id>W切换 tosViolation(锁定该字段)
toggle-poi <id>W切换 poi(锁定该字段)
toggle-minor <id>W切换 minor(锁定该字段)
toggle-nsfw <id>W切换 nsfw(锁定该字段)
toggle-unlisted <id>W切换 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]
CommandR/WDescription
reportsREAD分页列出 CSAM 举报
statsREADCSAM 举报统计信息
image-resources <imageIds>READ生成已标记图像所用的资源
create-report <userId>WRITE创建 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

全局选项

所有脚本均支持:

FlagDescription
--json输出原始 JSON(供 Agent / 脚本使用)
--dry-run预览写入操作,但不执行
--page <n>分页结果的页码(默认值:1)
--limit <n>分页结果的每页大小(默认值:20)

安全须知

  • 对于具有破坏性的写入操作,务必先使用 --dry-run
  • 所有操作都会记录在 ModActivity 表中
  • 封禁操作会立即使用户会话失效
  • CSAM 举报会提交给 NCMEC — 请格外谨慎
  • 使用 --reason 和 --message 标志记录原因
  • API 密钥必须具备审核员权限
  • 使用 --json 供 Agent 守护进程以编程方式读取

评论

支持 Markdown