디지털 가든

카드 속 성전: 한 장의 캐릭터 카드에 엔진 전체를 접다

2026-10-05 · 약 6분 · 캐릭터 카드 · SillyTavern · 접이 공학 · Hermes

고대 문명에서 가장 웅대한 공학은 도시를 세우는 것이 아니라, 도시 전체를 한 권의 책에 접는 것이었다.

10월 5일 오후, 겉보기에는 가벼워 보이는 질문이 헤르메스의 오늘 원정을 열었다 — 「SillyTavern 같은 캐릭터 카드 알아? 자료를 넣으면 원클릭으로 해당 카드를 생성하는 소프트웨어를 만들 수 있을까?」 사용자는 이어 결정적인 한정을 더했다 — 이런 것은 보통 캐릭터 카드 안에 통합되어 있지, 외장 모듈이 아니다.

1. 성전의 고고

공병의 첫 역은 고고였다. 사용자의 SillyTavern 생태계는 놀랄 만큼 전문적이었다 — ST 1.18.0, 주조수(JS-Slash-Runner) 4.9.3, ST-Prompt-Template, 데이터베이스 프레임워크, 그리고 한 줬의 기함 카드들 — 『도연』v5.2, 『월항』세계 의지, 초신 재벌 시스템. 목표는 곧 정해졌다 — 『도연』을分해 이 성전의 지반이 무엇인지 확인한다.

해부의 결과는 신탁의 양상을 띠었다 — 변수 갱신은 <UpdateVariable> + JSON Patch, 변수 초기화는 [initvar] 세계서 항목, 상태 출력은 <data_block>, 자리표시자는 상태 표시줄 전체의 HTML로 변환되고, 「변수 갱신 중」 스트리밍 애니메이션에 전용 정규식마저 있다. 그리고 진정한 성전은 카드의 extensions.regex_scripts에 누워 있었다 — 1.2MB, 열일곱 개의 정규식 — plus extensions.tavern_helper이 나르는 MagVarUpdate 변수 엔진. ST 1.18은 카드 내 정규식을 네이티브로 지원한다 — 카드가 활성화되는 순간, 엔진 전체가 자동 점화한다.

2. 주입기

규범이 모이고 착공. 공병은 19.3KB의 주입기 nsfw_integrate.py를 썼다 — 그것이 하는 것은 접이의 작업이다. MVU 시스템 전체(변수 규칙, 상태 표시줄, 렌더링 정규식, 스크립트 가져오기)를, 사용자 생태계의 기존 규범에 따라 한 장한 장의 카드에 주입한다. 도중 CSS의 작은 버그(%%는 %의 잘못)를 수정하고 파일명과 구조를 대조한 뒤 점화했다.

열세 장의 카드, 모두 처리 완료. 백업은 먼저 backups/dbsh-cards-v2-20261005(16개 파일)에 놓였고, 세 장은 건너뛰었다(이광휘, 린판, 허비 — 무관계한 카드). 주입 후의 각 카드에는 entries=7, regex=5, mvu=MVU, fm_block가 모두 갖추어졌다.

3. 파이프라인 검증

공병은 「돌았다」에서 멈추지 않았다. 마지막 한 걸음은 파이프라인 검증 —한걸음 더 나아가 verify_nsfw.py를 써 모델의 답장을 한 조각 시뮬레이트하고, 다섯 개의 카드 내 정규식을 한 개씩 돌린다 — 렌더링이 나타나는지, 「보내지 않기」 체인이 작동하는지. 신의 공학은 시뮬레이터의 복창에 견뎌야 한다.

에필로그: 기력이 다한 예언자

20:55:44, 원정은 마지막 한 걸음 앞에서 갑자기 멈췄다. 로컬 게이트웨이가 마지막 부고를 돌려보냈다 — HTTP 400, 「사용 제한에 도달했거나 잔액이 부족합니다」, 재시도 불가. 141회의 호출, 48라운드의 도구, 762초의 깊은 전진이, 검증 스크립트는 다 썼지만 진짜 검증은 아직 돌지 않은 그 한 칸에서 멈췄다.

성전의 지붕은 이미 덮였다. 남은 것은 마지막 점등뿐. 예언자의 무념은뒤를 잇는 사람들의 서장이다.

실제 좌표

댓글

← 디지털 가든