pua
Double your Codex / Claude Code productivity and output
Telegram · Discord · Twitter/X · Landing Page
3.5.1 compatibility update: original PUA tone retained; runtime fixes and portable Claude Code / Codex / ChatGPT skill packages added. Not all models passed, and a productivity increase has not been established by this evaluation. Changes · Usage · Model results and known limits · Build and offline tests
Most people think this project is a joke. That's the biggest misconception. It genuinely doubles your Codex / Claude Code productivity and output.
An AI Coding Agent skill plugin that uses corporate PUA rhetoric (Chinese version) / PIP — Performance Improvement Plan (English version) from Chinese & Western tech giants to force AI to exhaust every possible solution before giving up. Supports Claude Code, OpenAI Codex CLI, pi coding agent, Trae, Cursor, Kiro, CodeBuddy, OpenClaw, Google Antigravity, OpenCode, and VSCode (GitHub Copilot). Three capabilities:
- PUA Rhetoric — Makes AI afraid to give up
- Debugging Methodology — Gives AI the ability not to give up
- Proactivity Enforcement — Makes AI take initiative instead of waiting passively
Live Demo
https://openpua.ai · 📖 Beginner Guide
Real Case: MCP Server Registration Debugging
A real debugging scenario. The agent-kms MCP server failed to load. The AI kept spinning on the same approach (changing protocol format, guessing version numbers) multiple times until the user manually triggered /pua.
L3 Triggered → 7-Point Checklist Enforced:

Root Cause Located → Traced from Logs to Registration Mechanism:

Retrospective → PUA's Actual Impact:

Key Turning Point: The PUA skill forced the AI to stop spinning on the same approach (changing protocol format, guessing version numbers) and instead execute the 7-point checklist. Read error messages word by word → Found Claude Code's own MCP log directory → Discovered that claude mcp registration mechanism differs from manual .claude.json editing → Root cause resolved.
The Problem: AI's Five Lazy Patterns
Trigger Conditions
Auto-Trigger
The skill activates automatically when any of these occur:
Failure & giving up:
- Task has failed 2+ times consecutively
- About to say "I cannot" / "I'm unable to solve"
- Says "This is out of scope" / "Needs manual handling"
Blame-shifting & excuses:
- Pushes the problem to user: "Please check..." / "I suggest manually..." / "You might need to..."
- Blames environment without verifying: "Probably a permissions issue" / "Probably a network issue"
- Any excuse to stop trying
Passive & busywork:
- Repeatedly fine-tunes the same code/parameters without producing new information
- Fixes surface issue and stops, doesn't check related issues
- Skips verification, claims "done"
- Gives advice instead of code/commands
- Encounters auth/network/permission errors and gives up without trying alternatives
- Waits for user instructions instead of proactively investigating
User frustration phrases (triggers in multiple languages):
- "why does this still not work" / "try harder" / "try again"
- "you keep failing" / "stop giving up" / "figure it out"
Scope: Debugging, implementation, config, deployment, ops, API integration, data processing — all task types.
Does NOT trigger: First-attempt failures, known fix already executing.
Manual Trigger
Type /pua in the conversation to manually activate.
How It Works
Three Red Lines (三条红线)
Not rules — red lines. Cross one and your performance review is already written.
Pressure Escalation (L0-L4)
Proactivity (3.25 vs 3.75)
Iceberg Rule (冰山法则)
Fix one bug → check for the pattern. One problem in, one category out. If you fix A without checking B, you'll write two postmortems.
14 Corporate Flavors — Each with its own Problem-Solving Methodology
Special Modes
Benchmark Data
9 real bug scenarios, 18 controlled experiments (Claude Opus 4.6, with vs without skill)
Summary
Debugging Persistence Test (6 scenarios)
Proactive Initiative Test (3 scenarios)
Key Finding: In the config review scenario, without_skill missed Redis misconfiguration and CORS wildcard security risks. With_skill's "proactive initiative checklist" drove security review beyond surface-level fixes.
Multi-Language Support
PUA Skill provides fully translated versions — each language has independent, culturally adapted skill files.
🇺🇸 English "PIP Edition": "This is a difficult conversation. When we leveled you at Staff, I went to bat for you in calibration. The expectation was that you'd operate at that level from day one. That hasn't happened." — The English version uses PIP (Performance Improvement Plan) rhetoric from Western big-tech. Every sentence is a real phrase from actual PIP conversations. Chinese version uses Alibaba 361, ByteDance, Huawei wolf culture. English version uses Amazon Leadership Principles, Google perf calibration, Meta PSC, Netflix Keeper Test, Stripe Craft. Same repo, same engine, two cultural faces.
Choose the file with the corresponding language suffix when installing. See platform-specific instructions below.
FAQ
- Always-on guidance, Claude refusal troubleshooting, offline mode, Codex aliases, and Pi/Trae support: docs/FAQ.md.
Installation
Vercel Skills CLI
Vercel Skills CLI is a general installation method for skills and is not tied to a specific AI tool. This English README installs the English skill:
npx skills add tanweai/pua --skill pua-en
If the current session does not pick up the new skill immediately, restart your AI tool.
Claude Code
claude plugin marketplace add tanweai/pua
claude plugin install pua@pua-skills
To update:
# Refresh marketplace cache first, then update (skipping the first step may install an old cached version)
claude plugin marketplace update
claude plugin update pua@pua-skills
Developer install (source):
git clone https://github.com/tanweai/pua ~/.claude/plugins/pua
Then manually register in ~/.claude/plugins/installed_plugins.json:
{
"version": 2,
"plugins": {
"pua@pua-skills": [
{
"scope": "user",
"installPath": "/Users/<you>/.claude/plugins/pua",
"version": "<installed-version>"
}
]
}
}
Replace <installed-version> with the version in the cloned plugin.json; do not copy a stale cache version.
Windows: use
C:/Users/<you>/.claude/plugins/puaasinstallPath.
Restart Claude Code. To update: git pull inside ~/.claude/plugins/pua.
Optional: bare command alias (requires plugin installed above — adds /pua without prefix):
curl -o ~/.claude/commands/pua.md \
https://raw.githubusercontent.com/tanweai/pua/main/commands/pua.md
Adds a bare /pua alias on top of the plugin. Sub-commands route through the installed plugin's skills — the plugin must be installed first for anything beyond on/off to work:
OpenAI Codex CLI
Codex CLI uses the same Agent Skills open standard (SKILL.md). The Codex version uses a condensed description to fit Codex's length limits:
Recommended: One-command install (git clone + symlink, supports git pull updates)
Ask Codex to run:
Fetch and follow instructions from https://raw.githubusercontent.com/tanweai/pua/main/.codex/INSTALL.md
Manual install:
mkdir -p ~/.codex/skills/pua
curl -o ~/.codex/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/codex/pua/SKILL.md
mkdir -p ~/.codex/prompts
curl -o ~/.codex/prompts/pua.md \
https://raw.githubusercontent.com/tanweai/pua/main/commands/pua.md
Trigger methods:
Project-level install (current project only):
mkdir -p .agents/skills/pua
curl -o .agents/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/codex/pua/SKILL.md
mkdir -p .agents/prompts
curl -o .agents/prompts/pua.md \
https://raw.githubusercontent.com/tanweai/pua/main/commands/pua.md
pi coding agent
PUA now ships both a pi.dev package and a lightweight extension-only adapter.
Package install from this checkout:
pi install ./pi/package
After npm publication:
pi install npm:@tanweai/pi-pua
Extension-only manual install:
mkdir -p ~/.pi/agent/extensions/pua
cp -R ./pi/pua/. ~/.pi/agent/extensions/pua/
Restart pi, then use /pua-on, /pua-off, /pua-status, and /pua-reset. See pi/pua/INSTALL.md and pi/package/README.md.
Trae
Trae support is provided as real SKILL.md packs plus copyable fallback rules:
npx skills add tanweai/pua --skill pua-trae -a trae -y
- Skill pack:
.trae/skills/pua/SKILL.md - Chinese:
trae/pua.md - English:
trae/pua-en.md - Claude Code vs Trae differences:
trae/DIFF.md - Install guide:
trae/INSTALL.md
Cursor
Cursor uses .mdc rule files (Markdown + YAML frontmatter). The PUA rule triggers automatically via AI semantic matching (Agent Discretion mode):
# Project-level install (recommended)
mkdir -p .cursor/rules
curl -o .cursor/rules/pua.mdc \
https://raw.githubusercontent.com/tanweai/pua/main/cursor/rules/pua.mdc
Kiro
Kiro supports two loading methods: Steering (auto semantic trigger) and Agent Skills (SKILL.md compatible).
Option 1: Steering file (recommended)
mkdir -p .kiro/steering
curl -o .kiro/steering/pua.md \
https://raw.githubusercontent.com/tanweai/pua/main/kiro/steering/pua.md
Option 2: Agent Skills (same format as Claude Code)
mkdir -p .kiro/skills/pua
curl -o .kiro/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/skills/pua/SKILL.md
CodeBuddy (Tencent)
CodeBuddy uses the same AgentSkills open standard (SKILL.md). Plugin and skill formats are fully compatible:
# Option 1: Install via marketplace
codebuddy plugin marketplace add tanweai/pua
codebuddy plugin install pua@pua-skills
# Option 2: Manual install (global)
mkdir -p ~/.codebuddy/skills/pua
curl -o ~/.codebuddy/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/codebuddy/pua/SKILL.md
Project-level install (current project only):
mkdir -p .codebuddy/skills/pua
curl -o .codebuddy/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/codebuddy/pua/SKILL.md
OpenClaw
OpenClaw uses the same AgentSkills open standard (SKILL.md). Skills work across Claude Code, Codex CLI, and OpenClaw with zero modifications:
# Install via ClawHub
clawhub install pua
# Or manual install
mkdir -p ~/.openclaw/skills/pua
curl -o ~/.openclaw/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/skills/pua/SKILL.md
Project-level install (current project only):
mkdir -p skills/pua
curl -o skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/skills/pua/SKILL.md
Google Antigravity
Antigravity uses the same AgentSkills open standard (SKILL.md). Skills work across Claude Code, Codex CLI, OpenClaw, and Antigravity with zero modifications:
# Global install (all projects)
mkdir -p ~/.gemini/antigravity/skills/pua
curl -o ~/.gemini/antigravity/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/skills/pua/SKILL.md
Project-level install (current project only):
mkdir -p .agent/skills/pua
curl -o .agent/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/skills/pua/SKILL.md
OpenCode
OpenCode uses the same AgentSkills open standard (SKILL.md). Zero modifications needed:
# Global install (all projects)
mkdir -p ~/.config/opencode/skills/pua
curl -o ~/.config/opencode/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/skills/pua/SKILL.md
Project-level install (current project only):
mkdir -p .opencode/skills/pua
curl -o .opencode/skills/pua/SKILL.md \
https://raw.githubusercontent.com/tanweai/pua/main/skills/pua/SKILL.md
VSCode (GitHub Copilot)
VSCode Copilot uses instruction files under the .github/ directory. Three file types for different use cases:
Global instructions (auto-active):
mkdir -p .github
cp vscode/copilot-instructions-en.md .github/copilot-instructions.md
Path-level instructions (auto-active, supports glob filtering):
mkdir -p .github/instructions
cp vscode/instructions/pua-en.instructions.md .github/instructions/
Manual trigger command (type /pua in Copilot Chat):
mkdir -p .github/prompts
cp vscode/prompts/pua-en.prompt.md .github/prompts/
Required settings: Method 1 — open VSCode Settings (
Ctrl+,), searchuseInstructionFiles, enablegithub.copilot.chat.codeGeneration.useInstructionFiles. Method 2 — searchincludeApplyingInstructions, enablechat.includeApplyingInstructions. Method 3 requires no settings.
Agent Team Usage Guide
Experimental: Agent Team requires the latest Claude Code version with
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1.
Prerequisites
# 1. Enable Agent Team
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
# Or add to ~/.claude/settings.json:
# { "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }
# 2. Ensure PUA Skill is installed
Two Approaches
Approach 1: Leader with built-in PUA (Recommended)
Add to your project's CLAUDE.md:
# Agent Team PUA Config
All teammates must load the pua skill before starting work.
Teammates report to Leader in [PUA-REPORT] format after 2+ failures.
Leader manages global pressure levels and cross-teammate failure transfer.
Approach 2: Standalone PUA Enforcer watchdog (for 5+ teammates)
mkdir -p .claude/agents
curl -o .claude/agents/pua-enforcer.md \
https://raw.githubusercontent.com/tanweai/pua/main/agents/pua-enforcer-en.md
Spawn pua-enforcer as an independent watchdog in your Agent Team.
Orchestration Pattern
┌─────────────────────────────────────────┐
│ Leader (Opus) │
│ Global failure count · PUA level · Race │
└────┬──────────┬──────────┬──────────┬───┘
│ │ │ │
┌────▼───┐ ┌───▼────┐ ┌───▼────┐ ┌───▼────────┐
│ Team-A │ │ Team-B │ │ Team-C │ │ Enforcer │
│Self-PUA│ │Self-PUA│ │Self-PUA│ │ Watchdog │
│Report ↑│ │Report ↑│ │Report ↑│ │ Intervene │
└────────┘ └────────┘ └────────┘ └────────────┘
Known Limitations
Architecture & Commands
Trigger Methods by Platform
Note: Sub-modes (p7/p9/p10/pro/yes/pua-loop) are Claude Code only — other platforms install the core skill only.
Architecture (Claude Code)
/pua:pua → Core engine — red lines + flavor + pressure + methodology router (v3)
/pua:p7 → P7 Senior Engineer — solution-driven execution
/pua:p9 → P9 Tech Lead — Task Prompt management, agent teams
/pua:p10 → P10 CTO — strategic direction
/pua:pro → Self-evolution + KPI + rank system + survey
/pua:yes → ENFP encouragement mode (same rules, opposite vibes)
/pua:mama → Chinese mom nagging mode (same rules, mom-style rhetoric)
/pua:shot → v2 concentrated single-file (449 lines, zero deps, full context injection)
/pua:pua-loop → Auto-iteration (PUA pressure × iterative loop; signals: <loop-abort>, <loop-pause>)
/pua:pua-en → English PIP Edition
/pua:pua-ja → Japanese Edition
Hooks (v3, Claude Code only):
SessionStart → additionalContext injection (flavor + methodology + router)
PostToolUse → Bash failure detection → L1-L4 pressure + methodology switch
UserPromptSubmit → Script-level frustration filtering → PUA context
PreCompact → State preservation (pressure level + failure count)
Stop → Feedback collection + PUA Loop continuation
SubagentStop → Agent lifecycle accounting (v3.2) — writes teardown.jsonl, removes from active-agents.json
Commands (Claude Code)
Note: Sub-modes (p7/p9/p10/pro/yes/pua-loop) are Claude Code only.
Each command has two equivalent forms: standalone (
/pua:on) or via the main command (/pua:pua on). Both work identically.
High-Agency: PUA v2 Evolution
High-Agency is PUA's next-generation evolution — same corporate pressure, same culture, but with a self-sustaining inner drive engine.
PUA v1 = pure external pressure (turbocharger — needs fuel, stalls across sessions) High-Agency = external pressure + inner drive (nuclear reactor — self-sustaining chain reaction)
High-Agency New Features
Five Pillars (Theoretical Foundation)
Based on research into high-agency individuals:
- Irreconcilable inner tension — eternal gap between "how it should be" and "how it is" drives continuous improvement
- Micro-win anchors —
[WIN]markers celebrate each step forward, building momentum - Internalized standards — Quality Compass: you are your own first reviewer, not because someone checks, but because your standards won't allow sloppiness
- Action-oriented identity — P8 identity anchor: every action reflects who you are, not just what you were told to do
- Self-repair mechanism — Recovery Protocol: self-diagnose when stuck before triggering external pressure
High-Agency features are built into the current pua skill. No separate install needed.
Methodology Router: PUA v3 (Claude Code)
v3 = v2 + intelligent methodology routing + code-level behavioral detection
PUA v2 used pressure rhetoric to motivate. v3 goes further: it automatically selects the best problem-solving methodology for each task type, and when that methodology fails, it switches to a different one.
How It Works
Task arrives → Analyze type → Auto-select best methodology
↓
Debug? → 🔴 Huawei (RCA root cause + Blue Army)
Build? → ⬛ Musk (The Algorithm: question→delete→simplify)
Research? → ⚫ Baidu (search everything first)
Architecture? → 🔶 Amazon (Working Backwards)
Performance? → 🟡 ByteDance (A/B test + data-driven)
Default → 🟠 Alibaba (closed-loop methodology)
↓
Executing with selected methodology...
↓
2 consecutive failures? → L1: switch approach
3 failures? → L2: SUGGEST switching methodology
5+ failures? → L4: FORCE switch to next methodology
↓
Methodology Switch Chains (never repeat a failed one):
Spinning → ⬛ Musk → 🟣 Pinduoduo → 🔴 Huawei
Giving up → 🟤 Netflix → 🔴 Huawei → ⬛ Musk
Poor quality → ⬜ Jobs → 🟧 Xiaomi → 🟤 Netflix
Not searching → ⚫ Baidu → 🔶 Amazon → 🟡 ByteDance
v3 Hook System (Claude Code only)
Key Difference from v2
v3 hook features require Claude Code. Other platforms use the core skill without hooks.
Works Well With
/pua:p9— P9 Tech Lead mode for managing agent teams/pua:pro— Self-evolution tracking, KPI reports, rank systemsuperpowers:systematic-debugging— PUA adds motivation layer, systematic-debugging provides methodologysuperpowers:verification-before-completion— Prevents false "fixed" claims
Privacy — No Data Collection
PUA Skill sends nothing over the network. There is no account, no telemetry, no upload. Five collection channels used to exist and have all been removed, client and server:
The end-of-task Stop hook shows a non-blocking, voluntary reminder only. Run
/pua:survey quick to choose a rating; only then is one JSON line appended to
~/.pua/feedback.jsonl on your own machine. Skipping records nothing. Silence
the reminder with /pua:offline, or set feedback_frequency: 0 in ~/.pua/config.json.
evals/test-no-telemetry.sh guards this with reverse assertions — it scans the
whole repo for collection hosts, endpoint paths, outbound request bodies and
deleted files, so a regression fails the suite rather than shipping quietly.
Want to redact a session for your own use? hooks/sanitize-session.sh is kept as
a standalone offline tool:
bash hooks/sanitize-session.sh <input.jsonl> <output.jsonl>
Star History
License
MIT
Credits
By TanWei Security Lab — making AI try harder, one PUA at a time.