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.zipInstalls 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.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
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 identifierfirstName: String- Guest's first namelastName: String- Guest's last nameemail: String- Contact email addressphone: String- Contact phone numberdateOfBirth: LocalDate- Date of birthnotes: String- Additional notes about the guestnationality: Nationality- Guest's nationality (enum)documentNumber: String- Identification document numberdocumentType: DocumentType- Type of identification document (enum)notes: Notes- Structured notes with severity levels
Relationships:
- Has a
Nationality(enumeration) - Has a
DocumentType(enumeration) - Contains
Notesentity (composition) - Referenced by
Reservationas principal guest or in guest list
Room
Represents a physical room in the hostel.
Attributes:
id: String- Unique identifierroomNumber: Integer- Room numberroomType: RoomType- Type/category of the roomroomStatus: 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
Bedentities (composition) - Referenced by
Reservation
RoomType
Defines the category and pricing of rooms.
Attributes:
id: String- Unique identifiername: String- Type namedescription: String- Detailed descriptionmaxOccupancy: int- Maximum number of guestsbasePrice: BigDecimal- Base price per night
Relationships:
- Composed by
Room
Bed
Represents an individual bed within a room.
Attributes:
id: String- Unique identifierbedNumber: Integer- Bed identifier within the roomroom: Room- Reference to parent room
Relationships:
- Belongs to one
Room(aggregation)
Notes
Structured notes with severity classification.
Attributes:
id: String- Unique identifiertext: String- Note contentlevel: 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 identifierreservationCode: String- Unique reservation codecheckIn: LocalDate- Check-in datecheckOut: LocalDate- Check-out datestatus: ReservationStatus- Current reservation statusquotedAmount: BigDecimal- Total quoted pricesource: Source- Booking channel/source (enum)createdAt: LocalDate- Reservation creation dateguestPrincipal: Guest- Main guest responsible for the reservationguests: List<Guest>- All guests included in the reservationroom: Room- Assigned roomstay: Stay- Associated stay information
Relationships:
- References one
Guestas principal guest - Contains multiple
Guestreferences - 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 identifierstatusType: StatusType- Type of statusnote: String- Additional status notes
Relationships:
- Contains one
StatusType(composition) - Composed by
Reservation
StatusType
Defines available reservation status types.
Attributes:
id: String- Unique identifiername: String- Status name
Relationships:
- Composed by
ReservationStatus
Stay
Represents the actual stay period derived from a reservation.
Attributes:
id: String- Unique identifiercheckIn: LocalDate- Actual check-in datecheckOut: LocalDate- Actual check-out date
Relationships:
- Composed by
Reservation
Enumerations
Nationality
Defines guest nationalities:
COLOMBIAUNITED_STATESSPAINCHINA...(extensible)
DocumentType
Identification document types:
PASSPORT- PassportIDENTITY_CARD- Identity cardNATIONAL_ID- National IDCIVIL_REGISTRY- Civil registryFOREIGN_ID- Foreigner ID
RoomStatus
Room operational states:
AVAILABLE- AvailableOCCUPIED- OccupiedOUT_OF_SERVICE- Out of service
Amenity
Room amenities:
BATHROOM- BathroomTELEVISION- TelevisionSOFA- SofaBALCONY- Balcony
LevelNote
Note severity levels:
WARNING- WarningNORMAL- NormalINFORMATIONAL- Informational
Source
Reservation booking sources:
DIRECT- Direct bookingBOOKING- Booking.comHOSTELWORLD- Hostelworld
Key Relationships Summary
- Guest → Reservation: A guest can be the principal guest of a reservation and can be included in multiple reservations (1:N)
- Reservation → Room: Each reservation is assigned to one room (N:1)
- Room → RoomType: Each room has one type that defines its characteristics and pricing (N:1, composition)
- Room → Bed: A room contains multiple beds (1:N, composition)
- Reservation → Stay: Each reservation generates one stay record with actual dates (1:1, composition)
- Guest → Notes: Guests can have structured notes with severity levels (1:1, composition)
- Reservation → ReservationStatus: Each reservation has a status composed of a status type and notes (1:1, composition)
- ReservationStatus → StatusType: Status contains a type definition (1:1, composition)
- Notes → LevelNote: Each note has a severity level classification (1:1, composition)
- Room → RoomStatus: Each room has an operational status (N:1, enumeration)
- Room → Amenity: A room can have multiple amenities (1:N, enumeration)
- Guest → Nationality: Each guest has a nationality (N:1, enumeration)
- Guest → DocumentType: Each guest has a document type for identification (N:1, enumeration)
- 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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| domain-model-documentation (this skill) | 0 | 5mo | No flags | Intermediate |
| postgresql-table-design | 30 | 4mo | No flags | Intermediate |
| event-store-design | 5 | 3mo | No flags | Advanced |
| database-design | 6 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
postgresql-table-design
wshobson
Design a PostgreSQL-specific schema. Covers best-practices, data types, indexing, constraints, performance patterns, and advanced features
event-store-design
wshobson
Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.
database-design
davila7
Database design principles and decision-making. Schema design, indexing strategy, ORM selection, serverless databases.
database-schema-designer
davila7
Design robust, scalable database schemas for SQL and NoSQL databases. Provides normalization guidelines, indexing strategies, migration patterns, constraint design, and performance optimization. Ensures data integrity, query performance, and maintainable data models.
database-documentation-gen
jeremylongshore
Process use when you need to work with database documentation. This skill provides automated documentation generation with comprehensive guidance and automation. Trigger with phrases like "generate docs", "document schema", or "create database documentation".
schema-designer
clidey
Help design database schemas, create tables, and plan data models. Activates when users ask to create tables, design schemas, or model data relationships.