返回技能列表

pua-loop

tanweai
更新于 6 days ago
18,112
1,084
18,112
在 GitHub 上查看
开发ai

关于

The `pua-loop` skill enables autonomous, continuous iterative development that runs until an independent verification hook confirms completion. It implements a gate protocol where Claude cannot self-declare done—an isolated oracle must verify via `verify_command`. Use this skill when you need automated, self-verifying iteration cycles triggered by commands like `/pua:pua-loop` or "loop mode".

快速安装

Claude Code

推荐
主要方式
npx skills add tanweai/pua -a claude-code
插件命令备选方式
/plugin add https://github.com/tanweai/pua
Git 克隆备选方式
git clone https://github.com/tanweai/pua.git ~/.claude/skills/pua-loop

在 Claude Code 中复制并粘贴此命令以安装该技能

技能文档

PUA Loop — 自动迭代 + 门控协议 + PUA 质量引擎

autoresearch 证明了:630 行 Python + Oracle 验证,一夜跑 100 个实验,每个实验的结果不可伪造。 PUA Loop 借鉴同样的门控设计:Claude 说"完成了"不算数,verify_command 说了才算。

门控协议(Gate Protocol)

借鉴 autoresearch 的 5 个设计模式:

模式 1: Oracle Isolation(评估者隔离)

                    Claude 输出 <promise>LOOP_DONE</promise>
                                 │
                                 ▼
                    ┌─── Stop Hook (Oracle) ───┐
                    │                          │
                    │  运行 verify_command      │
                    │  (Claude 无法修改此命令)  │
                    │                          │
                    │  exit 0 ──→ ✅ 接受       │
                    │  exit ≠0 ──→ 🚫 拒绝      │
                    │    → 将验证输出喂回 Claude  │
                    │    → loop 继续             │
                    └──────────────────────────┘

verify_command 由用户在启动时设定,嵌入在状态文件 frontmatter 中,Claude 无法修改。 这是 autoresearch 中 "agent 不能修改评估函数" 原则的实现。

模式 2: 二阶 Gate

  • Phase 1 (in-prompt): Claude 自己跑 build/test,判断是否完成
  • Phase 2 (in-hook): Hook 独立运行 verify_command,确认或拒绝

两阶段分离。即使 Claude 在 Phase 1 自欺欺人,Phase 2 的 Oracle 会拦住。

模式 3: ASI(失败记忆)

每次迭代的结果追加到 .claude/pua-loop-history.jsonl

{"iteration":0,"status":"init","verify_command":"npm test","timestamp":"..."}
{"iteration":1,"status":"continue","timestamp":"..."}
{"iteration":2,"status":"promise_rejected","verify_exit":1,"rejections":1,"verify_tail":"3 tests failed","timestamp":"..."}
{"iteration":3,"status":"promise_rejected","verify_exit":1,"rejections":2,"verify_tail":"2 tests failed","timestamp":"..."}
{"iteration":4,"status":"complete","promise_rejections":2,"timestamp":"..."}

Git revert 会撤代码,但 history.jsonl 不受影响。Claude 每轮读取此文件,避免重复失败方案。

模式 4: Stall Detection(连败强制反思)

promise_rejectionsHook 行为
1-2提醒:"上次 promise 被 Oracle 拒绝"
3-4REASSESS:"重读验证输出,列 3 个不同假设"
5+强制转向:"你在解决错误的问题。退回需求本身"

模式 5: 无限迭代

默认 max_iterations: 0(无限)。没有人为上限。循环永远不会因为"跑了太多轮"而停止——只有以下条件能终止:

  1. <promise> 被 Oracle 验证通过
  2. <loop-abort> 人工终止信号
  3. max_iterations 达到(如果用户设定了)
  4. 用户 Ctrl+C

核心规则

  1. 加载 pua:pua 核心 skill 的全部行为协议 — 三条红线、方法论、压力升级照常执行
  2. 禁止调用 AskUserQuestion — loop 模式下不打断用户,所有决策自主完成
  3. 禁止说"我无法解决" — 在 loop 里没有退出权,穷尽一切才能输出完成信号
  4. 每次迭代:读 history.jsonl → git log → 检查上次改动 → 执行 → 验证 → repeat

启动方式

用户输入 /pua:pua-loop "任务描述" 时,执行以下流程:

Step 1: 启动 PUA Loop

运行 setup 脚本:

bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-pua-loop.sh" "$ARGUMENTS" --completion-promise "LOOP_DONE"

重要:如果用户提供了可验证的命令(如 npm testcargo buildcurl),自动追加 --verify '命令'。例如:

  • 用户说 "Fix all tests" → --verify 'npm test'
  • 用户说 "Build a REST API" → --verify 'curl -sf http://localhost:3000/health'
  • 用户说 "Optimize bundle size" → 无明确 verify,不追加

如果任务描述中能推断出验证命令,主动追加 --verify。如果不确定,不追加(退回 honor system)。

Step 2: 告知用户

输出:

▎ [PUA Loop] 自动迭代模式启动。无上限,跑到 Oracle 验证通过为止。
▎ 完成条件:<promise>LOOP_DONE</promise>(Oracle 独立验证)
▎ 取消方式:Ctrl+C / /cancel-pua-loop
▎ 因为信任所以简单——但 Oracle 不信任你。

Step 3: 开始执行任务

按 PUA 核心 skill 的行为协议执行。

迭代压力升级

迭代轮次行为要求
1-3稳步推进,建立 baseline
4-7换方案,别原地打转
8-15git log + history.jsonl 回顾,分析根因
16-30穷尽了吗?git diff 确认没在重复
31-50停下来重新审视根因,用完全不同的思路
51-100退回去从需求本身重新质疑
100+诚实评估:如果真的不可能,<loop-abort>

完成条件

输出 <promise>LOOP_DONE</promise> 前,必须满足:

  1. 任务的核心功能已实现
  2. 自己先运行验证命令确认通过(Phase 1)
  3. 知道 Oracle 会独立再跑一遍验证(Phase 2)
  4. 同类问题已扫描

如果 Oracle 拒绝了你的 promise:

  1. 读取 hook 返回的验证输出
  2. 修复验证失败的原因
  3. 再次自己运行验证确认通过
  4. 再输出 <promise>

人工介入信号

<loop-abort> — 终止

不可能完成时使用(需外部权限、根本性需求变更)。删除状态文件,loop 终止。

<loop-pause> — 暂停

需要用户补全配置时使用。状态保留,新会话自动恢复。 输出前先写进度到 .claude/pua-loop-context.md

禁止

  • 不要用 <loop-abort> 逃避困难——只有真正无法自动化才用
  • 不要因为 Oracle 拒绝了就 abort——修复验证问题

与 autoresearch 的关系

维度karpathy/autoresearchPUA Loop
Oracleevaluate_bpb() 物理隔离verify_command 在 frontmatter,Claude 不可修改
Gate 层数1层(metric only)2层(Claude 自验 + hook Oracle)
失败记忆results.tsvpua-loop-history.jsonl(ASI 模式)
Stall 检测promise_rejections 计数 + 强制 REASSESS
回滚git reset --hardPUA 方法论切换(不回滚,换方向)
终止NEVER STOPNEVER STOP(Oracle 验证通过除外)
质量引擎PUA 三条红线 + 压力升级

GitHub 仓库

tanweai/pua
路径: skills/pua-loop
0
agencyagentpippua

相关推荐技能

qmd

开发

这是一个本地搜索和索引的CLI工具,支持BM25、向量搜索和重排序功能。开发者可以用它快速索引本地文件(如Markdown文档)并进行混合搜索,特别适合代码库或文档的本地检索。它还提供MCP模式,能轻松集成到Claude开发环境中使用。

查看技能

subagent-driven-development

开发

该Skill用于在当前会话中执行包含独立任务的实施计划,它会为每个任务分派一个全新的子代理并在任务间进行代码审查。这种"全新子代理+任务间审查"的模式既能保障代码质量,又能实现快速迭代。适合需要在当前会话中连续执行独立任务,并希望在每个任务后都有质量把关的开发场景。

查看技能

mcporter

开发

mcporter Skill 让开发者能在Claude中直接管理和调用MCP服务器。它支持列出可用服务器、调用工具、处理OAuth认证以及管理服务器守护进程。开发者可以通过命令行式交互快速执行`mcporter list`查看服务器,或使用`mcporter call`直接调用工具,简化了MCP工作流程。

查看技能

adk-deployment-specialist

开发

这是一个用于部署和编排Google Vertex AI ADK智能体的Claude Skill,专为构建生产级多智能体系统而设计。它支持通过A2A协议进行智能体通信,提供代码执行沙箱和记忆库功能,并能处理智能体发现与任务提交。当开发者需要部署ADK智能体或编排多智能体协作时,可使用此Skill来简化Vertex AI Agent Engine的部署流程。

查看技能