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 nWave-ai/nWave --skill nw-pbt-jvmgit clone --depth 1 https://github.com/nWave-ai/nWaveWrote 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/nwave-ai/nwave/nw-pbt-jvm)<a href="https://agentmods.dev/skills/nwave-ai/nwave/nw-pbt-jvm"><img src="https://agentmods.dev/badge/skills/nwave-ai/nwave/nw-pbt-jvm/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/nwave-ai/nwave/nw-pbt-jvm"><img src="https://agentmods.dev/badge/skills/nwave-ai/nwave/nw-pbt-jvm.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.00023 | $0.01515 |
| Opus 5.5 | $0.00009 | $0.00606 |
| Sonnet 5.5 | $0.00005 | $0.00303 |
| Haiku 4.5 | $0.00002 | $0.00152 |
Grade A, and why
nw-pbt-jvm 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 yesterday.
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 — 191 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PBT JVM -- jqwik (Java/Kotlin) + ScalaCheck + ZIO Test
Framework Selection
| Framework | Language | Shrinking | Stateful | Choose When |
|---|---|---|---|---|
| jqwik | Java/Kotlin | Integrated | Yes (actions) | Java/Kotlin projects (recommended default) |
| ScalaCheck | Scala | Type-based | Yes (Commands) | Scala projects (established choice) |
| ZIO Test | Scala | Integrated | Via effects | ZIO-based Scala projects |
Quick Start (jqwik)
import net.jqwik.api.*;
class SortProperties {
@Property
void sortPreservesLength(@ForAll List<Integer> list) {
List<Integer> sorted = new ArrayList<>(list);
Collections.sort(sorted);
Assertions.assertEquals(list.size(), sorted.size());
}
}
// Run: ./gradlew test (or mvn test)
Generator (Arbitrary) Cheat Sheet (jqwik)
@ForAll int x // any int
@ForAll @IntRange(min = 0, max = 99) int x
@ForAll @StringLength(min = 1, max = 50) String s
@ForAll @Size(min = 1, max = 10) List<Integer> list
// Custom provider
@Provide
Arbitrary<String> emails() {
return Arbitraries.strings().alpha().ofMinLength(1).ofMaxLength(10)
.map(name -> name + "@example.com");
}
// Combinators
Arbitraries.integers().between(0, 100)
Arbitraries.of("a", "b", "c")
Arbitraries.frequencyOf(Tuple.of(80, Arbitraries.integers()), Tuple.of(20, Arbitraries.just(0)))
// Combine
Combinators.combine(
Arbitraries.strings().alpha().ofMinLength(1),
Arbitraries.integers().between(1, 120)
).as((name, age) -> new User(name, age))
// Recursive
Arbitraries.recursive(
() -> Arbitraries.of(JsonValue.NULL, JsonValue.TRUE),
inner -> Arbitraries.maps(Arbitraries.strings(), inner).map(JsonValue::fromMap),
5
)
Stateful Testing (jqwik)
@Property
void storeMatchesModel(@ForAll("storeActions") ActionSequence<MyStore> actions) {
actions.run(new MyStore());
}
@Provide
ActionSequenceArbitrary<MyStore> storeActions() {
return Arbitraries.sequences(
Arbitraries.oneOf(
Combinators.combine(Arbitraries.strings(), Arbitraries.integers())
.as(PutAction::new),
Arbitraries.strings().map(GetAction::new)
)
);
}
class PutAction implements Action<MyStore> {
final String key; final int value;
PutAction(String key, int value) { this.key = key; this.value = value; }
@Override public MyStore run(MyStore store) { store.put(key, value); return store; }
}
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.
- yesterday First seen · 191 lines · 23 tokens per session scan A 3caef8193970
nw-pbt-jvm is a skill published in the GitHub repository nWave-ai/nWave (631 stars, last pushed today), licensed MIT. It adds 23 tokens to every session and 1,515 once invoked, about $0.0001 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-11-03.
Other skills, from other repositories
workflow-patterns
Use this skill when implementing tasks according to Conductor's TDD workflow, handling phase checkpoints, managing git commits for tasks, or understanding the verification protocol.
engineering-workflow
A Chinese-language workflow for reliable software development. It describes exploring the problem, making a plan, using TDD (test-driven development, where tests are written before the code), debugging methodically, reviewing code, and verifying the result.
tdd
Use only when the user explicitly asks for TDD, a failing test, or a regression test, OR when the bug has an obvious cheap local test target. Skip when the test path is unclear, expensive, integration-heavy, or not requested.
strict-tdd
Strict RED->GREEN->REFACTOR test-driven development with enforcement. Never write production code before a failing test. Atomic commits per TDD cycle.
test-driven-development
Strict RED-GREEN-REFACTOR cycle enforcement. Tests are never skipped or deferred. Run mode only, never watch mode. Exit code evidence mandatory.
tdd-enforcement
Red-Green-Refactor TDD methodology with mandatory failing tests, minimal implementation, quality refactoring, and 80% coverage gating.