EstreUX (Universal eXpression) — Estre 생태계의 개발 시점 메타-레이어. 자연어 중간 소스
.eux 를 brew(LLM 변환)로 EstreUI(macro-Rimwork) / EstreUV(micro-Rimwork) 코드로 펼친다.
(.eux 작성 = expresso · .eux → 코드 변환 = brew.)
γ-EstreUX-driven: 한 .eux spec → 다중 타깃(UI 단독 / UV 단독 / 페어) 자동 생성 = 한 번 brew 로 여러 잔.
런타임에는 흔적이 없다(런타임 LLM 의존 0).
Scope: UI(EstreUI)·View(EstreUV) 에 한정하지 않는다 — .eux 증류는 backend·protocol·state machine·data layer 등 전 개발 영역에 적용 가능(2026-05-30 A/B 도그푸딩 검증: 결제 백엔드·VAN POS·인증 머신 증류, 환각 0·93% 충실). Universal eXpression = 범용 코드 ↔ spec 증류 표현. (현 Phase A 구현 타깃은 EstreUI/EstreUV.)
상태: Phase A — thin spike (2026-05-22~). 메커니즘·구조·도구 계약을 격리 검증 중. v0.3.0:
.eux포맷을 전 개발 영역으로 확장(v1 비-UI 디렉티브 + v1.1 adapter contract 7종 + v1.2 행동 계약@invariants/@metamorphic) + 정적·동적 행동 계약 검증(drift-check --invariant정적 ·p4-checkfast-check 동적) 추가. 풀 MVP(다중 채널·reverse sync·Estrim 통합)는 EstreUV 1.0 GA + usage data 후(Phase B).
npm run brew # (=expand 별칭) notif-toggle.eux → dist/{estreuv,estreui,pair}/notif-toggle.js
npm run drift # .eux ↔ 산출물 일관성 검사
npm run spike # brew + drift
# 임의 .eux 대상 CLI (brew/expand/drift 서브명령):
node bin/estreux.mjs brew <file.eux> # .eux → 변종 생성 (expand 별칭)
node bin/estreux.mjs drift <file.eux> # .eux ↔ 산출물 검사- 합성 예제:
spike/notif-toggle.eux(알림 토글 위젯) - 플래그십 예제·spike 결과: GitHub 저장소 (
examples/끝말잇기 1 spec → 3 변종 데모 ·spike/SPIKE.md— npm 배포본엔 미포함, 저장소 참조) .eux포맷: v0(8 디렉티브) · v1(비-UI 디렉티브 + adapter contract 7종 + 행동 계약@invariants/@metamorphic)- 검증:
drift-check --contract(인터페이스 정적) ·--invariant(행동 계약 정적) ·p4-check(@metamorphic동적, fast-check) — brew(생성) ↔ 검증 대칭 - brew provider (2026-05-23 확정): 기본 = 호스트 에이전트/서브에이전트 (에이전트 IDE 안에서 별도 키 없이 brew, γ 타깃 병렬 위임 — 실구현 Phase B) · 부가 = API/OAuth (로컬 Ollama·vLLM·LM Studio · BYOK, 헤드리스·CI용) · lock =
template(결정적 PoC, 현 Phase A 사용).spike/providers/, triomodelprefix 로 선택. - drift 훅:
git config core.hooksPath .githooks(또는npm install시prepare가 자동 설정). 커밋 전.eux↔산출물 drift 를 차단.
EstreUX 는 deps-0 brew 엔진(소스 ~21KB)이라 다운스트림(시드 마이그레이션 등)이 GitHub 전체 clone(+.git) 없이 경량으로 참조할 수 있다.
- npm 발행 전 (현재) —
giget경량 fetch (brew 엔진만, tarball·.git없음·캐시):npx giget gh:SoliEstre/EstreUX/spike#v0.3.0 ./estreux-engine node ./estreux-engine/expand.mjs brew <file.eux>
- npm 발행 후:
npm i -D estreux # 또는 npx estreux (일회성) npx estreux brew <file.eux>
git+ssh/github:dependency 도 가능하나,preparehook(dev hook 설정)이 소비자 환경에서 실행되므로giget경량 fetch 또는 npm 발행본을 권장한다. 버전 고정은 tag(#v0.1.0) 또는 semver(~0.1.0— 0.x 는 caret 이 minor 를 막으므로 tilde 권장).
Phase A expander 는 결정적 템플릿 매핑(LLM stand-in)이다. 단일 spec → 다중 타깃 구조,
provenance, drift, 재현성을 검증하는 것이 목적이며, 자연어 이해 기반 LLM expansion 은 Phase B
에서 같은 .eux 계약 위에 교체된다. LLM provider 는 provider-무관(특정 기본 없음) — 프런티어/
BYOK(Claude·GPT 등)와 로컬 서버(Ollama·vLLM·LM Studio 등)를 수평 옵션으로(trio model 선택).
Apache License 2.0 (Copyright 2026 SoliEstre (Estre Soliette) — LICENSE · NOTICE).
표준 지향 메타-레이어라 특허 grant 포함된 Apache 2.0 채택 (런타임 라이브러리 EstreUI/EstreUV 는
MIT — 레이어별 라이선스, 상호 호환). npm 발행 (v0.3.0) — files 화이트리스트로 brew 엔진 + 검증 도구만
배포(~15파일·~40KB), 내부 자산(examples/dist·adoption·hooks·비공개 조율 문서) 제외.