SuperAPI AI 工具集

godot-auditor

通用与其它

查看项目

更新于 10-15 22:33

技能介绍

用途:对 Godot 4.7 及以上项目做穷尽式架构审计,识别所谓 Invisible Slop(不可见腐化),而非单纯找 bug。适用于信号衰减、ObjectDB/孤儿节点、类型安全、导出与安全等场景。

主要能力与流程:采用渐进式披露架构,按需加载 95+ never-list 条目。步骤为:结构勘察(校验项目路径与按功能分文件夹);扇区识别(查阅 never-list 百科定位架构扇区);外科协议(只读取 references/categories/ 下对应的特定分类文件,不加载整个目录树);确定性审计(运行磁盘上已有脚本取证);产出裁决(说明每条违规背后的原因)。

磁盘脚本仅有四个:audit_signals.py 检测旧式 .connect("string", ...) 字符串信号;audit_memory_fragmentation.gd 对 OBJECT_COUNT 与孤儿节点做快照/差分;purge_report_generator.gd 汇总孤儿、未用资源与依赖问题生成整改报告;audit_type_hints.py 标记未类型化的 Array/Dictionary 与旧式字符串连接。无对应扫描器的领域(着色器、命名、物理层、UI 批处理)只加载百科分类并引用引擎 API,不得声称运行了不存在的 audit_*.py。

典型规则与模式:用 timeout.connect(_on_timeout) 替代 connect("timeout", _on_timeout);用 Array[Node] 替代裸 Array;避免在 _process 中做重计算,改用 WorkerThreadPool;避免复制 ShaderMaterial 改用 instance uniform;检测 lambda 捕获泄漏,要求 CONNECT_ONE_SHOT 或 _exit_tree() 断开;将 untyped_declaration、inferred_declaration 警告提升为错误;圈复杂度大于 10 的函数建议拆分。never-list 还包括禁用 get_parent()、非连续输入动作避免在 _process 用 Input.is_action_pressed、禁止无严格类型提示的 AutoLoad 状态、禁用绝对 NodePath、导出节点变量须带具体类提示。

安全与治理:不信任 Expression.execute() 的用户字符串(多人/模组构建的主要 RCE 面);审计时标记 OS.execute 与 Expression.execute;不实例化可能带 @tool 副作用的场景,改用 PackedScene.get_state() 离线内省 NodePath;用 FileAccess.get_md5() 阻止大纹理的二进制重复。

限制:该技能只做诊断与给出架构原因,不替你修改代码;仅运行所列四个脚本,不得臆造扫描器;确切的项目目录、脚本运行命令与依赖前提资料未提供;分类文件与百科具体条目内容暂未提供。