| name | add-storage |
| description | Guided workflow for adding a new storage backend |
| user-invocable | true |
| argument-hint | <db> <driver> |
| agent | storage-architect |
| context | fork |
Add a new storage backend to jobify-db.
Arguments: $ARGUMENTS (e.g., "redis aioredis" or "sqlite aiosqlite")
Checklist
- Create
src/jobify_db/_internal/{db}/{driver}/ with __init__.py, storage.py, queries.py
- Shared DDL in
src/jobify_db/_internal/{db}/queries.py if needed
- Public re-export:
src/jobify_db/{db}/{driver}.py + empty src/jobify_db/{db}/__init__.py
- Optional dep in
pyproject.toml [project.optional-dependencies]
- Storage class implementing full
Storage protocol with @override decorators
- Mock factory in
tests/factories.py if needed
- Unit tests:
tests/unit/test_{driver}_storage.py
- Integration fixtures in
tests/integration/conftest.py
- Append to
storage/storage_from_external params in tests/integration/test_storage.py
- Examples:
examples/{driver}_example.py, examples/{driver}_external_pool_example.py
- Update:
README.md, noxfile.py, CLAUDE.md, AGENTS.md, QWEN.md
- Verify:
just lint && just mypy && uv run --active --frozen pytest tests/unit/ -q