feat: Added Agent skills for AI Agents#6007
Conversation
soooojinlee
left a comment
There was a problem hiding this comment.
would it make sense to place these under .claude/skills/ (or similar) instead of a top-level Agent-Skill/ directory? I think the https://github.com/anthropics/skills convention typically uses that path.
|
Exactly @soooojinlee - those .claude/skills usually live in the User Directory rather than the main Git repo. Most devs either create a specific subdirectory for skills within the project or manage them in a separate Git repo entirely. |
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 5 additional findings in Devin Review.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 6 additional findings in Devin Review.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 6 additional findings in Devin Review.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 7 additional findings in Devin Review.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 6 additional findings in Devin Review.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 7 additional findings in Devin Review.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 9 additional findings in Devin Review.
Sagargupta16
left a comment
There was a problem hiding this comment.
Nice work on the content -- the reference docs for configuration, feature definitions, and RAG retrieval are thorough.
A couple of suggestions for cross-platform compatibility:
-
Directory placement: Both OpenAI and Claude Code follow the open Agent Skills standard. The convention is a
skills/directory (notAgent-Skill/). The spec also requires the directory name to match thenamefield in SKILL.md frontmatter. -
Frontmatter fields: The spec supports optional
license,compatibility, andmetadatafields that help with discoverability:--- name: feast-user-guide description: ... license: Apache-2.0 compatibility: Works with Claude Code, OpenAI Codex, and any Agent Skills compatible tool. metadata: author: feast-dev version: "1.0" ---
-
Symlinks: The
.claude/skills/Agent-Skilland.cursor/Agent-Skillfiles are symlinks to the main skill. With theskills/directory convention, these aren't needed -- agents discover skills fromskills/directly.
These are suggestions, not blockers. The content itself is solid.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Inverted default value logic in _construct_random_input for singleton vs batch mode (sdk/python/feast/on_demand_feature_view.py:1014)
In _construct_random_input, the default value for missing types has its condition inverted. When singleton=False (batch mode), sample_values contains lists (e.g., ["hello world"]), but default_value is set to None (a scalar). When singleton=True, sample_values contains scalars (e.g., "hello world"), but default_value is set to [None] (a list).
Root Cause
The condition on line 1014 reads:
default_value = None if not singleton else [None]This produces:
singleton=False→default_value = None(should be[None]to match list-based sample values)singleton=True→default_value = [None](should beNoneto match scalar sample values)
The condition is backwards. Lines 1010-1011 show that when singleton=True, sample_values are converted to scalars via {k: v[0] for k, v in sample_values.items()}. So the default should also be a scalar (None) for singleton and a list ([None]) for non-singleton.
Impact: When a feature's ValueType is not found in the sample values map (e.g., an unusual or custom type), the wrong shape of default value is used. In batch mode, a None scalar is passed where a list is expected, potentially causing transformation inference (infer_features) to fail or produce incorrect results. In singleton mode, a [None] list is passed where a scalar is expected.
View 9 additional findings in Devin Review.
bdc9c1b to
a371425
Compare
Signed-off-by: Chaitany patel <[email protected]>
3c95a70 to
b1b9110
Compare
* feat: add Claude Code agent skills for Feast Add two agent skills following the anthropics/skills SKILL.md format: - feast-dev: Development guide for contributors covering setup, testing, linting, code style, project structure, and key abstractions - feast-feature-engineering: User-facing guide for building feature stores covering feature definitions, materialization, online/offline retrieval, on-demand transformations, and CLI reference Closes #5976 Signed-off-by: Sagar Gupta <[email protected]> * refactor: move skills to top-level dir, add Agent Skills spec compatibility - Move from .claude/skills/ to skills/ for platform-agnostic placement - Add license, compatibility, and metadata fields per agentskills.io spec - Skills now work with Claude Code, OpenAI Codex, and any Agent Skills compatible tool Addresses feedback from @franciscojavierarceo regarding OpenAI compatibility. Signed-off-by: Sagar Gupta <[email protected]> * refactor: scope to dev/contributor skill only Remove feast-feature-engineering skill to avoid overlap with #6007 which covers user-facing content more comprehensively. This PR now focuses exclusively on the developer/contributor workflow skill. Signed-off-by: Sagar Gupta <[email protected]> * fix: align commands with Makefile and CLAUDE.md Address Devin Review findings: - Use make install-python-dependencies-dev instead of uv pip install - Remove nonexistent start-local-integration-tests target - Fix type-check command to cd sdk/python && python -m mypy feast - Add make test-python-unit-fast and make precommit-check targets Signed-off-by: Sagar Gupta <[email protected]> * fix: correct test file path to test_unit_feature_store.py Address Devin Review finding: the example pytest commands referenced test_feature_store.py which doesn't exist. The actual file is test_unit_feature_store.py. Also use -k flag for test name filtering instead of :: class notation. Signed-off-by: Sagar Gupta <[email protected]> * fix: correct CLI entry point path to cli/cli.py Signed-off-by: Sagar Gupta <[email protected]> --------- Signed-off-by: Sagar Gupta <[email protected]>
Added Agent Skills for the feast user Signed-off-by: Chaitany patel <[email protected]> Signed-off-by: aaronzuo <[email protected]>
* feat: add Claude Code agent skills for Feast Add two agent skills following the anthropics/skills SKILL.md format: - feast-dev: Development guide for contributors covering setup, testing, linting, code style, project structure, and key abstractions - feast-feature-engineering: User-facing guide for building feature stores covering feature definitions, materialization, online/offline retrieval, on-demand transformations, and CLI reference Closes feast-dev#5976 Signed-off-by: Sagar Gupta <[email protected]> * refactor: move skills to top-level dir, add Agent Skills spec compatibility - Move from .claude/skills/ to skills/ for platform-agnostic placement - Add license, compatibility, and metadata fields per agentskills.io spec - Skills now work with Claude Code, OpenAI Codex, and any Agent Skills compatible tool Addresses feedback from @franciscojavierarceo regarding OpenAI compatibility. Signed-off-by: Sagar Gupta <[email protected]> * refactor: scope to dev/contributor skill only Remove feast-feature-engineering skill to avoid overlap with feast-dev#6007 which covers user-facing content more comprehensively. This PR now focuses exclusively on the developer/contributor workflow skill. Signed-off-by: Sagar Gupta <[email protected]> * fix: align commands with Makefile and CLAUDE.md Address Devin Review findings: - Use make install-python-dependencies-dev instead of uv pip install - Remove nonexistent start-local-integration-tests target - Fix type-check command to cd sdk/python && python -m mypy feast - Add make test-python-unit-fast and make precommit-check targets Signed-off-by: Sagar Gupta <[email protected]> * fix: correct test file path to test_unit_feature_store.py Address Devin Review finding: the example pytest commands referenced test_feature_store.py which doesn't exist. The actual file is test_unit_feature_store.py. Also use -k flag for test name filtering instead of :: class notation. Signed-off-by: Sagar Gupta <[email protected]> * fix: correct CLI entry point path to cli/cli.py Signed-off-by: Sagar Gupta <[email protected]> --------- Signed-off-by: Sagar Gupta <[email protected]> Signed-off-by: aaronzuo <[email protected]>
Added Agent Skills for the feast user Signed-off-by: Chaitany patel <[email protected]> Signed-off-by: Shizoqua <[email protected]>
* feat: add Claude Code agent skills for Feast Add two agent skills following the anthropics/skills SKILL.md format: - feast-dev: Development guide for contributors covering setup, testing, linting, code style, project structure, and key abstractions - feast-feature-engineering: User-facing guide for building feature stores covering feature definitions, materialization, online/offline retrieval, on-demand transformations, and CLI reference Closes feast-dev#5976 Signed-off-by: Sagar Gupta <[email protected]> * refactor: move skills to top-level dir, add Agent Skills spec compatibility - Move from .claude/skills/ to skills/ for platform-agnostic placement - Add license, compatibility, and metadata fields per agentskills.io spec - Skills now work with Claude Code, OpenAI Codex, and any Agent Skills compatible tool Addresses feedback from @franciscojavierarceo regarding OpenAI compatibility. Signed-off-by: Sagar Gupta <[email protected]> * refactor: scope to dev/contributor skill only Remove feast-feature-engineering skill to avoid overlap with feast-dev#6007 which covers user-facing content more comprehensively. This PR now focuses exclusively on the developer/contributor workflow skill. Signed-off-by: Sagar Gupta <[email protected]> * fix: align commands with Makefile and CLAUDE.md Address Devin Review findings: - Use make install-python-dependencies-dev instead of uv pip install - Remove nonexistent start-local-integration-tests target - Fix type-check command to cd sdk/python && python -m mypy feast - Add make test-python-unit-fast and make precommit-check targets Signed-off-by: Sagar Gupta <[email protected]> * fix: correct test file path to test_unit_feature_store.py Address Devin Review finding: the example pytest commands referenced test_feature_store.py which doesn't exist. The actual file is test_unit_feature_store.py. Also use -k flag for test name filtering instead of :: class notation. Signed-off-by: Sagar Gupta <[email protected]> * fix: correct CLI entry point path to cli/cli.py Signed-off-by: Sagar Gupta <[email protected]> --------- Signed-off-by: Sagar Gupta <[email protected]> Signed-off-by: Shizoqua <[email protected]>
Added Agent Skills for the feast user Signed-off-by: Chaitany patel <[email protected]> Signed-off-by: Aniket Paluskar <[email protected]>
* feat: add Claude Code agent skills for Feast Add two agent skills following the anthropics/skills SKILL.md format: - feast-dev: Development guide for contributors covering setup, testing, linting, code style, project structure, and key abstractions - feast-feature-engineering: User-facing guide for building feature stores covering feature definitions, materialization, online/offline retrieval, on-demand transformations, and CLI reference Closes feast-dev#5976 Signed-off-by: Sagar Gupta <[email protected]> * refactor: move skills to top-level dir, add Agent Skills spec compatibility - Move from .claude/skills/ to skills/ for platform-agnostic placement - Add license, compatibility, and metadata fields per agentskills.io spec - Skills now work with Claude Code, OpenAI Codex, and any Agent Skills compatible tool Addresses feedback from @franciscojavierarceo regarding OpenAI compatibility. Signed-off-by: Sagar Gupta <[email protected]> * refactor: scope to dev/contributor skill only Remove feast-feature-engineering skill to avoid overlap with feast-dev#6007 which covers user-facing content more comprehensively. This PR now focuses exclusively on the developer/contributor workflow skill. Signed-off-by: Sagar Gupta <[email protected]> * fix: align commands with Makefile and CLAUDE.md Address Devin Review findings: - Use make install-python-dependencies-dev instead of uv pip install - Remove nonexistent start-local-integration-tests target - Fix type-check command to cd sdk/python && python -m mypy feast - Add make test-python-unit-fast and make precommit-check targets Signed-off-by: Sagar Gupta <[email protected]> * fix: correct test file path to test_unit_feature_store.py Address Devin Review finding: the example pytest commands referenced test_feature_store.py which doesn't exist. The actual file is test_unit_feature_store.py. Also use -k flag for test name filtering instead of :: class notation. Signed-off-by: Sagar Gupta <[email protected]> * fix: correct CLI entry point path to cli/cli.py Signed-off-by: Sagar Gupta <[email protected]> --------- Signed-off-by: Sagar Gupta <[email protected]> Signed-off-by: Aniket Paluskar <[email protected]>
Added Agent Skills for the feast user Signed-off-by: Chaitany patel <[email protected]> Signed-off-by: yuanjun220 <[email protected]>
* feat: add Claude Code agent skills for Feast Add two agent skills following the anthropics/skills SKILL.md format: - feast-dev: Development guide for contributors covering setup, testing, linting, code style, project structure, and key abstractions - feast-feature-engineering: User-facing guide for building feature stores covering feature definitions, materialization, online/offline retrieval, on-demand transformations, and CLI reference Closes feast-dev#5976 Signed-off-by: Sagar Gupta <[email protected]> * refactor: move skills to top-level dir, add Agent Skills spec compatibility - Move from .claude/skills/ to skills/ for platform-agnostic placement - Add license, compatibility, and metadata fields per agentskills.io spec - Skills now work with Claude Code, OpenAI Codex, and any Agent Skills compatible tool Addresses feedback from @franciscojavierarceo regarding OpenAI compatibility. Signed-off-by: Sagar Gupta <[email protected]> * refactor: scope to dev/contributor skill only Remove feast-feature-engineering skill to avoid overlap with feast-dev#6007 which covers user-facing content more comprehensively. This PR now focuses exclusively on the developer/contributor workflow skill. Signed-off-by: Sagar Gupta <[email protected]> * fix: align commands with Makefile and CLAUDE.md Address Devin Review findings: - Use make install-python-dependencies-dev instead of uv pip install - Remove nonexistent start-local-integration-tests target - Fix type-check command to cd sdk/python && python -m mypy feast - Add make test-python-unit-fast and make precommit-check targets Signed-off-by: Sagar Gupta <[email protected]> * fix: correct test file path to test_unit_feature_store.py Address Devin Review finding: the example pytest commands referenced test_feature_store.py which doesn't exist. The actual file is test_unit_feature_store.py. Also use -k flag for test name filtering instead of :: class notation. Signed-off-by: Sagar Gupta <[email protected]> * fix: correct CLI entry point path to cli/cli.py Signed-off-by: Sagar Gupta <[email protected]> --------- Signed-off-by: Sagar Gupta <[email protected]> Signed-off-by: yuanjun220 <[email protected]>
# [0.61.0](v0.60.0...v0.61.0) (2026-04-07) ### Bug Fixes * Add grpcio dependency group to transformation server Dockerfile ([2c2150a](2c2150a)) * Add https readiness check for rest-registry tests ([ea85e63](ea85e63)) * Add website build check for PRs and fix blog frontmatter YAML error ([#6079](#6079)) ([30a3a43](30a3a43)) * Added missing jackc/pgx/v5 entries ([94ad0e7](94ad0e7)) * Added MLflow metric charts across feature selection ([#6080](#6080)) ([a403361](a403361)) * Check duplicate names for feature view across types ([#5999](#5999)) ([95b9af8](95b9af8)) * Fix integration tests ([#6046](#6046)) ([02d5548](02d5548)) * Fix missing error handling for resource_counts endpoint ([d9706ce](d9706ce)) * Fix non-specific label selector on metrics service ([a1a160d](a1a160d)) * fix path feature_definitions.py ([7d7df68](7d7df68)) * Fix regstry Rest API tests intermittent failure ([d53a339](d53a339)) * Fixed IntegrityError on SqlRegistry ([#6047](#6047)) ([325e148](325e148)) * Fixed intermittent failures in get_historical_features ([c335ec7](c335ec7)) * Fixed pre-commit check ([114b7db](114b7db)) * Fixed the intermittent FeatureViewNotFoundException ([661ecc7](661ecc7)) * Fixed uv cache permission error for docker build on mac ([ad807be](ad807be)) * Fixes a `PydanticDeprecatedSince20` warning for trino_offline_store ([#5991](#5991)) ([abfd18a](abfd18a)) * Handle existing RBAC role gracefully in namespace registry ([b46a62b](b46a62b)) * Ignore ipynb files during apply ([#6151](#6151)) ([4ea123d](4ea123d)) * Integration test failures ([#6040](#6040)) ([9165870](9165870)) * Mount TLS volumes for init container ([080a9b5](080a9b5)) * **postgres:** Use end_date in synthetic entity_df for non-entity retrieval ([#6110](#6110)) ([088a802](088a802)), closes [#6066](#6066) * Ray offline store tests are duplicated across 3 workflows ([54f705a](54f705a)) * Reenable tests ([#6036](#6036)) ([82ee7f8](82ee7f8)) * SSL/TLS mode by default for postgres connection ([4844488](4844488)) * Use commitlint pre-commit hook instead of a separate action ([35a81e7](35a81e7)) ### Features * Add Claude Code agent skills for Feast ([#6081](#6081)) ([1e5b60f](1e5b60f)), closes [#5976](#5976) [#6007](#6007) * Add complex type support (Map, JSON, Struct) with schema validation ([#5974](#5974)) ([1200dbf](1200dbf)) * Add decimal to supported feature types ([#6029](#6029)) ([#6226](#6226)) ([cff6fbf](cff6fbf)) * Add feast apply init container to automate registry population on pod start ([#6106](#6106)) ([6b31a43](6b31a43)) * Add feature view versioning support to PostgreSQL and MySQL online stores ([#6193](#6193)) ([940e0f0](940e0f0)), closes [#6168](#6168) [#6169](#6169) [#2728](#2728) * Add materialization, feature freshness, request latency, and push metrics to feature server ([2c6be18](2c6be18)) * Add metadata statistics to registry api ([ef1d4fc](ef1d4fc)) * Add non-entity retrieval support for ClickHouse offline store ([4d08ddc](4d08ddc)), closes [#5835](#5835) * Add OnlineStore for MongoDB ([#6025](#6025)) ([bf4e3fa](bf4e3fa)), closes [golang/go#74462](golang/go#74462) * Add Oracle DB as Offline store in python sdk & operator ([#6017](#6017)) ([9d35368](9d35368)) * Add RBAC aggregation labels to FeatureStore ClusterRoles ([daf77c6](daf77c6)) * Add ServiceMonitor auto-generation for Prometheus discovery ([#6126](#6126)) ([56e6d21](56e6d21)) * Add typed_features field to grpc write request (([#6117](#6117)) ([#6118](#6118)) ([eeaa6db](eeaa6db)), closes [#6116](#6116) * Add UUID and TIME_UUID as feature types ([#5885](#5885)) ([#5951](#5951)) ([5d6e311](5d6e311)) * Add version indicators to lineage graph nodes ([#6187](#6187)) ([73805d3](73805d3)) * Add version tracking to FeatureView ([#6101](#6101)) ([ed4a4f2](ed4a4f2)) * Added Agent skills for AI Agents ([#6007](#6007)) ([99008c8](99008c8)) * Added CodeQL SAST scanning and detect-secrets pre-commit hook ([547b516](547b516)) * Added odfv transformations metrics ([8b5a526](8b5a526)) * Adding optional name to Aggregation (feast-dev[#5994](#5994)) ([#6083](#6083)) ([56469f7](56469f7)) * Created DocEmbedder class ([#5973](#5973)) ([0719c06](0719c06)) * Extended OIDC support to extract groups & namespaces and token injection with multiple methods ([#6089](#6089)) ([7c04026](7c04026)) * Feature Server High-Availability on Kubernetes ([#6028](#6028)) ([9c07b4c](9c07b4c)), closes [Hi#Availability](https://github.com/Hi/issues/Availability) [Hi#Availability](https://github.com/Hi/issues/Availability) * **go:** Implement metrics and tracing for http and grpc servers ([#5925](#5925)) ([2b4ec9a](2b4ec9a)) * Horizontal scaling support to the Feast operator ([#6000](#6000)) ([3ec13e6](3ec13e6)) * Making feature view source optional (feast-dev[#6074](#6074)) ([#6075](#6075)) ([76917b7](76917b7)) * Replace ORJSONResponse with Pydantic response models for faster JSON serialization ([65cf03c](65cf03c)) * Support arm docker build ([#6061](#6061)) ([1e1f5d9](1e1f5d9)) * Support distinct count aggregation [[#6116](#6116)] ([3639570](3639570)) * Support HTTP in MCP ([#6109](#6109)) ([e72b983](e72b983)) * Support nested collection types (Array/Set of Array/Set) ([#5947](#5947)) ([#6132](#6132)) ([ab61642](ab61642)) * Support podAnnotations on Deployment pod template ([1b3cdc1](1b3cdc1)) * Use orjson for faster JSON serialization in feature server ([6f5203a](6f5203a)) * Utilize date partition column in BigQuery ([#6076](#6076)) ([4ea9b32](4ea9b32)) ### Performance Improvements * Online feature response construction in a single pass over read rows ([113fb04](113fb04)) * Optimize protobuf parsing in Redis online store ([#6023](#6023)) ([59dfdb8](59dfdb8)) * Optimize timestamp conversion in _convert_rows_to_protobuf ([33a2e95](33a2e95)) * Parallelize DynamoDB batch reads in sync online_read ([#6024](#6024)) ([9699944](9699944)) * Remove redundant entity key serialization in online_read ([d87283f](d87283f))
# [0.62.0](v0.61.0...v0.62.0) (2026-04-08) ### Bug Fixes * Added missing jackc/pgx/v5 entries ([94ad0e7](94ad0e7)) * Fix missing error handling for resource_counts endpoint ([d9706ce](d9706ce)) * fix path feature_definitions.py ([7d7df68](7d7df68)) * Fix regstry Rest API tests intermittent failure ([d53a339](d53a339)) * Fixed intermittent failures in get_historical_features ([c335ec7](c335ec7)) * Fixed the intermittent FeatureViewNotFoundException ([661ecc7](661ecc7)) * Handle existing RBAC role gracefully in namespace registry ([b46a62b](b46a62b)) * Ignore ipynb files during apply ([#6151](#6151)) ([4ea123d](4ea123d)) * Mount TLS volumes for init container ([080a9b5](080a9b5)) * **postgres:** Use end_date in synthetic entity_df for non-entity retrieval ([#6110](#6110)) ([088a802](088a802)), closes [#6066](#6066) * SSL/TLS mode by default for postgres connection ([4844488](4844488)) * Sync v0.61-branch so v0.61.0 tag is reachable from master ([af66878](af66878)) ### Features * Add Claude Code agent skills for Feast ([#6081](#6081)) ([1e5b60f](1e5b60f)), closes [#5976](#5976) [#6007](#6007) * Add decimal to supported feature types ([#6029](#6029)) ([#6226](#6226)) ([cff6fbf](cff6fbf)) * Add feast apply init container to automate registry population on pod start ([#6106](#6106)) ([6b31a43](6b31a43)) * Add feature view versioning support to PostgreSQL and MySQL online stores ([#6193](#6193)) ([940e0f0](940e0f0)), closes [#6168](#6168) [#6169](#6169) [#2728](#2728) * Add metadata statistics to registry api ([ef1d4fc](ef1d4fc)) * Add Oracle DB as Offline store in python sdk & operator ([#6017](#6017)) ([9d35368](9d35368)) * Add RBAC aggregation labels to FeatureStore ClusterRoles ([daf77c6](daf77c6)) * Add ServiceMonitor auto-generation for Prometheus discovery ([#6126](#6126)) ([56e6d21](56e6d21)) * Add typed_features field to grpc write request (([#6117](#6117)) ([#6118](#6118)) ([eeaa6db](eeaa6db)), closes [#6116](#6116) * Add UUID and TIME_UUID as feature types ([#5885](#5885)) ([#5951](#5951)) ([5d6e311](5d6e311)) * Add version indicators to lineage graph nodes ([#6187](#6187)) ([73805d3](73805d3)) * Add version tracking to FeatureView ([#6101](#6101)) ([ed4a4f2](ed4a4f2)) * Added Agent skills for AI Agents ([#6007](#6007)) ([99008c8](99008c8)) * Added odfv transformations metrics ([8b5a526](8b5a526)) * Created DocEmbedder class ([#5973](#5973)) ([0719c06](0719c06)) * Extended OIDC support to extract groups & namespaces and token injection with multiple methods ([#6089](#6089)) ([7c04026](7c04026)) * Replace ORJSONResponse with Pydantic response models for faster JSON serialization ([65cf03c](65cf03c)) * Support distinct count aggregation [[#6116](#6116)] ([3639570](3639570)) * Support HTTP in MCP ([#6109](#6109)) ([e72b983](e72b983)) * Support nested collection types (Array/Set of Array/Set) ([#5947](#5947)) ([#6132](#6132)) ([ab61642](ab61642)) * Support podAnnotations on Deployment pod template ([1b3cdc1](1b3cdc1)) * Utilize date partition column in BigQuery ([#6076](#6076)) ([4ea9b32](4ea9b32)) ### Performance Improvements * Online feature response construction in a single pass over read rows ([113fb04](113fb04))
What this PR does / why we need it:
This PR adds the SKILLS for the AI Agents.
Which issue(s) this PR fixes:
#5976
Misc
For creating this Agent SKILLS i used the skill-creator skill from the https://github.com/anthropics/skills