copilot-instructions domain-driven-design.instructions.md

copilot-instructions domain-driven-design.instructions.md is an instructions file for GitHub Copilot from duthaho/copilot-instructions. It costs 1,775 tokens per session, scanned A, original, MIT.

A set of Python design guidelines based on Domain-Driven Design, an approach that organizes code around the real business concepts and rules of an application.

In plain words
What is it for?
Use it when designing Python entities, value objects, and other parts of a domain model.
Why use it?
It gives business logic a clear home and separates objects with identity from simple values, making complex Python code easier to understand and change.

Instructions file for GitHub Copilot

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/duthaho/copilot-instructions/domain-driven-design
Clone the repo
git clone --depth 1 https://github.com/duthaho/copilot-instructions

Made for: GitHub Copilot.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for copilot-instructions domain-driven-design.instructions.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/duthaho/copilot-instructions/domain-driven-design.svg)](https://agentmods.dev/instructions/duthaho/copilot-instructions/domain-driven-design)
Your own site
<a href="https://agentmods.dev/instructions/duthaho/copilot-instructions/domain-driven-design"><img src="https://agentmods.dev/badge/instructions/duthaho/copilot-instructions/domain-driven-design.svg" alt="Measured on agentmods" height="20"></a>
Per session 1,775 This file is loaded in full into every session.
When invoked 1,775 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01775 $0.01775
Opus 5 $0.00888 $0.00888
Sonnet 5 $0.00355 $0.00355
Haiku 4.5 $0.00178 $0.00178

Measured 4d ago against content hash 2c6d549e5a95, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

copilot-instructions domain-driven-design.instructions.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.github/instructions/domain-driven-design.instructions.md · 313 lines

How it starts

The opening of the file, as written. The whole thing — 313 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Domain-Driven Design Instructions

Overview

This instruction file enforces Domain-Driven Design (DDD) tactical patterns in Python projects.

Building Blocks

1. Entities

Objects with a distinct identity that persists over time.

from dataclasses import dataclass
from typing import List
from uuid import UUID, uuid4

@dataclass
class Customer:
    id: UUID
    email: str
    name: str
    _version: int = 0

    @classmethod
    def create(cls, email: str, name: str) -> 'Customer':
        """Factory method for entity creation"""
        return cls(id=uuid4(), email=email, name=name)

    def change_email(self, new_email: str) -> None:
        """Domain behavior"""
        if '@' not in new_email:
            raise ValueError("Invalid email format")
        self.email = new_email
        self._version += 1

2. Value Objects

Immutable objects defined by their attributes, not identity.

from dataclasses import dataclass
from typing import Self

@dataclass(frozen=True)
class Money:
    amount: float
    currency: str

    def __post_init__(self):
        if self.amount < 0:
            raise ValueError("Amount cannot be negative")
        if not self.currency:
            raise ValueError("Currency is required")

    def add(self, other: 'Money') -> 'Money':
        if self.currency != other.currency:
            raise ValueError("Cannot add different currencies")
        return Money(self.amount + other.amount, self.currency)

    def multiply(self, factor: float) -> 'Money':
        return Money(self.amount * factor, self.currency)

3. Aggregates

A cluster of entities and value objects with a root entity.

from dataclasses import dataclass, field
from typing import List
from datetime import datetime

@dataclass
class OrderItem:
    product_id: str
    quantity: int
    price: Money

@dataclass
class Order:
    """Aggregate Root"""
    id: UUID
    customer_id: UUID
    items: List[OrderItem] = field(default_factory=list)
    status: str = "PENDING"
    created_at: datetime = field(default_factory=datetime.utcnow)

    def add_item(self, product_id: str, quantity: int, price: Money) -> None:
        """Business invariant: can't modify confirmed orders"""
        if self.status != "PENDING":
            raise ValueError("Cannot modify confirmed order")

        # Check if item exists, update quantity
        for item in self.items:
            if item.product_id == product_id:
                item.quantity += quantity
                return

        self.items.append(OrderItem(product_id, quantity, price))

    def confirm(self) -> None:
        """State transition with validation"""
        if not self.items:
            raise ValueError("Cannot confirm empty order")
        if self.status != "PENDING":
            raise ValueError("Order already confirmed")
        self.status = "CONFIRMED"

    def calculate_total(self) -> Money:
        """Aggregate consistency"""
        if not self.items:
            return Money(0, "USD")

        total = self.items[0].price.multiply(self.items[0].quantity)
        for item in self.items[1:]:
            total = total.add(item.price.multiply(item.quantity))
        return total

Read the full file on GitHub · 313 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 313 lines · 1,775 tokens per session scan A 2c6d549e5a95

Subscribe to this mod's changes

copilot-instructions domain-driven-design.instructions.md is an instructions file published in the GitHub repository duthaho/copilot-instructions (7 stars, last pushed 10mo ago), licensed MIT. It adds 1,775 tokens to every session, about $0.0089 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

copilot-instructions copilot-instructions.md

Instructions for SebastienDegodez/copilot-instructions, covering copilot instructions, language policy, development code generation and workflow implementation.

SebastienDegodez/copilot-instructions · 364 tokens

apex-accelerator python.instructions.md

Python coding conventions for diagram generation, MCP servers, and tooling scripts.

jonathan-vella/apex-accelerator · 559 tokens

fastify-boilerplate AGENTS.md

AGENTS.md instructions for marcoturi/fastify-boilerplate, covering agents.md, project overview, quick reference, architecture and layer boundaries (critical).

marcoturi/fastify-boilerplate · 2,747 tokens

squad copilot-instructions.md

Copilot instructions for bradygaster/squad, covering copilot coding agent — squad instructions, ⚠️ identity lock — read this first, 🚦 route before you act — generic copilot sessions, adversarial input handling and team context.

bradygaster/squad · 1,349 tokens

vscode-unify-chat-provider AGENTS.md

Instructions for smallmain/vscode-unify-chat-provider, a project described as: Integrate multiple LLM API providers into VS Code's GitHub Copilot Chat using the Language Model API. One-click use of your Claude Code, Gemini CLI, Antigravity, Github Copilot, OpenAI Codex (ChatGPT Plus/Pro), xAI Grok (SuperGrok / X…

smallmain/vscode-unify-chat-provider · 271 tokens

apex-accelerator agent-skills.instructions.md

Guidelines for creating high-quality Agent Skills for GitHub Copilot.

jonathan-vella/apex-accelerator · 1,962 tokens