name: adding-subpackage description: Use when adding a new subpackage under back/core/, back/objects/, or agents/ — e.g. a new graph DB engine, W3C parser, industry importer, reasoning module, or domain class. Enforces the checklist defined in .cursor/07-project-conventions.mdc.
Adding a new subpackage
The canonical 8-step checklist lives in .cursor/07-project-conventions.mdc §Adding a New Subpackage Checklist. The reference patterns to imitate live
in the same file under §Subpackage Patterns (reference). Read both
first; this skill only sequences the work and acts as a parent-selector.
Choose the parent
| Need | Parent |
|---|---|
| Talks to Databricks/Delta/UC, parses W3C, runs reasoning, etc. | back/core/ |
| Owns business logic for a domain concept (Ontology, Mapping, …) | back/objects/ |
| Wraps an LLM-driven engine | agents/ |
If unsure, default to back/core/ and lift to back/objects/ only when
state or session-awareness justifies it.
Procedure
- Pick the parent (table above).
- Walk the 8 steps from
.cursor/07 §Adding a New Subpackage Checklist. Tick each off in a TodoWrite. - Pick the closest reference pattern from
.cursor/07 §Subpackage Patternsand imitate its layout (e.g. graph DB engine →back/core/graphdb/). - Update Sphinx (
docs/sphinx/api/<pkg>.rst+ parent toctree, thenscripts/build_docs.sh). - Run tests.
- Run the
changelogskill.
Don't
- Don't split a class across files.
- Don't put HTTP/FastAPI types in
back/core/. - Don't put
Request/Responseinback/objects/. - Don't import from internal modules outside the package — always import from the package (
.cursor/07 §__init__.py Conventions). - Don't skip the Sphinx page —
make docswarnings will fail review.