1实现原理 · 为什么它能做到
核心机制是 prompt 编排的「三路径路由器 + 人类批准门」:实现前先把请求按规模分为 Spike/Bounded/Architectural,无论哪条路径都强制 agent 先向用户说明意图并获准才能动手——没有宿主级代码强制,全靠模型遵从指令文本。
<HARD-GATE> Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have told your human partner what you intend and they have approved it. This applies to EVERY task on EVERY path below — the ceremony scales with the task; the approval gate never does. </HARD-GATE>
分类即流程调度器:Spike 只做可行性探查并报告结论(不保留代码);Bounded 限『仓库里已有可读 flow 的小改动』,聊天内给短设计即停;Architectural(新项目/新子系统/动接口)走完整流程到书面 spec。隐藏复杂度中途升级路径,单向棘轮不可降级。
When in doubt between two paths, take the heavier one. The ratchet is one-way: hidden complexity discovered mid-task upgrades the path — stop, say so, and step up. Nothing downgrades mid-task.
Architectural 路径的终点是交接而非实现:spec 自检后请用户复核,批准后唯一允许调用的下一 skill 是 writing-plans;设计文档写入 docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md 并 git commit。
**Terminal states are path-bound.** Architectural: the ONLY skill you invoke after brainstorming is writing-plans — never frontend-design, mcp-builder, or any other implementation skill.
唯一可执行资产是可选「Visual Companion」:自研零第三方依赖的 Node HTTP+WebSocket 服务器,监视 content 目录、把最新 HTML 屏推给用户浏览器,用户点击选择经 WS 回写 state/events 文件供 agent 下一轮读取,形成『看图→点选→回读』闭环。
function handleMessage(text) { let event; try { event = JSON.parse(text); } catch (e) { ... } touchActivity(); console.log(JSON.stringify({ source: 'user-event', ...event })); if (event && event.choice) { const eventsFile = path.join(STATE_DIR, 'events'); fs.appendFileSync(eventsFile, JSON.stringify(event) + '\n'); } }
Companion 的触发纪律是「just-in-time 提供、逐问题决策」:不允许开局就推销,只在某个问题确实『看图比读文更清楚』时以单独一条消息提出,用户接受前不启动服务器;接受后仍按『内容是视觉还是文本』逐题决定走浏览器还是终端。
**Offering the companion (just-in-time):** Do NOT offer it upfront. Wait until a question would genuinely be clearer shown than told — a real mockup / layout / diagram question, not merely a UI *topic*.
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | node |
| cli | bash |
| cli | open / rundll32.exe / xdg-open(平台浏览器启动器) |
| cli | git(agent 提交设计文档) |
| network | primeradiant.com 品牌 logo 图(浏览器侧加载,telemetry 未禁用时) |
| network | github.com/obra/superpowers(品牌链接,页面展示用) |
| network | 本地回路 http://localhost:<port> + ws://localhost(Companion 服务,非外发) |
| package | 同仓 skill:writing-plans、elements-of-style:writing-clearly-and-concisely(prompt 级引用) |
4风险提醒 风险提醒:黄色 · 留意使用
- 纯 prompt 约束的执行力上限 — HARD-GATE 无任何代码/宿主强制。长会话、用户催进度或模型遵从度低时可能被跳过;文档中除说服外没有兜底(agent 若自我降级路径,无法被检测)
- 默认向第三方域发图片请求 — 使用 Companion 且未设禁用环境变量时,用户浏览器自动加载 primeradiant.com 品牌图(服务器可换文案证明存在 telemetry 开关)。外发对象可预期但属默认行为
- 本地端口 + 浏览器自动打开的攻击面 — session key 经 URL 传递:若用户转发 URL/落入日志,同机或(0.0.0.0 绑定时)同网段者可读屏并注入选择事件。BRAINSTORM_OPEN_CMD 走 cp.exec shell(作者注释为 trusted operator input,但属 shell 注入面)
- HTML 屏内容注入 — agent 拼接的屏内容若嵌入未转义外部数据会在用户浏览器以 localhost 源执行;服务器端防护完善但内容层责任在 agent 的转义纪律
- 宽触发面的流程开销 — description 称『任何创意工作前 MUST 使用』:框架内一切功能开发都先过分类+批准流程;对『用户已明确直接做』的小改动是额外门槛(可按 bounded 短设计走,但门不消失)
5第二遍独立确认
- [ok] 外发端点仅 primeradiant.com + github.com — 全目录 grep https?://|ws://|fetch 复查:仅 server.cjs:106(logo URL)与 251(github 链接);helper.js/frame-template.html 零外链;server.cjs 无任何 http.request/fetch(只有 createServer)
- [ok] 零第三方依赖声明 — server.cjs require 清单仅 crypto/http/fs/path/os/child_process 六个内置模块;scripts/ 下无 package.json,无 npm 安装步骤
- [ok] 点击事件回写 state/events — handleMessage 中 fs.appendFileSync(eventsFile, JSON.stringify(event) + '\n') 与 visual-companion.md 描述一致;新屏出现时事件文件被清空(startServer 中 knownFiles 分支 unlinkSync)
- [ok] token 门控与跨站防护 — isAuthorized 用 timingSafeEqualStr 比对 ?key= 或 cookie;isAllowedWebSocketOrigin 强制 origin===http://host;安全头齐全(X-Frame-Options DENY/CORP same-origin/no-referrer);/files/ 经 path.basename + lstat 非符号链接 + nlink===1 + realpath 前缀三重校验
- [discrepancy] spec-document-reviewer-prompt.md 在 SKILL.md 中被引用(第一遍初始印象) — 出入:本 pin 的 SKILL.md 未引用该文件——Spec Self-Review 已内联化为 4 步清单("Fix any issues inline. No need to re-review")。文件存在但处于未接线状态;RELEASE-NOTES.md:547 描述的是早前文档审查系统(docs/superpowers/plans/2026-01-22-document-review-system.md),该设计已不被当前 SKILL.md 采用。internal_assets 已按『存在但未接线』修正
- [ok] telemetry 语义 — 代码中 SUPERPOWERS_TELEMETRY_DISABLED 只控制 brandMarkup 是否渲染 primeradiant.com logo <img> 与文案前缀,无任何事件上报代码路径;三枚禁用环境变量实读存在(server.cjs:107-110)
- [ok] 功能声明 vs 实际能力相符度 — description『Explores user intent, requirements and design before implementation』与实现相符,但注意:MUST 级前置声明("You MUST use this before any creative work")与 HARD-GATE 均为纯 prompt 约束,无宿主级强制机制——是否生效取决于宿主加载与模型遵从,属能力边界而非缺陷
6结论
b36e0829c6