hb-sk-test-runner
Writes tests for this project's service with its test runner: parametrize, isolation, real dependencies at the owned boundary, no tautological mocks, and no…
Skill by kodexArg
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kodexarg-hb-sk-test-runner
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/hb-sk-test-runner
What's inside
- Skill name
hb-sk-test-runner- Description
- Writes tests for this project's service with its test runner: parametrize, isolation, real dependencies at the owned boundary, no tautological mocks, and no live credentials in the default slice. Load for red TDD tests, post-Paladin tests, fixtures, or shadow-test repair — even if unnamed. Owner: The Trickster (hb-ag-test).
- License
- MIT
- Instructions
- 54 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# hb-sk-test-runner
Knowledge contract for **The Trickster**. Teach how this tree's {{test runner}} tests are written. Craft: parametrize, isolation, mock at the I/O boundary.
## Load
1. Read either the framework-bound TDD entry (`hb-sk-tdd`) or The Paladin's post-implementation handoff, then a neighbor test file in the same area.
2. Run from the service tree with a **clean** environment, the way [[SERVICES]] and the service's own test configuration describe.
3. Slice only: run the test files for the area under change. Never substitute the toolchain.
## Why a trap has to run
A file that never executes is green by absence. Two people then disagree about the same commit with no visible reason. Shadow tests are that hole in costume: tautologies, coverage theater, a mock that returns `X` so you can assert `X`, a UI posed as a unit. The product wears the face; the trap has to trip.
## This project's test contract
| Knob | Here |
|---|---|
| Runner | `{{test runner}}`, run from `{{service tree}}`. Pins in [[REQUIREMENTS]]. |
| Files | The project's test-file convention, next to the code under test — not a parallel shadow tree. |
| DB | Framework-bound tests use a real database, not a mocked one. Pure Paladin logic stays database-free and tests real values at its function boundary. |
| Live | Live-credential markers stay deselected in the default slice. Do not invent a live marker without a guard test. Do not invent test plugins. |
Session-scoped fixtures are rare. Prefer function-scoped fixtures so one test's state cannot poison the next.
## Parametrize the branches
One behavior, many inputs — one test, parametrized. A copy-pasted pair of near-identical tests drifts, and the un-copied case is the one that ships the defect. Cover the sad path in the same class: auth refusals, conflict codes, validation failures. A suite that only asserts the happy path is a welcome mat.
## Isolation and mocks
The unit under test stays real: the handler, the domain service, the guard. Mock the network and external systems, not the unit you claim to trap. A stub that returns `ok` followed by `assert result == "ok"` is costume. Error injection is a stub that raises or returns a closed failure, then an assert on the **product** outcome (status, body code, audit row) — not on `mock.assert_called_once()` alone.
Do not call live external services from the default slice. A bare test run must mean one thing on every machine.
## Surface and harness (not this file's specialty)
- Surface unit tests live with the surface tree and run with its toolchain. Load `hb-sk-surface-framework` when the trap is a surface test.
- Repo-root `tests/test_*.py` must have an `if __name__ == "__main__"` runner (`tests/test_every_test_file_runs.py`). A harness file that defines tests and exits 0 without running them is a shadow test.
## Do not
- Implement the model / handler (Dwarf), pure business rule (Paladin), or component (Elf).
- Write [[INTERFACES]] or screen copy in the interface language.
- Run the live markers in the default slice, or treat browser smoke as CI.
- Load Cleric / Dwarf / Wizard / Inquisitor / Bard skills. TDD entries are `hb-sk-tdd`. `hb-sk-surface-framework` is allowed for surface tests.
## Instantiation
This is a template skill: replace every `{{placeholder}}`, then rename the
folder to `{{prefix}}-sk-{{technology}}` (e.g. the test runner's name).
See [[ONBOARDING]] and [[CLONE]].From kodexArg/harness-base, MIT.
More from kodexArg/harness-base
- 0.526score
kskill-mood
kodexArg
Slash /kdx-mood.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-contracts
kodexArg
Interface catalog contract for docs/INTERFACES.md: six-column row, docs/contracts/, trailing slash, declared path prefixes, fragment Payload: —.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-domain-framework
kodexArg
The domain framework contract as this repo programs it: models, settings, framework adapters, the pure-Python boundary, and the service toolchain.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-interface-framework
kodexArg
The interface framework contract as this repo programs it: explicit handlers plus declared paths, split read/write payload shapes, and the permission-class…
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-tdd
kodexArg
Writes docs/tdds/tdd-NN-slug.md entries and walks draft→red→green→done for framework-bound service work, and recognizes the Paladin's no-entry test-after path.
SkillBFreshness: BClaude Code +9 - 0.524score
kskill-cowsay
kodexArg
Slash /cowsay.
SkillBFreshness: BClaude Code +9 - 0.524score
kskill-micro-solid-font
kodexArg
Slash /micro-solid-font.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-cloud
kodexArg
Cloud contract for this repo's deployment layout, secret-store naming, and deliberate absences.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-component-framework
kodexArg
The component framework contract for the component files this project's surface host renders or hydrates.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-abc
kodexArg
ABC checklist: a change vs PRD, the ADRs, and INTERFACES.md.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-hawk
kodexArg
Historical-issue scout for The Hawk: Graphify first on the Hunter brief, then gh issue search, then a cheap repetition verdict.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-hound
kodexArg
Codebase scout for The Hound: Graphify first on Hunter clues (tags, keywords, symbols), then Grep/Read, then an ordered catalog of full paths and short…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 29, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/kodexArg/harness-base
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from kodexArg
- 0.529score
k-django-6-drf
kodexArg
Opinionated Django 6 + DRF backend entrypoint.
SkillBFreshness: BClaude Code +9 - 0.529score
k-report
kodexArg
CONVERT a given markdown summary (prose, lists, code, ```mermaid blocks) into ONE self-contained, opinionated, mobile-first (and desktop-friendly) dark HTML…
SkillBFreshness: BClaude Code +9 - 0.529score
k-astro-7
kodexArg
Opinionated frontend entrypoint for Astro 7 + Svelte 5 + HTMX.
SkillBFreshness: BClaude Code +9 - 0.526score
kskill-mood
kodexArg
Slash /kdx-mood.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-contracts
kodexArg
Interface catalog contract for docs/INTERFACES.md: six-column row, docs/contracts/, trailing slash, declared path prefixes, fragment Payload: —.
SkillBFreshness: BClaude Code +9 - 0.524score
hb-sk-abc
kodexArg
ABC checklist: a change vs PRD, the ADRs, and INTERFACES.md.
SkillBFreshness: BClaude Code +9
Cite this page
hb-sk-test-runner skill. Agent Mart. https://agentmart.dev/skills/kodexarg-hb-sk-test-runner (last updated 2026-10-24)