en un clic
add-storage
Step-by-step guide for adding a new storage backend
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Step-by-step guide for adding a new storage backend
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Guided workflow for adding a new storage backend
Run all quality checks in sequence (lint, mypy, bandit, tests)
Run full linting and type checking suite
Run project tests (unit or all)
Run all linting checks (ruff format, ruff check, codespell)
Review code changes for quality, security, and project conventions
| name | add-storage |
| description | Step-by-step guide for adding a new storage backend |
| tags | ["architecture","implementation"] |
Create implementation directory:
src/jobify_db/_internal/{db}/{driver}/__init__.py
src/jobify_db/_internal/{db}/{driver}/storage.py
src/jobify_db/_internal/{db}/{driver}/queries.py
Create shared queries if needed:
src/jobify_db/_internal/{db}/queries.py # DDL (CREATE TABLE), SELECT
Create public re-export:
# src/jobify_db/{db}/{driver}.py
from jobify_db._internal.{db}.{driver}.storage import {Driver}Storage
__all__ = ["{Driver}Storage"]
Add empty __init__.py for public subpackage src/jobify_db/{db}/__init__.py
Add optional dependency in pyproject.toml under [project.optional-dependencies]
Storage class requirements:
Storage, use @override on all protocol methods__init___owns_pool = pool is None to track ownershippool/client property raises StorageNotInitializedError if Nonestartup() creates pool if needed + runs DDLshutdown() closes pool ONLY if _owns_pool is TrueAdd mock factory to tests/factories.py if the driver has complex mock setup
Add unit tests: tests/unit/test_{driver}_storage.py
Add fixtures to tests/integration/conftest.py, append fixture names to storage/storage_from_external params in tests/integration/test_storage.py
Add 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