DO

domain-model-documentation

Standardized documentation and modeling of core hospitality domain entities like Guests, Rooms, and RoomTypes.

Install

mkdir -p .claude/skills/domain-model-documentation && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16843" && unzip -o skill.zip -d .claude/skills/domain-model-documentation && rm skill.zip

Installs to .claude/skills/domain-model-documentation

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use this skill when building or reviewing the domain model for the hotel/hostel management system. This includes defining entities, attributes, relationships, and enumerations based on hospitality domain expertise.
214 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Define Guest entities with attributes and relationships
  • Represent Room entities with attributes and relationships
  • Specify RoomType entities including pricing and occupancy
  • Model Bed entities within rooms
  • Structure Notes entities with severity levels
  • Define Reservation entities with booking details and statuses

How it works

This skill defines core entities like Guest, Room, and Reservation, detailing their attributes and relationships, and specifies enumerations for various classifications within a hospitality system.

Inputs & outputs

You give it
Request to build or review a domain model for a hotel/hostel management system
You get back
Structured documentation of entities, attributes, relationships, and enumerations

When to use domain-model-documentation

  • Defining database schema entities
  • Modeling guest relationships
  • Documenting room status and pricing logic
  • Structuring hostel management requirements

About this skill

Domain Model Documentation

Entities

Guest

Represents a guest in the hostel management system.

Attributes:

  • id: String - Unique identifier
  • firstName: String - Guest's first name
  • lastName: String - Guest's last name
  • email: String - Contact email address
  • phone: String - Contact phone number
  • dateOfBirth: LocalDate - Date of birth
  • notes: String - Additional notes about the guest
  • nationality: Nationality - Guest's nationality (enum)
  • documentNumber: String - Identification document number
  • documentType: DocumentType - Type of identification document (enum)
  • notes: Notes - Structured notes with severity levels

Relationships:

  • Has a Nationality (enumeration)
  • Has a DocumentType (enumeration)
  • Contains Notes entity (composition)
  • Referenced by Reservation as principal guest or in guest list

Room

Represents a physical room in the hostel.

Attributes:

  • id: String - Unique identifier
  • roomNumber: Integer - Room number
  • roomType: RoomType - Type/category of the room
  • roomStatus: RoomStatus - Current operational status (enum)
  • amenities: List<Amenity> - List of available amenities (enum)

Relationships:

  • Has one RoomType (composition)
  • Has one RoomStatus (enumeration)
  • Contains multiple Amenity (enumeration)
  • Contains multiple Bed entities (composition)
  • Referenced by Reservation

RoomType

Defines the category and pricing of rooms.

Attributes:

  • id: String - Unique identifier
  • name: String - Type name
  • description: String - Detailed description
  • maxOccupancy: int - Maximum number of guests
  • basePrice: BigDecimal - Base price per night

Relationships:

  • Composed by Room

Bed

Represents an individual bed within a room.

Attributes:

  • id: String - Unique identifier
  • bedNumber: Integer - Bed identifier within the room
  • room: Room - Reference to parent room

Relationships:

  • Belongs to one Room (aggregation)

Notes

Structured notes with severity classification.

Attributes:

  • id: String - Unique identifier
  • text: String - Note content
  • level: LevelNote - Severity/importance level (enum)

Relationships:

  • Has one LevelNote (composition)
  • Composed by Guest

Reservation

Represents a booking made by a guest.

Attributes:

  • id: String - Unique identifier
  • reservationCode: String - Unique reservation code
  • checkIn: LocalDate - Check-in date
  • checkOut: LocalDate - Check-out date
  • status: ReservationStatus - Current reservation status
  • quotedAmount: BigDecimal - Total quoted price
  • source: Source - Booking channel/source (enum)
  • createdAt: LocalDate - Reservation creation date
  • guestPrincipal: Guest - Main guest responsible for the reservation
  • guests: List<Guest> - All guests included in the reservation
  • room: Room - Assigned room
  • stay: Stay - Associated stay information

Relationships:

  • References one Guest as principal guest
  • Contains multiple Guest references
  • References one Room
  • Has one ReservationStatus (composition)
  • Has one Source (enumeration)
  • Contains one Stay (composition)

ReservationStatus

Tracks the current state of a reservation.

Attributes:

  • id: String - Unique identifier
  • statusType: StatusType - Type of status
  • note: String - Additional status notes

Relationships:

  • Contains one StatusType (composition)
  • Composed by Reservation

StatusType

Defines available reservation status types.

Attributes:

  • id: String - Unique identifier
  • name: String - Status name

Relationships:

  • Composed by ReservationStatus

Stay

Represents the actual stay period derived from a reservation.

Attributes:

  • id: String - Unique identifier
  • checkIn: LocalDate - Actual check-in date
  • checkOut: LocalDate - Actual check-out date

Relationships:

  • Composed by Reservation

Enumerations

Nationality

Defines guest nationalities:

  • COLOMBIA
  • UNITED_STATES
  • SPAIN
  • CHINA
  • ... (extensible)

DocumentType

Identification document types:

  • PASSPORT - Passport
  • IDENTITY_CARD - Identity card
  • NATIONAL_ID - National ID
  • CIVIL_REGISTRY - Civil registry
  • FOREIGN_ID - Foreigner ID

RoomStatus

Room operational states:

  • AVAILABLE - Available
  • OCCUPIED - Occupied
  • OUT_OF_SERVICE - Out of service

Amenity

Room amenities:

  • BATHROOM - Bathroom
  • TELEVISION - Television
  • SOFA - Sofa
  • BALCONY - Balcony

LevelNote

Note severity levels:

  • WARNING - Warning
  • NORMAL - Normal
  • INFORMATIONAL - Informational

Source

Reservation booking sources:

  • DIRECT - Direct booking
  • BOOKING - Booking.com
  • HOSTELWORLD - Hostelworld

Key Relationships Summary

  1. Guest → Reservation: A guest can be the principal guest of a reservation and can be included in multiple reservations (1:N)
  2. Reservation → Room: Each reservation is assigned to one room (N:1)
  3. Room → RoomType: Each room has one type that defines its characteristics and pricing (N:1, composition)
  4. Room → Bed: A room contains multiple beds (1:N, composition)
  5. Reservation → Stay: Each reservation generates one stay record with actual dates (1:1, composition)
  6. Guest → Notes: Guests can have structured notes with severity levels (1:1, composition)
  7. Reservation → ReservationStatus: Each reservation has a status composed of a status type and notes (1:1, composition)
  8. ReservationStatus → StatusType: Status contains a type definition (1:1, composition)
  9. Notes → LevelNote: Each note has a severity level classification (1:1, composition)
  10. Room → RoomStatus: Each room has an operational status (N:1, enumeration)
  11. Room → Amenity: A room can have multiple amenities (1:N, enumeration)
  12. Guest → Nationality: Each guest has a nationality (N:1, enumeration)
  13. Guest → DocumentType: Each guest has a document type for identification (N:1, enumeration)
  14. Reservation → Source: Each reservation originates from a booking source (N:1, enumeration)

When not to use it

  • When the domain model is not for a hotel/hostel management system
  • When defining entities, attributes, relationships, or enumerations outside the hospitality domain
  • When the task is not related to building or reviewing a domain model

Limitations

  • Limited to defining entities, attributes, relationships, and enumerations
  • Focuses specifically on the hotel/hostel management domain
  • Does not cover implementation details or database design beyond schema definition

How it compares

This approach provides a structured, detailed schema for a hotel/hostel management system, explicitly defining inter-entity relationships and enumerations, unlike a general data model.

Compared to similar skills

domain-model-documentation side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
domain-model-documentation (this skill)05moNo flagsIntermediate
postgresql-table-design304moNo flagsIntermediate
event-store-design53moNo flagsAdvanced
database-design66moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry