Skip to content
03-ssot — Data logo

03-ssot — Data

Status: ACTIVE AppliesTo: v10 ParentSSOT: skills/devian-core/03-ssot/SKILL.md

SKILL.md

Full skill instructions

03-ssot — Data

Status: ACTIVE AppliesTo: v10 ParentSSOT: skills/​devian-core/​03-ssot/​SKILL.md


Scope

이 문서는 DATA 도메인(테이블, Contract, 스토리지) 관련 SSOT를 정의한다.

중복 금지: 공통 용어/플레이스홀더/입력 분리/머지 규칙은 Root SSOT가 정본이며, 이 문서는 재정의하지 않는다.


tableConfig 설정

DATA 도메인의 데이터 출력 타겟은 전역 tableConfig로 설정한다.

"tableConfig": {
  "tableDirs": ["../​framework-cs/​apps/​UnityExample/​Assets/​Bundles/​Tables"],
  "stringDirs": ["../​framework-cs/​apps/​UnityExample/​Assets/​Bundles/​Strings"],
  "soundDirs": ["../​framework-cs/​apps/​UnityExample/​Assets/​Bundles/​Sounds"]
}
필드역할예시
tableDirs테이블 출력 디렉토리 목록["...Assets/​Bundles/​Tables"]
stringDirsString 테이블 출력 디렉토리 목록["...Assets/​Bundles/​Strings"]
soundDirsSound 데이터 출력 디렉토리 목록["...Assets/​Bundles/​Sounds"]

필수 규칙:

  • tableConfig의 각 Dir 배열은 필수 (빈 배열 허용)
  • 빌더가 각 Dir에 대해 ndjson/ 및 pb64/ 하위 디렉토리를 생성
  • dataConfig는 금지 (deprecated, 존재 시 빌드 FAIL)
  • domains[*].dataTargetDirs는 금지 (존재 시 빌드 실패)

DomainType = DATA

DATA 입력은 {buildInputJson}의 domains 섹션이 정의한다.

Common 필수 (Hard Rule)

Devian v10 프로젝트는 DATA DomainKey로 Common을 반드시 포함한다.

  • {buildInputJson}에서 domains.Common은 필수 항목이다.
  • 결과로 Common 모듈(C#/​TS)은 항상 생성/유지된다:
    • C#: Devian.Domain.Common (프로젝트명)
    • TS: @devian/​module-common (폴더명: devian-domain-common)

Common 모듈의 상세 정책은 skills/​devian-common/​02-module-policy를 참조한다.

필수 개념

  • Contracts: JSON 기반 타입/​enum 정의
  • Tables: XLSX 기반 테이블 정의 + 데이터

입력 경로는 {buildInputJson}이 정본이다:

  • domains[Common].contractDir = Domains/​Common/​contracts
  • domains[Common].tableDir = Domains/​Common/​tables

키 변경 (레거시 호환):

  • contractDir (새 키), contractsDir (레거시/금지)
  • tableDir (새 키), tablesDir (레거시/금지)

Tables (XLSX) 헤더/데이터 규약

  • 최소 4행 헤더를 가진다.
    • Row 1: 컬럼명
    • Row 2: 타입
    • Row 3: 옵션
    • Row 4: 코멘트(해석하지 않음)
  • Row 5부터 데이터
  • Header Stop Rule: Row1에서 빈 셀을 만나면 그 뒤 컬럼은 무시
  • Data Stop Rule: PrimaryKey 컬럼이 비면 즉시 중단

옵션 해석 정책

  • PrimaryKey: pk 옵션만 PrimaryKey로 해석한다.
  • gen:<EnumName>: gen: 옵션이 선언된 컬럼은 반드시 pk여야 한다.
  • group:true (Hard): 테이블당 최대 1개 컬럼만 허용.
  • optional:true는 "nullable/​optional column" 힌트로만 사용
  • 그 외 parser:* 등은 Reserved (있어도 무시 / 의미 부여 금지)

상세 규칙: skills/​devian-data/​30-table-authoring-rules


DATA 산출물 경로 (정책)

staging:

  • {tempDir}/​{DomainKey}/​cs/​Generated/​{DomainKey}.g.cs
  • {tempDir}/​{DomainKey}/​ts/​Generated/​{DomainKey}.g.ts, index.ts
  • {tempDir}/​{DomainKey}/​data/​ndjson/​{TableName}.json (내용은 NDJSON)
  • {tempDir}/​{DomainKey}/​data/​pb64/​{TableName}.asset (pk 옵션 있는 테이블만)

final (csConfig/​tsConfig/​tableConfig 기반):

  • {csConfig.generateDir}/​Devian.Domain.{DomainKey}/​Generated/​{DomainKey}.g.cs
  • {tsConfig.generateDir}/​devian-domain-{domainkey}/​Generated/​{DomainKey}.g.ts, index.ts
  • {tableDir}/​ndjson/​{TableName}.json (내용은 NDJSON)
  • {tableDir}/​pb64/​{TableName}.asset (pk 옵션 있는 테이블만)

도메인 폴더 미사용 (Hard Rule):

  • 최종 경로에 {DomainKey} 폴더를 생성하지 않는다.
  • 모든 도메인의 테이블 파일이 동일 디렉토리에 병합된다.
  • 동일 파일명 충돌 시 빌드 FAIL (조용한 덮어쓰기 금지).

금지 필드 (Hard Fail):

  • domains[*].csTargetDir — 금지, csConfig.generateDir 사용
  • domains[*].tsTargetDir — 금지, tsConfig.generateDir 사용
  • domains[*].dataTargetDirs — 금지, tableConfig.*Dirs 사용

C# Namespace (Hard Rule)

DATA Domain 생성물의 C# 네임스페이스:

  • namespace Devian.Domain.{DomainKey}

예: DomainKey Common → namespace Devian.Domain.Common


TS index.ts Marker 관리 (Hard Rule)

TS devian-domain-*/​index.ts는 빌더가 관리하되, 통째 덮어쓰기를 금지한다.

  • marker 구간:
    • // <devian:domain-exports> ~ // </​devian:domain-exports> — Domain 생성물 export
    • // <devian:feature-exports> ~ // </​devian:feature-exports> — features 폴더 export

NDJSON 스토리지 규약

파일 확장자는 .json이지만, ndjson/ 폴더의 파일 내용은 NDJSON(라인 단위 JSON)이다.

상세 규칙: skills/​devian-data/​34-ndjson-storage


pb64 export 규약 (Hard Rule)

pk 옵션이 있는 테이블만 Unity TextAsset .asset 파일로 export한다.

  • 파일명: {TableName}.asset (테이블 단위 1개 파일)
  • 저장 형식: Unity TextAsset YAML
  • pk 옵션이 없는 테이블은 export 안함

상세 규칙: skills/​devian-data/​35-pb64-storage


DATA export PK 규칙 (Hard Rule)

DATA export는 PK 유효 row만 포함하며, 유효 row가 없으면 산출물을 생성하지 않는다.

  • primaryKey(pk 옵션)가 정의되지 않은 테이블은 ndjson/​pb64 파일을 생성하지 않는다.
  • primaryKey 값이 비어있는 row는 export 대상에서 제외된다.
  • 결과적으로 유효 row가 0개인 경우 파일을 생성하지 않고 [Skip] 로그를 남긴다.

See Also

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View