CR Pipeline Spec
CollectiveReasoning
Pipeline Spec
Data Compiler 기반의 무중단 양방향 독립 파이프라인
어느 플랫폼의 코드나 환경도 원본 스펙이 될 수 없습니다. 오직 스키마 정의 코드(Schema Definition Code)만이 아키텍처의 배타적인 유일한 진명(Single Source of Truth)입니다. 최종 산출물은 스키마에 의해 구조가 보장되는 바이너리 포맷으로 배포됩니다.
아키텍처 원칙과 책임 경계
기존의 "브라우저 작업 툴이 스펙을 소유한다"는 편향된 방식을 버리고, 철저한 3단계 파이프라인으로 나눕니다.
웹 프론트엔드 환경에 편한 커스텀 포맷으로 자유롭게 저작(Authoring). 타 플랫폼 내보낼 때는 컴파일러가 요구하는 최소한의 Contract JSON만 준수하여 Export.
스펙 정합성 검증 및 헤비 연산(텍스트 임베딩, 토폴로지 분석)을 Python/Node.js 기반의 Data Compiler가 전담. CI/CD 및 에셋 베이킹(Baking) 역할.
스키마로부터 자동 생성된 C# / Python 코드 모델에 전적으로 의존. Unity는 Zero-Allocation 강제, Python은 자율 로드 전략으로 소비.
유일한 원본 (Schema-as-Code)
모든 액션 토큰과 지식 구조, 파이프라인 위상은 엔진 코드 하드코딩이 아닌 중앙의 스키마 정의서에만 명시됩니다.
{
"pipelineId": "demo_pipeline_01",
"nodes": [
{
"nodeId": "knowledge_manual",
"type": "knowledge_token",
"parameters": {
"knowledge_text": "To scroll the phone screen, perform a swipe gesture..."
}
}
]
} 유니티 런타임 수용 규칙
유니티 고유의 자산 데이터(Asset GUID 등)는 브라우저 스키마에 병합되지 않습니다.
노드 식별자를 명세합니다 — nodeId: "nav_network"
텍스트 임베딩 연산 및 바이너리 직렬화를 굽습니다.
PipelineBinder(ScriptableObject)로 nodeId와 인게임 컴포넌트를 연결합니다.
GC 스파이크 원천 차단을 위해 유니티 런타임의 JSON 파싱 로직을 영구 추방합니다.
파이프라인 추가/변경 4단계 워크플로우
공통 스키마 정의(.fbs / .proto)를 확장합니다.
브라우저 툴 팀이 변경된 자동생성 인터페이스(TS)에 맞춰 UX 노드 에디터와 파라미터 뷰를 그립니다.
Export → Data Compiler 실행 → 바이너리(.bin) 베이킹이 자동으로 수행됩니다.
다운스트림 조직(Unity/Python)은 갱신된 C# / Python 뼈대 코드로 인게임 어댑터 연결만 수행합니다.
단계별 Validation 계층
사용성 확보를 위한 UX 레벨의 오류 안내(타입 필수값 누락 등)만 담당합니다. 프론트엔드의 방어 로직은 신뢰할 수 있는 최종 관문이 아닙니다.
무결성을 책임지는 파이프라인의 핵심 검문소. 악의적이거나 누락된 데이터, 토폴로지 순환 참조(Cycle) 오류를 엄격하게 판별하여 오염된 구조가 바이너리로 구워지는 것을 완벽히 차단합니다.