Skip to content

Commit 31fa6d7

Browse files
timsaucerclaude
andcommitted
Update check-upstream skill to include FFI types as a checkable area
Add "ffi types" to the argument-hint and description so users can invoke the skill with `/check-upstream ffi types`. Also add pipeline verification step to ensure each supported FFI type has the full end-to-end chain (PyO3 wrapper, Protocol, Python wrapper with type hints, ABC, exports). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0bc626a commit 31fa6d7

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

.claude/skills/check-upstream/SKILL.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: check-upstream
3-
description: Check if upstream Apache DataFusion features (functions, DataFrame ops, SessionContext methods) are exposed in this Python project. Use when adding missing functions, auditing API coverage, or ensuring parity with upstream.
4-
argument-hint: [area] (e.g., "scalar functions", "aggregate functions", "window functions", "dataframe", "session context", "all")
3+
description: Check if upstream Apache DataFusion features (functions, DataFrame ops, SessionContext methods, FFI types) are exposed in this Python project. Use when adding missing functions, auditing API coverage, or ensuring parity with upstream.
4+
argument-hint: [area] (e.g., "scalar functions", "aggregate functions", "window functions", "dataframe", "session context", "ffi types", "all")
55
---
66

77
# Check Upstream DataFusion Feature Coverage
@@ -339,6 +339,14 @@ These upstream FFI types have been reviewed and do not need to be independently
339339
2. If new FFI types appear upstream, evaluate whether they represent a user-facing capability
340340
3. Check against the "evaluated and not requiring exposure" list before flagging as a gap
341341
4. Report any genuinely new types that enable user-facing functionality
342+
5. For each currently supported FFI type, verify the full pipeline is present using the checklist from "Adding a New FFI Type":
343+
- Rust PyO3 wrapper with `from_pycapsule()` method
344+
- Python Protocol type (e.g., `ScalarUDFExportable`) for FFI objects
345+
- Python wrapper class with full type hints on all public methods
346+
- ABC base class (if the type can be user-implemented)
347+
- Registered in Rust `init_module()` and Python `__init__.py`
348+
- FFI example in `examples/datafusion-ffi-example/`
349+
- Type appears in union type hints where accepted
342350

343351
## Important Notes
344352

0 commit comments

Comments
 (0)