Skip to content

[infra] Add a coding-agent development skill#918

Open
wenjin272 wants to merge 1 commit into
apache:mainfrom
wenjin272:dev-skill
Open

[infra] Add a coding-agent development skill#918
wenjin272 wants to merge 1 commit into
apache:mainfrom
wenjin272:dev-skill

Conversation

@wenjin272

@wenjin272 wenjin272 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Linked issue: #917

Purpose of change

Add a repository-managed, self-contained flink-agents-dev skill for coding agents that build Flink Agents applications.

The skill bundles the YAML schema and focused references for YAML, Python, Java, local development, and verification. It guides coding agents through version, API, language, Resource, and Python environment decisions before scaffolding a project, while leaving user-owned Actions, Tools, prompts, and runtime Skills as explicit implementation placeholders.

It also documents dependency-managed Maven and Python project setup, cross-language Resource usage, and local verification through RemoteExecutionEnvironment and a MiniCluster. Platform-specific interaction guidance is isolated in adapters for Codex, Claude Code, Gemini CLI, Qoder, and generic coding agents.

Tests

  • python3 /Users/jhin/.codex/skills/.system/skill-creator/scripts/quick_validate.py dev/agent-skills/flink-agents-dev
  • cmp docs/yaml-schema.json dev/agent-skills/flink-agents-dev/assets/yaml-schema.json
  • git diff --check upstream/main...HEAD
  • ./tools/check-license.sh

No Java or Python runtime tests were run because this change adds a coding-agent instruction bundle and repository metadata without changing executable project code.

API

This change does not touch public Flink Agents APIs.

Documentation

  • doc-needed
  • doc-not-needed
  • doc-included

@github-actions github-actions Bot added doc-included Your PR already contains the necessary documentation updates. fixVersion/0.4.0 priority/major Default priority of the PR or issue. labels Jul 17, 2026
@wenjin272
wenjin272 marked this pull request as ready for review July 17, 2026 16:51
@wenjin272 wenjin272 added doc-not-needed Your PR changes do not impact docs and removed doc-included Your PR already contains the necessary documentation updates. labels Jul 17, 2026
@github-actions github-actions Bot added doc-not-needed Your PR changes do not impact docs and removed doc-not-needed Your PR changes do not impact docs labels Jul 17, 2026

@weiqingy weiqingy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together @wenjin272. Only one question inline.

runtime separately. When the design first requires Python, inspect available
interpreters and environments and keep only versions compatible with the already
selected Flink pair; do not assume Python 3.12. In this snapshot, Python 3.12
requires Flink Agents `0.3+` and Flink `2.1+`; older combinations require Python

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version table just above (lines 44–47) mirrors tools/install.sh, which makes it lovely and easy for a coding agent to confirm. This 3.12 → Flink Agents 0.3+ / Flink 2.1+ pairing is the one concrete version constraint here I couldn't trace back to an in-tree source — pyproject.toml pins requires-python = ">=3.10,<3.13" but doesn't seem to gate 3.12 on those component versions. Is it coming from the per-release wheel matrix? If so, might it be worth either pointing a coding agent at where it can confirm this, or leaning on the same escape hatch the snapshot note at 73–76 already uses ("use a target-version installer, release metadata, or compatibility matrix ... because it overrides this bundled snapshot")? You'd know the release matrix far better than I can reconstruct from the tree — mostly curious whether there's a source a coding agent could check.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this is a good point. I checked this again, and the constraint is encoded in the installer rather than in a standalone compatibility matrix.

tools/install.sh::python_minor_ceiling() derives the effective Python ceiling from both selected versions: Flink Agents 0.1.x/0.2.x require Python <3.12, while Flink <2.1 also requires Python <3.12. Therefore, Python 3.12 is accepted only with Flink Agents 0.3+ and Flink 2.1+. The concrete accepted and rejected combinations are covered by tools/test/unit/validate_python_bin.bats, and the same constraint is documented in docs/content/docs/get-started/installation.md.

python/pyproject.toml only describes the current Flink Agents wheel's own Python range, so it does not capture the cross-version constraint with Flink.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc-not-needed Your PR changes do not impact docs fixVersion/0.4.0 priority/major Default priority of the PR or issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants