Swing Skills — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Swing Skills (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
Aggregate score unchanged between these scans.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="center"> <img src="assets/swing-icon.svg" width="80" alt="Swing logo"> </p>
<h1 align="center">Swing — AI Agent Guardrails for Claude Code</h1>
<p align="center"> <a href="https://github.com/thestack-ai/swing-skills/stargazers"><img src="https://img.shields.io/github/stars/thestack-ai/swing-skills?style=flat&color=58a6ff" alt="Stars"></a> <a href="https://github.com/thestack-ai/swing-skills/releases"><img src="https://img.shields.io/github/v/tag/thestack-ai/swing-skills?label=version&color=3fb950" alt="Version"></a> <a href="https://github.com/thestack-ai/swing-skills/blob/main/LICENSE"><img src="https://img.shields.io/github/license/thestack-ai/swing-skills?color=8b949e" alt="License"></a> <a href="https://github.com/thestack-ai/swing-skills/commits/main"><img src="https://img.shields.io/github/commit-activity/m/thestack-ai/swing-skills?color=58a6ff" alt="Commits"></a> <a href="https://x.com/thestack_ai"><img src="https://img.shields.io/badge/follow-@thestack__ai-1DA1F2?logo=x&logoColor=white" alt="Twitter"></a> <br> <img src="https://img.shields.io/badge/skills-6_firewalls-58a6ff" alt="6 Firewalls"> <img src="https://img.shields.io/badge/Claude_Code-compatible-bc8cff?logo=anthropic&logoColor=white" alt="Claude Code"> <img src="https://img.shields.io/badge/Codex_CLI-compatible-3fb950?logo=openai&logoColor=white" alt="Codex CLI"> <a href="https://github.com/thestack-ai/swing-skills/pulls"><img src="https://img.shields.io/badge/PRs-welcome-3fb950" alt="PRs Welcome"></a> </p>
<p align="right"> <a href="README.md">English</a> · <a href="README.ko.md">한국어 (Korean)</a> </p>
<p align="center"> <img src="assets/swing-hero-terminal.png" width="800" alt="Swing terminal installation"> </p>
Your AI is not swinging at all.
It picks the safe default, agrees when it should push back, cites no sources, hides its reasoning, and assumes everything will work. Six cognitive failures. Six firewalls. Make it swing.
npx skills add thestack-ai/swing-skills --allBuilt for Claude Code | Compatible with AI agents via Agent Skills open standard Created by @thestack_ai
You: Is SQLite viable for an app with 1000 concurrent users?
>
AI: No, SQLite is not suitable for high-concurrency applications. Use PostgreSQL or MySQL instead for production workloads.
swing-researchYou: /swing-research Is SQLite viable for an app with 1000 concurrent users?
>
AI: Yes, with caveats. 1000 concurrent users ≠ 1000 concurrent writes. Typical web apps generate ~30 concurrent write transactions at this scale. SQLite handles ~120 write transactions/sec in WAL mode (verified: sqlite.org benchmarks + Expensify production case study serving 10M+ users on SQLite). The real constraint is write contention above ~100 concurrent writers, not user count.
>
Sources: 🏛️ sqlite.org WAL documentation, 🛡️ Expensify engineering blog (2024), ⚠️ HN discussion (corroborated)
The baseline gave a wrong answer confidently. The skill forced source verification and reached the opposite — correct — conclusion.
You: Review this JWT auth module
>
AI: The code looks well-structured. Consider adding more comments and using TypeScript for better type safety. Variable naming could be improved in some places.
swing-reviewYou: /swing-review Review this JWT auth module
>
AI: Steel-man: JWT-based stateless auth was chosen for horizontal scaling. The 15-min access + 7-day refresh split balances security and UX.
>
🔴 Critical: No refresh token rotation. A stolen token grants persistent 7-day access with no detection. Fix: implement token family chain rotation.
>
🟠 Major: Rate limiting uses in-memory Map(). Resets on restart, bypassed in multi-instance deploys. Fix: move to Redis with TTL.
>
Verdict: PASS WITH CONDITIONS — must fix token rotation before deploy.
The baseline found nothing. The skill found a Critical security vulnerability.
| Cognitive Failure | What Happens | Firewall | What It Forces |
|---|---|---|---|
| Premature closure | AI rushes to execute on ambiguous requests | swing-clarify | Structured clarification before execution begins |
| Hallucination | AI states claims without verification | swing-research | Source-traced, cross-verified claims with S/A/B/C tier grading |
| Anchoring bias | AI locks onto the first "obvious" answer | swing-options | 5 probability-weighted options including unconventional alternatives |
| Confirmation bias | AI agrees with you instead of challenging | swing-review | Steel-man then 3-vector attack. "Looks good" is structurally banned |
| Black-box reasoning | AI gives conclusions without showing why | swing-trace | Assumption inventory and weakest-link analysis |
| Optimism bias | AI assumes the plan will work | swing-mortem | Assumes failure, identifies 5 specific failure scenarios with circuit breakers |
Prevents premature execution on ambiguous requests.
Request → 5W1H Decomposition → Ambiguity Score → Clarify or ProceedTry: /swing-clarify Build me an auth system4-stage verified research pipeline with anti-hallucination safeguards.
Deconstruct → Search & Collect → Cross-Verify → SynthesizeUnverifiedTry: /swing-research Is gRPC better than REST for mobile backends?Probability-weighted option generator that breaks anchoring bias.
Try: /swing-options Which database for a real-time leaderboard?Structured Devil's Advocate that finds real problems, not nitpicks.
Try: /swing-review We chose Kubernetes for our 3-person startupMakes AI reasoning visible, auditable, and decomposable.
Try: /swing-trace Why do you recommend microservices for this project?Prospective failure analysis — assumes your plan failed and works backward.
Try: /swing-mortem We're migrating our monolith to microservices over Q3| Your situation | Skill | Example |
|---|---|---|
| Request is vague or has implicit assumptions | swing-clarify | "Build me an auth system" → clarifies SSO? RBAC? OAuth? |
| Researching a technology or verifying a claim | swing-research | "Is gRPC better than REST for mobile?" |
| Reviewing code, architecture, or a decision | swing-review | "We chose Kubernetes for our 3-person startup" |
| Your situation | Skill | Example |
|---|---|---|
| Choosing between options | swing-options | "Which database for real-time leaderboard?" |
| Planning a project, want to de-risk | swing-mortem | "We're migrating to microservices in Q3" |
| Your situation | Skill | Example |
|---|---|---|
| Want to see WHY the AI recommends something | swing-trace | "Why microservices for this project?" |
| Need full audit trail | swing-trace --full | Architecture decision records |
swing-clarify → [any other skill] (always clarify first)swing-clarify → swing-options → swing-research → swing-reviewswing-trace → swing-reviewswing-mortem → swing-options (for mitigations)Your AI's default reasoning:
[Question] ──→ [First plausible answer] ──→ [Ship it]
With Swing:
[Request]
│
├──→ swing-clarify ──→ "What EXACTLY do you need?" (prevents premature closure)
│
├──→ swing-options ──→ "What are ALL the options?" (breaks anchoring)
│
├──→ swing-research ──→ "Is this actually true?" (blocks hallucination)
│
├──→ swing-trace ──→ "WHY do I believe this?" (exposes assumptions)
│
├──→ swing-review ──→ "What's WRONG with this?" (kills confirmation bias)
│
└──→ swing-mortem ──→ "HOW will this FAIL?" (counters optimism bias)Each firewall is independent — use one, or chain them.
You could paste these instructions into CLAUDE.md or a system prompt. But:
swing-clarify → swing-research → swing-review. A monolithic prompt can't be selectively invoked.npx skills add works across Claude Code, Cursor, Copilot. A system prompt is locked to one tool.npx skills add thestack-ai/swing-skills --allnpx skills add thestack-ai/swing-skills@swing-clarify
npx skills add thestack-ai/swing-skills@swing-research
npx skills add thestack-ai/swing-skills@swing-review
npx skills add thestack-ai/swing-skills@swing-options
npx skills add thestack-ai/swing-skills@swing-trace
npx skills add thestack-ai/swing-skills@swing-mortemgit clone https://github.com/thestack-ai/swing-skills.git
cp -r swing-skills/skills/* ~/.claude/skills/cp -r swing-skills/skills/swing-review .claude/skills/| Platform | Status |
|---|---|
| Claude Code | Fully supported |
| Cursor | Compatible (Agent Skills standard) |
| GitHub Copilot | Compatible (Agent Skills standard) |
| Codex CLI | Compatible (Agent Skills standard) |
MIT License. See LICENSE.
Swing by @thestack_ai — 6 cognitive firewalls for your AI.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.