[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACAM9ZQ72288QEA5V58MGP":3,"skill-same:01M6ACAM9ZQ72288QEA5V58MGP":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6ACAM9ZQ72288QEA5V58MGP","airflow-java-sdk",null,"Guide for contributing to the Airflow Java SDK (AIP-108). Use this skill whenever a contributor is working in the `java-sdk\u002F` directory or on the Java coordinator in `task-sdk\u002Fsrc\u002Fairflow\u002Fsdk\u002Fcoordinators\u002Fjava\u002F` — 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\", \"Airflow.Task\", \"BundleBuilder\", or anything about running JVM tasks in Airflow.","apache\u002Fairflow","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACADDFF6RHG1DBAJXFG7E5",47452,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-java-sdk\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"sdk","airflow","airflow java sdk","java","contributor","directory","aip","coordinator","add","annotation","jvm","bug","fix","write","src","processor","contributing","tasks","pr","prepare","architecture","write tests","2026-11-10 10:12:30",false,"---\nname: airflow-java-sdk\ndescription: >\n  Guide for contributing to the Airflow Java SDK (AIP-108). Use this skill\n  whenever a contributor is working in the `java-sdk\u002F` directory or on the Java\n  coordinator in `task-sdk\u002Fsrc\u002Fairflow\u002Fsdk\u002Fcoordinators\u002Fjava\u002F` — whether they\n  want to add a feature, write tests, fix a bug, understand the architecture, or\n  prepare a PR. Trigger on phrases like \"Java SDK\", \"JavaCoordinator\",\n  \"java-sdk\", \"annotation processor\", \"Airflow.Task\", \"BundleBuilder\", or\n  anything about running JVM tasks in Airflow.\n---\n\n\u003C!-- SPDX-License-Identifier: Apache-2.0\n     https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0 -->\n\n# Airflow Java SDK contributor guide\n\nThe Java SDK lets Airflow tasks execute JVM code (Java, Kotlin, or any JVM language). You are helping\na contributor work in one or both of these locations:\n\n- **`java-sdk\u002F`** — the JVM-side library (Kotlin source, published to Maven)\n- **`task-sdk\u002Fsrc\u002Fairflow\u002Fsdk\u002Fcoordinators\u002Fjava\u002F`** — the Python coordinator that launches the JVM subprocess\n\nRead these two documents early in every session — they contain the authoritative reference material:\n\n- `airflow-core\u002Fdocs\u002Fauthoring-and-scheduling\u002Flanguage-sdks\u002Fjava.rst` — user-facing guide:\n  Dag definition, stub TaskHandlers, XCom type mapping, Gradle\u002FMaven steps, coordinator config.\n- `java-sdk\u002FREADME.md` — user-facing landing page: installation, quick start, compatibility matrix.\n- `java-sdk\u002FDEVELOPMENT.md` — contributor guide: repository layout, detailed execution walkthrough,\n  Gradle + Breeze test commands, coding conventions, common tasks, and PR checklist.\n\n---\n\n## SDK package architecture\n\nThe JVM-side library is split into two packages with distinct visibility rules:\n\n- **`org.apache.airflow.sdk`** — public, user-facing API. Classes here (e.g. `Client`, `Bundle`,\n  `BundleBuilder`, `Server`) are stable contracts that DAG authors and task implementers import\n  directly. Changes to this package are breaking changes.\n- **`org.apache.airflow.sdk.execution`** — internal implementation detail. Everything in this\n  package (`CoordinatorComm`, `LogSender`, `Log`, `Client` in `execution\u002F`, generated schema\n  models, etc.) is not intended to be imported by users. It may change between releases without\n  notice.\n\nWhen reviewing or writing code, enforce this boundary: user task code and `BundleBuilder`\nsubclasses must only import from `org.apache.airflow.sdk`; any import of\n`org.apache.airflow.sdk.execution.*` in user-facing API surface is a red flag.\n\n---\n\n## Bundle composition and coordinator discovery\n\nA **bundle** is a directory of JAR files (typically `build\u002Fbundle\u002F`) placed in the Dag bundle named\nby the coordinator's `task_handler_bundle_name` (the task's own Dag bundle when unset). The\ncoordinator scans that Dag bundle at task-dispatch time to find:\n\n1. **`Main-Class`** (standard JAR manifest attribute) — the fully-qualified class name of the\n   entry point that the coordinator invokes with `java -classpath … \u003CMain-Class> --comm … --logs …`.\n   This must be a class with a `public static void main(String[] args)` method; the Gradle plugin\n   `org.apache.airflow.sdk` writes it automatically from `airflowBundle { mainClass = \"…\" }` and\n   validates that the class exists and has the right signature at build time.\n\n2. **`Airflow-Supervisor-Schema-Version`** (Airflow-specific manifest attribute) — the wire\n   protocol version the JVM side expects when talking to the Python supervisor. In fat-JAR mode\n   (the default), the Gradle plugin reads this value from the `airflow-sdk` JAR in\n   `runtimeClasspath` and copies it into the shadow JAR manifest. In thin-JAR mode (`fatJar =\n   false`), the value stays in the `airflow-sdk` JAR deployed alongside the bundle JAR.\n\nThe Python coordinator (`JavaCoordinator`) scans every JAR in that Dag bundle with\n`_JarInfo.find()`, reads `META-INF\u002FMANIFEST.MF` out of each ZIP, and collects `Main-Class` and\n`Airflow-Supervisor-Schema-Version` from whichever JARs carry them. The resolved schema version\nis then passed as the `schema_version` return value from `_build_execute_task_command`, which\nthe base `SubprocessCoordinator` uses to negotiate the supervisor wire protocol.\n\nIf `main_class` is set explicitly on the `JavaCoordinator` instance (via `[sdk] coordinators`\nkwargs), the scan uses it as a filter; otherwise the first JAR with a `Main-Class` attribute\nwins. Either way, `Airflow-Supervisor-Schema-Version` must be present in at least one JAR in\nthe Dag bundle or startup fails. Every JAR in the Dag bundle goes on one classpath.\n\n---\n\n## Key files to know\n\n| File | Purpose |\n|---|---|\n| `java-sdk\u002Fsdk\u002F...\u002FClient.kt` | Public API (Variables, Connections, XCom) |\n| `java-sdk\u002Fsdk\u002F...\u002Fexecution\u002FClient.kt` | Supervisor wire calls |\n| `java-sdk\u002Fsdk\u002F...\u002Fexecution\u002FComm.kt` | 4-byte-prefix MessagePack framing |\n| `java-sdk\u002Fsdk\u002F...\u002FServer.kt` | Entry-point; drives the execution loop |\n| `java-sdk\u002Fprocessor\u002F...\u002FAirflowProcessor.kt` | Kapt annotation processor |\n| `java-sdk\u002Fplugin\u002F...\u002FAirflowSdkPlugin.kt` | Gradle bundle plugin |\n| `task-sdk\u002F...\u002Fcoordinators\u002Fjava\u002Fcoordinator.py` | Python side — spawns the JVM |\n| `task-sdk\u002F...\u002Fschema\u002Fschema.json` | Wire protocol definition (both sides) |\n\n---\n\n## Running tests\n\nAlways use `.\u002Fgradlew` from inside `java-sdk\u002F`; never run Gradle via apt's `gradle`.\nSee `java-sdk\u002FDEVELOPMENT.md#testing` for the full list of Gradle commands.\n\nFor the Python coordinator, use Breeze (never `pytest` directly on the host):\n\n```bash\nbreeze testing task-sdk-tests -- task_sdk\u002Fcoordinators\u002Fjava\n```\n\nEnd-to-end test suite:\n\n```bash\nE2E_TEST_MODE=java_sdk uv run --project airflow-e2e-tests pytest \\\n    tests\u002Fairflow_e2e_tests\u002Fjava_sdk_tests\u002F -xvs\n```\n\n---\n\n## Updating the Python coordinator\n\n`coordinator.py` extends `SubprocessCoordinator`. The only method subclasses must implement is\n`_build_execute_task_command`, which returns `(argv, schema_version)`. Look at the existing\nimplementation for how the scanned Dag bundle, `java_executable`, `jvm_args`, and `main_class` are\nassembled into the command. Do not reach into the JVM process from Python beyond what this\nmethod provides.\n\n---\n\n## Upgrading Supervisor Schema client\n\nWhen upgrading to a newer Supervisor Schema version:\n\n- Regenerate models with `.\u002Fgradlew generateJsonSchema2Pojo`\n- Modify `execution\u002FClient.kt` to handle changes\n\nThe `java-sdk\u002FDEVELOPMENT.md#contributing` section walks through the full \"adding a new Client\nmethod\" sequence step by step.\n","\u003C!-- SPDX-License-Identifier: Apache-2.0\n     https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0 -->\n\n# Airflow Java SDK contributor guide\n\nThe Java SDK lets Airflow tasks execute JVM code (Java, Kotlin, or any JVM language). You are helping\na contributor work in one or both of these locations:\n\n- **`java-sdk\u002F`** — the JVM-side library (Kotlin source, published to Maven)\n- **`task-sdk\u002Fsrc\u002Fairflow\u002Fsdk\u002Fcoordinators\u002Fjava\u002F`** — the Python coordinator that launches the JVM subprocess\n\nRead these two documents early in every session — they contain the authoritative reference material:\n\n- `airflow-core\u002Fdocs\u002Fauthoring-and-scheduling\u002Flanguage-sdks\u002Fjava.rst` — user-facing guide:\n  Dag definition, stub TaskHandlers, XCom type mapping, Gradle\u002FMaven steps, coordinator config.\n- `java-sdk\u002FREADME.md` — user-facing landing page: installation, quick start, compatibility matrix.\n- `java-sdk\u002FDEVELOPMENT.md` — contributor guide: repository layout, detailed execution walkthrough,\n  Gradle + Breeze test commands, coding conventions, common tasks, and PR checklist.\n\n---\n\n## SDK package architecture\n\nThe JVM-side library is split into two packages with distinct visibility rules:\n\n- **`org.apache.airflow.sdk`** — public, user-facing API. Classes here (e.g. `Client`, `Bundle`,\n  `BundleBuilder`, `Server`) are stable contracts that DAG authors and task implementers import\n  directly. Changes to this package are breaking changes.\n- **`org.apache.airflow.sdk.execution`** — internal implementation detail. Everything in this\n  package (`CoordinatorComm`, `LogSender`, `Log`, `Client` in `execution\u002F`, generated schema\n  models, etc.) is not intended to be imported by users. It may change between releases without\n  notice.\n\nWhen reviewing or writing code, enforce this boundary: user task code and `BundleBuilder`\nsubclasses must only import from `org.apache.airflow.sdk`; any import of\n`org.apache.airflow.sdk.execution.*` in user-facing API surface is a red flag.\n\n---\n\n## Bundle composition and coordinator discovery\n\nA **bundle** is a directory of JAR files (typically `build\u002Fbundle\u002F`) placed in the Dag bundle named\nby the coordinator's `task_handler_bundle_name` (the task's own Dag bundle when unset). The\ncoordinator scans that Dag bundle at task-dispatch time to find:\n\n1. **`Main-Class`** (standard JAR manifest attribute) — the fully-qualified class name of the\n   entry point that the coordinator invokes with `java -classpath … \u003CMain-Class> --comm … --logs …`.\n   This must be a class with a `public static void main(String[] args)` method; the Gradle plugin\n   `org.apache.airflow.sdk` writes it automatically from `airflowBundle { mainClass = \"…\" }` and\n   validates that the class exists and has the right signature at build time.\n\n2. **`Airflow-Supervisor-Schema-Version`** (Airflow-specific manifest attribute) — the wire\n   protocol version the JVM side expects when talking to the Python supervisor. In fat-JAR mode\n   (the default), the Gradle plugin reads this value from the `airflow-sdk` JAR in\n   `runtimeClasspath` and copies it into the shadow JAR manifest. In thin-JAR mode (`fatJar =\n   false`), the value stays in the `airflow-sdk` JAR deployed alongside the bundle JAR.\n\nThe Python coordinator (`JavaCoordinator`) scans every JAR in that Dag bundle with\n`_JarInfo.find()`, reads `META-INF\u002FMANIFEST.MF` out of each ZIP, and collects `Main-Class` and\n`Airflow-Supervisor-Schema-Version` from whichever JARs carry them. The resolved schema version\nis then passed as the `schema_version` return value from `_build_execute_task_command`, which\nthe base `SubprocessCoordinator` uses to negotiate the supervisor wire protocol.\n\nIf `main_class` is set explicitly on the `JavaCoordinator` instance (via `[sdk] coordinators`\nkwargs), the scan uses it as a filter; otherwise the first JAR with a `Main-Class` attribute\nwins. Either way, `Airflow-Supervisor-Schema-Version` must be present in at least one JAR in\nthe Dag bundle or startup fails. Every JAR in the Dag bundle goes on one classpath.\n\n---\n\n## Key files to know\n\n| File | Purpose |\n|---|---|\n| `java-sdk\u002Fsdk\u002F...\u002FClient.kt` | Public API (Variables, Connections, XCom) |\n| `java-sdk\u002Fsdk\u002F...\u002Fexecution\u002FClient.kt` | Supervisor wire calls |\n| `java-sdk\u002Fsdk\u002F...\u002Fexecution\u002FComm.kt` | 4-byte-prefix MessagePack framing |\n| `java-sdk\u002Fsdk\u002F...\u002FServer.kt` | Entry-point; drives the execution loop |\n| `java-sdk\u002Fprocessor\u002F...\u002FAirflowProcessor.kt` | Kapt annotation processor |\n| `java-sdk\u002Fplugin\u002F...\u002FAirflowSdkPlugin.kt` | Gradle bundle plugin |\n| `task-sdk\u002F...\u002Fcoordinators\u002Fjava\u002Fcoordinator.py` | Python side — spawns the JVM |\n| `task-sdk\u002F...\u002Fschema\u002Fschema.json` | Wire protocol definition (both sides) |\n\n---\n\n## Running tests\n\nAlways use `.\u002Fgradlew` from inside `java-sdk\u002F`; never run Gradle via apt's `gradle`.\nSee `java-sdk\u002FDEVELOPMENT.md#testing` for the full list of Gradle commands.\n\nFor the Python coordinator, use Breeze (never `pytest` directly on the host):\n\n```bash\nbreeze testing task-sdk-tests -- task_sdk\u002Fcoordinators\u002Fjava\n```\n\nEnd-to-end test suite:\n\n```bash\nE2E_TEST_MODE=java_sdk uv run --project airflow-e2e-tests pytest \\\n    tests\u002Fairflow_e2e_tests\u002Fjava_sdk_tests\u002F -xvs\n```\n\n---\n\n## Updating the Python coordinator\n\n`coordinator.py` extends `SubprocessCoordinator`. The only method subclasses must implement is\n`_build_execute_task_command`, which returns `(argv, schema_version)`. Look at the existing\nimplementation for how the scanned Dag bundle, `java_executable`, `jvm_args`, and `main_class` are\nassembled into the command. Do not reach into the JVM process from Python beyond what this\nmethod provides.\n\n---\n\n## Upgrading Supervisor Schema client\n\nWhen upgrading to a newer Supervisor Schema version:\n\n- Regenerate models with `.\u002Fgradlew generateJsonSchema2Pojo`\n- Modify `execution\u002FClient.kt` to handle changes\n\nThe `java-sdk\u002FDEVELOPMENT.md#contributing` section walks through the full \"adding a new Client\nmethod\" sequence step by step.\n",{"name":5,"description":7},"main","f7e28eec7309f5700ca69ec226df41a5c58d5213",".agents\u002Fskills\u002Fairflow-java-sdk",18346,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow","https:\u002F\u002Fairflow.apache.org\u002F","https:\u002F\u002Fgithub.com\u002Fapache","https:\u002F\u002Fwww.apache.org\u002F","2026-11-12 03:21:46",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add apache\u002Fairflow --skill airflow-java-sdk",{"tool":61,"command":62},"bunx","bunx skills add apache\u002Fairflow --skill airflow-java-sdk",{"tool":64,"command":65},"pnpm","pnpm dlx skills add apache\u002Fairflow --skill airflow-java-sdk","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-java-sdk\u002FSKILL.md",true,[],[70,101,122,149,175,194],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":86,"publishedAt":41},"01M6ACBAC3S7GHPX3EB91CA2K5","sql-reporting","Conventions and review steps for writing analytics SQL against the warehouse. Use whenever the task involves querying tables, building a report, or aggregating metrics.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002Fproviders\u002Fcommon\u002Fai\u002Fsrc\u002Fairflow\u002Fproviders\u002Fcommon\u002Fai\u002Fexample_dags\u002Fskills\u002Fsql-reporting\u002FSKILL.md",[76,81],{"categoryNo":77,"categoryName":78,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[87,88,89,90,91,92,93,94,95,96,97,98,99,100],"sql reporting","sql","reporting","writing","review","report","analytics","metrics","tables","warehouse","for","use","task","conventions",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":41},"01M6ACB7P9C6TV0J1FGWW5HECF","aip-tracker","Track Airflow Improvement Proposal (AIP) implementation progress by comparing Confluence specs against codebase evidence. Use when asked to assess, report on, or compare AIP status.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002Fproviders\u002Fcommon\u002Fai\u002Fsrc\u002Fairflow\u002Fproviders\u002Fcommon\u002Fai\u002Fexample_dags\u002Fskills\u002Faip-tracker\u002FSKILL.md",[],[108,25,109,20,92,110,111,112,113,114,115,116,117,98,118,119,120,121],"aip tracker","tracker","status","proposal","when","track","progress","evidence","improvement","assess","compare","codebase","implementation","confluence",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":41},"01M6ACB55GGWPTWFKM3BVQS4W5","upgrade-fab-provider","Upgrade the pinned Flask-AppBuilder (FAB) dependency in the Apache Airflow FAB provider (`providers\u002Ffab\u002F`). Bumps the exact `flask-appbuilder==` pin and its mirror constant, regenerates `uv.lock`, drives the `test_fab_alignment.py` drift tripwire, reviews the vendored security-manager `override.py` against the new upstream FAB, and conditionally re-vendors static assets \u002F DB migrations. Use when asked to \"upgrade FAB\", \"bump flask-appbuilder\", or move the FAB provider to a newer Flask-AppBuilder release.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fupgrade-fab-provider\u002FSKILL.md",[],[129,130,131,132,20,9,133,134,135,136,137,138,139,140,141,142,143,144,112,145,146,147,148],"upgrade fab provider","upgrade","provider","test","apache airflow","release","security","alignment","reviews","db","bump","static","re","move","new","uv","drift","tripwire","lock","dependency",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":158,"publishedAt":41},"01M6ACB2TYRC6SB5TQ351K2Q7Q","prepare-providers-documentation","Replace the manual commit-by-commit classification step in `breeze release-management prepare-provider-documentation` with AI-driven classification. For each provider with pending changes, analyze every PR (batched into one sub-agent per provider, not one per PR), pay special attention to potentially breaking changes by inspecting the actual diff, scope multi-provider PRs to the current provider's slice, ask the release manager when uncertain, and apply version bumps + changelog entries. Use during the regular provider release cycle as an alternative to the interactive breeze prompts.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fprepare-providers-documentation\u002FSKILL.md",[155],{"categoryNo":156,"categoryName":157,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000023","Skill与智能体开发",[159,160,38,161,37,162,163,134,164,165,166,112,167,168,169,170,171,172,173,174],"documentation","prepare providers documentation","Providers","commit","changelog","scope","cycle","pay","ask","analyze","sub-agent","multi-provider","manager","as","attention","diff",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":41},"01M6ACAZ1M5SJQH1SHFFY7CXQF","airflow-translations","Add or update translations for the Apache Airflow UI. Guides through setting up locales, scaffolding translation files, translating with locale-specific guidelines, and validating results. Use when working with i18n tasks in airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002FSKILL.md",[],[20,182,183,184,36,9,133,185,186,187,188,189,190,191,33,192,27,112,193,97],"airflow translations","core","guidelines","update","translation","scaffolding","up","files","guides","i18n","ui","locale",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":41},"01M6ACAWMSPCZCQMCJ0WPVTFQ9","airflow-publish-changes","Prepare or carry out authorized publication of Apache Airflow changes, including remote checks, pre-push verification, PR creation, and tracking deferred work. Also use when planning these steps or managing contribution issues.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-publish-changes\u002FSKILL.md",[],[20,201,202,203,204,37,205,206,207,9,133,38,208,209,112,210,211,212,98,213,214],"airflow publish changes","publish","changes","push","planning","issues","verification","creation","remote","work","pr creation","Publication","contribution","tracking"]