用途:Chalk 的静态加速器会通过符号执行 resolver 函数的字节码,把 Python resolver 转换为原生列式表达式,加速后运行速度远快于解释执行的 Python。只有当 resolver 中每个操作都能被证明安全且受加速器支持时才能被加速。本技能用于驱动一个针对 Chalk 静态加速器服务的反馈循环:获取诊断、改写有问题的 resolver、重复,直到干净。
使用方式:在包含 chalk.yaml 或 chalk.yml 的 Chalk 项目目录树内运行:python "${CLAUDE_PLUGIN_ROOT}/bin/accelerator-diagnostics.py"。需使用项目所用的 Python 环境(需能 import chalk);若用 venv 需先激活或显式调用其 python。诊断每行为 file:line: severity: message,会指出阻塞加速的操作,例如 option<int> 可空值流入要求非空的操作,或引用了加速器无法捕获的名字。改写时需保持 resolver 签名、输出特征和 Python 语义一致,加速版本必须算出与 Python 版本相同的值。重跑脚本,直到输出 All resolvers are statically accelerable. 并以 0 退出。
常见改写:可空输入用于要求非空之处时,加显式判断(如 if a is None: return 0 或条件表达式)以便符号执行器收窄类型;若无合理默认值应询问用户,不要擅自编造业务逻辑。不支持的库或辅助函数(加速器仅支持固定的内置与模块集,含 math、statistics、re、hashlib、datetime、json、常见 str/list/dict/set 方法、numpy、pandas、protobuf 消息访问)需改用受支持操作、内联小的纯辅助函数,或让辅助函数成为可被捕获的模块级函数;若依赖不可替代,应保留该 resolver 不加速并说明原因,不得伪造行为。仅在某条件或循环内赋值的局部变量,应在条件前赋予默认值。
配置:CHALK_ACCELERATOR_HOST(默认 https://accelerator.chalk.ai,可用 --host 或该环境变量指向本地服务)、CHALK_ACCELERATOR_TOKEN(托管服务可选 bearer token)。注意:脚本会导出整个项目(python -m chalk.cli export),项目中任意语法或导入错误会先使检查失败(退出码 2),需先修复;诊断覆盖项目内所有 resolver,若用户只问某一个,只修该个。干净运行意味着每个 resolver 要么完全可加速,要么被作者显式标记为永不加速。