add-assertion

A development workflow for adding assertion functions to bashunit, a Bash testing framework. TDD, or test-driven development, means writing tests before or alongside the code and using them to guide the implementation.

In plain words
What is it for?
Use it when adding Bash assertions, documenting acceptance criteria, studying existing project patterns, running RED-GREEN-REFACTOR test cycles, and checking return codes or error messages.
Why use it?
It reduces regressions by requiring success, failure, edge-case, and integration tests for each new assertion.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/typeddevs/bashunit/add-assertion
Any agent
npx skills add TypedDevs/bashunit --skill add-assertion
Clone the repo
git clone --depth 1 https://github.com/TypedDevs/bashunit

Made for: Claude Code, Codex.

Per session 15 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 430 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00015 $0.00430
Opus 5 $0.00008 $0.00215
Sonnet 5 $0.00003 $0.00086
Haiku 4.5 $0.00002 $0.00043

Measured 2d ago against content hash c47e04081054, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

add-assertion scanned grade A with 0 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 2d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/add-assertion/SKILL.md · 60 lines

What it actually says

Add Assertion Skill

Add a new assertion function to bashunit following strict TDD methodology.

Prerequisites

  1. Task file must exist — create .tasks/YYYY-MM-DD-add-assertion-name.md
  2. Study patterns — read tests/unit/assert_test.sh and src/assertions.sh

Workflow

1. Plan

Ask user: assertion name, parameters, success/failure behavior, error messages.

Document acceptance criteria and test inventory in task file.

2. Study Existing Patterns

Read src/assertions.sh and tests/unit/assert_test.sh to understand:

  • Parameter validation, assertion logic, error message format
  • Return codes (0 = success, 1 = failure)
  • How tests verify both success and failure cases

3. TDD Cycles

For each test in inventory, follow RED -> GREEN -> REFACTOR:

  1. Basic success case — assertion passes with valid input
  2. Failure case — assertion fails correctly: capture its output and compare it with bashunit::console_results::print_failed_test (there is no assert_fails)
  3. Edge cases — empty input, special characters, nested structures, malformed data

4. Integration

  • Source new file in src/bashunit.sh if created
  • export -f the assertion function
  • Run full test suite: ./bashunit tests/
  • Quality checks: make sa && make lint

5. Documentation

  • Add function header with Arguments/Returns/Example
  • Update CHANGELOG.md
  • Update user-facing docs if applicable

Final Checklist

  • All tests passing (success, failure, edge cases)
  • Function documented and exported
  • Quality gate passes
  • CHANGELOG updated
  • Task file completed
Changes

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.

  1. 2d ago First seen · 60 lines · 15 tokens per session scan A c47e04081054

Subscribe to this mod's changes

add-assertion is a skill published in the GitHub repository TypedDevs/bashunit (424 stars, last pushed 2d ago), licensed MIT. It adds 15 tokens to every session and 430 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

x-nets

Enhanced netstat module with cached data and structured output. View network connections, routing tables, and interface statistics in interactive or TSV/CSV formats. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill for installation options). see x-cmd skill for installation.

x-cmd/x-cmd · 69 tokens

x-mankier

Search and browse man pages from ManKier.com. Command line interface for ManKier man page repository. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill for installation options). see x-cmd skill for installation.

x-cmd/x-cmd · 62 tokens

x-osv

CLI for Google OSV database. Query vulnerabilities for packages, scan local projects for vulnerable dependencies. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill). Required Tool: Install osv-scanner for project scanning (see https://github.com/google/osv-scanner).

x-cmd/x-cmd · 72 tokens

rule

Skill "rule" from x-cmd/x-cmd, covering rule — rules to rule, 核心命令, 规则文件格式, 示例 and 验证规则文件格式.

x-cmd/x-cmd · 0 tokens

wikipedia

Search and read Wikipedia via x wkp — MediaWiki API, no API key, zero install; query, extract, suggest, and DDG route in one module. Load for wiki, wikipedia, encyclopedia lookup, article summary.

x-cmd/x-cmd · 49 tokens

cve

Look up CVE records via x cve — cached, zero-API-key, daily xz TSV. Load for cve, vulnerability id, kev, epss, nvd, cvelist, or security advisory.

x-cmd/x-cmd · 49 tokens