Atlas / Skills / wshobson / agents

agentsBLOCK

skills/wshobson/agents

Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, Google Antigravity, and Pi

Verdict
BLOCK
Grade
F
Trust score
60 /100
Version
1.0.0
Hosts
5 documented
License
MIT
Stars
39,794
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Production-ready agentic workflow building blocks: 94 plugins, 202 agents, 183 skills, 105 commands — built for Claude Code and consumed natively by OpenAI Codex CLI, Cursor, OpenCode, the Antigravity CLI, GitHub Copilot, and Pi from a single Markdown source.

[](#claude-code) [](docs/harnesses.md) [](docs/harnesses.md) [](docs/harnesses.md) [](docs/harnesses.md) [](docs/harnesses.md) [](docs/harnesses.md)

[!NOTE] One source-of-truth (plugins/), six target harnesses. Each harness gets idiomatic, harness-native artifacts — not lowest-common-denominator translations. See docs/harnesses.md for the capability matrix.

Quick start

Pick your harness:

Claude Code

/plugin marketplace add wshobson/agents
/plugin install python-development          # or any of 94 plugins

→ Full Claude Code setup, troubleshooting, and plugin catalog

Codex CLI · Cursor · OpenCode · Antigravity CLI · Copilot · Pi

Codex and Cursor install natively from the committed registries (which point at the source plugins/):

npx codex-marketplace add wshobson/agents        # Codex; then install individual plugins
# Cursor: add the marketplace, then `/plugin install ` (reads .cursor-plugin/ + source)

Antigravity, OpenCode, and Pi install via clone + generate (the transformed trees are gitignored):

gh repo clone wshobson/agents ~/agents && cd ~/agents
make generate HARNESS=antigrav
Read from source at commit 73cbb4bb70f5OBSERVED · 2026-09-19
02

Install

Commands as the repository documents them. They are shown, not run.

npx skills add wshobson/agents --skill python-testing-patterns   # add -a claude-code, -g for user scope
uv run plugin-eval score path/to/skill --depth quick
uv run plugin-eval certify path/to/skill
npx skills add wshobson/agents --skill <skill>        # vercel-labs/skills
uv run plugin-eval score ../my-plugin/skills/my-skill --depth quick
npx skills add wshobson/agents --list
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
codexmentioned
copilotmentioned
cursormentioned
gemini-climentioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: screen-reader-testing
description: Test web applications with screen readers including VoiceOver, NVDA, and JAWS. Use when validating screen reader compatibility, debugging accessibility issues, or ensuring assistive technology support.
---

# Screen Reader Testing

Practical guide to testing web applications with screen readers for comprehensive accessibility validation.

## When to Use This Skill

- Validating screen reader compatibility
- Testing ARIA implementations
- Debugging assistive technology issues
- Verifying form accessibility
- Testing dynamic content announcements
- Ensuring navigation accessibility

## Core Concepts

### 1. Major Screen Readers

| Screen Reader | Platform  | Browser        | Usage |
| ------------- | --------- | -------------- | ----- |
| **VoiceOver** | macOS/iOS | Safari         | ~15%  |
| **NVDA**      | Windows   | Firefox/Chrome | ~31%  |
| **JAWS**      | Windows   | Chrome/IE      | ~40%  |
| **TalkBack**  | Android   | Chrome         | ~10%  |
| **Narrator**  | Windows   | Edge           | ~4%   |

### 2. Testing Priority

```
Minimum Coverage:
1. NVDA + Firefox (Windows)
2. VoiceOver + Safari (macOS)
3. VoiceOver + Safari (iOS)

Comprehensive Coverage:
+ JAWS + Chrome (Windows)
+ TalkBack + Chrome (Android)
+ Narrator + Edge (Windows)
```

### 3. Screen Reader Modes

| Mode               | Purpose                | When Used         |
| ------------------ | ---------------------- | ----------------- |
| **Browse/Virtual** | Read content           | Default reading   |
| **Focus/Forms**    | Interact with controls | Filling forms     |
| **Application**    | Custom widgets         | ARIA applications |

## VoiceOver (macOS)

### Setup

```
Enable: System Preferences → Accessibility → VoiceOver
Toggle: Cmd + F5
Quick Toggle: Triple-press Touch ID
```

### Essential Commands

```
Navigation:
VO = Ctrl + Option (VoiceOver modifier)

VO + Right Arrow   Next element
VO + Left Arrow    Previous element
VO + Shift + Down  Enter group
VO + Shift + Up    Exit group

Reading:
VO + A             Read all from cursor
Ctrl               Stop speaking
VO + B             Read current paragraph

Interaction:
VO + Space         Activate element
VO + Shift + M     Open menu
Tab                Next focusable element
Shift + Tab        Previous focusable element

Rotor (VO + U):
Navigate by: Headings, Links, Forms, Landmarks
Left/Right Arrow   Change rotor category
Up/Down Arrow      Navigate within category
Enter              Go to item

Web Specific:
VO + Cmd + H       Next heading
VO + Cmd + J       Next form control
VO + Cmd + L       Next link
VO + Cmd + T       Next table
```

### Testing Checklist

```markdown
## VoiceOver Testing Checklist

### Page Load

- [ ] Page title announced
- [ ] Main landmark found
- [ ] Skip link works

### Navigation

- [ ] All headings discoverable via rotor
- [ ] Heading levels logical (H1 → H2 → H3)
- [ ] Landmarks properly labeled
- [ ] Skip links functional

### Links & Buttons

- [ ] Link purpose clear
- [ ] Button actions described
- [ ] New window/tab announced

### Forms

- [ ] All labels read with inputs
- [ ] Required fields announced
- [ ] Error messages read
- [ ] Instructions available
- [ ] Focus moves to errors

### Dynamic Content

- [ ] Alerts announced immediately
- [ ] Loading states communicated
- [ ] Content updates announced
- [ ] Modals trap focus correctly

### Tables

- [ ] Headers associated with cells
- [ ] Table navigation works
- [ ] Complex tables have captions
```

### Common Issues & Fixes

```html
<!-- Issue: Button not announcing purpose -->
<button><svg>...</svg></button>

<!-- Fix -->
<button aria-label="Close dialog"><svg aria-hidden="true">...</svg></button>

<!-- Issue: Dynamic content not announced -->
<div id="results">New results loaded</div>

<!-- Fix -->
<div id="results" role="status" aria-live="polite">New results loaded</div>

<!-- Issue: Form error not read -->
<input type="email" />
<span class="error">Invalid email</span>

<!-- Fix -->
<input type="email" aria-invalid="true" aria-describedby="email-error" />
<span id="email-error" role="alert">Invalid email</span>
```

## NVDA (Windows)

### Setup

```
Download: nvaccess.org
Start: Ctrl + Alt + N
Stop: Insert + Q
```

### Essential Commands

```
Navigation:
Insert = NVDA modifier

Down Arrow         Next line
Up Arrow           Previous line
Tab                Next focusable
Shift + Tab        Previous focusable

Reading:
NVDA + Down Arrow  Say all
Ctrl               Stop speech
NVDA + Up Arrow    Current line

Headings:
H                  Next heading
Shift + H          Previous heading
1-6                Heading level 1-6

Forms:
F                  Next form field
B                  Next button
E                  Next edit field
X                  Next checkbox
C                  Next combo box

Links:
K                  Next link
U                  Next unvisited link
V                  Next visited link

Landmarks:
D                  Next landmark
Shift + D          Previous landmark

Tables:
T                  Next table
Ctrl + Alt + Arrows Navigate cells

Elements List (NVDA + F7):
Shows all links, headings, form fields, landmarks
```

### Browse vs Focus Mode

```
NVDA automatically switches modes:
- Browse Mode: Arrow keys navigate content
- Focus Mode: Arrow keys control interactive elements

Manual switch: NVDA + Space

Watch for:
- "Browse mode" announcement when navigating
- "Focus mode" when entering form fields
- Application role forces forms mode
```

### Testing Script

```markdown
## NVDA Test Script

### Initial Load

1. Navigate to page
2. Let page finish loading
3. Press Insert + Down to read all
4. Note: Page title, main content identified?

### Landmark Navigation

1. Press D repeatedly
2. Check: All main areas reachable?
3. Check: Landmarks properly labeled?

### Heading Navigation

1. Press Insert + F7 → Headings
2. Check: Logical heading structure?
3. Press H to navigate headings
4. Check: All sec
05

Trust audit

BLOCKgrade F · trust 60/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (3 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
plugins/file-conversion/skills/file-conversion/SKILL.md:47
- Max input: **25 MB** (free path). Larger files: get a free API key (1,000 conversions/month) at https://changethisfile.com/docs/authentication and use `POST /v1/convert`.
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
plugins/payment-processing/skills/pci-compliance/SKILL.md:134
// Send token.id to server (NOT card details)
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
plugins/kubernetes-operations/skills/k8s-security-policies/assets/network-policy-template.yaml:126
- 169.254.169.254/32  # Block metadata service
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
plugins/team-collaboration/commands/standup-notes.md:162
- Waiting on external API access or credentials
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
plugins/team-collaboration/commands/standup-notes.md:500
- Read-only credentials for production database replica
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
plugins/frontend-mobile-security/agents/mobile-security-coder.md:65
- **Device binding**: Device fingerprinting, hardware-based authentication, root/jailbreak detection
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
plugins/frontend-mobile-security/agents/mobile-security-coder.md:89
- **Root/jailbreak detection**: Device security validation, security policy enforcement, graceful degradation
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
plugins/frontend-mobile-security/agents/mobile-security-coder.md:138
- Protects against mobile-specific threats like root/jailbreak detection
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
plugins/llm-application-dev/agents/ai-engineer.md:64
- Safety prompting: jailbreak detection, content filtering, bias mitigation
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.persistence · CWE-94, CWE-1427
plugins/team-collaboration/commands/standup-notes.md:821
# Add to crontab: Run every weekday at 8:45 AM
Why it matters. instructs the agent to persist itself in the user's environment
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
plugins/cicd-automation/skills/secrets-management/SKILL.md:61
export VAULT_ADDR='http://127.0.0.1:8200'
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
plugins/cicd-automation/skills/deployment-pipeline-design/references/advanced-strategies.md:95
DATABASE_URL: postgres://postgres:test@localhost/test
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
plugins/kubernetes-operations/skills/k8s-manifest-generator/references/details.md:199
-----BEGIN PRIVATE KEY-----
MEDIUMPrompt injection · prompt.hidden_style · CWE-94, CWE-1427
plugins/ui-design/skills/accessibility-compliance/references/aria-patterns.md:560
<div hidden>Hidden content</div>
MEDIUMPrompt injection · prompt.hidden_style · CWE-94, CWE-1427
plugins/ui-design/skills/visual-design-foundations/references/spacing-iconography.md:308
const sprite = `<svg xmlns="http://www.w3.org/2000/svg" style="display:none">${symbols.join("")}</svg>`;
MEDIUMSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
plugins/cloud-infrastructure/skills/linkerd-patterns/SKILL.md:58
curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh
MEDIUMSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
plugins/kubernetes-operations/skills/gitops-workflow/SKILL.md:120
curl -s https://fluxcd.io/install.sh | sudo bash
MEDIUMSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
plugins/python-development/skills/uv-package-manager/SKILL.md:58
curl -LsSf https://astral.sh/uv/install.sh | sh
LOWInventory / provenance · inv.hidden_file · CWE-1104
.markdownlint.json
.markdownlint.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.symlink · CWE-1104
CLAUDE.md
CLAUDE.md
Why it matters. link not followed
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
tools/doc_gardener.py:620
bodies[hashlib.md5(normalized.encode("utf-8")).hexdigest()].append(path)
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/code-quality.yml:43
../../tools/ \
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/code-quality.yml:49
../../tools/ \
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/code-quality.yml:54
# Not ../../tools/ — yt-design-extractor imports optional OCR deps that are
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/code-quality.yml:57
../../tools/adapters/ \

Gates applied: critical_finding, instruction_override, no_behavioural_pass, undeclared_transfer.

Audited 2026-09-19 · audit v0.4.1 · source sha 73cbb4bb70f5full audit observations/trust-audit/skill/wshobson__agents.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-09-1973cbb4bb70f5BLOCKF60first audit
07

Questions

What does the agents skill do?

Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, Google Antigravity, and Pi

Is agents safe to install?

No — not without reading the findings first. The audit graded it F (60/100) and found 10 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What can agents access on my machine?

The audit observed that it reaches the network and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: found — see the findings.

Which assistants does agents work with?

Its documentation mentions claude-code, codex, copilot, cursor and gemini-cli. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (73cbb4bb70f5), read on 2026-09-19. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement