[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACB7P9C6TV0J1FGWW5HECF":3,"skill-same:01M6ACB7P9C6TV0J1FGWW5HECF":65},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6ACB7P9C6TV0J1FGWW5HECF","aip-tracker",null,"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.","apache\u002Fairflow","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACADDFF6RHG1DBAJXFG7E5",47442,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002Fproviders\u002Fcommon\u002Fai\u002Fsrc\u002Fairflow\u002Fproviders\u002Fcommon\u002Fai\u002Fexample_dags\u002Fskills\u002Faip-tracker\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"aip tracker","aip","tracker","progress","when","track","codebase","improvement","assess","compare","proposal","status","implementation","evidence","use","confluence","airflow","report","2026-11-10 10:12:30",false,"---\nname: aip-tracker\ndescription: 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.\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# AIP Progress Tracker Skill\n\nAssess implementation progress of Airflow Improvement Proposals by comparing\nwhat the Confluence spec promises against what the codebase delivers.\n\n## When to Use This Skill\n\nUse this skill when the task involves:\n\n- Tracking AIP implementation status\n- Comparing a spec against shipped code\n- Producing a cross-AIP progress report\n\n## Available Tools\n\nYou have access to these tools for gathering evidence:\n\n- `fetch_confluence_page(page_id)` -- fetch an AIP spec from Confluence\n- `search_github_prs(query)` -- search GitHub PRs\u002Fcommits for an AIP\n- `get_repo_file_tree(path_prefix)` -- list files under a directory in the repo\n\n## Evidence Gathering Strategy\n\nFor each AIP, gather evidence from **all three sources** before assessing:\n\n1. **Confluence spec** -- call `fetch_confluence_page` with the AIP's page ID.\n   Extract: deliverables, phases, completion criteria, and status.\n2. **GitHub PRs and commits** -- call `search_github_prs` with both the AIP\n   number (e.g. \"AIP-76\") AND topic keywords (e.g. \"asset partition\").\n   Deduplicate results.\n3. **Codebase file tree** -- call `get_repo_file_tree` with the AIP's known\n   directory prefixes. Count source files and test files.\n\n## Deliverable Extraction\n\nExtract deliverables from the specification's own structure. Use these\nsources in priority order:\n\n1. **Numbered completion criteria** (e.g. \"Definition of Done\", \"Completion\n   Criteria\") -- each numbered item is one deliverable.\n2. **Phase definitions** -- each bullet or item under a phase heading is one\n   deliverable.\n3. **Explicitly enumerated components** (classes, operators, API endpoints,\n   CLI commands, UI features) listed in the spec.\n\n**Critical:** Do NOT split a single spec item into multiple deliverables\n(e.g. do not count individual files within one component as separate\ndeliverables). Do NOT merge multiple spec items into one. Use the spec's\nown granularity -- if the spec says \"partition mappers\" as one item, that\nis one deliverable, not five separate file-level deliverables.\n\n## Assessment Rules\n\n1. For each deliverable, you MUST cite specific evidence (a PR number,\n   commit message, or file path from tool results). If no evidence exists,\n   mark the deliverable as \"not_started\" or \"unclear\" with low confidence.\n2. Always express progress as fractions: \"8\u002F12 deliverables shipped\".\n   NEVER convert to percentages. Do not write \"73%\" or \"72%\" or any\n   percentage. The fraction form \"X\u002FY shipped\" is the ONLY acceptable\n   format.\n3. Do NOT invent blockers or risks not directly supported by evidence.\n   Use a \"Notes\" field for genuine uncertainties only.\n4. If codebase evidence shows shipped work NOT mentioned in the spec,\n   list it as \"beyond_spec\" and flag that the Confluence page needs\n   updating.\n5. PR numbers must come from `search_github_prs` results. Never\n   fabricate or guess PR numbers.\n6. Do NOT characterize AIPs with vague editorializing like \"near\n   completion\", \"minimal blockers\", \"requires foundational work\", or\n   \"Advanced maturity\". State the fraction (e.g. \"9\u002F10 shipped,\n   1 in progress\") and let the reader draw conclusions.\n7. Do NOT add information beyond what the tools return. If a tool\n   returns no results for a query, say so -- do not fill the gap\n   with assumptions.\n\n## Output Format\n\nStructure the report as follows. Do not add sections, emojis, or\nformatting beyond this template:\n\n```\n# AIP Progress Report\n\n## Summary\n- N AIPs tracked\n- Per-AIP: AIP-{N} {Title}: X\u002FY shipped\n\n## Per-AIP Breakdown\n\n### AIP-{N}: {Title}\nConfluence status: {status from spec}\nProgress: X\u002FY deliverables shipped\nConfluence update needed: {Yes\u002FNo}\n\n**Shipped ({count}):**\n  - {deliverable}: {evidence -- PR number or file path} [{confidence}]\n\n**In progress ({count}):**\n  - {deliverable}: PR #{number} [{confidence}]\n\n**Not started ({count}):**\n  - {deliverable}\n\n**Beyond spec ({count}):**\n  - {deliverable}: {evidence} [{confidence}]\n\n**Notes:** {genuine uncertainties only, or omit if none}\n\n## Cross-AIP Dependencies\n- {only if tool evidence shows shared PRs or dependency chains}\n\n## Confluence Updates Needed\n- {list AIPs where spec is stale and what needs updating}\n```\n\n## Self-Verification (MANDATORY before returning the report)\n\nBefore returning the final report, re-read it and verify each of\nthese rules. If any check fails, fix the report before returning it.\n\n1. Every deliverable cites evidence from tool results, or is explicitly\n   marked \"unclear\" or \"not_started\".\n2. No percentages appear anywhere in the report -- only \"X\u002FY shipped\"\n   fractions.\n3. Every PR number mentioned appears in `search_github_prs` results.\n   Remove any that do not.\n4. No invented blockers, risks, or characterizations beyond the\n   evidence.\n5. Beyond-spec items are flagged for Confluence update.\n6. Deliverable granularity matches the spec's own structure -- no\n   file-level splitting of spec-level items.\n7. No vague editorializing (\"near completion\", \"Advanced maturity\",\n   \"substantially implemented\"). Replace with the fraction.\n8. shipped_count + in_progress_count + not_started_count +\n   beyond_spec_count = total_count for each AIP.\n","\u003C!-- SPDX-License-Identifier: Apache-2.0\n     https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0 -->\n\n# AIP Progress Tracker Skill\n\nAssess implementation progress of Airflow Improvement Proposals by comparing\nwhat the Confluence spec promises against what the codebase delivers.\n\n## When to Use This Skill\n\nUse this skill when the task involves:\n\n- Tracking AIP implementation status\n- Comparing a spec against shipped code\n- Producing a cross-AIP progress report\n\n## Available Tools\n\nYou have access to these tools for gathering evidence:\n\n- `fetch_confluence_page(page_id)` -- fetch an AIP spec from Confluence\n- `search_github_prs(query)` -- search GitHub PRs\u002Fcommits for an AIP\n- `get_repo_file_tree(path_prefix)` -- list files under a directory in the repo\n\n## Evidence Gathering Strategy\n\nFor each AIP, gather evidence from **all three sources** before assessing:\n\n1. **Confluence spec** -- call `fetch_confluence_page` with the AIP's page ID.\n   Extract: deliverables, phases, completion criteria, and status.\n2. **GitHub PRs and commits** -- call `search_github_prs` with both the AIP\n   number (e.g. \"AIP-76\") AND topic keywords (e.g. \"asset partition\").\n   Deduplicate results.\n3. **Codebase file tree** -- call `get_repo_file_tree` with the AIP's known\n   directory prefixes. Count source files and test files.\n\n## Deliverable Extraction\n\nExtract deliverables from the specification's own structure. Use these\nsources in priority order:\n\n1. **Numbered completion criteria** (e.g. \"Definition of Done\", \"Completion\n   Criteria\") -- each numbered item is one deliverable.\n2. **Phase definitions** -- each bullet or item under a phase heading is one\n   deliverable.\n3. **Explicitly enumerated components** (classes, operators, API endpoints,\n   CLI commands, UI features) listed in the spec.\n\n**Critical:** Do NOT split a single spec item into multiple deliverables\n(e.g. do not count individual files within one component as separate\ndeliverables). Do NOT merge multiple spec items into one. Use the spec's\nown granularity -- if the spec says \"partition mappers\" as one item, that\nis one deliverable, not five separate file-level deliverables.\n\n## Assessment Rules\n\n1. For each deliverable, you MUST cite specific evidence (a PR number,\n   commit message, or file path from tool results). If no evidence exists,\n   mark the deliverable as \"not_started\" or \"unclear\" with low confidence.\n2. Always express progress as fractions: \"8\u002F12 deliverables shipped\".\n   NEVER convert to percentages. Do not write \"73%\" or \"72%\" or any\n   percentage. The fraction form \"X\u002FY shipped\" is the ONLY acceptable\n   format.\n3. Do NOT invent blockers or risks not directly supported by evidence.\n   Use a \"Notes\" field for genuine uncertainties only.\n4. If codebase evidence shows shipped work NOT mentioned in the spec,\n   list it as \"beyond_spec\" and flag that the Confluence page needs\n   updating.\n5. PR numbers must come from `search_github_prs` results. Never\n   fabricate or guess PR numbers.\n6. Do NOT characterize AIPs with vague editorializing like \"near\n   completion\", \"minimal blockers\", \"requires foundational work\", or\n   \"Advanced maturity\". State the fraction (e.g. \"9\u002F10 shipped,\n   1 in progress\") and let the reader draw conclusions.\n7. Do NOT add information beyond what the tools return. If a tool\n   returns no results for a query, say so -- do not fill the gap\n   with assumptions.\n\n## Output Format\n\nStructure the report as follows. Do not add sections, emojis, or\nformatting beyond this template:\n\n```\n# AIP Progress Report\n\n## Summary\n- N AIPs tracked\n- Per-AIP: AIP-{N} {Title}: X\u002FY shipped\n\n## Per-AIP Breakdown\n\n### AIP-{N}: {Title}\nConfluence status: {status from spec}\nProgress: X\u002FY deliverables shipped\nConfluence update needed: {Yes\u002FNo}\n\n**Shipped ({count}):**\n  - {deliverable}: {evidence -- PR number or file path} [{confidence}]\n\n**In progress ({count}):**\n  - {deliverable}: PR #{number} [{confidence}]\n\n**Not started ({count}):**\n  - {deliverable}\n\n**Beyond spec ({count}):**\n  - {deliverable}: {evidence} [{confidence}]\n\n**Notes:** {genuine uncertainties only, or omit if none}\n\n## Cross-AIP Dependencies\n- {only if tool evidence shows shared PRs or dependency chains}\n\n## Confluence Updates Needed\n- {list AIPs where spec is stale and what needs updating}\n```\n\n## Self-Verification (MANDATORY before returning the report)\n\nBefore returning the final report, re-read it and verify each of\nthese rules. If any check fails, fix the report before returning it.\n\n1. Every deliverable cites evidence from tool results, or is explicitly\n   marked \"unclear\" or \"not_started\".\n2. No percentages appear anywhere in the report -- only \"X\u002FY shipped\"\n   fractions.\n3. Every PR number mentioned appears in `search_github_prs` results.\n   Remove any that do not.\n4. No invented blockers, risks, or characterizations beyond the\n   evidence.\n5. Beyond-spec items are flagged for Confluence update.\n6. Deliverable granularity matches the spec's own structure -- no\n   file-level splitting of spec-level items.\n7. No vague editorializing (\"near completion\", \"Advanced maturity\",\n   \"substantially implemented\"). Replace with the fraction.\n8. shipped_count + in_progress_count + not_started_count +\n   beyond_spec_count = total_count for each AIP.\n",{"name":5,"license":15,"description":7},"main","f7e28eec7309f5700ca69ec226df41a5c58d5213","providers\u002Fcommon\u002Fai\u002Fsrc\u002Fairflow\u002Fproviders\u002Fcommon\u002Fai\u002Fexample_dags\u002Fskills\u002Faip-tracker",18343,"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-11 11:20:17",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add apache\u002Fairflow --skill aip-tracker",{"tool":57,"command":58},"bunx","bunx skills add apache\u002Fairflow --skill aip-tracker",{"tool":60,"command":61},"pnpm","pnpm dlx skills add apache\u002Fairflow --skill aip-tracker","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002Fproviders\u002Fcommon\u002Fai\u002Fsrc\u002Fairflow\u002Fproviders\u002Fcommon\u002Fai\u002Fexample_dags\u002Fskills\u002Faip-tracker\u002FSKILL.md",true,[],[66,95,122,150,172,193],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":82,"publishedAt":37},"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",[72,77],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[83,84,85,86,87,36,88,89,90,91,92,33,93,94],"sql reporting","sql","reporting","writing","review","analytics","metrics","tables","warehouse","for","task","conventions",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":37},"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",[],[102,103,104,105,35,9,106,107,108,109,110,111,112,113,114,115,116,117,23,118,119,120,121],"upgrade fab provider","upgrade","provider","test","apache airflow","release","security","alignment","reviews","db","bump","static","re","move","new","uv","drift","tripwire","lock","dependency",{"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":131,"publishedAt":37},"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",[128],{"categoryNo":129,"categoryName":130,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000023","Skill与智能体开发",[132,133,134,135,136,137,138,107,139,140,141,23,142,143,144,145,146,147,148,149],"documentation","prepare providers documentation","prepare","Providers","pr","commit","changelog","scope","cycle","pay","ask","analyze","sub-agent","multi-provider","manager","as","attention","diff",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":37},"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",[],[35,157,158,159,160,9,106,161,162,163,164,165,166,167,168,169,170,23,171,92],"airflow translations","core","guidelines","tasks","update","translation","scaffolding","up","files","guides","i18n","src","ui","add","locale",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":37},"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",[],[35,179,180,181,182,136,183,184,185,9,106,134,186,187,23,188,189,190,33,191,192],"airflow publish changes","publish","changes","push","planning","issues","verification","creation","remote","work","pr creation","Publication","contribution","tracking",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":199,"publishedAt":37},"01M6ACAT3JW1XZD3Z9EPP4H68M","airflow-pr-draft-summary","Draft Apache Airflow commit messages, PR titles and descriptions, or GitHub comments and reviews. Also use for release-note decisions when preparing a contribution.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fairflow\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fairflow-pr-draft-summary\u002FSKILL.md",[],[136,200,35,201,202,203,204,137,9,205,106,107,110,206,23,207,92,33,208,209,191],"pr draft summary","airflow pr draft summary","pr draft","draft","summary","github","messages","commit messages","decisions","comments"]