You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by ag...@apache.org on 2026/08/31 18:24:43 UTC
(datafusion-comet) branch main updated: chore: rename .claude directory to vendor-neutral .ai (#5594)
This is an automated email from the ASF dual-hosted git repository.
andygrove pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
The following commit(s) were added to refs/heads/main by this push:
new 18fa733909 chore: rename .claude directory to vendor-neutral .ai (#5594)
18fa733909 is described below
commit 18fa7339093b85972a15bbd83a9f3c760b4f74a3
Author: Andy Grove <ag...@apache.org>
AuthorDate: Mon Aug 31 12:24:37 2026 -0600
chore: rename .claude directory to vendor-neutral .ai (#5594)
---
{.claude => .ai}/skills/audit-comet-expression/SKILL.md | 0
{.claude => .ai}/skills/bug-triage/SKILL.md | 0
{.claude => .ai}/skills/implement-comet-expression/SKILL.md | 0
{.claude => .ai}/skills/optimize-comet-expression/SKILL.md | 0
{.claude => .ai}/skills/review-comet-pr/SKILL.md | 0
{.claude => .ai}/skills/suggest-native-expression/SKILL.md | 2 +-
{.claude => .ai}/skills/wire-datafusion-function/SKILL.md | 4 ++--
.claude/skills | 1 +
.gitignore | 1 -
AGENTS.md | 10 ++++++++++
CLAUDE.md | 1 +
dev/release/rat_exclude_files.txt | 2 ++
pom.xml | 1 +
13 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/.claude/skills/audit-comet-expression/SKILL.md b/.ai/skills/audit-comet-expression/SKILL.md
similarity index 100%
rename from .claude/skills/audit-comet-expression/SKILL.md
rename to .ai/skills/audit-comet-expression/SKILL.md
diff --git a/.claude/skills/bug-triage/SKILL.md b/.ai/skills/bug-triage/SKILL.md
similarity index 100%
rename from .claude/skills/bug-triage/SKILL.md
rename to .ai/skills/bug-triage/SKILL.md
diff --git a/.claude/skills/implement-comet-expression/SKILL.md b/.ai/skills/implement-comet-expression/SKILL.md
similarity index 100%
rename from .claude/skills/implement-comet-expression/SKILL.md
rename to .ai/skills/implement-comet-expression/SKILL.md
diff --git a/.claude/skills/optimize-comet-expression/SKILL.md b/.ai/skills/optimize-comet-expression/SKILL.md
similarity index 100%
rename from .claude/skills/optimize-comet-expression/SKILL.md
rename to .ai/skills/optimize-comet-expression/SKILL.md
diff --git a/.claude/skills/review-comet-pr/SKILL.md b/.ai/skills/review-comet-pr/SKILL.md
similarity index 100%
rename from .claude/skills/review-comet-pr/SKILL.md
rename to .ai/skills/review-comet-pr/SKILL.md
diff --git a/.claude/skills/suggest-native-expression/SKILL.md b/.ai/skills/suggest-native-expression/SKILL.md
similarity index 99%
rename from .claude/skills/suggest-native-expression/SKILL.md
rename to .ai/skills/suggest-native-expression/SKILL.md
index 5a7322345a..4ce5d966e0 100644
--- a/.claude/skills/suggest-native-expression/SKILL.md
+++ b/.ai/skills/suggest-native-expression/SKILL.md
@@ -338,7 +338,7 @@ Steps 3 and 4 are a static assessment and need no build. That is deliberate: the
cheap to run over a pool of candidates. But a `Medium` on either axis is exactly where a static
read is least trustworthy, so **when either rating is Medium, gather at least one piece of
empirical evidence before writing the verdict.** Building is required from here
-(`make`; see `CLAUDE.md`).
+(`make`; see `docs/source/contributor-guide/development.md`).
Any one of these is sufficient, cheapest first:
diff --git a/.claude/skills/wire-datafusion-function/SKILL.md b/.ai/skills/wire-datafusion-function/SKILL.md
similarity index 95%
rename from .claude/skills/wire-datafusion-function/SKILL.md
rename to .ai/skills/wire-datafusion-function/SKILL.md
index 02bc493ceb..881d24291b 100644
--- a/.claude/skills/wire-datafusion-function/SKILL.md
+++ b/.ai/skills/wire-datafusion-function/SKILL.md
@@ -41,7 +41,7 @@ Function names must match: the string passed to `CometScalarFunction("xyz")` equ
### 1. Study the Spark contract
-Find the `case class $ARGUMENTS` (PascalCase). Prefer the user's local Spark clone (`CLAUDE.md` / project memory); fall back to `git clone --depth 1 https://github.com/apache/spark.git /tmp/spark-master`. If the clone is sandbox-blocked and no local clone is found, **stop and ask** — Spark is the ground truth.
+Find the `case class $ARGUMENTS` (PascalCase). Prefer the user's local Spark clone (agent instructions / project memory); fall back to `git clone --depth 1 https://github.com/apache/spark.git /tmp/spark-master`. If the clone is sandbox-blocked and no local clone is found, **stop and ask** — Spark is the ground truth.
Note `inputTypes`, `dataType`, `eval` / `nullSafeEval`, `require` guards, ANSI mode branches, and foldable-only arguments. These define what Comet must reproduce.
@@ -68,7 +68,7 @@ grep -rin "fn name" "$DF_SPARK/src/function/" 2>/dev/null | grep -i "$EXPR"
grep -rin "fn name" "$DF_FUNCS/src/" 2>/dev/null | grep -i "$EXPR"
```
-**Option B — local DataFusion clone** (only if `CLAUDE.md` / memory points at one). Grep at the pinned tag — DataFusion uses lightweight tags (`<version>`, no `v` prefix), so use `tag -l` not `rev-parse --verify ^{tag}`:
+**Option B — local DataFusion clone** (only if agent instructions / memory point at one). Grep at the pinned tag — DataFusion uses lightweight tags (`<version>`, no `v` prefix), so use `tag -l` not `rev-parse --verify ^{tag}`:
```bash
DF_CLONE=<path from memory>
diff --git a/.claude/skills b/.claude/skills
new file mode 120000
index 0000000000..6838a11606
--- /dev/null
+++ b/.claude/skills
@@ -0,0 +1 @@
+../.ai/skills
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index eed00f3262..c6a2162280 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-CLAUDE.md
target
.idea
*.iml
diff --git a/AGENTS.md b/AGENTS.md
index 683dcbe3ee..2dabec82d0 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -33,3 +33,13 @@ Relevant entry points:
When opening a pull request, use the [PR template](.github/pull_request_template.md) and fill
in every section.
+
+## Skills
+
+Repository-specific agent skills live under `.ai/skills/`. Each subdirectory is a single skill
+with a `SKILL.md` (YAML frontmatter + body). Check that directory for an applicable skill before
+starting a task; new skills go in `.ai/skills/<skill-name>/SKILL.md`.
+
+For compatibility with agents that look in vendor-specific locations, `.claude/skills` is a
+symlink to `.ai/skills` and `CLAUDE.md` is a symlink to this file. Add new content here rather
+than to the symlinks.
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 120000
index 0000000000..47dc3e3d86
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1 @@
+AGENTS.md
\ No newline at end of file
diff --git a/dev/release/rat_exclude_files.txt b/dev/release/rat_exclude_files.txt
index 0f44154d93..597a7894cd 100644
--- a/dev/release/rat_exclude_files.txt
+++ b/dev/release/rat_exclude_files.txt
@@ -3,6 +3,8 @@
.github/pull_request_template.md
.github/workflows/README.md
.gitmodules
+.claude/skills
+CLAUDE.md
native/Cargo.lock
native/jni-bridge/testdata/backtrace.txt
native/jni-bridge/testdata/stacktrace.txt
diff --git a/pom.xml b/pom.xml
index 1149466575..2b34cb4a25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1196,6 +1196,7 @@ under the License.
<exclude>native/proto/src/generated/**</exclude>
<exclude>benchmarks/tpc/queries/**</exclude>
<exclude>benchmarks/results/**/*.txt</exclude>
+ <exclude>.ai/**</exclude>
<exclude>.claude/**</exclude>
<exclude>docs/superpowers/**</exclude>
</excludes>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org