CtrlK
BlogDocsLog inGet started
Tessl Logo

flink-udf

Build and deploy Apache Flink user-defined functions (UDFs) in Java for stream processing over Kafka. Use this skill when users want to create scalar UDFs, user-defined table functions (UDTFs), or process table functions (PTFs) in Java, deploy them to Confluent Cloud or local Docker environments, and invoke them from Flink SQL or the Table API. Trigger on: Flink UDF, custom Flink function, process table function, PTF, UDTF, Flink user defined, extend Flink SQL, stateful stream processing with Flink. Do NOT trigger for: Kafka Streams UDFs (use kafka-streams-programming skill), general Flink job development without custom functions, CDC streaming data piplines that include Flink (prefer the confluent-cloud-cdc-tableflow skill), Flink connector setup, or Kafka producer/consumer code.

77

Quality

97%

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

92%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 orchestration skill: lean routing body, strong approval-gated workflow, and clean one-level-deep progressive disclosure to real reference files. The only gap is that the body carries no executable code itself, relying on references for copy-paste content.

Suggestions

Include one minimal inline Java UDF skeleton or one representative `confluent flink artifact create` / `CREATE FUNCTION` snippet in the body so the common path is actionable without opening a reference file.

Add a brief post-deploy feedback loop in the workflow (e.g., if `CREATE FUNCTION` or the artifact upload fails, surface the error and re-run) to make the validation pattern bidirectional rather than only a pre-deploy approval gate.

Cross-link the dependencies-*.md files from the routing section so users following setup paths discover them without relying on the setup reference to mention them.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — it names function types, asks three routing questions, points to specific reference files, and lists a workflow with no padding or explanation of concepts Claude already knows, matching the level-5 anchor where every token earns its place.

5 / 5

Actionability

Routing is concrete (e.g. 'Read references/udf-udtf-java-confluent-cloud.md') and step 5 lists concrete approval-plan items, but the body itself contains no copy-paste code or commands — the executable content lives in references — so it sits at level 4 ('mostly executable guidance; minor gaps') rather than 5.

4 / 5

Workflow Clarity

A clear 9-step sequence with an explicit validation checkpoint at step 5 ('present the plan and wait for explicit approval... Do not proceed to steps 6–7 until the user confirms') plus a checklist of items to show, matching the level-5 anchor for explicit checkpoints and feedback loops on resource-modifying operations.

5 / 5

Progressive Disclosure

A clear overview body routes to well-signaled, one-level-deep reference files (e.g. references/ptf-java-confluent-cloud.md, references/local-docker-setup.md), all of which exist in the bundle, matching the level-5 anchor for clear overview with one-level-deep references and easy navigation.

5 / 5

Total

19

/

20

Passed

Description

100%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.

An exemplary description: third-person voice, concrete actions, comprehensive natural trigger terms, and explicit positive/negative trigger guidance that distinguishes it from adjacent skills. No changes needed.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Build and deploy Apache Flink user-defined functions (UDFs) in Java', 'create scalar UDFs, user-defined table functions (UDTFs), or process table functions (PTFs)', 'deploy them to Confluent Cloud or local Docker', 'invoke them from Flink SQL or the Table API' — with comprehensive coverage across function types, deploy targets, and invocation methods, matching the level-5 anchor.

5 / 5

Completeness

Explicitly answers both 'what' (build/deploy UDFs/UDTFs/PTFs in Java to Confluent Cloud or Docker, invoke via SQL/Table API) and 'when' ('Use this skill when users want to...' plus a concrete 'Trigger on:' list), matching the level-5 anchor for both what AND when with concrete triggers.

5 / 5

Trigger Term Quality

The 'Trigger on:' list — 'Flink UDF, custom Flink function, process table function, PTF, UDTF, Flink user defined, extend Flink SQL, stateful stream processing with Flink' — gives comprehensive natural-term coverage including synonyms and abbreviations a user would actually say.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Flink Java UDFs) with distinct triggers and an explicit 'Do NOT trigger for' exclusion list naming adjacent skills (kafka-streams-programming, confluent-cloud-cdc-tableflow), minimizing conflict risk per the level-5 anchor.

5 / 5

Total

20

/

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
confluentinc/agent-skills
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.