This is an automated email from the ASF dual-hosted git repository.

nsivabalan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new 2b6d8b2d6859 refactor(agent): move the Hudi Architect skill under 
hudi-ai-operator (#20223)
2b6d8b2d6859 is described below

commit 2b6d8b2d6859ffa2ddf6f34b516ebcb239a6a25e
Author: Sivabalan Narayanan <[email protected]>
AuthorDate: Thu Oct 22 08:31:17 2026 -0700

    refactor(agent): move the Hudi Architect skill under hudi-ai-operator 
(#20223)
    
    The agent gateway serves people consuming data from Hudi tables: Trino
    SQL tools, a chat UI, an MCP endpoint for querying. The Architect skill
    serves a different audience — people designing, deploying and operating
    the tables themselves — and sat under the gateway only because that was
    the first place skills lived.
    
    Moves it to a new top-level hudi-ai-operator/skills/, which is where
    operator-facing tooling will live. No content change beyond path
    references: the skill, its references and its three validation scripts
    are unchanged.
---
 .github/workflows/agent_gateway_ci.yml             | 28 ++++++++++++----------
 .../tests/test_hudi_architect_skill.py             |  2 +-
 hudi-ai-operator/README.md                         |  2 +-
 .../skills/hudi-architect/README.md                | 12 +++++-----
 .../skills/hudi-architect/RUNBOOK.md               |  4 ++--
 .../skills/hudi-architect/SKILL.md                 |  0
 .../hudi-architect/redact_sensitive_values.py      |  0
 .../hudi-architect/references/adr-template.md      |  0
 .../hudi-architect/references/config-templates.md  |  0
 .../hudi-architect/references/decision-tables.md   |  0
 .../flink-1.20-hudi-1.2.0-capabilities.md          |  0
 .../flink-1.20-hudi-1.2.0-capabilities.toml        |  0
 .../references/flink-config-templates.md           |  0
 .../references/flink-decision-overrides.md         |  0
 .../flink-existing-table-reconciliation.md         |  0
 .../references/flink-question-flow.md              |  0
 .../hudi-architect/references/flink-warnings.md    |  0
 .../hudi-architect/references/question-flow.md     |  0
 .../skills/hudi-architect/references/warnings.md   |  0
 .../skills/hudi-architect/validate_config_keys.py  |  4 ++--
 .../validate_config_keys_allowlist.txt             |  0
 .../hudi-architect/validate_flink_capabilities.py  |  0
 .../skills/hudi-architect/validate_flink_design.py |  0
 .../validate_flink_existing_table.py               |  0
 24 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/.github/workflows/agent_gateway_ci.yml 
b/.github/workflows/agent_gateway_ci.yml
index ce1a1360222a..d008332dc70c 100644
--- a/.github/workflows/agent_gateway_ci.yml
+++ b/.github/workflows/agent_gateway_ci.yml
@@ -23,6 +23,7 @@ on:
       - 'release-*'
     paths:
       - 'hudi-agent-gateway/**'
+      - 'hudi-ai-operator/**'
       - 'hudi-lakehouse/**'
       - '.github/workflows/agent_gateway_ci.yml'
   pull_request:
@@ -30,6 +31,7 @@ on:
       - master
     paths:
       - 'hudi-agent-gateway/**'
+      - 'hudi-ai-operator/**'
       - 'hudi-lakehouse/**'
       - '.github/workflows/agent_gateway_ci.yml'
 
@@ -66,34 +68,34 @@ jobs:
           refs/tags/release-1.2.0:refs/tags/release-1.2.0
       - name: Validate Hudi Architect references
         run: |
-          python skills/hudi-architect/validate_config_keys.py
-          python skills/hudi-architect/validate_flink_capabilities.py 
--verify-source
-          python skills/hudi-architect/validate_flink_design.py \
+          python 
../hudi-ai-operator/skills/hudi-architect/validate_config_keys.py
+          python 
../hudi-ai-operator/skills/hudi-architect/validate_flink_capabilities.py 
--verify-source
+          python 
../hudi-ai-operator/skills/hudi-architect/validate_flink_design.py \
             --input tests/fixtures/hudi_architect/flink_pr2/stable_key.json \
             --emit-sql > /dev/null
-          python skills/hudi-architect/validate_flink_design.py \
+          python 
../hudi-ai-operator/skills/hudi-architect/validate_flink_design.py \
             --input tests/fixtures/hudi_architect/flink_pr3/mutable_cow.json \
             --emit-sql > /dev/null
-          python skills/hudi-architect/validate_flink_design.py \
+          python 
../hudi-ai-operator/skills/hudi-architect/validate_flink_design.py \
             --input tests/fixtures/hudi_architect/flink_pr4/mutable_mor.json \
             --emit-sql > /dev/null
-          python skills/hudi-architect/validate_flink_existing_table.py \
+          python 
../hudi-ai-operator/skills/hudi-architect/validate_flink_existing_table.py \
             --input 
tests/fixtures/hudi_architect/flink_pr5/compatible_mutable_cow.json
       - name: Test
         run: python -m pytest tests -q
       - name: Lint
         run: >-
           ruff check src tests
-          skills/hudi-architect/redact_sensitive_values.py
-          skills/hudi-architect/validate_flink_capabilities.py
-          skills/hudi-architect/validate_flink_design.py
-          skills/hudi-architect/validate_flink_existing_table.py
+          ../hudi-ai-operator/skills/hudi-architect/redact_sensitive_values.py
+          
../hudi-ai-operator/skills/hudi-architect/validate_flink_capabilities.py
+          ../hudi-ai-operator/skills/hudi-architect/validate_flink_design.py
+          
../hudi-ai-operator/skills/hudi-architect/validate_flink_existing_table.py
       - name: Type-check
         run: >-
           mypy src
-          skills/hudi-architect/validate_flink_capabilities.py
-          skills/hudi-architect/validate_flink_design.py
-          skills/hudi-architect/validate_flink_existing_table.py
+          
../hudi-ai-operator/skills/hudi-architect/validate_flink_capabilities.py
+          ../hudi-ai-operator/skills/hudi-architect/validate_flink_design.py
+          
../hudi-ai-operator/skills/hudi-architect/validate_flink_existing_table.py
 
   flink-sql-fixtures:
     name: Hudi 1.2.0 / Flink 1.20.1 SQL fixtures
diff --git a/hudi-agent-gateway/tests/test_hudi_architect_skill.py 
b/hudi-agent-gateway/tests/test_hudi_architect_skill.py
index bc5b8505892a..bd480490fae9 100644
--- a/hudi-agent-gateway/tests/test_hudi_architect_skill.py
+++ b/hudi-agent-gateway/tests/test_hudi_architect_skill.py
@@ -30,7 +30,7 @@ import pytest
 
 GATEWAY_DIR = Path(__file__).resolve().parents[1]
 REPO_ROOT = GATEWAY_DIR.parent
-SKILL_DIR = GATEWAY_DIR / "skills" / "hudi-architect"
+SKILL_DIR = REPO_ROOT / "hudi-ai-operator" / "skills" / "hudi-architect"
 REFERENCES_DIR = SKILL_DIR / "references"
 CAPABILITY_MANIFEST = REFERENCES_DIR / 
"flink-1.20-hudi-1.2.0-capabilities.toml"
 GATE_FIXTURE = (
diff --git a/hudi-ai-operator/README.md b/hudi-ai-operator/README.md
index df694f9272fa..026741f336a9 100644
--- a/hudi-ai-operator/README.md
+++ b/hudi-ai-operator/README.md
@@ -64,7 +64,7 @@ judgement on top of it, and a fix to a detector reaches every 
Skill at once.
 
 Skills also hand off to each other by name. `hudi-optimizer` stops at anything 
that would change
 what is on storage — table type, index type, partitioning — and hands the 
measurements to
-`hudi-architect` (in `hudi-agent-gateway/skills/hudi-architect`) for an 
Architecture Decision
+`hudi-architect` (in `hudi-ai-operator/skills/hudi-architect`) for an 
Architecture Decision
 Record. If the job is failing rather than slow, that is `hudi-rca`.
 
 ## Install
diff --git a/hudi-agent-gateway/skills/hudi-architect/README.md 
b/hudi-ai-operator/skills/hudi-architect/README.md
similarity index 95%
rename from hudi-agent-gateway/skills/hudi-architect/README.md
rename to hudi-ai-operator/skills/hudi-architect/README.md
index a138324d43f8..edd5b6801a1c 100644
--- a/hudi-agent-gateway/skills/hudi-architect/README.md
+++ b/hudi-ai-operator/skills/hudi-architect/README.md
@@ -53,7 +53,7 @@ Copy this directory into your Claude Code skills location:
 
 ```bash
 # From the root of a Hudi checkout.
-SKILL=hudi-agent-gateway/skills/hudi-architect
+SKILL=hudi-ai-operator/skills/hudi-architect
 
 # User-level (available in every project)
 mkdir -p ~/.claude/skills && cp -r "$SKILL" ~/.claude/skills/
@@ -99,7 +99,7 @@ baseline.
 Every `hoodie.*` key mentioned in `SKILL.md` and `references/` is checked 
against the actual `ConfigProperty` definitions in the Hudi source tree:
 
 ```bash
-python3 hudi-agent-gateway/skills/hudi-architect/validate_config_keys.py
+python3 hudi-ai-operator/skills/hudi-architect/validate_config_keys.py
 ```
 
 Run it after any edit to the reference files (exit 1 lists unknown keys). 
Intentional exceptions — e.g. future-version keys the references discuss but 
never emit — live in `validate_config_keys_allowlist.txt` with a comment each.
@@ -107,7 +107,7 @@ Run it after any edit to the reference files (exit 1 lists 
unknown keys). Intent
 Validate the Flink baseline manifest without consulting the current checkout:
 
 ```bash
-python3 hudi-agent-gateway/skills/hudi-architect/validate_flink_capabilities.py
+python3 hudi-ai-operator/skills/hudi-architect/validate_flink_capabilities.py
 ```
 
 Maintainers with the pinned release commit available locally can additionally 
verify every source
@@ -117,7 +117,7 @@ Flink assessment.
 Validate and render a complete bounded Flink design contract:
 
 ```bash
-python3 hudi-agent-gateway/skills/hudi-architect/validate_flink_design.py \
+python3 hudi-ai-operator/skills/hudi-architect/validate_flink_design.py \
   --input 
hudi-agent-gateway/tests/fixtures/hudi_architect/flink_pr2/stable_key.json \
   --emit-sql
 ```
@@ -133,14 +133,14 @@ The mutable MOR schema-3 fixture is
 Validate a structured existing-table reconciliation contract without rendering 
SQL:
 
 ```bash
-python3 
hudi-agent-gateway/skills/hudi-architect/validate_flink_existing_table.py \
+python3 
hudi-ai-operator/skills/hudi-architect/validate_flink_existing_table.py \
   --input 
hudi-agent-gateway/tests/fixtures/hudi_architect/flink_pr5/compatible_mutable_cow.json
 ```
 
 Credential-bearing evidence can be sanitized without executing or parsing it 
as configuration:
 
 ```bash
-python3 hudi-agent-gateway/skills/hudi-architect/redact_sensitive_values.py < 
evidence.txt
+python3 hudi-ai-operator/skills/hudi-architect/redact_sensitive_values.py < 
evidence.txt
 ```
 
 ## What to look for during review
diff --git a/hudi-agent-gateway/skills/hudi-architect/RUNBOOK.md 
b/hudi-ai-operator/skills/hudi-architect/RUNBOOK.md
similarity index 99%
rename from hudi-agent-gateway/skills/hudi-architect/RUNBOOK.md
rename to hudi-ai-operator/skills/hudi-architect/RUNBOOK.md
index 5d691415918e..9579026b6b9a 100644
--- a/hudi-agent-gateway/skills/hudi-architect/RUNBOOK.md
+++ b/hudi-ai-operator/skills/hudi-architect/RUNBOOK.md
@@ -52,8 +52,8 @@ Copy the `hudi-architect` directory into a Claude Code skills 
location:
 
 ```bash
 # The skill ships inside a Hudi checkout at:
-#   hudi-agent-gateway/skills/hudi-architect
-SKILL=/path/to/hudi/hudi-agent-gateway/skills/hudi-architect
+#   hudi-ai-operator/skills/hudi-architect
+SKILL=/path/to/hudi/hudi-ai-operator/skills/hudi-architect
 
 # Option A — user-level: available in every project on your machine
 mkdir -p ~/.claude/skills
diff --git a/hudi-agent-gateway/skills/hudi-architect/SKILL.md 
b/hudi-ai-operator/skills/hudi-architect/SKILL.md
similarity index 100%
rename from hudi-agent-gateway/skills/hudi-architect/SKILL.md
rename to hudi-ai-operator/skills/hudi-architect/SKILL.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/redact_sensitive_values.py 
b/hudi-ai-operator/skills/hudi-architect/redact_sensitive_values.py
similarity index 100%
rename from hudi-agent-gateway/skills/hudi-architect/redact_sensitive_values.py
rename to hudi-ai-operator/skills/hudi-architect/redact_sensitive_values.py
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/adr-template.md 
b/hudi-ai-operator/skills/hudi-architect/references/adr-template.md
similarity index 100%
rename from hudi-agent-gateway/skills/hudi-architect/references/adr-template.md
rename to hudi-ai-operator/skills/hudi-architect/references/adr-template.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/config-templates.md 
b/hudi-ai-operator/skills/hudi-architect/references/config-templates.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/config-templates.md
rename to hudi-ai-operator/skills/hudi-architect/references/config-templates.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/decision-tables.md 
b/hudi-ai-operator/skills/hudi-architect/references/decision-tables.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/decision-tables.md
rename to hudi-ai-operator/skills/hudi-architect/references/decision-tables.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.md
 
b/hudi-ai-operator/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.md
rename to 
hudi-ai-operator/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.toml
 
b/hudi-ai-operator/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.toml
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.toml
rename to 
hudi-ai-operator/skills/hudi-architect/references/flink-1.20-hudi-1.2.0-capabilities.toml
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/flink-config-templates.md 
b/hudi-ai-operator/skills/hudi-architect/references/flink-config-templates.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/flink-config-templates.md
rename to 
hudi-ai-operator/skills/hudi-architect/references/flink-config-templates.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/flink-decision-overrides.md
 b/hudi-ai-operator/skills/hudi-architect/references/flink-decision-overrides.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/flink-decision-overrides.md
rename to 
hudi-ai-operator/skills/hudi-architect/references/flink-decision-overrides.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/flink-existing-table-reconciliation.md
 
b/hudi-ai-operator/skills/hudi-architect/references/flink-existing-table-reconciliation.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/flink-existing-table-reconciliation.md
rename to 
hudi-ai-operator/skills/hudi-architect/references/flink-existing-table-reconciliation.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/flink-question-flow.md 
b/hudi-ai-operator/skills/hudi-architect/references/flink-question-flow.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/flink-question-flow.md
rename to 
hudi-ai-operator/skills/hudi-architect/references/flink-question-flow.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/flink-warnings.md 
b/hudi-ai-operator/skills/hudi-architect/references/flink-warnings.md
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/references/flink-warnings.md
rename to hudi-ai-operator/skills/hudi-architect/references/flink-warnings.md
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/references/question-flow.md 
b/hudi-ai-operator/skills/hudi-architect/references/question-flow.md
similarity index 100%
rename from hudi-agent-gateway/skills/hudi-architect/references/question-flow.md
rename to hudi-ai-operator/skills/hudi-architect/references/question-flow.md
diff --git a/hudi-agent-gateway/skills/hudi-architect/references/warnings.md 
b/hudi-ai-operator/skills/hudi-architect/references/warnings.md
similarity index 100%
rename from hudi-agent-gateway/skills/hudi-architect/references/warnings.md
rename to hudi-ai-operator/skills/hudi-architect/references/warnings.md
diff --git a/hudi-agent-gateway/skills/hudi-architect/validate_config_keys.py 
b/hudi-ai-operator/skills/hudi-architect/validate_config_keys.py
similarity index 97%
rename from hudi-agent-gateway/skills/hudi-architect/validate_config_keys.py
rename to hudi-ai-operator/skills/hudi-architect/validate_config_keys.py
index 4ed0e435d1eb..7e27e728be64 100644
--- a/hudi-agent-gateway/skills/hudi-architect/validate_config_keys.py
+++ b/hudi-ai-operator/skills/hudi-architect/validate_config_keys.py
@@ -31,7 +31,7 @@ Intentional exceptions (e.g. keys targeting a future Hudi 
version that the
 skill discusses but does not emit) live in validate_config_keys_allowlist.txt,
 one key per line, '#' comments allowed.
 
-Run from anywhere:  python3 
hudi-agent-gateway/skills/hudi-architect/validate_config_keys.py
+Run from anywhere:  python3 
hudi-ai-operator/skills/hudi-architect/validate_config_keys.py
 """
 
 import re
@@ -195,7 +195,7 @@ def main():
         print("ERROR: no config keys resolved from the source tree.")
         print(f"       Looked under: {REPO_ROOT}")
         print("       This script must run from a copy of the skill INSIDE a 
Hudi checkout")
-        print("       (hudi-agent-gateway/skills/hudi-architect/), not from an 
installed copy under")
+        print("       (hudi-ai-operator/skills/hudi-architect/), not from an 
installed copy under")
         print("       ~/.claude/skills/. Run the repo copy instead.")
         return 2
 
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/validate_config_keys_allowlist.txt 
b/hudi-ai-operator/skills/hudi-architect/validate_config_keys_allowlist.txt
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/validate_config_keys_allowlist.txt
rename to 
hudi-ai-operator/skills/hudi-architect/validate_config_keys_allowlist.txt
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/validate_flink_capabilities.py 
b/hudi-ai-operator/skills/hudi-architect/validate_flink_capabilities.py
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/validate_flink_capabilities.py
rename to hudi-ai-operator/skills/hudi-architect/validate_flink_capabilities.py
diff --git a/hudi-agent-gateway/skills/hudi-architect/validate_flink_design.py 
b/hudi-ai-operator/skills/hudi-architect/validate_flink_design.py
similarity index 100%
rename from hudi-agent-gateway/skills/hudi-architect/validate_flink_design.py
rename to hudi-ai-operator/skills/hudi-architect/validate_flink_design.py
diff --git 
a/hudi-agent-gateway/skills/hudi-architect/validate_flink_existing_table.py 
b/hudi-ai-operator/skills/hudi-architect/validate_flink_existing_table.py
similarity index 100%
rename from 
hudi-agent-gateway/skills/hudi-architect/validate_flink_existing_table.py
rename to 
hudi-ai-operator/skills/hudi-architect/validate_flink_existing_table.py

Reply via email to