[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BTHF5G2K3Q990PFD7BEMZ9":3,"skill-same:01M6BTHF5G2K3Q990PFD7BEMZ9":144},{"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":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6BTHF5G2K3Q990PFD7BEMZ9","pr-review",null,"Review a GitHub pull request, examining the summary, linked resources, and diff","ahmedelgabri\u002Fdotfiles","ahmedelgabri","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F63876?v=4","01M6BTGT61KWRDXN595X7Q8ZRY","Ahmed El Gabri","01M6BTGTAFSBR3A7ZFXK5QDHVZ",291,"Unlicense","https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fagents\u002Fskills\u002Fpr-review\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"review","pr review","pr","github","pull request","pull","Bash","grep","read","webfetch","diff","summary","resources","URL","number","request","2026-11-10 10:12:30",false,"---\nname: airflow-translations\ndescription: >\n  Add or update translations for the Apache Airflow UI.\n  Guides through setting up locales, scaffolding translation files, translating\n  with locale-specific guidelines, and validating results. Use when working with\n  i18n tasks in airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F.\nlicense: Apache-2.0\n---\n\u003C!-- SPDX-License-Identifier: Apache-2.0\n     https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0 -->\n\n# Airflow Translations\n\n## Determining the Task\n\nTranslation work falls into one of two categories depending on whether the\ntarget locale already exists. Check if a directory for the locale exists under\n`airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F`. If it does, skip\nahead to **Updating an Existing Translation**. If not, start with **Adding a Translation** below.\n\n---\n\n## Adding a Translation\n\nWhen adding a translation, some configuration files need to be updated before translation work can begin.\n\n### Setting up the locale\n\nFirst, create the locale directory:\n\n```\nmkdir -p airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F\n```\n\nThen update the following configuration files, keeping the existing alphabetical\nordering in each file:\n\n**`airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fsrc\u002Fi18n\u002Fconfig.ts`**: add the locale to the\n`supportedLanguages` array:\n\n```ts\n{ code: \"\u003Clocale>\", name: \"\u003Cnative name>\" },\n```\n\n**`dev\u002Fbreeze\u002Fsrc\u002Fairflow_breeze\u002Fcommands\u002Fui_commands.py`**: add the plural\nsuffixes for the language to the `PLURAL_SUFFIXES` dict. Check the i18next\nplural rules for the language at \u003Chttps:\u002F\u002Fjsfiddle.net\u002F6bpxsgd4> to determine\nwhich suffixes are needed:\n\n```\n\"\u003Clocale>\": [\"\u003Csuffixes>\"],\n```\n\n**`.github\u002Fboring-cyborg.yml`**: under `labelPRBasedOnFilePath`, add:\n\n```yaml\ntranslation:\u003Clocale>:\n  - airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F*\n```\n\n### Scaffolding the translation files\n\nOnce the configuration is in place, run the breeze command to copy every\nEnglish namespace file into the new locale directory. This populates each key\nwith a `TODO: translate:` stub:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale> --add-missing\n```\n\nThe generated files will look like this:\n\n```json\n{\n  \"allRuns\": \"TODO: translate: All Runs\",\n  \"blockingDeps\": {\n    \"dependency\": \"TODO: translate: Dependency\",\n    \"reason\": \"TODO: translate: Reason\"\n  }\n}\n```\n\n### Translating\n\nWith the scaffolded files in place, read the locale-specific guideline for the\ntarget language (see the table under **Locale-Specific Guidelines** below). If\none exists, it contains the glossary, tone rules, and formatting conventions\nthat must be followed. If no locale-specific guideline exists yet, follow the\ntranslation rules described later in this document.\n\nReplace every `TODO: translate: \u003CEnglish terminology>` entry, including the prefix,\nwith the translated string.\n\nAfter all entries are translated, continue to **Validation** below.\n\n---\n\n## Updating an Existing Translation\n\nWhen a locale already exists and you need to fill translation gaps, revise\nexisting translations, or remove stale keys, start by reading the\nlocale-specific guideline for the language (see the table under\n**Locale-Specific Guidelines** below). This establishes the glossary and\nformatting rules to follow.\n\nNext, read the locale's existing JSON files under\n`airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F` to learn the\nterminology already in use. Consistency with established translations is\ncritical. If a term has been translated a certain way, reuse that exact\ntranslation.\n\nThen check the current state of completeness:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale>\n```\n\nIf there are **missing** keys, scaffold them with `TODO: translate:` stubs:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale> --add-missing\n```\n\nIf there are **unused** keys — keys that are not required, meaning they are\nabsent from the English locale or are plural suffixes this language does not\nneed — remove them:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale> --remove-unused\n```\n\nNow translate the `TODO: translate:` entries following the locale-specific\nguideline, then continue to **Validation** below.\n\n---\n\n## Validation\n\nAfter completing translations, run these checks:\n\nCheck completeness. The output table should show 0 missing, 0 TODOs, 0 unused,\nand 100% coverage:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale>\n```\n\nRun pre-commit hooks to fix formatting, licenses, and linting issues:\n\n```bash\nprek run --from-ref main --hook-stage pre-commit\n```\n\n---\n\n## General Translation Rules\n\nThe following rules apply globally. If the locale-specific guideline for a\nlanguage states differently, follow the locale-specific guideline.\n\n### Terms Kept in English\n\nThe terms below should remain in English by default. Locale-specific guidelines\nmay override individual entries where an established local convention exists:\n\n| Term                     | Reason                                       |\n| ------------------------ | -------------------------------------------- |\n| `Airflow`                | Product name                                 |\n| `Dag` \u002F `Dags`           | Airflow convention; always `Dag`, never `DAG`|\n| `XCom` \u002F `XComs`         | Airflow cross-communication mechanism name   |\n| `Provider` \u002F `Providers` | Airflow extension package name               |\n| `REST API`               | Standard technical term                      |\n| `JSON`                   | Standard technical format name               |\n| `ID`                     | Universal abbreviation                       |\n| `PID`                    | Unix process identifier                      |\n| `UTC`                    | Time standard                                |\n| `Schema`                 | Database term                                |\n\n### Variables and Placeholders\n\nTranslation strings use `{{variable}}` interpolation (i18next format).\nNever translate or remove variable names inside `{{…}}`. Placeholders may be\nreordered as needed for natural word order, but the exact variable casing must\nbe preserved (e.g., `{{dagDisplayName}}`).\n\nCounters use the i18next `number` formatter so they get the locale's digit\ngrouping (e.g., `{{count, number}}`, `{{total, number}}`). Keep the `, number`\nsuffix exactly as it appears in the English string.\n\n### Plural Forms\n\nAirflow uses i18next plural suffixes (`_one`, `_other`, and optionally `_zero`,\n`_two`, `_few`, `_many`). Provide translations for all plural suffixes that the\nlanguage requires — the locale-specific guideline specifies which ones. If no\nlocale guideline exists, check the i18next plural rules at\n\u003Chttps:\u002F\u002Fjsfiddle.net\u002F6bpxsgd4> and provide at minimum `_one` and `_other`.\n\n### Hotkeys\n\nHotkey values (e.g., `\"hotkey\": \"e\"`) are literal key bindings and should\n**not** be translated unless the locale-specific guideline says otherwise.\n\n---\n\n## Translation File Structure\n\nAll translation files are JSON files located at:\n\n```\nairflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale-name>\u002F\n```\n\nEach locale directory contains namespace JSON files that mirror the English\nlocale (`en\u002F`). The English locale is the **default locale** and the primary\nsource for all translations. The current namespace files are:\n\n\u003C!-- START namespace-files, please keep comment here to allow auto update -->\n`admin.json`, `assets.json`, `browse.json`, `common.json`, `components.json`, `dag.json`, `dags.json`, `dashboard.json`, `hitl.json`, `tasks.json`\n\u003C!-- END namespace-files, please keep comment here to allow auto update -->\n\n---\n\n## Locale-Specific Guidelines\n\nBefore translating, read the locale-specific guideline file for the target\nlanguage. These contain glossaries, tone rules, and formatting conventions\ntailored to each language. If a locale-specific guideline states differently\nfrom a global rule in this document, follow the locale-specific guideline.\n\n| Locale Code | Language                | Guideline File                  |\n| ----------- | ----------------------- | ------------------------------- |\n| `ar`        | Arabic                  | [locales\u002Far.md](locales\u002Far.md)  |\n| `ca`        | Catalan                 | [locales\u002Fca.md](locales\u002Fca.md)  |\n| `de`        | German                  | [locales\u002Fde.md](locales\u002Fde.md)  |\n| `el`        | Greek                   | [locales\u002Fel.md](locales\u002Fel.md)  |\n| `es`        | Spanish                 | [locales\u002Fes.md](locales\u002Fes.md)  |\n| `fr`        | French                  | [locales\u002Ffr.md](locales\u002Ffr.md)  |\n| `he`        | Hebrew                  | [locales\u002Fhe.md](locales\u002Fhe.md)  |\n| `hi`        | Hindi                   | [locales\u002Fhi.md](locales\u002Fhi.md)  |\n| `hu`        | Hungarian               | [locales\u002Fhu.md](locales\u002Fhu.md)  |\n| `it`        | Italian                 | [locales\u002Fit.md](locales\u002Fit.md)  |\n| `ja`        | Japanese                | [locales\u002Fja.md](locales\u002Fja.md)  |\n| `ko`        | Korean                  | [locales\u002Fko.md](locales\u002Fko.md)  |\n| `nl`        | Dutch                   | [locales\u002Fnl.md](locales\u002Fnl.md)  |\n| `pl`        | Polish                  | [locales\u002Fpl.md](locales\u002Fpl.md)  |\n| `pt`        | Portuguese              | [locales\u002Fpt.md](locales\u002Fpt.md)  |\n| `th`        | Thai                    | [locales\u002Fth.md](locales\u002Fth.md)  |\n| `tr`        | Turkish                 | [locales\u002Ftr.md](locales\u002Ftr.md)  |\n| `zh-CN`     | Simplified Chinese      | [locales\u002Fzh-CN.md](locales\u002Fzh-CN.md) |\n| `zh-TW`     | Traditional Chinese     | [locales\u002Fzh-TW.md](locales\u002Fzh-TW.md) |\n\nIf the target locale file does not yet exist, follow only the global rules in\nthis document.\n","\u003C!-- SPDX-License-Identifier: Apache-2.0\n     https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0 -->\n\n# Airflow Translations\n\n## Determining the Task\n\nTranslation work falls into one of two categories depending on whether the\ntarget locale already exists. Check if a directory for the locale exists under\n`airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F`. If it does, skip\nahead to **Updating an Existing Translation**. If not, start with **Adding a Translation** below.\n\n---\n\n## Adding a Translation\n\nWhen adding a translation, some configuration files need to be updated before translation work can begin.\n\n### Setting up the locale\n\nFirst, create the locale directory:\n\n```\nmkdir -p airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F\n```\n\nThen update the following configuration files, keeping the existing alphabetical\nordering in each file:\n\n**`airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fsrc\u002Fi18n\u002Fconfig.ts`**: add the locale to the\n`supportedLanguages` array:\n\n```ts\n{ code: \"\u003Clocale>\", name: \"\u003Cnative name>\" },\n```\n\n**`dev\u002Fbreeze\u002Fsrc\u002Fairflow_breeze\u002Fcommands\u002Fui_commands.py`**: add the plural\nsuffixes for the language to the `PLURAL_SUFFIXES` dict. Check the i18next\nplural rules for the language at \u003Chttps:\u002F\u002Fjsfiddle.net\u002F6bpxsgd4> to determine\nwhich suffixes are needed:\n\n```\n\"\u003Clocale>\": [\"\u003Csuffixes>\"],\n```\n\n**`.github\u002Fboring-cyborg.yml`**: under `labelPRBasedOnFilePath`, add:\n\n```yaml\ntranslation:\u003Clocale>:\n  - airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F*\n```\n\n### Scaffolding the translation files\n\nOnce the configuration is in place, run the breeze command to copy every\nEnglish namespace file into the new locale directory. This populates each key\nwith a `TODO: translate:` stub:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale> --add-missing\n```\n\nThe generated files will look like this:\n\n```json\n{\n  \"allRuns\": \"TODO: translate: All Runs\",\n  \"blockingDeps\": {\n    \"dependency\": \"TODO: translate: Dependency\",\n    \"reason\": \"TODO: translate: Reason\"\n  }\n}\n```\n\n### Translating\n\nWith the scaffolded files in place, read the locale-specific guideline for the\ntarget language (see the table under **Locale-Specific Guidelines** below). If\none exists, it contains the glossary, tone rules, and formatting conventions\nthat must be followed. If no locale-specific guideline exists yet, follow the\ntranslation rules described later in this document.\n\nReplace every `TODO: translate: \u003CEnglish terminology>` entry, including the prefix,\nwith the translated string.\n\nAfter all entries are translated, continue to **Validation** below.\n\n---\n\n## Updating an Existing Translation\n\nWhen a locale already exists and you need to fill translation gaps, revise\nexisting translations, or remove stale keys, start by reading the\nlocale-specific guideline for the language (see the table under\n**Locale-Specific Guidelines** below). This establishes the glossary and\nformatting rules to follow.\n\nNext, read the locale's existing JSON files under\n`airflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale>\u002F` to learn the\nterminology already in use. Consistency with established translations is\ncritical. If a term has been translated a certain way, reuse that exact\ntranslation.\n\nThen check the current state of completeness:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale>\n```\n\nIf there are **missing** keys, scaffold them with `TODO: translate:` stubs:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale> --add-missing\n```\n\nIf there are **unused** keys — keys that are not required, meaning they are\nabsent from the English locale or are plural suffixes this language does not\nneed — remove them:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale> --remove-unused\n```\n\nNow translate the `TODO: translate:` entries following the locale-specific\nguideline, then continue to **Validation** below.\n\n---\n\n## Validation\n\nAfter completing translations, run these checks:\n\nCheck completeness. The output table should show 0 missing, 0 TODOs, 0 unused,\nand 100% coverage:\n\n```bash\nbreeze ui check-translation-completeness --language \u003Clocale>\n```\n\nRun pre-commit hooks to fix formatting, licenses, and linting issues:\n\n```bash\nprek run --from-ref main --hook-stage pre-commit\n```\n\n---\n\n## General Translation Rules\n\nThe following rules apply globally. If the locale-specific guideline for a\nlanguage states differently, follow the locale-specific guideline.\n\n### Terms Kept in English\n\nThe terms below should remain in English by default. Locale-specific guidelines\nmay override individual entries where an established local convention exists:\n\n| Term                     | Reason                                       |\n| ------------------------ | -------------------------------------------- |\n| `Airflow`                | Product name                                 |\n| `Dag` \u002F `Dags`           | Airflow convention; always `Dag`, never `DAG`|\n| `XCom` \u002F `XComs`         | Airflow cross-communication mechanism name   |\n| `Provider` \u002F `Providers` | Airflow extension package name               |\n| `REST API`               | Standard technical term                      |\n| `JSON`                   | Standard technical format name               |\n| `ID`                     | Universal abbreviation                       |\n| `PID`                    | Unix process identifier                      |\n| `UTC`                    | Time standard                                |\n| `Schema`                 | Database term                                |\n\n### Variables and Placeholders\n\nTranslation strings use `{{variable}}` interpolation (i18next format).\nNever translate or remove variable names inside `{{…}}`. Placeholders may be\nreordered as needed for natural word order, but the exact variable casing must\nbe preserved (e.g., `{{dagDisplayName}}`).\n\nCounters use the i18next `number` formatter so they get the locale's digit\ngrouping (e.g., `{{count, number}}`, `{{total, number}}`). Keep the `, number`\nsuffix exactly as it appears in the English string.\n\n### Plural Forms\n\nAirflow uses i18next plural suffixes (`_one`, `_other`, and optionally `_zero`,\n`_two`, `_few`, `_many`). Provide translations for all plural suffixes that the\nlanguage requires — the locale-specific guideline specifies which ones. If no\nlocale guideline exists, check the i18next plural rules at\n\u003Chttps:\u002F\u002Fjsfiddle.net\u002F6bpxsgd4> and provide at minimum `_one` and `_other`.\n\n### Hotkeys\n\nHotkey values (e.g., `\"hotkey\": \"e\"`) are literal key bindings and should\n**not** be translated unless the locale-specific guideline says otherwise.\n\n---\n\n## Translation File Structure\n\nAll translation files are JSON files located at:\n\n```\nairflow-core\u002Fsrc\u002Fairflow\u002Fui\u002Fpublic\u002Fi18n\u002Flocales\u002F\u003Clocale-name>\u002F\n```\n\nEach locale directory contains namespace JSON files that mirror the English\nlocale (`en\u002F`). The English locale is the **default locale** and the primary\nsource for all translations. The current namespace files are:\n\n\u003C!-- START namespace-files, please keep comment here to allow auto update -->\n`admin.json`, `assets.json`, `browse.json`, `common.json`, `components.json`, `dag.json`, `dags.json`, `dashboard.json`, `hitl.json`, `tasks.json`\n\u003C!-- END namespace-files, please keep comment here to allow auto update -->\n\n---\n\n## Locale-Specific Guidelines\n\nBefore translating, read the locale-specific guideline file for the target\nlanguage. These contain glossaries, tone rules, and formatting conventions\ntailored to each language. If a locale-specific guideline states differently\nfrom a global rule in this document, follow the locale-specific guideline.\n\n| Locale Code | Language                | Guideline File                  |\n| ----------- | ----------------------- | ------------------------------- |\n| `ar`        | Arabic                  | [locales\u002Far.md](locales\u002Far.md)  |\n| `ca`        | Catalan                 | [locales\u002Fca.md](locales\u002Fca.md)  |\n| `de`        | German                  | [locales\u002Fde.md](locales\u002Fde.md)  |\n| `el`        | Greek                   | [locales\u002Fel.md](locales\u002Fel.md)  |\n| `es`        | Spanish                 | [locales\u002Fes.md](locales\u002Fes.md)  |\n| `fr`        | French                  | [locales\u002Ffr.md](locales\u002Ffr.md)  |\n| `he`        | Hebrew                  | [locales\u002Fhe.md](locales\u002Fhe.md)  |\n| `hi`        | Hindi                   | [locales\u002Fhi.md](locales\u002Fhi.md)  |\n| `hu`        | Hungarian               | [locales\u002Fhu.md](locales\u002Fhu.md)  |\n| `it`        | Italian                 | [locales\u002Fit.md](locales\u002Fit.md)  |\n| `ja`        | Japanese                | [locales\u002Fja.md](locales\u002Fja.md)  |\n| `ko`        | Korean                  | [locales\u002Fko.md](locales\u002Fko.md)  |\n| `nl`        | Dutch                   | [locales\u002Fnl.md](locales\u002Fnl.md)  |\n| `pl`        | Polish                  | [locales\u002Fpl.md](locales\u002Fpl.md)  |\n| `pt`        | Portuguese              | [locales\u002Fpt.md](locales\u002Fpt.md)  |\n| `th`        | Thai                    | [locales\u002Fth.md](locales\u002Fth.md)  |\n| `tr`        | Turkish                 | [locales\u002Ftr.md](locales\u002Ftr.md)  |\n| `zh-CN`     | Simplified Chinese      | [locales\u002Fzh-CN.md](locales\u002Fzh-CN.md) |\n| `zh-TW`     | Traditional Chinese     | [locales\u002Fzh-TW.md](locales\u002Fzh-TW.md) |\n\nIf the target locale file does not yet exist, follow only the global rules in\nthis document.\n",{"name":40,"license":41,"description":42},"airflow-translations","Apache-2.0","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.\n","main","f7e28eec7309f5700ca69ec226df41a5c58d5213","config\u002Fagents\u002Fskills\u002Fpr-review",19,"https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles","https:\u002F\u002Fgithub.com\u002Fahmedelgabri","https:\u002F\u002Fgabri.me","…","2026-11-09 00:32:17",{"source":8,"skillName":40,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add ahmedelgabri\u002Fdotfiles --skill airflow-translations",{"tool":58,"command":59},"bunx","bunx skills add ahmedelgabri\u002Fdotfiles --skill airflow-translations",{"tool":61,"command":62},"pnpm","pnpm dlx skills add ahmedelgabri\u002Fdotfiles --skill airflow-translations","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fagents\u002Fskills\u002Fpr-review\u002FSKILL.md",true,[66,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"locales\u002Far.md","REFERENCE","参考文档",6637,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Far.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"locales\u002Fca.md",9039,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fca.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"locales\u002Fde.md",15049,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fde.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"locales\u002Fel.md",12053,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fel.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"locales\u002Fes.md",11845,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fes.md",{"path":89,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":90,"sourceHtmlUrl":91},"locales\u002Ffr.md",7966,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Ffr.md",{"path":93,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":94,"sourceHtmlUrl":95},"locales\u002Fhe.md",11149,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fhe.md",{"path":97,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":98,"sourceHtmlUrl":99},"locales\u002Fhi.md",2235,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fhi.md",{"path":101,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":102,"sourceHtmlUrl":103},"locales\u002Fhu.md",9030,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fhu.md",{"path":105,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":106,"sourceHtmlUrl":107},"locales\u002Fit.md",354,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fit.md",{"path":109,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":110,"sourceHtmlUrl":111},"locales\u002Fja.md",2882,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fja.md",{"path":113,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":114,"sourceHtmlUrl":115},"locales\u002Fko.md",5205,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fko.md",{"path":117,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":118,"sourceHtmlUrl":119},"locales\u002Fnl.md",6414,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fnl.md",{"path":121,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":122,"sourceHtmlUrl":123},"locales\u002Fpl.md",4844,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fpl.md",{"path":125,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":126,"sourceHtmlUrl":127},"locales\u002Fpt.md",2777,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fpt.md",{"path":129,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":130,"sourceHtmlUrl":131},"locales\u002Fth.md",11645,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fth.md",{"path":133,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":134,"sourceHtmlUrl":135},"locales\u002Ftr.md",10885,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Ftr.md",{"path":137,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":138,"sourceHtmlUrl":139},"locales\u002Fzh-CN.md",3980,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fzh-CN.md",{"path":141,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":142,"sourceHtmlUrl":143},"locales\u002Fzh-TW.md",5771,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-translations\u002Flocales\u002Fzh-TW.md",[145,170,200,211,225,242],{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":35},"01M6BTHV9M65YMX558C22H638A","pi-loop","Set up and manage recurring Pi tasks that run as background Pi processes. Use for recurring prompts, scheduled reports, or \u002Floop requests.","https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fpi\u002Fagent\u002Fextensions\u002Floop\u002Fskills\u002Fpi-loop\u002FSKILL.md",[],[152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169],"pi loop","loop","pi","scheduled","for","background","run","reports","prompts","up","use","recurring","as","processes","SET","requests","tasks","manage",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":181,"publishedAt":35},"01M6BTHRPVBTX8Y3EHQYP5464N","youtube-transcript","Retrieve a YouTube video transcript with yt-dlp using human or automatic captions. Save timestamped text locally. Use when asked for a YouTube transcript, subtitles, captions, or spoken text from a YouTube link.","https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fagents\u002Fskills\u002Fyoutube-transcript\u002FSKILL.md",[176],{"categoryNo":177,"categoryName":178,"taxonomyType":179,"taxonomyTypeDesc":180},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[182,183,184,185,186,187,188,162,189,190,191,192,193,194,195,196,197,156,198,32,199],"transcript","youtube transcript","youtube","Captions","id","human","yt-dlp","text","save","output","Video","dlp","file","subtitles","link","when","video transcript","with",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":206,"publishedAt":35},"01M6BTHPAGHJ9KK6MB8HDC97Q8","unslop","Cut AI tells from any writing NOT code. Must always apply.","https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fagents\u002Fskills\u002Funslop\u002FSKILL.md",[],[202,207,208,209,210],"apply","code","writing","cut",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":35},"01M6BTHKTB6SB3JEY6667PXKYP","shannon","Interact with Neovim via RPC to annotate code, navigate files, and do walkthroughs","https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fagents\u002Fskills\u002Fshannon\u002FSKILL.md",[],[213,26,218,199,219,220,221,222,27,25,223,224,208],"navigate","via","annotate","do","files","neovim","rpc",{"skillNo":226,"name":227,"nameZh":6,"description":228,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":229,"categories":230,"keywords":231,"publishedAt":35},"01M6BTHHFSD5H7XR3ZRBSVFVPK","rex","Use the rex CLI to manage Rex sessions, open tabs, arrange panes, run commands, inspect terminal output, and control connected Rex apps.","https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fagents\u002Fskills\u002Frex\u002FSKILL.md",[],[227,169,162,232,233,158,234,235,236,237,238,191,239,240,241],"panes","open","sessions","terminal","cli","arrange","inspect","apps","control","commands",{"skillNo":243,"name":244,"nameZh":6,"description":245,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":246,"categories":247,"keywords":248,"publishedAt":35},"01M6BTHC9YP08V0S9HXH78R9FT","pr-create","Create a GitHub pull request as a draft, auto-generating title and body from commits","https:\u002F\u002Fgithub.com\u002Fahmedelgabri\u002Fdotfiles\u002Fblob\u002Fmain\u002Fconfig\u002Fagents\u002Fskills\u002Fpr-create\u002FSKILL.md",[],[21,249,250,22,34,251,252,164,253,254,27,26,25,255,24,23],"pr create","create","body","title","draft","auto","commits"]