CtrlK
BlogDocsLog inGet started
Tessl Logo

airflow-java-sdk

Guide for contributing to the Airflow Java SDK (AIP-108). Use this skill whenever a contributor is working in the `java-sdk/` directory or on the Java coordinator in `task-sdk/src/airflow/sdk/coordinators/java/` — whether they want to add a feature, write tests, fix a bug, understand the architecture, or prepare a PR. Trigger on phrases like "Java SDK", "JavaCoordinator", "java-sdk", "annotation processor", "Builder.Task", "BundleBuilder", or anything about running JVM tasks in Airflow.

67

Quality

84%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

68%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured contributor guide that front-loads the authoritative repo documents, enforces a package-visibility boundary, and provides exact Breeze/E2E/Gradle commands. Its main gaps are the absence of validation checkpoints inside the multi-step workflows (upgrade and coordinator changes are not tied back to running tests) and some inline architectural depth that a reference file could absorb.

Suggestions

Append a validation step to the schema-upgrade and coordinator-change workflows (e.g. "then run `breeze testing task-sdk-tests -- task_sdk/coordinators/java` to verify").

Move the fat-JAR/thin-JAR manifest and scan mechanics into a reference file (or the already-referenced README) and keep only the Main-Class / schema-version essentials in SKILL.md.

In the 'Running tests' section, state which test suite verifies which change type (Gradle vs Breeze vs E2E) so a contributor knows which command to run after an edit.

DimensionReasoningScore

Conciseness

The body is dense with project-specific facts Claude cannot know (manifest attributes, wire-protocol negotiation, package visibility rules, exact test commands) with almost no general-concept padding. Not 5: the bundle-composition section spends several sentences on fat-JAR vs thin-JAR mechanics and the manifest-scan flow that could be tightened; not 3 because there are no unnecessary explanations of things Claude already knows.

4 / 5

Actionability

Gives copy-paste-ready commands — `breeze testing task-sdk-tests -- task_sdk/coordinators/java`, the E2E `uv run ... pytest` invocation, `./gradlew generateJsonSchema2Pojo` — plus the hard rule "Always use `./gradlew` from inside `java-sdk/`; never run Gradle via apt's `gradle". Not 5: the architecture and coordinator sections are descriptive guidance rather than executable steps, and the full Gradle command list is deferred to the README; not 3 because the commands that are present are concrete and complete.

4 / 5

Workflow Clarity

Tasks are grouped into clear sections (tests, coordinator update, schema upgrade), but workflows lack validation checkpoints: the upgrade section is just "Regenerate models with `./gradlew generateJsonSchema2Pojo`" → "Modify `execution/Client.kt` to handle changes" with no step telling the contributor to run the coordinator or E2E tests afterward, and the test commands sit in a separate section without being wired into the workflows. Not 4: checkpoints are not merely minor gaps, they are absent from the sequences; not 2 because the sections do give a coherent rough order and specific commands.

3 / 5

Progressive Disclosure

No skill bundle files exist, and the body correctly defers bulk detail to two well-signaled one-level-deep repo documents ("Read these two documents early in every session": `airflow-core/docs/.../java.rst` and `java-sdk/README.md`) with section anchors like `java-sdk/README.md#testing` and `#contributing`, plus a key-files table for navigation. Not 5: the ~30-line bundle-composition/manifest-scan walkthrough is inline detail that arguably belongs in a reference file or the README; not 3 because the structure is well organized and every reference is explicitly signposted.

4 / 5

Total

15

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: it states the purpose in third person, defines an explicit 'when' clause tied to concrete directories, lists the concrete contributing tasks it covers, and finishes with natural trigger phrases. The only weakness is that a couple of natural synonyms (Kotlin, Gradle, 'Java coordinator') a contributor might use are absent from the trigger list.

Suggestions

Add 'Kotlin' and 'Gradle' to the trigger phrases, since the JVM-side library is Kotlin and contributors often refer to the Gradle bundle plugin.

Include the phrase 'Java coordinator' alongside the class name 'JavaCoordinator' to catch users who say the role informally rather than by identifier.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions — "add a feature, write tests, fix a bug, understand the architecture, or prepare a PR" — which comprehensively covers the contributing workflow, and it names the concrete artifact ("contributing to the Airflow Java SDK (AIP-108)"). Not 4: coverage of actions is comprehensive rather than having minor gaps; not below since no vague filler is present.

5 / 5

Completeness

Explicitly answers both: what ("Guide for contributing to the Airflow Java SDK (AIP-108)") and when ("Use this skill whenever a contributor is working in the `java-sdk/` directory or on the Java coordinator in `task-sdk/...`") followed by concrete trigger phrases. Matches the anchor-5 example pattern of 'what' + 'Use when...' with concrete triggers, so neither 4 nor below fits.

5 / 5

Trigger Term Quality

Trigger phrases are natural and specific — "Java SDK", "JavaCoordinator", "java-sdk", "annotation processor", "Builder.Task", "BundleBuilder", "running JVM tasks in Airflow" — plus directory paths. Not 5: a few natural terms a contributor would plausibly say are missing (e.g. "Kotlin", "Gradle", "Java coordinator"); not 3 because coverage goes well beyond a single generic keyword with good synonym/identifier variation.

4 / 5

Distinctiveness Conflict Risk

A clear niche (Airflow's Java SDK contribution) with highly specific triggers (JavaCoordinator, BundleBuilder, AIP-108) that no generic skill would claim; overlap risk with other skills is minimal. Score 5 anchor fits; not 4 because the domain and class-name triggers make wrong-skill triggering very unlikely.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
apache/airflow
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.