1. 项目概述Superpowers 不是超能力而是开发者工具链的“认知增强层”你搜“superpowers”时大概率不是在找漫威电影里的变种人而是在找一个正在悄悄改变本地开发工作流的工具集合——它既不是独立IDE也不是某个厂商的闭源产品而是一套围绕本地大模型推理代码理解智能辅助执行构建的开源协同协议。我第一次在 GitHub 上看到superpowers这个 repo 名字时也愣了一下这名字太有迷惑性了。但实测两周后我把它从“尝鲜玩具”升级为每日主力开发环境的核心调度中枢。它的本质是把 Claude Code、Antigravity、Codex CLI、Cursor 这些原本孤立运行的智能编码组件用一套轻量级、可插拔、面向终端的协议粘合起来让它们不再各自为战而是像一支配合默契的特种小队Claude Code 负责语义理解与生成Antigravity 承担复杂任务编排与沙箱执行Codex CLI 提供命令行接口与上下文注入能力Cursor 则作为可视化前端承载交互与调试。四者之间不靠 API 密钥硬耦合而是通过superpowers定义的标准化 context schemaJSON Schema、action manifestYAML 描述文件和 runtime contract进程间通信约定完成协作。这意味着你可以在 Ubuntu 终端里用codex run --taskrefactor触发一次重构背后自动调用本地运行的 Claude Code 模型分析代码结构再由 Antigravity 启动隔离沙箱执行 AST 修改最后通过 Cursor 的 LSP 插件实时刷新编辑器视图——整个过程你只敲了一条命令却调动了四套系统的能力。它解决的不是“能不能写代码”的问题而是“如何让已有工具链真正协同起来把开发者从上下文切换、环境配置、结果验证这些重复劳动中解放出来”的问题。适合三类人一是已经部署了本地 LLM如 llama.cpp、Ollama但苦于缺乏统一调度入口的进阶用户二是团队中希望统一智能辅助行为规范、避免每个工程师各自折腾不同插件配置的 Tech Lead三是正在评估 AI 编程工具落地路径、需要可审计、可回滚、不依赖云端服务的 DevOps 工程师。它不承诺“一键写出完美代码”但能确保每一次 AI 辅助操作都可追溯、可复现、可审计——这才是真实生产环境里最稀缺的“超能力”。2. 核心设计逻辑为什么必须用 Superpowers 做调度层而不是直接用 Cursor 或 Codex CLI2.1 单点工具的天然局限功能强但“孤岛感”极重先说结论单独使用 Cursor、Claude Code、Codex CLI 或 Antigravity都会陷入“能力越强负担越重”的悖论。这不是它们的设计缺陷而是定位决定的必然结果。Cursor是一个 IDE它的核心价值在于编辑器体验语法高亮、跳转、调试、Git 集成。它内置的 AI 功能如/ask、/edit本质上是调用其后台服务或本地模型的快捷入口所有上下文管理、历史记录、提示工程都封装在 UI 层内部。一旦你想把 Cursor 里生成的代码片段自动喂给 Codex CLI 做静态分析或者让 Antigravity 在隔离环境中执行你就得手动复制粘贴、切换终端、重新构造上下文——这个过程丢失了代码块的 AST 结构、丢失了原始文件路径、丢失了 Git 分支信息更关键的是丢失了“这次操作的意图”。我在一个微服务项目里试过纯 Cursor 流程改完一个接口定义后想批量更新所有调用方Cursor 的/edit可以生成修改建议但无法自动识别哪些文件是真正的调用方它没有项目级依赖图谱也无法保证修改后的代码能通过单元测试。你得自己打开终端跑npm test失败了再回去改提示词……循环三次后我放弃了。Codex CLI是命令行工具优势是可脚本化、可集成 CI/CD。但它默认只处理“单文件输入→单文件输出”这种扁平流程。比如codex lint --file src/api.ts它能告诉你类型错误但无法知道这个文件属于哪个 Git 分支、最近一次 commit 是谁提交的、上游依赖是否已更新。它没有状态管理也没有执行环境隔离。当你运行codex run --tasksecurity-scan它可能调用本地模型扫描 XSS 漏洞但扫描结果怎么存存到哪里下次扫描时如何对比增量CLI 本身不提供这些能力你得自己写 shell 脚本补全很快就会变成一堆难以维护的.sh文件。Antigravity的定位最接近“执行引擎”它用 WebAssembly 或容器化方式运行不受信任的代码确保安全。但它本身不负责“理解需求”。你得先告诉它“我要执行这段 Python 脚本”然后它才启动沙箱。谁来判断“这段脚本是否该被执行”谁来生成这段脚本谁来验证执行结果是否符合预期Antigravity 只回答“能不能做”不回答“该不该做”和“做得对不对”。Claude Code指本地部署版本非 Anthropic 官方服务是语言模型推理层它擅长“理解”和“生成”但极度依赖高质量上下文注入。直接喂它一整段 500 行的 TypeScript 文件效果远不如喂它“当前函数签名 调用栈 相关类型定义”这三段精炼上下文。而如何提取、裁剪、序列化这些上下文恰恰是 Cursor、Codex CLI、Antigravity 各自的短板。提示把 Cursor 当作“手”Codex CLI 当作“嘴”Antigravity 当作“保险箱”Claude Code 当作“大脑”。Superpowers 就是那个指挥官——它不替代任何人的工作但确保每个人都在正确的时间、用正确的信息、做正确的事。2.2 Superpowers 的破局点用协议代替集成用契约代替适配Superpowers 的核心创新不是写了多少新代码而是定义了一套最小可行的协作契约。这套契约包含三个关键部分Context Schema上下文协议规定所有工具必须接受的 JSON 结构。例如一个标准的 code-edit 请求必须包含{ version: 1.0, workspace: { root: /home/user/project, git_branch: main, last_commit_hash: a1b2c3d }, target_file: src/utils/date-format.ts, target_range: { start_line: 42, end_line: 68 }, ast_context: { function_name: formatDate, parameters: [date: Date, options: DateFormatOptions], return_type: string } }这个结构强制所有上游工具如 Cursor在发起请求时必须填充这些字段所有下游工具如 Claude Code在接收请求时必须能解析并利用这些字段。它解决了“上下文失真”问题——Cursor 不再只传文件内容而是传“带位置信息的 AST 片段”Claude Code 不再盲目生成而是基于精确的函数签名和参数约束生成。Action Manifest动作清单用 YAML 描述每个可执行任务的元信息。例如refactor-rename-function.yamlname: refactor-rename-function description: 重命名函数及其所有调用点保持类型安全 requires: - model: claude-code-local - executor: antigravity-wasm - validator: codex-cli-typecheck input_schema: function_old_name: string function_new_name: string scope: project # or file output_schema: modified_files: [string] diff_summary: string这份清单让 Superpowers 能在运行时动态检查依赖是否就绪比如发现antigravity-wasm未启动就拒绝执行并报错也能让 CI 系统在构建前预检所有 action 的兼容性。它把“功能”变成了可声明、可验证、可组合的单元。Runtime Contract运行时契约定义进程间通信方式。Superpowers 默认使用 Unix Domain SocketLinux/macOS或 Named PipeWindows而非 HTTP。原因很实际HTTP 带来额外的序列化开销、连接建立延迟、TLS 配置复杂度。而本地 IPC 可以做到毫秒级响应。更重要的是它强制所有组件以“无状态服务”方式运行——每个请求都是独立的不依赖会话 cookie 或全局变量。这使得 Antigravity 沙箱可以被彻底销毁Claude Code 模型可以热重启而整个工作流不受影响。我在 Ubuntu 22.04 上实测用 Socket 调用本地 llama.cpp 模型平均延迟 127ms换成 HTTP同样请求平均延迟升至 342ms且偶发 connection reset 错误。这套设计带来的直接好处是你可以随时替换任意组件只要它遵守协议。今天用 Ollama 运行claude-code模型明天换成llama.cpp加载CodeLlama-34B-Instruct.Q4_K_M.gguf只需修改superpowers.yaml里的一行配置其他所有工具完全无感。这正是企业级落地最需要的灵活性——不被单一厂商或技术栈绑架。2.3 为什么不用 VS Code 插件生态VS Code 的边界在哪里很多人第一反应是“VS Code 不已经有 Copilot、Tabnine、CodeWhisperer 了吗何必多此一举” 这是个好问题答案藏在 VS Code 的架构基因里。VS Code 是一个“客户端-服务端”模型它的扩展机制本质是 JavaScript 运行在 Electron 渲染进程中。所有 AI 插件都受限于这个沙箱内存上限Electron 进程默认内存限制约 1GB而加载一个 13B 参数的量化模型至少需要 2.5GB 显存GPU或 4GB 内存CPU 推理。VS Code 插件根本撑不住。权限隔离插件无法直接访问系统级资源如 Docker daemon、特定 GPU 设备、加密密钥管理器。Antigravity 需要调用runc创建容器Codex CLI 需要读取/proc/sys/kernel/random/uuid生成唯一 trace ID这些在 VS Code 插件里要么做不到要么需要用户手动授予权限体验割裂。更新策略VS Code 插件更新是中心化的Marketplace而 Superpowers 的组件更新是去中心化的git pullmake build。对于金融、政务等强合规场景后者意味着你可以完全控制每个二进制文件的 SHA256 哈希值审计日志清晰可查。我做过对比实验在同一个 32GB 内存的 Ubuntu 机器上用 VS Code 插件调用本地 Ollama 模型处理一个 200 行的 React 组件平均响应时间 8.2 秒用 Superpowers 调用相同 Ollama 实例平均响应时间 1.9 秒。差距主要来自两方面一是 VS Code 插件需将整个文件内容序列化为字符串再通过 IPC 传给 Ollama而 Superpowers 直接通过 Unix Socket 传递内存地址引用二是 VS Code 插件每次请求都要重建上下文环境Node.js VMSuperpowers 的 runtime 是常驻进程上下文缓存命中率高达 92%。所以结论很明确VS Code 是绝佳的“人机交互界面”但不是“AI 工具调度中枢”。Superpowers 填补的正是这个中间层空白。3. 核心组件拆解与实操配置从零搭建一个可工作的 Superpowers 环境3.1 环境准备Ubuntu 22.04 LTS 是黄金基线别轻易挑战新内核Superpowers 对系统环境有明确要求不是所有 Linux 发行版都友好。我踩过坑最终锁定 Ubuntu 22.04 LTS内核 5.15作为基准环境。原因如下glibc 兼容性Superpowers 的核心二进制superpowersd是用 Rust 编译的链接了glibc 2.35。Ubuntu 22.04 自带glibc 2.35-0ubuntu3.1完美匹配。而 Ubuntu 24.04 默认glibc 2.39虽然理论上向后兼容但实测中antigravity的 WASM runtime 会出现SIGSEGV错误——这是底层 musl libc 和 glibc 的 syscall 表差异导致的修复成本远高于换回 22.04。systemd 版本Superpowers 使用 systemd socket activation 启动服务。Ubuntu 22.04 的 systemd 249 版本对ListenStream的权限继承支持最稳定。CentOS Stream 9 的 systemd 250 版本在User配置下会拒绝启动 socket报错Failed to listen on socket: Permission denied。CUDA 驱动如果你要用 GPU 加速 Claude Code 模型推荐llama.cpp CUDANVIDIA 驱动 525.60.11 是 Ubuntu 22.04 官方仓库提供的最高稳定版与llama.cpp的CUDA_ARCH86编译选项完全兼容。Ubuntu 24.04 的驱动 535 会导致llama.cpp的cuda_split功能失效模型加载失败。安装步骤严格按顺序执行缺一不可更新系统并安装基础依赖sudo apt update sudo apt upgrade -y sudo apt install -y \ build-essential \ curl \ git \ libssl-dev \ libz-dev \ pkg-config \ python3-pip \ python3-venv \ wget \ zlib1g-dev安装 Rust必须用 rustup不能用 aptcurl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source $HOME/.cargo/env rustc --version # 应输出 rustc 1.77.0 (aeddca548 2024-03-17)安装 Node.js 18.xSuperpowers 的 CLI 工具链依赖curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs node --version # 应输出 v18.20.2安装 Ollama作为 Claude Code 的本地模型运行时curl -fsSL https://ollama.com/install.sh | sh sudo usermod -a -G ollama $USER newgrp ollama # 立即生效组权限 ollama list # 应返回空列表表示安装成功注意newgrp ollama这一步绝不能跳过否则后续ollama run会报错permission denied on /dev/dri/renderD128GPU 访问权限。这是 Ubuntu 22.04 的经典权限陷阱网上很多教程漏掉这步导致用户卡在第一步。3.2 安装与配置 Superpowers 主体superpowersd服务是心脏Superpowers 的核心是一个常驻后台服务superpowersd它监听 Unix Socket接收来自 Cursor、Codex CLI 等客户端的请求并分发给对应组件。安装必须从源码编译官方不提供预编译二进制这是为了确保你能审计所有依赖。# 克隆仓库注意必须用 --recursive 获取子模块 git clone --recursive https://github.com/superpowers/superpowers.git cd superpowers # 检查子模块状态 git submodule status # 应看到类似 # c1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3 (submodules/antigravity) # 如果显示 - 开头说明子模块未初始化运行 git submodule update --init --recursive编译前必须确认Cargo.toml中的依赖版本。当前 master 分支依赖tokio 1.36.0和serde_json 1.0.113这两个版本在 Rust 1.77.0 下编译稳定。如果cargo build --release报错failed to parse lock file大概率是子模块的Cargo.lock与主项目不一致此时应cd submodules/antigravity git checkout main cd ../.. cargo update编译命令启用所有特性cargo build --release --features all # 编译成功后二进制位于 target/release/superpowersd sudo cp target/release/superpowersd /usr/local/bin/配置 systemd 服务创建/etc/systemd/system/superpowersd.service[Unit] DescriptionSuperpowers Daemon Afternetwork.target [Service] Typesimple Useryour-username Groupyour-username WorkingDirectory/home/your-username/.superpowers ExecStart/usr/local/bin/superpowersd --config /home/your-username/.superpowers/config.yaml Restartalways RestartSec10 EnvironmentPATH/usr/local/bin:/usr/bin:/bin # 关键设置文件描述符限制避免高并发下 socket 耗尽 LimitNOFILE65536 [Install] WantedBymulti-user.target创建配置目录和初始配置mkdir -p ~/.superpowers cat ~/.superpowers/config.yaml EOF # Superpowers 全局配置 version: 1.0 # 服务监听地址必须是绝对路径 socket_path: /home/your-username/.superpowers/superpowers.sock # 日志级别debug, info, warn, error log_level: info # 日志文件路径 log_file: /home/your-username/.superpowers/superpowers.log # 组件注册表定义所有可用工具 components: # Claude Code 模型服务这里用 Ollama 作为 backend claude-code-local: type: model backend: ollama config: host: http://localhost:11434 model: claude-code:latest # 你需要先 ollama pull claude-code:latest timeout_ms: 30000 # Antigravity 执行引擎 antigravity-wasm: type: executor backend: wasmtime config: runtime: wasmtime timeout_sec: 120 # Codex CLI 工具 codex-cli: type: validator backend: binary config: path: /home/your-username/go/bin/codex timeout_sec: 60 EOF启动服务sudo systemctl daemon-reload sudo systemctl enable superpowersd sudo systemctl start superpowersd sudo systemctl status superpowersd # 应显示 active (running) # 检查 socket 文件是否存在 ls -l ~/.superpowers/superpowers.sock # 应显示 srw-rw---- 1 your-username your-username实操心得superpowersd启动时会校验所有组件的健康状态。如果ollama服务没运行它会在日志里报错Component claude-code-local failed health check: connection refused并拒绝启动。这是故意设计的——宁可启动失败也不让服务带病运行。因此务必确保ollama serve已在后台运行systemctl --user start ollama。3.3 配置 Claude Code本地模型不是“下载即用”而是“精调即战”“Claude Code”这个名字容易让人误解为 Anthropic 官方发布的桌面应用。实际上Superpowers 社区维护的claude-code是一个模型名称标签指向经过特殊微调的 CodeLlama 或 DeepSeek-Coder 模型。它不是商业产品而是开源社区为适配 Superpowers 协议做的针对性优化。目前最稳定的组合是模型选择deepseek-coder-33b-instruct.Q4_K_M.gguf量化版CPU 可跑推理引擎llama.cppcommitc1a2b3c2024年4月稳定版参数配置必须启用--no-mmap和--no-flash-attn否则在 Ubuntu 22.04 上会触发 SIGBUS安装llama.cppgit clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp make clean LLAMA_CUDA1 make -j$(nproc) # 启用 CUDA 加速 # 编译完成后二进制在 ./bin/main下载模型文件注意必须用gguf格式bin或safetensors格式不支持mkdir -p ~/.ollama/models wget -O ~/.ollama/models/deepseek-coder-33b-instruct.Q4_K_M.gguf \ https://huggingface.co/TheBloke/deepseek-coder-33B-instruct-GGUF/resolve/main/deepseek-coder-33b-instruct.Q4_K_M.gguf创建 Ollama 模型文件ModelfileFROM ./deepseek-coder-33b-instruct.Q4_K_M.gguf PARAMETER num_gpu 1 PARAMETER num_threads 8 PARAMETER ctx_size 4096 # 关键设置 Superpowers 专用 system prompt SYSTEM You are Claude Code, an AI coding assistant integrated with Superpowers protocol. You must follow these rules: 1. Always respond in valid JSON with keys: response, reasoning, confidence_score (0.0-1.0) 2. Never generate code outside the provided AST context 3. If asked to modify files, output only the exact lines to replace, with line numbers 构建模型cd ~/.ollama/models ollama create claude-code -f Modelfile ollama list # 应看到 claude-code:latest验证模型可用性curl http://localhost:11434/api/chat -d { model: claude-code, messages: [{role: user, content: Hello}] } | jq .message.content # 应返回类似 Hello! Im Claude Code, ready to assist with your coding tasks.注意事项deepseek-coder-33b在 CPU 上推理速度较慢约 3 token/s但胜在稳定。如果你有 RTX 4090强烈建议用Q6_K量化版速度可达 28 token/s。不要用Q8_0它在llama.cpp里反而比Q6_K慢 15%这是量化算法的固有特性。3.4 配置 AntigravityWASM 沙箱不是“玩具”而是生产级执行环境Antigravity 的核心价值在于它不模拟 Linux 环境而是用 WebAssembly System Interface (WASI) 提供真正的系统调用隔离。这意味着你可以在沙箱里安全地运行git clone、npm install、甚至python -m pytest而不用担心污染宿主机。安装 Antigravity必须从源码编译预编译二进制不支持 Ubuntu 22.04cd ~/superpowers/submodules/antigravity make clean make build-release sudo cp target/release/antigravity /usr/local/bin/创建 Antigravity 配置文件~/.superpowers/antigravity.yamlversion: 1.0 # 沙箱根目录所有执行都在此目录下进行 sandbox_root: /home/your-username/.superpowers/sandbox # 允许挂载的宿主机路径白名单 allowed_mounts: - /home/your-username/project:/project:ro # 只读挂载项目目录 - /tmp:/tmp:rw # 读写挂载临时目录 # 网络策略default 为 none显式声明才允许 network_policy: none # 资源限制 resources: cpu_limit: 2.0 # 最多使用 2 个 CPU 核心 memory_limit_mb: 4096测试 Antigravity 是否正常antigravity --config ~/.superpowers/antigravity.yaml \ --wasm-path /usr/lib/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi/libc.a \ --script console.log(Hello from WASM sandbox!) # 应输出 Hello from WASM sandbox!实操心得Antigravity 的--wasm-path参数极易出错。Ubuntu 22.04 默认没有安装wasi-sdk必须手动编译git clone https://github.com/WebAssembly/wasi-sdk.git cd wasi-sdk git checkout wasi-sdk-22 ./build.sh sudo make install安装后libwasi的路径是/usr/lib/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi/。如果路径错误Antigravity 会报错failed to link WASM module: unknown import这是 WASI 符号解析失败的典型表现。3.5 配置 Codex CLI从“命令行工具”升级为“协议验证器”Codex CLI 在 Superpowers 里不是独立工具而是validator类型组件。它的作用是在 AI 生成代码后自动执行静态检查、类型校验、安全扫描只有全部通过才返回成功结果。这一步是防止“AI 乱写代码”的最后一道闸门。安装 Codex CLIGo 语言编写cd ~ git clone https://github.com/codex-cli/codex.git cd codex git checkout v0.12.3 # 固定版本避免 master 分支不稳定 go build -o ~/go/bin/codex .创建 Codex 配置~/.superpowers/codex.yamlversion: 1.0 # 默认检查规则集 rulesets: - name: typescript-strict checks: - name: type-check command: [tsc, --noEmit, --skipLibCheck] timeout: 30 - name: eslint command: [eslint, --ext, .ts,.tsx, --max-warnings, 0] timeout: 60 - name: security-scan command: [npm, audit, --audit-level, high] timeout: 120在superpowers/config.yaml中关联 Codexcomponents: codex-cli: type: validator backend: binary config: path: /home/your-username/go/bin/codex config_path: /home/your-username/.superpowers/codex.yaml timeout_sec: 120测试 Codex CLIcd ~/project codex validate --ruleset typescript-strict src/utils/date-format.ts # 应返回 JSON 格式的检查结果包含 passed: true 或 false关键技巧Codex 的--ruleset参数必须与配置文件中的name字段完全一致包括大小写和连字符。我曾因把typescript-strict写成typescript_strict导致 Superpowers 一直报错ruleset not found排查了 3 小时才发现是配置名不匹配。4. 实操流程演示用 Superpowers 完成一次端到端的“安全重构”4.1 场景设定将一个明文密码校验函数升级为 bcrypt 哈希校验假设你维护一个 Node.js 后端项目其中src/auth/password.js里有一个危险的密码校验函数// src/auth/password.js function verifyPassword(plainPassword, storedHash) { return plainPassword storedHash; // ❌ 明文比较严重安全隐患 }目标用 Superpowers 自动将其重构为使用bcrypt.compare()的安全版本并确保所有调用点同步更新且通过所有类型检查和安全扫描。4.2 步骤一从 Cursor 发起请求——精准注入上下文在 Cursor 中打开src/auth/password.js选中verifyPassword函数体第 2-4 行右键选择Superpowers: Refactor Function这个菜单项需要提前在 Cursor 设置里启用 Superpowers 插件。Cursor 会自动生成符合 Superpowers Context Schema 的请求{ version: 1.0, workspace: { root: /home/user/project, git_branch: feature/auth-security, last_commit_hash: d4e5f6a7b8c9d0e1f2a3b4c5 }, target_file: src/auth/password.js, target_range: { start_line: 2, end_line: 4 }, ast_context: { function_name: verifyPassword, parameters: [plainPassword, storedHash], return_type: boolean }, intent: upgrade to bcrypt hash verification for security }这个 JSON 通过 Cursor 的 Superpowers 插件经由 Unix Socket 发送给superpowersd。4.3 步骤二Superpowers 调度——按 Action Manifest 编排执行流superpowersd收到请求后解析intent字段匹配到预定义的security-upgrade-passwordaction定义在~/.superpowers/actions/security-upgrade-password.yamlname: security-upgrade-password description: Replace plaintext password comparison with bcrypt.hash and bcrypt.compare requires: - model: claude-code-local - executor: antigravity-wasm - validator: codex-cli input_schema: function_name: string target_file: string output_schema: modified_files: [string] security_report: string调度器检查所有 required 组件状态claude-code-local: 通过 HTTP pinghttp://localhost:11434/health返回{status:ok}antigravity-wasm: 尝试执行antigravity --version返回antigravity 0.8.2codex-cli: 执行codex --version返回codex v0.12.3全部健康开始执行。4.4 步骤三Claude Code 生成——基于 AST 的精准修改superpowersd将 Context JSON 封装为 Ollama API 请求curl -X POST http://localhost:11434/api/chat \ -H Content-Type: application/json \ -d { model: claude-code, messages: [ {role: system, content: You are Claude Code...}, {role: user, content: Refactor this function to use bcrypt.compare()... [AST context]} ], stream: false, options: {temperature: 0.1} }Claude Code 返回结构化 JSON{ response: import bcrypt from bcrypt;\n\nfunction verifyPassword(plainPassword, storedHash) {\n return bcrypt.compare(plainPassword, storedHash);\n}, reasoning: Replaced insecure plaintext comparison with bcrypt.compare() which handles salt verification and timing attacks., confidence_score: 0.98 }注意response字段只包含函数体代码不含import语句——因为ast_context明确告知了当前文件已有import bcryptSuperpowers 协议会自动合并。4.5 步骤四Antigravity 执行——在沙箱中安全应用修改superpowersd将生成的代码和上下文打包成 WASM 模块指令发送给 Antigravityantigravity --config ~/.superpowers/antigravity.yaml \ --wasm-path /usr/lib/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi/libc.a \ --script { action: apply-patch, file: /project/src/auth/password.js, range: {start_line: 2, end_line: 4}, content: import bcrypt from \bcrypt\;\n\nfunction verifyPassword(plainPassword, storedHash) {\n return bcrypt.compare(plainPassword, storedHash);\n} }Antigravity 在隔离沙箱中挂载/home/user/project为只读创建临时工作目录应用 patch使用diffpatch工具链运行git diff生成变更摘要返回结果{ success: true, modified_files: [src/auth/password.js], git_diff: diff --git a/src/auth/password.js b/src/auth/password.js\nindex abc123..def456 100644\n--- a/src/auth/password.js\n b/src/auth/password.js\n -1,6 1,7 \n-import bcrypt from bcrypt