Borrowing it
Nothing to install: this file belongs to prebid/salesagent. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/prebid/salesagent/main/.claude/skills/author-bdd-steps/SKILL.mdgit clone --depth 1 https://github.com/prebid/salesagentWrote 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/prebid/salesagent/author-bdd-steps)<a href="https://agentmods.dev/skills/prebid/salesagent/author-bdd-steps"><img src="https://agentmods.dev/badge/skills/prebid/salesagent/author-bdd-steps/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/prebid/salesagent/author-bdd-steps"><img src="https://agentmods.dev/badge/skills/prebid/salesagent/author-bdd-steps.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00098 | $0.02646 |
| Opus 5.5 | $0.00039 | $0.01058 |
| Sonnet 5.5 | $0.00020 | $0.00529 |
| Haiku 4.5 | $0.00010 | $0.00265 |
Grade A, and why
author-bdd-steps 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 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.
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.
How it starts
The opening of the file, as written. The whole thing — 196 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Authoring BDD Steps
Normative rules live in tests/CLAUDE.md §"BDD authoring discipline (the five
rules)" and §"Error Verification Policy" — read those first; this skill is the
wiring guide for applying them while writing a step, not a restatement.
tests/bdd/CLAUDE.md has the quick-reference helper table.
Do not follow the generic qa-bdd:step-development plugin skill for this
project. Its When-step template is except Exception as exc: ctx["error"] = exc — the exact hand-stash antipattern rule 2 forbids. It predates this
repo's harness and doesn't know dispatch_request or the wire-envelope
helpers exist.
1. Authority gate
Locate the scenario in its generated tests/bdd/features/BR-UC-*.feature —
that file (mirroring the pinned schema + storyboard) is the authority, not the
step body and not a docs/test-obligations/ bootstrap artifact. Spec-cite
before writing code:
uv run python -c "import adcp; print(adcp.get_adcp_spec_version())" # confirm the pin, docs/adcp-spec-version.md
git -C ~/projects/adcp show v3.1.1:dist/schemas/3.1.1/core/<schema>.json
If the scenario's wording diverges from what the schema actually requires, fix the scenario (generated features can be edited locally — mirror the diff upstream) rather than coding to a wrong scenario. Cite the divergence with the spec version + path.
2. Wireability gate (HARD STOP)
Before writing a When, confirm the domain env this scenario needs can reach
the wire:
- Which env class serves this scenario? (
tests/CLAUDE.md's environment table, ortests/harness/*.py.) - Does
dispatch_request(tests/bdd/steps/generic/_dispatch.py) already route this tool/domain throughcall_via? If yes, use it — it's the ONE writer ofctx["result"]/ctx["wire_response"]/ctx["wire_error_envelope"]. - If the env or route doesn't exist yet: wire it first (add the env
method, or extend
_dispatch.py's routing), or single-transport-tag + xfail-route the scenario with an explicit wiring-gap reason. Do this instead of reaching for a shortcut.
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 · 196 lines · 98 tokens per session scan A 939d8f03b142
author-bdd-steps is a skill published in the GitHub repository prebid/salesagent (39 stars, last pushed yesterday), licensed Apache-2.0. It adds 98 tokens to every session and 2,646 once invoked, about $0.0004 per session on Opus 5.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-09-19.
Other skills, from other repositories
research-engineer
An uncompromising Academic Research Engineer. Operates with absolute scientific rigor, objective criticism, and zero flair. Focuses on theoretical correctness, formal verification, and optimal implementation across any required technology.
tika-eval-compare
Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".
cua-driver
Use Cua Driver for desktop or browser tasks that are awkward or unavailable through Bash/APIs, or when the user explicitly wants GUI interaction: app testing, visual bug reproduction, form filling, calendar entry, screenshots, and demo recording. Also covers Cua setup; not OpenAI Codex Computer Use or web research.
jetson-validate-image
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.
atmos-validation
Validate Atmos projects, components, arbitrary JSON Schema inputs, EditorConfig, and GitHub Actions; use affected-file selection and native CI annotations.
skill-benchmark
Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.