You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Add agent skills and Cursor/Claude rules for Feast development
Add tool-agnostic agent skills (compatible with Claude Code, Cursor,
OpenAI Codex, and similar AI tools):
- skills/feast-architecture/SKILL.md: internals of each component
(registry, provider, online/offline store, feature server, operator,
data flows, serialization)
- skills/feast-dev/SKILL.md: contributor workflow, setup, Docker, docs
- skills/feast-testing/SKILL.md: how to run and write tests
- skills/feast-user-guide/SKILL.md: using Feast as an end user
Add Cursor rules (.cursor/rules/) and Claude rules (.claude/rules/)
with symlinks to the shared skill files so each tool picks up the
same guidance automatically.
Update AGENTS.md to reference the new skills table and tighten the
command examples. Update .gitignore to track .claude rules/skills
while still ignoring ephemeral local-state files.
Signed-off-by: ntkathole <nikhilkathole2683@gmail.com>
For testing patterns and debugging, also read `skills/feast-testing/SKILL.md`.
22
+
23
+
## When making any component change
24
+
25
+
-**Unit tests**: add or update tests in `sdk/python/tests/unit/infra/<subsystem>/`
26
+
-**Integration tests**: run `make test-python-integration-local`; add a universal test case in `sdk/python/tests/integration/` if the change affects retrieval or materialization behavior
27
+
-**Protos**: if you add a field to a proto message, recompile with `make protos` and update serialization helpers in `proto_registry_utils.py`
28
+
-**Both SDKs**: if the change affects online serving, check whether the Go server (`go/`) also needs updating
29
+
-**Skills/Rules**: if the change introduces new patterns, interfaces, or conventions that agents should follow, update the relevant section in `skills/feast-architecture/SKILL.md` (and `skills/feast-testing/SKILL.md` if testing patterns changed)
30
+
31
+
## Documentation — where to add/update
32
+
33
+
| Change type | Doc location | Also update |
34
+
|---|---|---|
35
+
| New **online store**|`docs/reference/online-stores/<name>.md` (copy an existing one as template) |`docs/reference/online-stores/README.md`, `docs/SUMMARY.md` (under "Online stores") |
36
+
| New **offline store**|`docs/reference/offline-stores/<name>.md`|`docs/reference/offline-stores/README.md`, `docs/reference/offline-stores/overview.md`, `docs/SUMMARY.md`|
37
+
| New **registry backend**|`docs/reference/registries/<name>.md`|`docs/SUMMARY.md`|
Skills and rules are only useful if they accurately reflect the real codebase. Before finalising any skill/rule edit:
12
+
13
+
**Verify against source code:**
14
+
- Command examples (lint, test, type-check) — confirm they still match `Makefile` targets and `pyproject.toml`
15
+
- File paths and class names — confirm they exist in the repo
16
+
- Interface signatures (e.g. `OnlineStore`, `OfflineStore`, `BaseRegistry`) — confirm against the actual base class files
17
+
- Config field names — confirm against `RepoConfig` and `FeastConfigBaseModel` subclasses in `sdk/python/feast/repo_config.py`
18
+
19
+
**Keep scope consistent:**
20
+
-`AGENTS.md` — entry point only; commands, skills table, code style. Max ~120 lines.
21
+
-`skills/feast-architecture/SKILL.md` — how each component works internally; data flows; adding new backends
22
+
-`skills/feast-testing/SKILL.md` — how to run, write, and debug tests
23
+
-`skills/feast-dev/SKILL.md` — contributor workflow; setup; Docker; docs locations; PR process
24
+
-`skills/feast-user-guide/SKILL.md` — how to use Feast as an end user; feature definitions; retrieval; RAG
25
+
-`.cursor/rules/feast-components.mdc` / `.claude/rules/feast-components.md` — component checklist (tests, docs, skills); keep in sync with each other
26
+
27
+
**Keep the two rule files in sync:**
28
+
`.cursor/rules/feast-components.mdc` and `.claude/rules/feast-components.md` contain the same content with only different frontmatter (`globs:` vs `paths:`). Any content change must be applied to both.
For testing patterns and debugging, also read `skills/feast-testing/SKILL.md`.
18
+
19
+
## When making any component change
20
+
21
+
- **Unit tests**: add or update tests in `sdk/python/tests/unit/infra/<subsystem>/`
22
+
- **Integration tests**: run `make test-python-integration-local`; add a universal test case in `sdk/python/tests/integration/` if the change affects retrieval or materialization behavior
23
+
- **Protos**: if you add a field to a proto message, recompile with `make protos` and update serialization helpers in `proto_registry_utils.py`
24
+
- **Both SDKs**: if the change affects online serving, check whether the Go server (`go/`) also needs updating
25
+
- **Skills/Rules**: if the change introduces new patterns, interfaces, or conventions that agents should follow, update the relevant section in `skills/feast-architecture/SKILL.md` (and `skills/feast-testing/SKILL.md` if testing patterns changed)
26
+
27
+
## Documentation — where to add/update
28
+
29
+
| Change type | Doc location | Also update |
30
+
|---|---|---|
31
+
| New **online store** | `docs/reference/online-stores/<name>.md` (copy an existing one as template) | `docs/reference/online-stores/README.md`, `docs/SUMMARY.md` (under "Online stores") |
- `skills/feast-user-guide/SKILL.md` — how to use Feast as an end user; feature definitions; retrieval; RAG
23
+
- `.cursor/rules/feast-components.mdc` / `.claude/rules/feast-components.md` — component checklist (tests, docs, skills); keep in sync with each other
24
+
25
+
**Keep the two rule files in sync:**
26
+
`.cursor/rules/feast-components.mdc` and `.claude/rules/feast-components.md` contain the same content with only different frontmatter (`globs:` vs `paths:`). Any content change must be applied to both.
|**feast-architecture**|`skills/feast-architecture/SKILL.md`| Understanding how each component works: registry, materialization, feature server, data flows |
0 commit comments