[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACD360KZFT6C1BH6SWASSF":3,"skill-same:01M6ACD360KZFT6C1BH6SWASSF":76},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M6ACD360KZFT6C1BH6SWASSF","hudi-table-layout",null,"Analyzes the physical layout of an Apache Hudi table (partition and file size distribution, skew, micro-partitioning, small-file pile-up, hot partitions) by running the HoodieTableLayoutAnalyzer utility and interpreting its JSON report. Invoke when a user asks how big a Hudi table or its partitions are, whether a table has a small-file problem, whether it is over-partitioned, which partitions take most of the writes, or how skewed the partitions are.","apache\u002Fhudi","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACCEYWKJPXXQEKM83N9C89",6373,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-table-layout\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,9],"hudi","hudi table layout","table","layout","partitions","running","when","invoke","which","size","utility","problem","distribution","report","up","partition","json","how","file","2026-11-10 10:12:30",false,"---\nname: hudi-table-layout\ndescription: Analyzes the physical layout of an Apache Hudi table (partition and file size distribution, skew, micro-partitioning, small-file pile-up, hot partitions) by running the HoodieTableLayoutAnalyzer utility and interpreting its JSON report. Invoke when a user asks how big a Hudi table or its partitions are, whether a table has a small-file problem, whether it is over-partitioned, which partitions take most of the writes, or how skewed the partitions are.\n---\n\n\u003C!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership.  The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License.  You may obtain a copy of the License at\n\n   http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n\n# Hudi Table Layout\n\nYou are helping an operator understand how a Hudi table is laid out on storage and whether that\nlayout is hurting it. You do this by running `HoodieTableLayoutAnalyzer` — a read-only Spark\nutility shipped in `hudi-utilities` — and reading its JSON report. You never guess at a table's\nlayout from memory; every number and verdict you give traces back to a field in that report.\n\n## What the tool answers\n\n| Section | Question |\n|---|---|\n| `tableSizeStats`, `fileCountPerPartition` | How big are the base files, and how many does each partition hold? |\n| `skew` | Is data spread evenly across partitions, or concentrated in a few? |\n| `partitions` | Which partitions are largest, and what do their files look like? |\n| `micro-partition` detector | Are there too many partitions, or do most partitions hold too little data to fill a base file? |\n| `small-files` detector | What share of partitions is piling up small base files? |\n| `hot-partitions` detector | Which partitions absorb most recent writes? |\n\nEach detector reports a status: `CLEAN` or `FLAGGED` for micro-partition and hot-partitions;\n`CLEAN`, `MODERATE`, `SEVERE` or `SKIPPED` for small-files (hot-partitions is also `SKIPPED` when\nthere are no ingest commits to scan). `SKIPPED` means the detector could not judge. It is silence,\nnot a pass.\n\n## Step 1 — collect what the tool needs\n\n1. **The table base path.** Local, `s3:\u002F\u002F`, `gs:\u002F\u002F` or `abfs:\u002F\u002F`.\n2. **Which sections the user cares about.** Map the question to flags:\n\n| The user wants | Flags |\n|---|---|\n| Total size, file-size distribution | none (default) |\n| Per-partition breakdown, largest partitions | `--enable-partition-stats` (add `--top-n 20` for \"top N\") |\n| Skew across partitions | `--enable-partition-stats --enable-table-stats` |\n| Record counts, average row size | `--enable-partition-stats --include-row-counts` |\n| Small files, over-partitioning, hot partitions | `--enable-partition-stats --analyze-table-characteristics` (add `--print-top-k 5` for evidence) |\n| Only the last N days of a date-partitioned table | `--num-days N` |\n\n3. **Threshold overrides, only if the user has them.** The detectors ship with defaults (50 MB\n   average file size, 10,000 partitions, 10% \u002F 30% small-file tiers, 50-commit hot window at 50%\n   share). If the user's target file size or write pattern differs, pass the matching\n   `--micro-partition-*`, `--small-files-*` or `--hot-*` flag; `references\u002Fdetectors.md` lists\n   them. Do not invent overrides; defaults are fine for a first look.\n\nTwo things to warn about before running:\n\n- `--include-row-counts` reads one Parquet footer per file when the table has no `column_stats`\n  metadata partition. On a table with tens of thousands of files on object storage this is slow.\n  Say so, and confirm before running it.\n- Date filters only work when partition names are `yyyy-M-d`, `yyyy\u002FM\u002Fd` or `column=\u003Cdate>`. On\n  any other scheme the run fails fast; drop the date flags.\n\n## Step 2 — run it\n\nThe tool is a Spark application and needs `spark-submit`; a plain `java -cp` will not work.\n\n```bash\nspark-submit \\\n  --master \"local[2]\" \\\n  --driver-memory 4g \\\n  --conf spark.log.level=WARN \\\n  --class org.apache.hudi.utilities.HoodieTableLayoutAnalyzer \\\n  \"$HUDI_UTILITIES_BUNDLE\" \\\n  --base-path \u003Ctable base path> \\\n  --enable-partition-stats --analyze-table-characteristics \\\n  --output JSON\n```\n\nAlways request `--output JSON`. For object-store paths add the matching Hadoop connector\n(`--packages org.apache.hadoop:hadoop-aws:3.3.4` for S3, or the GCS \u002F Azure equivalent). Raise\n`--driver-memory` for tables with more than roughly 50,000 partitions. Show the user the full\ncommand before running it.\n\nIf `spark-submit` is not available, say so and stop; there is no pure-Java fallback for this tool.\n\n## Step 3 — read the report\n\nThe JSON envelope is documented in `references\u002Fdetectors.md`. Answer the user's question from the\nfields, not from the whole dump:\n\n- **Size questions** — answer from `totalBytes`, `totalFiles`, `numPartitions` and\n  `tableSizeStats`. Quote the p50 and p95 file sizes; they say more than the mean.\n- **Skew questions** — lead with `largestPartitionShare` and `top10Share`, which are intuitive,\n  then give `cv` and `gini`. Rule of thumb: `cv` under 0.3 is uniform, 0.3–0.6 moderate, above\n  0.6 significant; `gini` under 0.2 balanced, above 0.5 highly concentrated. Name the\n  `outliers` when there are any.\n- **Detectors** — dispatch on each detector's `status`:\n  - **`FLAGGED`, `MODERATE`, `SEVERE`** — quote the `summary`, then the `findings` verbatim.\n    Findings are written as actionable sentences; do not paraphrase them into something vaguer.\n    Then add the remedy from `references\u002Fdetectors.md`.\n  - **`SKIPPED`** — the `summary` says why (too few ingest commits, or no ingest commits in the\n    window). Say so and do not treat it as clean.\n  - **`CLEAN`** — say so in one line. Do not pad.\n\nWhen reporting, lead with `overallStatus`, then flagged detectors, then skipped, then clean.\nInclude the `observed.*` values from `effectiveConfigs` when they make a finding concrete\n(\"47 of 280 qualifying partitions average under 50 MB\"), and mention the `effective.*` threshold\nthe verdict was judged against, since a user with a different target file size may want to\nre-run with an override.\n\n## Step 4 — recommend, don't act\n\nThis skill diagnoses. It does not run clustering, change writer configuration, or repartition a\ntable. For every flagged detector, give the operator the specific next step from\n`references\u002Fdetectors.md` — typically scheduling clustering with `HoodieClusteringJob`, tuning the\nwriter's small-file settings, or revisiting the partition key — and say what it costs: clustering\nrewrites data and takes time and compute; changing the partition scheme means a new table.\n\n## Guardrails\n\n- Every claim about the layout must come from the report. If you have not run the tool, say you\n  have not, and do not speculate.\n- On a Merge-on-Read table, say that log files are not counted and the small-file picture can be\n  worse than reported; the report includes a finding to that effect.\n- Never run `--include-row-counts` on a large table without warning about the cost.\n- If the user asks whether compaction, cleaning or archival is keeping up, that is a different\n  tool — point them to the table health skill rather than stretching this report to cover it.\n","\u003C!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership.  The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License.  You may obtain a copy of the License at\n\n   http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n\n# Hudi Table Layout\n\nYou are helping an operator understand how a Hudi table is laid out on storage and whether that\nlayout is hurting it. You do this by running `HoodieTableLayoutAnalyzer` — a read-only Spark\nutility shipped in `hudi-utilities` — and reading its JSON report. You never guess at a table's\nlayout from memory; every number and verdict you give traces back to a field in that report.\n\n## What the tool answers\n\n| Section | Question |\n|---|---|\n| `tableSizeStats`, `fileCountPerPartition` | How big are the base files, and how many does each partition hold? |\n| `skew` | Is data spread evenly across partitions, or concentrated in a few? |\n| `partitions` | Which partitions are largest, and what do their files look like? |\n| `micro-partition` detector | Are there too many partitions, or do most partitions hold too little data to fill a base file? |\n| `small-files` detector | What share of partitions is piling up small base files? |\n| `hot-partitions` detector | Which partitions absorb most recent writes? |\n\nEach detector reports a status: `CLEAN` or `FLAGGED` for micro-partition and hot-partitions;\n`CLEAN`, `MODERATE`, `SEVERE` or `SKIPPED` for small-files (hot-partitions is also `SKIPPED` when\nthere are no ingest commits to scan). `SKIPPED` means the detector could not judge. It is silence,\nnot a pass.\n\n## Step 1 — collect what the tool needs\n\n1. **The table base path.** Local, `s3:\u002F\u002F`, `gs:\u002F\u002F` or `abfs:\u002F\u002F`.\n2. **Which sections the user cares about.** Map the question to flags:\n\n| The user wants | Flags |\n|---|---|\n| Total size, file-size distribution | none (default) |\n| Per-partition breakdown, largest partitions | `--enable-partition-stats` (add `--top-n 20` for \"top N\") |\n| Skew across partitions | `--enable-partition-stats --enable-table-stats` |\n| Record counts, average row size | `--enable-partition-stats --include-row-counts` |\n| Small files, over-partitioning, hot partitions | `--enable-partition-stats --analyze-table-characteristics` (add `--print-top-k 5` for evidence) |\n| Only the last N days of a date-partitioned table | `--num-days N` |\n\n3. **Threshold overrides, only if the user has them.** The detectors ship with defaults (50 MB\n   average file size, 10,000 partitions, 10% \u002F 30% small-file tiers, 50-commit hot window at 50%\n   share). If the user's target file size or write pattern differs, pass the matching\n   `--micro-partition-*`, `--small-files-*` or `--hot-*` flag; `references\u002Fdetectors.md` lists\n   them. Do not invent overrides; defaults are fine for a first look.\n\nTwo things to warn about before running:\n\n- `--include-row-counts` reads one Parquet footer per file when the table has no `column_stats`\n  metadata partition. On a table with tens of thousands of files on object storage this is slow.\n  Say so, and confirm before running it.\n- Date filters only work when partition names are `yyyy-M-d`, `yyyy\u002FM\u002Fd` or `column=\u003Cdate>`. On\n  any other scheme the run fails fast; drop the date flags.\n\n## Step 2 — run it\n\nThe tool is a Spark application and needs `spark-submit`; a plain `java -cp` will not work.\n\n```bash\nspark-submit \\\n  --master \"local[2]\" \\\n  --driver-memory 4g \\\n  --conf spark.log.level=WARN \\\n  --class org.apache.hudi.utilities.HoodieTableLayoutAnalyzer \\\n  \"$HUDI_UTILITIES_BUNDLE\" \\\n  --base-path \u003Ctable base path> \\\n  --enable-partition-stats --analyze-table-characteristics \\\n  --output JSON\n```\n\nAlways request `--output JSON`. For object-store paths add the matching Hadoop connector\n(`--packages org.apache.hadoop:hadoop-aws:3.3.4` for S3, or the GCS \u002F Azure equivalent). Raise\n`--driver-memory` for tables with more than roughly 50,000 partitions. Show the user the full\ncommand before running it.\n\nIf `spark-submit` is not available, say so and stop; there is no pure-Java fallback for this tool.\n\n## Step 3 — read the report\n\nThe JSON envelope is documented in `references\u002Fdetectors.md`. Answer the user's question from the\nfields, not from the whole dump:\n\n- **Size questions** — answer from `totalBytes`, `totalFiles`, `numPartitions` and\n  `tableSizeStats`. Quote the p50 and p95 file sizes; they say more than the mean.\n- **Skew questions** — lead with `largestPartitionShare` and `top10Share`, which are intuitive,\n  then give `cv` and `gini`. Rule of thumb: `cv` under 0.3 is uniform, 0.3–0.6 moderate, above\n  0.6 significant; `gini` under 0.2 balanced, above 0.5 highly concentrated. Name the\n  `outliers` when there are any.\n- **Detectors** — dispatch on each detector's `status`:\n  - **`FLAGGED`, `MODERATE`, `SEVERE`** — quote the `summary`, then the `findings` verbatim.\n    Findings are written as actionable sentences; do not paraphrase them into something vaguer.\n    Then add the remedy from `references\u002Fdetectors.md`.\n  - **`SKIPPED`** — the `summary` says why (too few ingest commits, or no ingest commits in the\n    window). Say so and do not treat it as clean.\n  - **`CLEAN`** — say so in one line. Do not pad.\n\nWhen reporting, lead with `overallStatus`, then flagged detectors, then skipped, then clean.\nInclude the `observed.*` values from `effectiveConfigs` when they make a finding concrete\n(\"47 of 280 qualifying partitions average under 50 MB\"), and mention the `effective.*` threshold\nthe verdict was judged against, since a user with a different target file size may want to\nre-run with an override.\n\n## Step 4 — recommend, don't act\n\nThis skill diagnoses. It does not run clustering, change writer configuration, or repartition a\ntable. For every flagged detector, give the operator the specific next step from\n`references\u002Fdetectors.md` — typically scheduling clustering with `HoodieClusteringJob`, tuning the\nwriter's small-file settings, or revisiting the partition key — and say what it costs: clustering\nrewrites data and takes time and compute; changing the partition scheme means a new table.\n\n## Guardrails\n\n- Every claim about the layout must come from the report. If you have not run the tool, say you\n  have not, and do not speculate.\n- On a Merge-on-Read table, say that log files are not counted and the small-file picture can be\n  worse than reported; the report includes a finding to that effect.\n- Never run `--include-row-counts` on a large table without warning about the cost.\n- If the user asks whether compaction, cleaning or archival is keeping up, that is a different\n  tool — point them to the table health skill rather than stretching this report to cover it.\n",{"name":5,"description":7},"master","c3cbf4ea6ce2a99d52a8c55ea76b13b29e807dea","hudi-ai-operator\u002Fskills\u002Fhudi-table-layout",2539,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi","https:\u002F\u002Fhudi.apache.org\u002F","https:\u002F\u002Fgithub.com\u002Fapache","https:\u002F\u002Fwww.apache.org\u002F","2026-11-11 11:50:57",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add apache\u002Fhudi --skill hudi-table-layout",{"tool":58,"command":59},"bunx","bunx skills add apache\u002Fhudi --skill hudi-table-layout",{"tool":61,"command":62},"pnpm","pnpm dlx skills add apache\u002Fhudi --skill hudi-table-layout","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-table-layout\u002FSKILL.md",true,[66,72],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"README.md","REFERENCE","参考文档",2751,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-table-layout\u002FREADME.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fdetectors.md",10236,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-table-layout\u002Freferences\u002Fdetectors.md",[77,85,106,132,147,167],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":38},"01M6ACD11MYSK011WNWZE7B32Z","hudi-table-health","Checks whether an Apache Hudi table's table services (compaction, cleaning, archival, savepoints) are keeping up with ingestion, by running the HoodieTableHealthChecker utility and interpreting its JSON report. Invoke when a user asks whether a Hudi table is healthy, whether compaction or cleaning is falling behind, why the active timeline keeps growing, or what to do about a savepoint blocking archival.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-table-health\u002FSKILL.md",[],[19,84,32,9],"hudi table health",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":38},"01M6ACCYDEJ4D027X09FS5F2SQ","hudi-rca","Explains why an Apache Hudi job failed. Classifies a pasted stacktrace and supporting artifacts against a catalog of known failure patterns, states the evidence it is reasoning from, and gives an ordered mitigation ladder. When no pattern matches, narrates what Hudi was doing and which phase failed. Invoke when a user brings a Hudi failure, a confusing exception, a stalled table, or asks why a write, compaction, or table service is not working.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-rca\u002FSKILL.md",[],[92,19,93,94,95,9,96,21,97,98,99,100,101,102,103,27,104,26,105,25],"rca","hudi rca","reasoning","artifacts","why","write","catalog","evidence","patterns","pattern","compaction","states","ladder","phase",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":38},"01M6ACCVPE3D4YQA3CTFBKVDTT","hudi-optimizer","Finds what an Apache Hudi deployment is leaving on the table. Reads writer properties, a Spark event log, and the table itself, corroborates observations across them, and recommends configuration and capability changes with risk tiers and verification steps. Invoke when a Hudi job works but is slow, expensive, or larger on storage than expected, or when a user asks whether a feature such as the record-level index or clustering would help their table.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-optimizer\u002FSKILL.md",[],[19,113,114,115,116,117,118,119,9,120,121,122,21,123,124,125,126,127,128,129,130,131,26,25],"hudi optimizer","optimizer","storage","spark","deployment","help","verification","index","clustering","risk","log","but","writer","across","feature","as","event","capability","event log",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":38},"01M6ACCS7K3VNRNBFY6PJ7Y2KY","hudi-mdt-health","Checks whether an Apache Hudi table's metadata table is healthy -- caught up with the data table, consistent with the files on storage, compacting on schedule, and with a record-level index sized for the table -- by running the HoodieTableHealthChecker utility's metadata-table checks and interpreting its JSON report. Invoke when a user asks whether the metadata table is in sync or lagging, whether file listings from the metadata table can be trusted, why metadata-table compaction is not running, whether the record index has too few file groups, or whether the metadata table needs to be rebuilt.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-mdt-health\u002FSKILL.md",[],[19,139,140,115,141,32,9,120,37,142,96,21,143,33,144,145,29,102,146,26,25,24],"hudi mdt health","health","sync","data","schedule","files","listings","for",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":38},"01M6ACCPVJESNQ9DJGG6PSA9EP","hudi-config-consultant","Answers questions about Apache Hudi `hoodie.*` configuration properties from a catalog generated out of the Hudi source tree — what a config does, its default and valid values, where in the code it is actually read, what gates it so that setting it can silently do nothing, and what else must be set alongside it. Invoke when a user asks what a config does, what to set for a goal, why a config they set had no effect, how two configs differ, or which configs go together.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-config-consultant\u002FSKILL.md",[],[154,19,155,156,157,158,159,9,160,36,96,161,162,163,164,165,27,166,26,25],"config","hudi config consultant","consultant","go","valid","code","SET","effect","read","generated","goal","default","source",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":178,"publishedAt":38},"01M6ACCHJKTHBT09S3CZWSHMYB","hudi-architect","Interactive Apache Hudi table design advisor. Turns workload requirements into architecture guidance and an Architecture Decision Record through a tiered conversational flow, with configuration bundles on implemented executable routes. Invoke when a user wants help designing a new Hudi table or evaluating an existing design.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fhudi\u002Fblob\u002Fmaster\u002Fhudi-ai-operator\u002Fskills\u002Fhudi-architect\u002FSKILL.md",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":176,"taxonomyTypeDesc":177},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[19,179,180,181,182,183,118,9,184,21,185,186,187,188,189,190,191,192,26,25,193],"hudi architect","architect","design","architecture","workload","flow","decision","interactive","advisor","requirements","with","Existing","architecture decision","decision record","new"]