마스터는 조직들 위에 있지 않다.
조직들 밖에 있다.
위에 있으면 안을 봅니다. 밖에 있으면 모양만 봅니다. 이 한 문장이 아래 세 화면 — 질문 상자, 곁 뷰, 약속 맺기 — 전부를 설명합니다. 트리 세계관의 발원지가 여기라, 여기부터 바꿉니다.
루트에서 내려다본다. 트리를 펼치고, 상위를 옮기고, 목록을 스크롤한다. 내려다보는 자리는 결국 안까지 본다.
축(XYZ)으로 묻고, 곁(약속)을 읽고, 약속의 성립은 두 조직에게 맡긴다. 존재와 모양은 다 보이지만 명부·대화는 화면 자체가 없다.
같은 것의 세 조각을 하나로 합칩니다
교회 은하·조직·조직 유형은 셋 다 "조직을 본다"는 하나의 일이었습니다. 루트가 없으면 교회도 그냥 조직이고, 유형은 계급이 아니라 어휘 스킨입니다. 그래서 한 칸이면 됩니다.
사라진 것 — 교회 은하 분리, 그리고 "어떤 유형 아래 어떤 유형"이라는 가지 규칙.
없애는 것을 숨기면 회귀합니다. 가지 규칙이 남아 있는 한 트리는 데이터로 부활합니다.
목록을 내밀지 않고, 질문을 받습니다
조직이 10만이면 목록은 아무도 못 읽습니다. 첫 화면은 "무엇을 묻겠습니까"이고, XYZ 칩으로 좁히면 그때 조직이 나옵니다. 맥박은 남기되 어휘를 교회에서 조직으로 바꿉니다.
플랫폼 맥박
개별 조직이 아니라 전체의 생명징후. 본문은 이 화면에서 열리지 않습니다.
2 — 전체 × 전체 × 전체의 답
아직 없습니다. 이 0은 오류가 아니라 다음 일입니다 — 셀프 개설(/start)이 열리면 여기가 제일 먼저 차오릅니다.
조직은 146개입니다. 설계 당시 디렉터가 "2개"라고 잘못 일러줬는데, 실사해 보니 노회 65·교회 63·교단 13·협의회 2·종교 1·1인조직 1이었습니다. 질문 상자는 "언젠가 필요할 화면"이 아니라 이미 필요한 화면입니다 — 146줄은 아무도 안 읽습니다.
사라진 것 — 조직 60개 나열(platform_church_directory 첫 화면), 그리고 "10만 교회 운영"이라는 교회 중심 어휘.
목록은 질문의 결과로만 나옵니다. 살아있는 교회 → 살아있는 조직, 연결된 성도 → 연결된 사람.
트리 아코디언 대신, 원점과 곁
조직 하나를 열면 그 조직이 원점이고 곁이 둘러쌉니다. 약속 4종은 선의 색·굵기로 구분하고, 겹친 약속(교회↔노회 3줄)은 겹친 채로 보입니다. 같은 데이터를 목록으로도 봅니다 — 곁이 서른이면 방사형만으로는 못 읽습니다.
양림교회
원점을 바꾸면 화면이 바뀝니다 — 같은 세계, 다른 원점, 둘 다 맞습니다. 어휘 스킨: 교회 · 설정은 이 칸 안의 "유형·스킨" 탭에서.
곁 — 방사형
선 하나가 약속 한 줄. 겹치면 겹친 대로 그립니다.
곁 — 목록 (같은 데이터의 두 번째 얼굴)
곁이 서른이면 이쪽이 주가 됩니다. 정렬은 약속 수 · 최근 성립 순.
마스터에게 보이는 것 / 없는 것
권한으로 가린 게 아니라, 화면 자체가 없습니다.
보인다 — 존재와 모양
- 이름 · 유형(스킨)양림교회 · 교회
- 지역 (Y축)광주 남구
- 플랜 (Z축)경제 메뉴와 연동
- 약속 줄3 — 전부 수락됨
없다 — 안
- 명부화면 없음
- 대화 · 사랑방화면 없음
- 돌봄 기록화면 없음
마스터도 안을 못 봅니다. 어떤 약속도 사람을 흘리지 않고, 마스터는 약속 당사자가 아니기 때문입니다. 밖에 있는 자의 화면은 여기서 끝납니다.
사라진 것 — 트리 아코디언 · 들여쓰기(depth) · 펼침 삼각형 · byParent와 roots.
깊이는 더 이상 시각 언어가 아닙니다. 화면에 남는 좌표는 원점 하나와 곁의 줄들뿐입니다.
"상위를 바꾼다"가 아니라, 제안하고 수락합니다
약속은 두 상태 — 제안됨, 수락됨. 어느 쪽이든 제안할 수 있고 수락은 상대만 합니다. 약속을 고르는 순간 무엇이 흐르게 되는지가 그 자리에서 보입니다 — 권한을 실수로 여는 것을 여기서 막습니다.
약속 맺기
마스터는 제안을 대신 만들 수는 있어도, 수락을 대신할 수는 없습니다. 성립은 언제나 두 조직의 일입니다.
곁에 설 상대
이름으로 찾습니다. "올 수 있는 유형" 제한이 없습니다 — 카페가 노회 곁에 서도 됩니다. 무엇이 흐를지는 다음 단계가 정합니다.
약속 고르기 — 고르는 순간 흐름이 보입니다
흐른다: 이름 · 신원 배지 (양림교회 → 전남노회)
흐르지 않는다: 돈 · 권한 · 사람 — 노회는 명부를 못 봅니다
흐른다: 청원·심의·인가 (위 → 아래) · 명부·대화·돈 ✕
흐른다: 돈·규모 숫자 (아래 → 위, 한 칸만) · 사람·권한 ✕
흐른다: 공동 게시·공동구매 (대등) · 그 외 전부 ✕
하나의 관계에 여러 줄을 겹쳐 답니다. 어떤 줄을 골라도 사람은 흐르지 않습니다.
제안 → 상대의 수락
보내면 제안됨. 전남노회 관리자 콘솔에 도착하고, 수락해야 수락됨이 됩니다. 그 전에는 아무것도 흐르지 않습니다.
끊으면 그 줄로 흐르던 것이 그날로 멈춥니다. 지난 기록은 남습니다. 끊기도 한쪽이면 됩니다 — 약속은 양쪽의 동의로 서고, 한쪽의 의사로 무너집니다.
사라진 것 — "교단 이동…" 드롭다운(MoveOrg · 상위 변경), 그리고 create·구조 심기·set_parent의 parent 인자.
조직의 자리는 마스터가 옮기는 것이 아니라 두 조직이 맺는 것입니다. 생성은 parent 없이 서고, 자리는 약속이 만듭니다.
트리가 박혀 있던 아홉 자리의 처분
없애는 것을 숨기면 나중에 돌아옵니다. 코드의 어디를 무엇으로 바꾸는지 적어 둡니다.
| 지금 (트리) | 자리 | 처분 |
|---|---|---|
byParent · roots — 루트 개념 | OrgTree.tsx:43,47 | 삭제. 화면의 좌표는 원점(선택한 조직)과 곁뿐 |
allowed_child_kinds — 가지 규칙 | OrgTree.tsx:16,25-34 · org_kinds | 폐기. 어휘 스킨(label·icon·행정 섹션)만 존치 |
depth 들여쓰기 · 펼침 삼각형 | OrgTree.tsx:99 | 삭제. 방사형 + 목록, 두 얼굴로 대체 |
MoveOrg — 상위 변경 | OrgTree.tsx:119 | 약속 제안/수락/끊기로 대체 (화면 ③) |
| create · provision_branches · set_parent의 parent 인자 | actions.ts:72,82,90 | 제거. 생성은 parent 없이, 자리는 약속으로 |
| /master/churches — 교회 별도 축 | 교회 은하 | 조직 X축 필터로 병합 (화면 ①) |
| "10만 교회 운영" · "살아있는 교회" | master/page.tsx | 어휘 교체. 교회 → 조직, 성도 → 사람 |
platform_church_directory(60) 나열 | master/page.tsx:51 | 질문 상자. 목록은 질문의 결과로만 |
| 메뉴 11칸 — 같은 것 세 조각 | masterNav.ts | 9칸. 은하+조직+유형 → 조직 하나 |
지금은 코드 0줄이 맞습니다 (설계도 v2 착수 순서). 이 문서는 새로 짓는 화면이 트리를 다시 들이지 않게 하는 기준이고, 실 구현은 조직 10개를 넘을 때 — 그때 이 목업이 그대로 사양서가 됩니다.