create-entity | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / create-entity

create-entity

maintained by Dev-Int

star 0 account_tree 0 verified_user MIT License
bolt View GitHub

name: create-entity description: Create a new immutable domain entity following DDD patterns. Use when user needs to create a new business entity with domain logic, value objects, and behavior methods. Generates entity class with private constructor, static factory, and domain methods.

Create Entity

Generate immutable domain entity following DDD patterns.


When to Use

  • New business entity
  • Domain model in BC
  • Aggregate root
  • Entity with domain behavior

Inputs/Outputs

Input Example Output
bc Admin BC/Entities/EntityName.php
entity Article -
fields ['uuid' => 'ResourceUuid', 'name' => 'NameField'] -
behaviors ['rename', 'activate'] -

Process

Step Action
Create Use template: entity.php.tpl
Validate make cs-fixer && make stan

Structure

Entity (final, private constructor, static factory):

final class EntityName {
    private function __construct(
        private ResourceUuid $uuid,
        private NameField $name,
    ) {}

    public static function create(string $name): self {
        return new self(ResourceUuid::generate(), NameField::fromString($name));
    }

    public function uuid(): ResourceUuid { return $this->uuid; }
    public function name(): NameField { return $this->name; }

    public function rename(string $name): void {
        $this->name = NameField::fromString($name);
    }
}

See: docs/GLOSSARY.md#entity for detailed definition


Rules

Class Structure:

  • final class, private constructor
  • Static factory: create(), createFrom*(), reconstitute()
  • No public properties, no setters

Methods:

  • Getters return Value Objects: name() (not getName())
  • Behaviors modify state: rename(), activate(), deactivate()
  • Validate in behaviors, encapsulate business rules

Value Objects:

  • Use existing VOs: Shared\Entities\VO\ (ResourceUuid, NameField, EmailField, PriceField)
  • Create new VO if needed (skill: create-value-object)

Templates

  • entity.php.tpl

Location: .claude/templates/


References

  • Entity definition: docs/GLOSSARY.md#entity
  • Entity pattern: docs/QUICK_REF.md#entity-pattern
  • Architecture: docs/architecture.md#entity

Related Skills

  • create-value-object - Create new Value Object
  • create-use-case - Create use case using entity
  • create-repository - Create repository for entity

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 0
GitHub Forks 0
Created Jan 2026
Last Updated il y a 5 mois
tools tools architecture patterns

Related Skills

dagger-design-proposals
chevron_right
nestjs-expert
chevron_right
docker-expert
chevron_right
kafka-streams-topology
chevron_right
kafka-architecture
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.