Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add QBall-Inc/the-bulwark --skill component-patternsgit clone --depth 1 https://github.com/QBall-Inc/the-bulwarkWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/qball-inc/the-bulwark/component-patterns)<a href="https://agentmods.dev/skills/qball-inc/the-bulwark/component-patterns"><img src="https://agentmods.dev/badge/skills/qball-inc/the-bulwark/component-patterns/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/qball-inc/the-bulwark/component-patterns"><img src="https://agentmods.dev/badge/skills/qball-inc/the-bulwark/component-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Tool Misuse · line 133 Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.Fix: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00020 | $0.01189 |
| Opus 5.5 | $0.00008 | $0.00476 |
| Sonnet 5.5 | $0.00004 | $0.00238 |
| Haiku 4.5 | $0.00002 | $0.00119 |
Grade A, and why
component-patterns scanned grade A with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| `expect(fetch).toHaveBeenCalledWith(url)` | `const resp = await fetch(url); expect(resp.status).toBe(200)` | Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
| Imports `child_process`, has `spawn`/`exec`/`execSync` | Process Spawner | `references/pattern-process-spawner.md` | Copies of this mod
1 near-identical copy found in the catalogue:
- component-patterns — 89% identical, 267 lines differ
How it starts
The opening of the file, as written. The whole thing — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Component Patterns
Purpose
Provide verification strategies for different component types. This skill defines how to test real behavior for CLIs, servers, parsers, processes, databases, and external APIs.
When to Use
Load this skill when:
- Generating verification scripts via bulwark-verify skill
- Determining how to test a specific component type
- Implementing test-audit Step 7 rewrites
Component Type Detection
Analyze the code to determine component type based on these indicators:
| Indicators | Component Type | Pattern Reference |
|---|---|---|
Imports child_process, has spawn/exec/execSync |
Process Spawner | references/pattern-process-spawner.md |
Imports http/https/express/fastify/koa, has listen() |
HTTP Server | references/pattern-http-server.md |
Imports fs, reads/parses files, has parse functions |
File Parser | references/pattern-file-parser.md |
Has CLI argument parsing (process.argv, yargs, commander, argparse) |
CLI Command | references/pattern-cli-command.md |
Imports database driver (pg, mysql, mongoose, sqlite, prisma) |
Database | references/pattern-database.md |
Makes outbound HTTP calls (fetch, axios, got, requests) |
External API | references/pattern-external-api.md |
Pattern Reference Files
Each pattern reference contains:
- Strategy: High-level approach for testing the component type
- Templates: Ready-to-use verification script templates in Bash, Node/Jest, and Python/pytest
- Placeholders: Variables to substitute with component-specific values
Available Patterns
| Pattern | File | Languages |
|---|---|---|
| CLI Command | references/pattern-cli-command.md |
Bash, Node, Python |
| HTTP Server | references/pattern-http-server.md |
Bash, Node (supertest), Python |
| File Parser | references/pattern-file-parser.md |
Bash, Node, Python |
| Process Spawner | references/pattern-process-spawner.md |
Bash, Node |
| Database | references/pattern-database.md |
Node, Python, Bash (SQLite) |
| External API | references/pattern-external-api.md |
Node (MSW), Python (responses) |
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 137 lines · 20 tokens per session scan A 121f8a622d22
component-patterns is a skill published in the GitHub repository QBall-Inc/the-bulwark (8 stars, last pushed yesterday), licensed MIT. It adds 20 tokens to every session and 1,189 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 2 findings (makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
ros2-development
Implement or change ROS 2 Jazzy packages, nodes, interfaces, launch files and configuration in a colcon workspace. Use for building and validating a development change, including tests that report success without running. For a live QoS, TF, IMU or odometry fault, use ros2-troubleshooting.
journey-simulation
Use when caller wants to observe how a stranger encounters a flow, artifact, or sandbox — triggers like "simulate a user journey", "test our onboarding / checkout / signup", "will my ICP convert", "how does a cold reader experience this README", "first-time user test", "cognitive walkthrough", or any request to…
black-box-test
Use as an INDEPENDENT tester agent to test another agent's intesting ticket from the OUTSIDE — never your own, and never from the implementation diff. You test from the operational test contract + acceptance criteria only (never HOW it was built), writing one automated test per criterion that invokes the changed…
java-conventions
Use when a ticket adds or changes Java code and it must follow the repo's Java conventions — Effective Java, modern Java (records, sealed types, pattern matching, switch expressions), Optional discipline, immutability, try-with-resources, thread safety and virtual threads, Spring Boot constructor injection, and JUnit…
python-conventions
Use when a ticket adds or changes Python code and it must follow the repo's Python conventions — PEP 8, full type hints (PEP 484) checked by mypy/pyright, dataclasses, pythonic idioms, explicit error handling, asyncio and thread safety, ruff-clean, and pytest with coverage via the repo's env manager (uv/poetry).…
record-evidence
Use after implementing a Dispatch ticket and running its checks, to produce and record acceptance-criterion evidence, then STOP. Invoke whenever you have finished and committed work on your claimed ticket and need to evidence each AC. Recording evidence is where your job ENDS — the runner (not you) records the…