design-data-model

Designs RDB logical data models with BDD scenarios from business persistence requirements.

Updated Sep 4, 2026
One-click install
npx skills add https://github.com/nakamori-naoya/bdd-discovery-and-formulation-plugins --skill design-data-model-nakamori-naoya
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: design-data-model
Source: https://github.com/nakamori-naoya/bdd-discovery-and-formulation-plugins/tree/main/plugins/bdd-discovery-and-formulation/internal/design-data-model
Command: npx skills add https://github.com/nakamori-naoya/bdd-discovery-and-formulation-plugins --skill design-data-model-nakamori-naoya

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Teams often jump straight to table structures without knowing which business facts must be recorded, producing models full of unexplained columns, NULL-heavy designs, and lost history. This Skill derives a logical data model from verified persistence scenarios and business knowledge, ensuring every element has a documented recording reason. ## Core Features & Use Cases - Fact-first modeling: Extracts what must be recorded from persistence scenarios (pre-state, business events, decisions, results) before choosing any structure, and removes elements whose recording need cannot be explained. - Method selection: Supports three bundled modeling methods (fact-recording, normalized, dimensional) or a user-supplied method file, with explicit reporting of how the method was chosen. - BDD-verified output: Produces a logical design document whose final section contains BDD scenarios with full Before/After tables for every logical table, plus bidirectional reconciliation between the model and the recording decisions. - Use Case: Given confirmed business scenarios for order confirmation, cancellation, and refund, generate a logical RDB design that separates resource tables from append-only event tables, assigns occurred_at/created_at correctly, and justifies each table's existence. ## Quick Start Using the confirmed persistence scenarios and the corresponding business knowledge document, design a BDD-backed RDB logical data model for the order domain.

Frequently Asked Questions about design-data-model

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

FAQPage Schema
How do I design a logical data model from business scenarios?▼

Start from verified persistence scenarios describing pre-state, business events, decisions, and results. Extract which facts must be recorded and who needs them, then choose a modeling method and place facts into logical tables, finishing with BDD scenarios showing Before/After table states.

When should I use event sourcing vs current-state tables?▼

Use an event log as the source of truth only when multiple meaningful business events exist and their order, history, cancellation, or correction must be explained later. If history is unused, current state suffices; if past values of settings are queried, use valid-time history instead.

What inputs are required before data modeling can start?▼

Two inputs are mandatory: the corresponding business knowledge document and inspected persistence scenarios with confidence levels (confirmed, assumed, unknown). Without them the design does not start; tables, APIs, screens, or existing DDL alone are not accepted as substitutes.

How should NULL values be handled in logical data models?▼

Avoid NULL when a missing value hides distinct business meanings like unset, not applicable, or cancelled. Express those differences as named states, relationships, or event types. NULL is acceptable only when the missing meaning is single, unambiguous, and never drives business decisions.

Does this skill cover physical database design?▼

No. Physical concerns such as RDBMS product choice, DDL, indexes, partitioning, isolation levels, schema migration, and performance measurement are explicitly out of scope. The skill finalizes logical tables, columns, business keys, relationships, and constraints only.

What happens when modeling inputs are incomplete or uncertain?▼

If required inputs are missing entirely, the process stops and reports what is needed. If only some elements are uncertain, it proceeds by marking them as hypotheses with their rationale in the document and listing open questions in an undecided section.