Template Creation: Install ckanext-toolbelt v0.4.21+ with ‘pip install -U ckanext-toolbelt’. Generate extension with ‘ctb make ckanext extended’ (interactive) or ‘ctb make ckanext extended my-ext -d’ (default answers). Installation: cd ckanext-my-ext/, pip install -e ‘.[dev]’, git init, pre-commit install. Optional CKAN Setup: make prepare, make full-upgrade develop=1, ckan generate config default.ini, ckan generate config ckan.ini, ln -snf ckanext-my-ext/config/* ./, create SOLR core, create DB, apply migrations: ckan db upgrade && ckan db pending-migrations –apply. Documentation Server: mkdocs serve (available at localhost:8000). Configuration Pattern: 3-layer system - default.ini (CKAN defaults), project.ini (project-specific safe settings), ckan.ini (environment-specific secrets). Blanket Decorators: Automatic registration - @tk.blanket.actions for logic/action.py, @tk.blanket.auth_functions for logic/auth.py, @tk.blanket.blueprints for views.py, @tk.blanket.cli for cli.py, @tk.blanket.config_declarations for config_declaration.yaml, @tk.blanket.helpers for helpers.py, @tk.blanket.validators for logic/validators.py. Complex Interfaces: Create implementations/ modules following interface name pattern (IPackageController → implementations/package_controller.py). Git Hooks: pre-commit install (end-of-file-fixer, trailing-whitespace, ruff, ruff-format), optional security: gitleaks, talisman. Asset Building: npm ci, npm run dev (watch mode), npm run build (production). Type Checking: npx pyright or make typecheck. Code Style: ruff check ., ruff check –fix ., ruff format .. Testing: pytest (all), pytest –cov=ckanext.sk_demo (coverage), pytest -m benchmark (benchmarks), pytest –lf (last failed), pytest -x (stop on first fail). E2E Testing: make test-server (separate terminal), npx cypress run (headless), npx cypress open (interactive). CDM Dependency Management: make prepare (initialize), make full-upgrade (install all), make full-upgrade develop=1 (with dev deps), make ckan-sync ckan-install (CKAN only), make sync install (extensions only), make sync-NAME install-NAME (single extension), make full-upgrade alternative=dev (alternative versions). Included Extensions Config: See README sections for admin-panel, cloudstorage, collection, comments, dcat, editable-config, files, flakes, geoview, googleanalytics, harvest, hierarchy, let-me-in, officedocs, or-facet, pdfview, pygments, resource-indexer, saml, scheming, syndicate, search-tweaks, spatial, toolbelt, unfold, vip-portal, xloader. Dependencies: typing_extensions, pyyaml. Python 3.9+ required. This is a TEMPLATE for creating extensions, not a standalone functional extension.