architecting-django

Organize Django projects with hexagonal adapters and a service layer.

Updated Feb 12, 2026
One-click install
npx skills add https://github.com/nicolaei/claude-plugins --skill architecting-django
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: architecting-django
Source: https://github.com/nicolaei/claude-plugins/tree/main/programmer/skills/architecting-django
Command: npx skills add https://github.com/nicolaei/claude-plugins --skill architecting-django

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This guide provides a structured approach to building Django projects using Active Record-inspired models, hexagonal adapters, and a service layer, enabling clean separation of concerns and easy adapter integration for NetBox plugins.

Core Features & Use Cases

  • Hexagonal adapters isolate external boundaries and simplify testing
  • Settings-based dependency injection for adapters and services
  • Clear separation of queries and commands at the model/service boundary
  • Guidelines for organizing Django apps and NetBox plugin projects with scalable architecture

Quick Start

Outline a Django project structure following an Active Record-inspired approach, then map adapters for external systems.

Frequently Asked Questions about architecting-django

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Django app with hexagonal architecture and a service layer?

Structure a Django app with hexagonal architecture by isolating external boundaries with adapters, separating queries from commands at the service layer, and using settings-driven dependency injection to load modules. This enforces Active Record style modeling while keeping core logic testable.

What is the best way to isolate external dependencies in Django for testing?

The best way to isolate external dependencies in Django is by using hexagonal adapters. They decouple external systems from your core logic, allowing you to inject mock adapters via settings during testing to ensure clean separation of concerns.

Can I use hexagonal architecture and dependency injection for NetBox plugin development?

Yes, you can apply hexagonal architecture and dependency injection to NetBox plugin development. The same Active Record-inspired models, service layers, and settings-driven adapter loading ensure scalable architecture and clean testability across plugin modules.

How does settings-driven dependency injection work for Django adapters?

Settings-driven dependency injection for Django adapters works by loading adapter implementations dynamically from project settings. This mechanism allows you to swap external system integrations or mock services without modifying the core service layer logic.

When should I separate queries from commands in a Django service layer?

You should separate queries from commands in a Django service layer whenever you need clean architecture and strict separation of concerns. This Active Record-inspired boundary keeps read operations distinct from state-changing commands, simplifying adapter integration and testing.

Why use hexagonal adapters instead of standard Django models for external integrations?

Use hexagonal adapters instead of standard Django models to prevent external integrations from corrupting your domain logic. Adapters provide a clear boundary for external systems, enabling settings-driven dependency injection and making your service layer fully testable.