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 agentmods add skills/t1/tdder/javanpx skills add t1/tdder --skill javagit clone --depth 1 https://github.com/t1/tdderWhat 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 | $0.00036 | $0.02685 |
| Opus 5 | $0.00018 | $0.01342 |
| Sonnet 5 | $0.00007 | $0.00537 |
| Haiku 4.5 | $0.00004 | $0.00268 |
Grade A, and why
java 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 — 360 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Java & Kotlin Conventions
JVM language coding conventions complementing the TDD and Clean Code skills. We use modern language features to reduce boiler plate and get more to the point.
Java Version
When you need to know the latest Java version (e.g. for new projects, upgrades, or Dockerfiles), query the Adoptium API:
https://api.adoptium.net/v3/info/available_releases
Use most_recent_feature_release (latest GA) by default.
Use most_recent_lts only when explicitly asked for LTS.
Code Style
Logic Expressions
- Try to prevent negating expressions, e.g., instead of
a != b ? doX() : doY()usea == b ? doY() : doX().
Line Breaks
- Annotations can often go in the same line as the field or method they apply to.
- Java:
@Override void foo() {or@Test void should() { - Kotlin:
override fun foo() {or@Test fun should() {
- Java:
Local Type Inference
Java: Use var for local variable type inference where the type is clear from context.
var users = userRepository.findAll();
var count = items.size();
Kotlin: Type inference is the default. Prefer val (immutable) over var (mutable);
only use var when the variable must be reassigned.
val users = userRepository.findAll()
var count = items.size // only if count is later mutated
Static Imports (Java) / Imports (Kotlin)
Java: Prefer static imports when they do not reduce readability.
This includes constants like MediaType.APPLICATION_JSON.
The context is most often sufficient to understand what it is, e.g., @Produces(APPLICATION_JSON).
Exception: do not statically import List.of(...), Map.of(...), or the like,
as a method name like of doesn't say, what it does.
The number of usages of the import is not relevant!
import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON;
import static org.assertj.core.api.BDDAssertions.then;
import static org.mockito.BDDMockito.given;
Kotlin: There are no static imports. Import top-level functions and object/companion members directly.
The same readability rule applies — import short, context-sufficient names; avoid importing bare of.
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 · 360 lines · 36 tokens per session scan A 99af6db32809
java is a skill published in the GitHub repository t1/tdder (14 stars, last pushed yesterday), licensed Apache-2.0. It adds 36 tokens to every session and 2,685 once invoked, about $0.0002 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.
Other skills, from other repositories
flutter-quality
Flutter/Dartプロジェクトの品質チェック。dart analyze/dart format/flutter testを実行。「Flutterの品質チェック」「Flutter テスト」「Flutterのテスト実行」「Flutter lint」「Dart解析」「Flutterフォーマット」で起動。Do NOT use for 純粋なDartパッケージ(Flutterなし)。.
shared
跨 skill 复用的共享材料容器。收纳与具体平台/业务无关的通用工作方法(测试驱动开发、并行分发子 agent)和共享适配指南(Android 分区存储)。由其他 skill 按需引用,不单独作为任务入口。.
speckit-analyze
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
add-sample
Create a SamplesApp sample page with correct theming and attributes. Use when adding UI samples for controls.
mapping-to-snomed
Maps clinical concept spans extracted by OpenMed to SNOMED CT concepts through a USER-SUPPLIED terminology server (the user's own Ontoserver, Snowstorm, or UMLS/UTS), never a bundled vocabulary. Use when the user wants to code findings, disorders, procedures, body structures, or substances to SNOMED CT, run an ECL…
android-tombstone-symbolication
Symbolicate the .NET runtime frames in an Android tombstone file. Extracts BuildIds and PC offsets from the native backtrace, downloads debug symbols from the Microsoft symbol server, and runs llvm-symbolizer to produce function names with source file and line numbers. USE FOR triaging a .NET MAUI or Mono Android app…