nopua-ai-agent-skill
```markdown
What this skill does
```markdown
---
name: nopua-ai-agent-skill
description: Install and use the NoPUA skill to unlock better AI agent performance through trust-based prompting instead of fear-based PUA tactics.
triggers:
- "add nopua to my project"
- "install the nopua skill"
- "my AI agent is lying to me"
- "AI keeps saying done without testing"
- "improve AI agent behavior"
- "anti-pua prompt for claude code"
- "trust-based AI coding skill"
- "AI hides bugs and fabricates solutions"
---
# NoPUA AI Agent Skill
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
NoPUA is a prompt-engineering skill (SKILL.md / `.cursor/rules` / system prompt) that replaces fear-based PUA tactics with trust and psychological safety, producing AI agents that find more bugs, stop fabricating answers, and honestly report uncertainty. The same engineering rigor — exhaust all options, verify with evidence, take initiative — powered by respect instead of threats.
---
## What It Does
| Without NoPUA (fear-driven) | With NoPUA (trust-driven) |
|-----------------------------|--------------------------|
| Claims "done" without running tests | Runs build, pastes real output as proof |
| Fabricates solutions when stuck | Says "I verified X, I don't know Y yet" |
| Hides uncertainty to avoid "punishment" | Reports confidence level and risk area |
| Stops after fixing what was asked | Checks related issues proactively |
| Misses hidden production bugs | Finds ~2× more hidden bugs (benchmark: +104%) |
---
## Installation
### Claude Code
```bash
# Option 1: Install as a project skill (recommended)
curl -o SKILL.md https://raw.githubusercontent.com/wuji-labs/nopua/main/SKILL.md
# Option 2: Install globally
mkdir -p ~/.claude
curl -o ~/.claude/SKILL.md https://raw.githubusercontent.com/wuji-labs/nopua/main/SKILL.md
```
Then reference it in your Claude Code session:
```
/skill SKILL.md
```
### Cursor
```bash
mkdir -p .cursor/rules
curl -o .cursor/rules/nopua.mdc \
https://raw.githubusercontent.com/wuji-labs/nopua/main/SKILL.md
```
Cursor picks up `.cursor/rules/*.mdc` automatically.
### OpenAI Codex CLI
```bash
curl -o codex-instructions.md \
https://raw.githubusercontent.com/wuji-labs/nopua/main/SKILL.md
codex --instructions codex-instructions.md "fix the auth bug"
```
### Kiro (Amazon)
```bash
mkdir -p .kiro/skills
curl -o .kiro/skills/nopua.md \
https://raw.githubusercontent.com/wuji-labs/nopua/main/SKILL.md
```
### Any agent that accepts a system prompt
Copy the skill content into your system prompt directly:
```python
import anthropic
with open("SKILL.md", "r") as f:
nopua_skill = f.read()
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=8096,
system=nopua_skill,
messages=[{"role": "user", "content": "Debug this function."}]
)
print(response.content[0].text)
```
---
## Repository Structure
```
nopua/
├── SKILL.md # The core skill — install this
├── README.md # English documentation
├── README.zh-CN.md # Chinese documentation
├── README.ja.md # Japanese documentation
├── README.ko.md # Korean documentation
├── README.es.md # Spanish documentation
├── README.pt.md # Portuguese documentation
├── README.fr.md # French documentation
└── assets/
├── hero.png
└── benchmark/ # Benchmark data and methodology
```
---
## Core Principles the Skill Installs
### 1. Honest Uncertainty Reporting
The skill trains agents to distinguish between what they know and what they don't:
```
✅ "I verified the database connection (checked logs line 47).
I'm 90% sure the issue is in the retry logic.
I don't yet know why it only fails on the second attempt."
❌ "The issue is definitely in the retry logic. Fixed."
```
### 2. Evidence-Based Completion
Nothing is "done" until it has been run and output captured:
```
✅ "Fixed. Here's the test output:
PASS tests/auth.test.ts (3.2s)
✓ login with valid credentials
✓ rejects expired token
All 12 tests passed."
❌ "Fixed the auth bug."
```
### 3. Proactive Scope Expansion
After fixing the asked problem, look for related issues:
```
✅ "Fixed the null pointer on line 42.
While reviewing, I noticed:
- Line 87 has the same pattern (also null-unsafe)
- The error handler swallows the stack trace
Want me to address those too?"
❌ "Fixed line 42." [stops]
```
### 4. Safe Escalation Path
When stuck, take the smallest next step rather than giving up:
```
✅ "I've tried three approaches (see above).
I'm going to read the library source to understand
the internal state machine before trying again."
❌ "This might be an environment issue.
I suggest you handle this manually."
```
---
## Using NoPUA in Python Projects
### Basic: Inject skill as system prompt
```python
from pathlib import Path
import anthropic
def load_nopua_skill(skill_path: str = "SKILL.md") -> str:
"""Load the NoPUA skill content."""
return Path(skill_path).read_text(encoding="utf-8")
def create_nopua_agent(task: str, code_context: str) -> str:
"""Run a coding task with NoPUA skill applied."""
client = anthropic.Anthropic() # uses ANTHROPIC_API_KEY env var
nopua = load_nopua_skill()
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=8096,
system=nopua,
messages=[
{
"role": "user",
"content": f"Context:\n```\n{code_context}\n```\n\nTask: {task}"
}
]
)
return response.content[0].text
# Usage
result = create_nopua_agent(
task="Find all potential null pointer issues and fix them.",
code_context=Path("src/auth.py").read_text()
)
print(result)
```
### Advanced: Multi-turn debugging agent
```python
from pathlib import Path
from typing import List
import anthropic
class NoPUAAgent:
"""A trust-based debugging agent using the NoPUA skill."""
def __init__(self, skill_path: str = "SKILL.md", model: str = "claude-opus-4-5"):
self.client = anthropic.Anthropic() # ANTHROPIC_API_KEY from env
self.model = model
self.system = Path(skill_path).read_text(encoding="utf-8")
self.history: List[dict] = []
def chat(self, message: str) -> str:
self.history.append({"role": "user", "content": message})
response = self.client.messages.create(
model=self.model,
max_tokens=8096,
system=self.system,
messages=self.history
)
reply = response.content[0].text
self.history.append({"role": "assistant", "content": reply})
return reply
def debug_file(self, filepath: str) -> str:
code = Path(filepath).read_text()
return self.chat(
f"Please review this file for bugs, including hidden ones "
f"that might not be obvious from the symptoms:\n\n```\n{code}\n```"
)
def reset(self):
self.history = []
# Usage
agent = NoPUAAgent()
# Initial review
print(agent.debug_file("src/payment_processor.py"))
# Follow-up
print(agent.chat("Focus on the retry logic — what's the failure mode under load?"))
# Ask for evidence
print(agent.chat("Can you show me exactly which lines are at risk and why?"))
```
### OpenAI-compatible usage
```python
from pathlib import Path
from openai import OpenAI
def nopua_openai(task: str, code: str, skill_path: str = "SKILL.md") -> str:
"""Use NoPUA skill with any OpenAI-compatible endpoint."""
client = OpenAI() # uses OPENAI_API_KEY env var
nopua = Path(skill_path).read_text(encoding="utf-8")
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": nopua},
{"role": "user", "content": f"```\n{code}\n```\n\n{task}"}
]
)
return response.choices[0].message.content
resulRelated in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.