SuperAPI AI 工具集

wp-abilities-verify

编程与开发

查看项目

更新于 10-15 23:48

技能介绍

用途:在插件注册 Abilities API 能力后、合并 PR 前做核验;也可作为已发布插件的健康检查,或验证由 wp-abilities-audit 产出的审计文档。核心是「对抗式注解正确性检查」:例如声明 readonly:true 的 ability 若实际通过 $wpdb->update、update_option 或非 GET 委托写入,即存在安全隐患。

主要能力:静态模式下从源码枚举 wp_register_ability( 调用,提取名称、注解块与执行回调位置(可用 rg --multiline --pcre2 处理跨行格式),运行注解正确性检查、schema 与权限 lint,并校验审计文档。运行时模式需可运行环境,除静态内容外还通过 wp_get_abilities() 权威枚举、以精选输入执行各 ability、对真实用户做权限往返验证,并对 idempotent:true 的 ability 运行二次调用启发式(返回值相等只是信号而非结论)。两种模式输出相同的结构化报告格式。

用法:需提供插件检出路径、模式(默认 static)、报告输出路径,可选审计文档路径;运行时模式还需从插件 AGENTS.md 读取环境启动命令,如 npm run wp-env start、npx wp-env start 或基于 composer 的启动方式,不应假定 npm run wp-env 一定可用。前置条件是已对插件运行 wp-project-triage,且源码中至少注册了一个 ability(零命中应明确报告「未注册 ability」)。

检查项包括:注解正确性(readonly 不得写库、选项表、文章/用户/术语/评论、文件系统、cron 或非 GET HTTP/REST 委托;destructive:false 不得删除、退款、作废、取消或移入回收站;idempotent 重复调用无额外效果);权限回调按六种形态分类,静态下遇到字面 true 等形态判 FAIL,运行时匿名与订阅者应被拒绝;schema 六项小原则;错误码词表比对。误报可用内联注释 // verify-ignore: <annotation> -- <reason> 抑制。

限制:静态模式 PASS 仅表示「无明显形态违规」,不代表已验证无写入;高风险插件应在合并前运行运行时模式。env 不可达时应重新 triage 而非静默退回静态;审计 schema 不匹配时不得自动修复。token 预算测量属于另一条独立验证维度,不纳入本技能的 PASS/FAIL 结论。