- 긴급 축 — 공개 재난 정보를 다섯 게이트로 걸러 등급을 매기고, 걸린 사업장이 있을 때만 사람이 알린다
- 동향 축 — 공개 정보에서 계열사별 사건을 모아 형식 정합을 기계로 검증하고, 회사별 관측축으로 파일 하나에 낸다
- 게이트는 실제 사고에서 나왔고, 정한 이유와 고친 기록이 함께 간다
- 진위를 기계가 보증한다 — 게이트를 다 통과해도 사람이 본다
- 내부 의사결정·재고·계약의 추정
- AI 구간의 재현율 100%
- 두 축을 자동으로 잇는 엔진 — 인계는 지금 사람이 하고, 연결 화면의 사건 표본은 구조만 실제다
0. 계보
어디에서 왔고 어떻게 넓어졌는가 — 원류에서 전수까지 여섯 단
구조가 관점을 옮겨도 서는지 먼저 두 번 이식으로 확인했고, 그 다음에 전수로 갔습니다.
왜
왜
왜
왜
왜
왜
긴급 축의 계보는 따로 있습니다. mGSCS는 사내 재난 대응 이력에서 나온 원류이고,
두 축은 2026-08-26 연결 규약(data/bridge_spec.json)에서 만났습니다. 그쪽 기준은 「긴급 축 기준」 절에, 두 축이 서로 가져온 것은 「하네스」 절에,
여섯 체계의 상태를 한 표에 놓은 것은 「m-BRIDGE를 이루는 체계」 절에 있습니다.
1. 원칙 다섯
2. 계통
다섯 단계. 사람은 마지막에 섭니다
각 단계는 무엇을 통과해야 다음으로 가는지가 정해져 있습니다. 색이 다른 칸이 사람이 서는 자리입니다.
왜
왜
왜
왜
왜
3. 게이트
무엇을 잡고, 이번 빌드에서 어땠는가
선행 운영판(m-SIGNAL)에서 하루에 잘못된 시그널 4건이 발행된 뒤 발견됐습니다 — 넷 다 과거 사건을 당주로 옮겨 적은 것.
경위
| 게이트 | 잡는 것 | HARD 판정 | 이번 빌드 | 출력 |
|---|---|---|---|---|
validate_ia.py | IA 게이트 — 관측축·메뉴·근거 URL의 구조 결함 | BADDATE · FRONTURL · NODATE · NOURL · SLUGURL | 통과 | 회사 33 · 판정 0건 (HARD 0 · SOFT 0) |
validate_intake.py | 수집 회신 판정 — 외부에서 돌아온 것을 그대로 믿지 않는다 | BADDATE · BADSECTOR · BADSEV · BADSRC · BLOCKED · DUPKEY · FORBIDDEN · FRONTURL · NOANCHOR · NOCITE · NODATE · NOURL · ORPHANCITE · OUTOFWINDOW · SLUGURL | 통과 | 파일 28 · 시그널 115 · 인용 224 (tier1 60) · 미해결 289 |
audit_dates.py | 인용 발행일 ↔ 사건일 불일치 — 과거 사건을 최근으로 옮겨 적기 | BADDATE · NOANCHOR | 통과 | [audit_dates] 판정 10건 (HARD 0) — 인박스 115 · 스토어 115 · IA events 218 |
audit_numbers.py | 실적 수치가 다른 시점인데 원 단위까지 일치 — 조작 | BASECONFLICT · REPEAT | 통과 | [audit_numbers] 판정 0건 — 실적 수치 472개 대조 |
audit_links.py | URL 형태·차단 도메인·산출물 최신성·외부 호출 | BADURL · BLOCKED · FRONTURL · SLUGURL · STALE_ART · URLDEAD | 빌드 후 검증에서 | 산출물 최신성을 보는 게이트라 이 화면 안에서 돌리면 결정론이 깨진다. rebuild_all.py의 빌드 후 검증에서 돈다 |
audit_style.py | 문체 — 질문형·서술형 제목, AI 상투어, 조사 띄어쓰기, 표 말끝 섞임 | CLICHE · HEADASK · HEADTAIL · LONGBLOCK · SPACING · TABLEMIX | 통과 | [audit_style] 판정 22건 — 화면 43개 |
audit_dupes.py | 같은 사건이 두 행으로 적재됨 | DUPKEY · DUPTITLE | 통과 | [audit_dupes] 판정 38건 (HARD 0) — 시그널 230건 검사 |
audit_axes.py | 축 어휘가 정본을 벗어나 두 층이 안 이어짐 — 「없음」과 「못 이음」의 혼동 | AXISLABEL · JOINDROP | 통과 | [audit_axes] 판정 2건 (HARD 0 · soft 2) — 시그널 115 · 전이 58 |
audit_collect.py | 수집 축이 끊겼는데 산출물은 정상으로 보임 — 「안 들어온 것」 | AXISDROP · SRCSTALE | 통과 | [audit_collect] 판정 2건 (HARD 0 · soft 2) — 원천 6층 |
validate_monthly.py | 월간 층 회신 판정 — rcpNo·DOI·공보번호 형태 · 회사·축 매핑 · 검증자 판정(DEAD/MISMATCH 제외) | — | 통과 | [validate_monthly] 파일 4 · 항목 841 · 판정 358건 (HARD 0 · soft 358) |
audit_scope.py | 대조량 — 「볼 것이 없었다」가 「통과」로 보고되는 것을 막는다 | — | 통과 | [audit_scope] 대조량 — 코퍼스 14종 · 기준선 14종 |
audit_docs.py | 문서 표류 — 손으로 적은 수가 실측과 다른가 · 판정마다 강제 수단이 적혀 있는가 | — | 빌드 후 검증에서 | 산출물(단일본)의 화면 수를 세는 게이트라 이 화면 안에서 돌리면 직전 빌드를 읽게 된다. rebuild_all.py의 빌드 전 게이트에서 돈다 |
audit_design.py | 화면 규약 — 임의 px·토큰 밖 색·의미 클래스가 있는 조합의 인라인 재작성 | — | 통과 | [audit_design] 판정 0건 (HARD 0 · soft 0) — 인라인 style 219곳 (상한 220) |
audit_canary.py | 게이트가 아직 도는가 — 심어 둔 결함을 잡지 못하면 실패 | — | 통과 | [audit_canary] 생존 14/14 |
게이트가 아닌 도구 4종 — 네트워크 사용으로 분리
| 도구 | 하는 일 | 게이트와의 관계 |
|---|---|---|
check_urls.py | URL 실재 검사 — 형태는 멀쩡한데 존재하지 않는 URL을 잡는다 | 결과를 data/url_check.json에 남기고, audit_links가 그것을 **오프라인으로** 읽는다 |
measure_ai.py | AI 구간 재현율·회수율 실측 | 주장하지 않고 잰다. 결정론 구간은 audit_canary가 따로 본다 |
export_metrics.py | 실측값 내보내기 — 기획서를 쓰는 쪽에 넘길 숫자 | 손으로 옮기면 어긋난다. 정본과 산출물을 읽어 그 시점의 값을 낸다 |
build_dist.py | 배포 패키지 조립 + **배포물 자체 감사** | 게이트의 경계는 인박스가 아니라 배포 폴더까지다 |
4. 교정 플로우
틀린 것이 발견되면
게이트를 통과시키는 것이 목적이 아니라 원인을 없애는 것이 목적입니다. 여섯 단계를 건너뛰지 않습니다. 틀린 것을 흔적 없이 지우지 않습니다.
왜
왜
왜
왜
왜
왜
- 금지어 정본에서 단어 하나를 빼자 카나리아가 8/9로 죽었다
- HARD, 멈춤
- 원인은 fixture가 그 단어를 글자로 박아 둔 것 — 규칙이 두 곳에 있었다
- 정정이력 C-007
- fixture가 정본을 읽도록 고침
- 재생성, 9/9, 지문 동일
판정 코드 사전 39종 — 뜻과 손댈 곳
| 코드 | 등급 | 뜻 | 손댈 곳 |
|---|---|---|---|
| STALE | HARD | 인용 기사가 사건일보다 30일 이상 과거 | 과거 사건을 당주로 옮겨 적은 것이다. 시그널을 뺀다 |
| FUTURE | HARD | 인용 발행일이 사건일보다 미래 | 날짜 오타이거나 그 사건의 인용이 아니다 |
| REPEAT | HARD | 같은 지표가 다른 시점인데 원 단위까지 일치 | 1차 자료로 확인하고 정정하거나 뺀다 |
| SLUGURL | HARD | 사람이 읽는 슬러그 URL | 지어낸 것이다. 배치째 의심한다 |
| FRONTURL | HARD | 대문·섹션 URL 단독 인용 | 기사가 아니다. 뺀다 |
| BLOCKED | HARD | 시장조사 SEO·리포트밀 도메인 | 1차 출처로 대체하거나 그 항목을 버린다 |
| NOURL | HARD | 근거 URL 없는 사건 | 근거 없는 사건은 뺀다 |
| NODATE | HARD | 인용에 발행일 없음 | 발행일 미확인 인용은 싣지 않는다 |
| FORBIDDEN | HARD | 외부 노출 금지어 포함 | 산출물이 사외로 나간다. 즉시 제거 |
| BADSEV / BADSECTOR / BADSRC | HARD | enum 밖의 값 | 정본은 collect_spec.py 하나다 |
| DUPKEY / DUPURL / DUPTITLE | HARD | 같은 사건이 두 행 | 같은 이슈는 한 행으로 갱신한다 |
| STALE_ART | HARD | 산출물이 입력보다 오래됨 | 생성기·데이터를 고치고 재빌드하지 않았다. 과거 실제 사고 |
| EXTCALL | HARD | 외부 리소스 호출 | 사내망 CDN 차단 환경에서 깨진다 |
| URLDEAD | HARD | 근거 URL이 실제로 사라짐(404/410) | 대체 근거를 찾거나 그 항목을 뺀다 |
| BADRCP / BADDOI / BADPUB | HARD | 월간 층 식별자(rcpNo·DOI·공보번호) 형태가 틀리거나 url과 다름 | 지어낸 것이다. 항목을 뺀다 |
| DEAD (검증자) | HARD | 검증 에이전트가 식별자를 열어 사멸·불일치로 판정 | 정본에 넣지 않는다. 인박스에는 감사용으로 남긴다 |
| UNCHK / NOAXIS (월간) | soft | 검증자가 못 본 항목 · 관측축 매핑 없음 | 사람이 본다. 축 매핑이 비면 그 회사 축 정의를 의심한다 |
| URLUNCHECKED | soft | URL 실재를 확인한 적 없음 | 형태만 통과했다. check_urls.py를 돈다 |
| URLERR | soft | 연결 실패·타임아웃 | 사멸과 다르다. 재검사한다 |
| HALFCONFLICT | soft | 같은 시점인데 값이 갈림 | 양쪽 병기. 한쪽을 고르지 않는다 |
| IMPERATIVE | soft | 영향 서술이 권고·명령형 | 서술형만. '해야 한다' 대신 '~로 보도됐다' |
| NOAXIS | soft | 대응 관측축을 밝히지 않음 | 축에 안 걸리면 이 회사 시그널이 아니다 |
| NOTIER1 | soft | 1차 자료 인용 0건 | 보강하거나 confidence_note에 명시 |
| XCOMPANY | soft | 같은 근거가 여러 회사에 걸림 | 계열사 시스템에서는 정상일 수 있다. 사람이 본다 |
| UNVERIFIED | soft | 명부 재검증에서 확인 못 함 | 추측으로 OK를 내지 않는다 |
| NOANCHOR | HARD | 사건일을 정박하는 인용이 없음 — 발행일이 사건일 창 밖 | 사건이 그 인용으로 서지 않는다. 사건일에 닿는 인용을 찾거나 뺀다 |
| NOCITE | HARD | 인용이 0건인 시그널 | 근거 없는 시그널은 싣지 않는다 |
| ORPHANCITE | HARD | 본문에 붙지 않은 인용 | 인용은 시그널에 걸려야 한다. 어느 행에도 안 걸린 인용은 뺀다 |
| OUTOFWINDOW | HARD | 사건일이 수집 회차 창 밖 | 과거 사건을 이번 회차로 옮겨 적은 것이다. 회차를 바로잡거나 뺀다 |
| AXISDROP | HARD | 닫힌 회차인데 들어온 것이 0 | 고장이다. 수집 경로를 본다 — 「없음을 가르는 법」 절 |
| SRCSTALE | HARD | 원천 층의 갱신이 멎음 | 산출물은 정상으로 보이는데 입력이 낡았다. 원천을 본다 |
| NOHEADLINE | soft | 인용에 제목 없음 | 제목 없는 인용은 무엇을 인용했는지 알 수 없다. 원문을 열어 채운다 |
| BADAXIS | soft | 정본에 없는 관측축을 가리킴 | 축 밖의 값은 그 회사 시그널이 아니다. 축 정의를 보거나 시그널을 옮긴다 |
| INTERP | soft | 귀속 없는 해석·성격 규정 | 누가 그렇게 말했는지를 붙인다. 우리 판정으로 부호를 붙이지 않는다 |
| AXISHELD | soft | 보류한 회차 — 회신이 지시서에 못 미침 | 삭제가 아니다. 회신이 차면 되돌린다 |
| AXISPEND | soft | 아직 닫을 때가 아닌 회차 | 구멍이 아니다. 마감 뒤에 본다 |
| AXISHOLE | soft | 지나간 회차의 누락 | 보고만 하고 막지 않는다 |
| NOCLOCK | soft | 신선도를 잴 날짜 자체가 없음 | 나쁜 것과 다르다. 날짜 필드를 세운다 |
| NOROUTE | soft | 수집 경로를 두지 않기로 함 | 고장이 아니라 의도다. 이유가 적혀 있어야 한다 |
5. AI 구간과 사람 구간
후보·축 매칭·요약까지가 AI, 형태 검사는 결정론 코드, 진위·채택·발행은 사람. AI 구간의 재현율 100%를 주장하지 않습니다 — 그래서 그 위에 결정론 층을 둡니다.
| 단계 | 주체 | 하는 일 | 보장 범위 |
|---|---|---|---|
| 수집 — 후보 발굴 | AI | 회사별 관측축에 걸리는 사건을 공개 소스에서 찾는다 | 재현 보장 없음. 온도 0이어도 동일 출력을 약속하지 않는다 |
| 수집 — 축 매칭 | AI | 찾은 사건이 어느 관측축에 걸리는지 제안한다 | 축 밖의 값을 내면 게이트가 BADAXIS로 거부 |
| 수집 — 요약 | AI | 사실 → 수치 순으로 요약문을 만든다 | 결론·전망·대응 방향은 쓰지 않는다 |
| 판정 — 형태 검사 | 결정론 | URL 형태·발행일 정합·enum·중복·금지어 | 같은 입력이면 항상 같은 판정 |
| 판정 — 진위 | 사람 | 주장이 사실인가 | 게이트 셋을 다 통과해도 진위는 사람이 본다 |
| 채택 — 적재 여부 | 사람 | 무엇을 싣고 무엇을 버리는가 | AI는 후보와 근거를 내는 데까지 |
| 발행 — 배포 | 사람 | 배포물은 나가면 되돌릴 수 없다 | 발송 자동화하지 않는다 |
AI 구간 실측
주장하지 않고 잽니다
회사별 실측
| 회사 | 축 라벨 | 메뉴 | 근거 URL | 겹친/합집합 |
|---|---|---|---|---|
| SKIET | 0.0 | 0.278 | 0.3 | 3/10 |
| SK오션플랜트 | 0.0 | 0.278 | 0.1 | 1/10 |
| SK디앤디 | 0.0 | 0.048 | 0.286 | 2/7 |
| SK엔무브 | 0.143 | 0.833 | 0.429 | 3/7 |
| 드림어스컴퍼니 | 0.0 | 0.176 | 0.25 | 1/4 |
| SK브로드밴드 | 0.0 | 0.263 | 0.0 | 0/16 |
| SK이노베이션E&S | 0.0 | 0.5 | 0.231 | 3/13 |
| SK리츠 | 0.062 | 0.643 | 0.5 | 2/4 |
| SK에코플랜트 | 0.133 | 0.533 | 0.8 | 4/5 |
| SK시그넷 | 0.133 | 0.211 | 0.231 | 3/13 |
| 티맵모빌리티 | 0.0 | 0.294 | 0.231 | 3/13 |
| SK플라즈마 | 0.067 | 0.429 | 0.067 | 1/15 |
| SK팜테코 | 0.0 | 0.353 | 0.455 | 5/11 |
| SK주식회사AX | 0.133 | 0.615 | 0.4 | 4/10 |
| SK에코플랜트머티리얼즈 | 0.6 | 0.917 | 0.231 | 3/13 |
| SK지오센트릭 | 0.062 | 0.467 | 0.154 | 2/13 |
| SK에너지 | 0.059 | 0.176 | 0.067 | 1/15 |
| SK플래닛 | 0.0 | 0.312 | 0.286 | 2/7 |
| 11번가 | 0.062 | 0.294 | 0.25 | 3/12 |
6. 긴급 축 기준
mGSCS에서 승계한 판정 기준 — 판정은 코드, 발송은 사람
게이트는 「점검 메일을 보낼 자격」을 가리고, 생산영향 등급은 「얼마나 급한가」를 잽니다. 두 질문은 축이 다릅니다. 예전에는 게이트 조합으로 급함을 대신 재서 「우리와 무관한데 센 사건」과 「우리 권역인데 약한 사건」이 같은 칸에 들어갔습니다.
| 게이트 | 이름 | 묻는 것 |
|---|---|---|
| G1 | 지리 근접 | 지역 정합 BP가 실제로 있는가 |
| G2 | 소재군 직접 노출 | 판정 축 소재군이 있고, 그 소재군이 그 지역에 있는가 |
| G3 | 출처 공식성 | 공식 기관 출처인가. 공식이면 단독으로 충분하고, 아니면 G5가 독립 출처 2곳을 요구한다 |
| G4 | 실제 중단 정황 | 근거 문장이 '일어난 일' 을 말하는가 |
| G5 | 사실 확인 | 공식이면 단독도 충분, 아니면 독립 출처 2곳 이상 |
| 등급 | 뜻 |
|---|---|
| PI-3 | 긴급 |
| PI-2 | 점검 |
| PI-1 | 참고 |
| PI-0 | 무관 |
토큰 · 시험
| 규칙 | 내용 | 정본 |
|---|---|---|
| 깔때기 4단 | 수집(코드·30분 주기) → 재난 선별(코드·범주 사전) → 연관(AI 후보 + 코드 5게이트) → 점검 대상(사람·이유 코드). 「재난 14건 중 연관 5건, 그중 2건 점검」으로 읽는다 | mgscs/docs_judgment_criteria.md §0 |
| 게이트는 3값 | pass·fail·unknown. 하나라도 pass가 아니면 monitor, 전부 pass 면 review. 명부 미설정은 fail이 아니라 unknown — 모름을 0으로 세지 않는다 | mgscs/servera/mgscs/gates.py |
| G4 부정·추측 | 「차질 없어」·「우려·전망」은 중단이 아니다. 중단 표현이 있고 부정·추측 표현이 없어야 통과한다 | gates.py DISRUPTION·NEGATION·SPECULATION |
| 출처 G3·G5 | 공식 기관이면 단독으로 충분, 아니면 독립 출처 2곳. 공식을 필수로 두지 않는다 — 경보는 기관이, 중단 사실은 뉴스가 전하므로 | gates.py · mGSCS D-004 |
| PI는 사이트마다 | 생산영향 등급은 사업장 하나마다 재고 사건 등급은 그 최댓값(PAGER 방식). 곱셈이 아니라 표 조회 — 「왜 이 등급인가」를 설명할 수 있어야 한다 | mgscs/servera/mgscs/impact.py |
| 관측이 추정을 이긴다 | 세기는 ① 관측(시정촌 진도·ShakeMap) ② 추정(감쇠식) ③ 권역 순. 좌표가 없으면 PI-1로 사람이 본다 | impact.py · mGSCS D-010 |
| 강제 상향 | GDACS Red·PAGER Orange/Red·사업장 지목 + 정지 보도는 추정 진도와 무관하게 PI-3. 정황·Orange·Yellow는 PI-2 후보 | impact.py _forced_pi |
| 사외는 매칭이 연다 | 텔레그램은 등급이 아니라 「걸린 협력사 사업장이 있는가」로 연다. 세기를 못 재는 종류(봉쇄·파업·수출 금지)가 통째로 빠지지 않게. 소리는 S1 에만 | outbox.py channels_for · mGSCS D-007 |
| 채널별 정보 | 사외 채널에는 회사·사업장·유형·세기·시각·사건 번호까지. 소재군·진도 상세·연락처는 사내 메일만. 내보내기 전에 본문을 정규식으로 재검사한다 | outbox.py · docs_judgment_criteria.md §5 |
| 사외 3중 잠금 | 대상 없음·미검증·근거 URL 없음이면 나가지 않는다. PI 로만 등록된 사건은 미검증이라 사외로 못 나간다 | outbox.py · docs_judgment_criteria.md §5 |
| LLM은 후보 | 코드가 국가·지역·중단 여부·소재군을 스스로 뽑아 LLM 없이도 판정이 끝난다. LLM의 자기신고 확신도는 입력으로 받지 않는다 | mgscs/servera/mgscs/extract.py · mGSCS D-003 |
| 발송 경계 | 서버에 SMTP가 없다. 초안(.eml)까지 만들고 [보내기]는 사람. 「보내나 0/N」은 결함이 아니라 의도한 경계 | mgscs/servera/mgscs/eml.py · mGSCS D-008·D-031 |
| 조용한 실패 금지 | 심박은 「이상 없음」을 사람에게 보내지 않고, 끊기면 알린다. 일일 상태는 1차 출처가 실패하면 「이상 없음」 대신 「부분 점검」 | outbox.beat · daily_status.py |
| 토큰 없으면 failed | 봇 토큰은 비밀값으로 분리돼 저장소에 없다. 없으면 사외 줄은 failed로 쌓인다. 조기경보는 사외 인스턴스에서 운영 중(텔레그램 비공개 방 + 사외→사내 메일)이고 제출판에는 토큰·발송 계정이 없다 | telegram.py · alert_config.py SECRETS · C-052 |
협력사·사업장 실명, 사내 시스템 주소, 연락처는 이 절에 옮기지 않습니다. 규모는 자릿수로만 적습니다.
7. 원류 규율
m-SIGNAL에서 승계한 것 — 동향 축 게이트는 이 규율의 코드화입니다
원류는 반도체 소재 관점의 주간 관측 체계이고, 규율은 그쪽 CONTRACT에서 왔습니다. 이식판 두 곳과 이 체계가 같은 규율을 지키며, 규율을 코드로 옮긴 것이 3절의 게이트입니다. 사내 관점이 담긴 원문 화면은 반출하지 않습니다.
| 규율 | 내용 | 어디서 왔고 무엇이 됐나 |
|---|---|---|
| 실데이터만 | 지어낸 사건·수치·URL은 산출물 폐기 사유 | m-SIGNAL CONTRACT ① |
| URL은 숫자 기사 ID | 사람이 읽는 슬러그·대문·섹션 URL 단독 인용은 폐기. 지어낸 URL은 슬러그 꼴로 온다(수집자 실측) | CONTRACT ② → 게이트 SLUGURL·FRONTURL |
| 발행일·제목 필수 | citations[].pub_date와 headline이 없는 인용은 싣지 않는다. 2026-07-31 사고의 원인이 이것이었다 | CONTRACT ③ → NODATE·NOHEADLINE |
| 사건일 ↔ 발행일 정합 | 인용이 사건보다 30일 넘게 과거면 과거 사건을 당주로 옮겨 적은 것 | CONTRACT ④ → STALE·FUTURE |
| 확인불가는 확인불가로 | 확인 못 한 것은 confidence_note에 「확인불가」. 빈칸·추정 금지 | CONTRACT ⑤ → 「없음을 가르는 법」 절 |
| 갈리면 병기 | 매체마다 수치가 다르면 병기한다. 한쪽을 고르지 않는다. 근거 없는 수치는 병기가 아니라 삭제 | CONTRACT ⑥ · SK-SIGNAL CONTRACT §2-8 |
| 내부 사정 단정 금지 | 영향 서술은 「~로 보도됐다」. 권고·명령형 금지. 계열 관계·지분율은 공시·공정위 기준 | CONTRACT ⑦⑧ → IMPERATIVE |
| 정본은 한 곳 | 열거값·금지어·차단 도메인은 collect_spec.py 하나를 세 경로(지시·수집·적재)가 읽는다. 복제본이 정본과 어긋난 사고에서 왔다 | m-SIGNAL D-029 → G-012 |
| 수집자는 판정하지 않는다 | 후보와 근거를 내는 데까지가 수집. 채택은 여기서 한다. 수집자 신뢰도는 실측으로 정하되 한 번의 측정으로 순위를 고정하지 않는다 | signal-crawl 규율 · 수집 규율 15조 |
| 건수 목표 없음 | 없으면 없다고 낸다. unresolved를 비워 두면 「전부 찾았다」는 주장이 된다 | 설명서 §5 · NOUNRESOLVED |
| 이식은 대장에 먼저 | 코드를 고치기 전에 이식대장에 적는다. 이식 비용 = 값 교체 · 이름 교체 · 검사 존폐 판단, 마지막은 사람 | m-SIGNAL-SK/docs/이식대장.md |
| 합치지 않고 관계만 | 두 축을 잇는 층은 same_event·follows·context·distinct_but_similar 관계만 든다. 합치면 틀렸을 때 행이 사라진다 | m-SIGNAL D-072 → bridge_relations.json |
8. 하네스
모델을 뺀 에이전트의 전부 — 두 축을 같은 방식으로 움직이게 하는 것
바뀌는 것은 데이터 파일(관측축·명부·수집 정본)이고 바뀌지 않는 것이 하네스입니다. 동향 축에서는 반도체 → 배터리 → 그룹 사업 축 → 계열사 33사로 옮기며 이것을 실측했고, 긴급 축은 같은 원리로 설계했으나 다른 시스템으로 옮긴 실증은 아직 없습니다.
| 구성요소 | 하는 일 | 실물 |
|---|---|---|
| 스킬 | 관측축 도출 · 시그널 수집·판정·적재 · 재빌드 절차를 작업할 때 함께 열리는 지시서로 고정 | .claude/skills/ |
| 수집 정본 한 파일 | 열거값·금지어·차단 도메인·출처 등급을 한 곳에 두고 지시·수집·적재 검증 세 경로가 읽는다 | src/collect_spec.py |
| 게이트 | 같은 입력에 같은 답. HARD가 하나라도 있으면 다음 단계로 가지 않는다 | src/rebuild_all.py PRE·POST |
| 카나리아 | 결함 표본과 정상본을 함께 넣어 결함은 잡히고 정상은 통과하는지 매 빌드 확인. 오탐이 많은 게이트는 무시당하는 게이트다 | src/rebuild_all.py |
| 결정론 빌드 | 같은 데이터로 다시 빌드하면 같은 바이트. 지문으로 확인한다 | rebuild_all.py 지문 |
| 문서 표류 게이트 | 설명서·기준서·연결 화면에 손으로 적은 게이트 수·화면 수·시그널 수·관측축 수를 실측과 대조 | src/audit_docs.py |
| 판정 이력 강제 매핑 | 판정마다 어느 게이트가 그것을 강제하는지 적는다. 강제 수단 없는 판정은 상한까지만 | docs/강제매핑.json · audit_docs TODO |
| 계정 분리 | 조사 전담 계정은 정본에 쓰지 못하도록 도구 수준에서 막았다 | 계정 B 권한 |
두 축의 교환 규칙
무엇을 서로 가져왔고, 인계는 어느 방향으로 가는가
| 규칙 | 내용 | 근거 |
|---|---|---|
| 인계 방향 | 긴급 축에서 확정된 위험은 사건 창이 닫히기 전에 키워드(지역·소재군·회사·조치)로 동향 축 이슈 타임라인에 붙인다. 긴급 축의 만료가 동향 축에서는 소강이다 | docs_judgment_criteria.md §3-3 · bridge_relations.json |
| 지금은 손으로 | 이 인계는 현재 사람이 한다. 자동 인계와 만료 통지는 로드맵 항목이다 | data/bridge_spec.json not_claimed |
| 정본 표 | 소재군 분류·출처 등급·보고 양식은 동향 축이 정본, 지명 참조표·세기(PI)는 긴급 축이 정본. 같은 값을 두 곳에 두지 않는다 | mgscs/docs_system_chart.md |
| 긴급 → 동향 | G4 부정·추측 판정 → 전망 단정을 잡는 게이트(INTERP) · 결정 이유 코드 · 판정 0건 경보 | bridge_spec.exchange.gscs_to_signal |
| 동향 → 긴급 | 출처 tier와 1차 자료 비율 · URL 형태·발행일 정박·중복 게이트 · 「미해결·관측 불가」정식 출력 · 재현성 분리 측정 | bridge_spec.exchange.signal_to_gscs |
| 이관은 결과 + 근거 | 못 잰 값은 비워 보내고 이유를 적는다. 상대 축이 기본값으로 채우지 않는다 | mGSCS D-020 |
| 규칙을 바꾸면 상대 표본 | 한쪽 규칙을 고치면 상대 축 표본을 돌려 본다. 규칙이 두 축에서 다르게 살아남지 않게 | docs_system_chart.md 원칙 10 |
| 문체 | 화면은 명사 종결, 메일·안내는 존댓말, 경보는 읽을 사람의 말로 | m-SIGNAL D-046 · mGSCS D-022·D-030 · G-063 |
업계 지침과의 대응 4 — 준수 주장이 아니라 같은 방향의 표시
| 지침 | 무엇을 요구하나 · 우리는 어떻게 | 실물 |
|---|---|---|
| EU AI Act 제14조 — 사람의 감독 | 출력을 번복·정지할 수 있어야 한다. 승인 버튼이 아니라 발송 능력의 부재로 구현했다 — 승인 버튼은 반복되면 습관이 되어 감독이 퇴화하기 쉽다고 봤다 | 발송 경계 · 사외 3중 잠금 |
| ICD 203 — 분석 기준 | 출처 요약 진술과 확신도 표기. 출처 등급(T1 3단)과 「확인불가」정식 출력은 있고, 확신도 규약은 아직 없다 — 다음 단계 | 원류 규율 ⑤ · 로드맵 |
| CAP 1.2 — 경보 규격 | 심각도·긴급도·확실도 3축과 응답형. 긴급 축의 SI/U/C와 Assess·Monitor·AllClear가 승계했고 Execute는 두지 않았다 | docs_judgment_criteria.md §3-1 |
| dead-man's switch | 「이상 없음」이 오지 않으면 감시가 멎은 것. 심박·일일 상태·대조량 게이트가 같은 원리 | outbox.beat · audit_scope |
9. 로드맵
현재 위치 = 데이터 실측 · 수기 금지
| 단계 | 무엇 | 실측 | 상태 | 비고 |
|---|---|---|---|---|
| 0 | 신뢰 | 게이트 14종 + 빌드 후 검증 2종 · 판정 코드 39 · 카나리아 결함 주입 + 정상본 음성 검사 | 운영 | 정정 64건 · 판정 근거 83건이 게이트와 함께 쌓였다. 그중 둘은 정상 데이터를 잡던 과잉 게이트를 게이트 쪽을 고쳐 푼 것 |
| 1 | 명부 · 관측축 | 33사 전건 재검증 · 관측축 309개 (회사마다 다르다) | 운영 | 공정위 지정 기준일과 재검증일을 화면에 함께 표시한다. 이탈·소멸도 지우지 않고 상태를 붙인다 |
| 2 | 주간 층 — 시그널 | 시그널 115건 · 인용 224건 · 계열사 간 전이 58건 (측정 불가 65건 별도 기재) | 운영 · 첫 전주 대비는 다음 주차 | 전이는 근거 있는 연결만 싣고, 잴 수 없는 것은 「측정 불가」를 정식 결과로 남긴다 |
| 3 | 월간 층 — 원장 | 공시 329건 · 논문 154건 · 특허 76건 · 사업장 251건 | 첫 회차 | 찾지 못한 것 109건·두지 않은 것 59건 전건 기재. 독립 검증자가 전 트랙을 반박 검사해 논문 30편을 실재-비저술로 제외했다 |
| 4 | 연결 — 두 축 | 긴급 축(생산영향 등급 PI-0~3 알람 기준) ↔ 동향 축(여섯 층) 상호 이식 조건 명문화 | 기준 확정 · 최소 실증(가상 사건 5건 × 사업장 251곳 조인) · 관계 원장 1건 | 실사건 원장으로 같은 조인을 돌리는 것이 다음 할 일 표의 다섯째 항이다. 인계는 지금 사람이 한다 |
| 5 | AI 실측 | 재현율·리서치 일치도·회수율 | 측정값 게시 | 측정 전에는 수치를 쓰지 않는다. 잰 값만 §5에 온다 |
다음 8 — 있는 기계 켜기 우선
| 순위 | 무엇 | 왜 여기부터 |
|---|---|---|
| 0 | 주간 전주 대비 첫 값 | 시계열은 두 점부터다. WW35가 첫 점이고 WW36 수집이 끝나야 「전주 대비」칸이 처음 채워진다 |
| 1 | 월간 층 2회차 | 첫 회차는 스냅샷이다. 전월 대비 증감이 생겨야 「층」이라는 이름값을 한다 |
| 2 | P0·P1에 1차 자료 필수 래칫 | 선행 운영판 실측 — 심각도가 높을수록 1차 자료가 없다. P0의 89%(19건 중 17건 · m-SIGNAL 인박스 WW01~WW35 · 2026-08-31 실측 · 근거는 그쪽 저장소). 모수가 19라 한 건이 5%p를 움직인다. 급보일수록 원문이 늦게 나오는 구조라, 나중에 원문으로 되짚는 절차가 답이다. 소급하지 않고 기준선 뒤로만 요구한다 |
| 3 | 검증자 잔여분 재검사 큐 | BLOCKED(봇 차단)·UNCHECKED는 사멸이 아니라 미확인이다. 미확인을 확인으로 승격하는 별도 큐를 돌린다 |
| 4 | 실행 기록 한 줄 | 입력 해시 · 게이트 판정 · 산출물 지문을 실행마다 한 줄로 남긴다. 부품(지문·검증결과)은 이미 있고 묶는 일만 남았다 |
| 5 | 사업장 × 재난 판정 조인 — 실사건으로 | 월간 층의 사업장 원장이 긴급 축(생산영향 등급 PI-0~3)의 명부가 된다. 연결 화면의 최소 실증은 가상 사건 5건 × 사업장 251곳이고, 실사건 원장으로 같은 조인을 돌리는 것이 다음이다. 두 축이 실제로 만나는 지점이고, 외부에서 복제할 수 없는 연결이다 |
| 6 | 확신도 규약 | 출처 등급과 「확인불가」는 있지만 판정 하나하나의 확신도(ICD 203의 표기)는 없다. 규약을 세우기 전에는 확신도를 쓰지 않는다 — 없는 것을 있는 척하지 않는 쪽이 먼저다 |
| 7 | 자동 인계 · 만료 통지 | 긴급 축의 확정 위험을 키워드로 동향 축에 옮기는 일은 지금 사람이 한다. 인계 자체는 자동으로, 인계 여부의 승인은 사람에게 — 그리고 사건 창이 닫힐 때 동향 축이 통지를 받는다 |
하지 않기로 한 것 8 — 기록 = 재논의 차단
| 하지 않는다 | 왜 |
|---|---|
| LLM으로 요약·초록을 생성해 본문을 채우기 | 재현 불가·환각. 자른 것은 원문으로 되돌아가지만 지어낸 것은 되돌아갈 데가 없다. 본문은 원문 인용과 결정론 집계로만 만든다 |
| 발송 자동화 | 배포물은 나가면 되돌릴 수 없다. 만들어 두고 사람이 보낸다 |
| 별도 그래프 DB | JSON 정본 + 단일 HTML로 같은 효용을 낸다. 폐쇄망에서 열리는 것이 그래프 질의보다 먼저다 |
| 미래 시나리오·확률 예측(기본/상승/하락) | 가설을 세우지 않고 **가설이 깨지는 지점**을 표시한다. 관측축의 cadence·why가 그 지점이며, 정보분석 실무에서 Indicators/Signposts of Change 라 부르는 것과 같은 자리다. 형제 시스템이 이 결정을 원장에 안 적어 두었다가 걷어낸 시나리오 코드가 빌더에 그대로 남았다 — **조건이 없으면 결정이 아니라 관습이 되고, 관습은 코드를 못 지운다.** 그래서 여기 적는다 |
| 사건에 우리가 기회·위기의 부호를 붙이기 | 전이 원장은 `direction` 을 들지만 그것은 **근거 문서가 말한 부호**이지 우리 판정이 아니다. 화면에 올릴 때는 부호만 올리지 않고 **누가 그렇게 말했는가를 함께** 올린다. 귀속 없이 올리면 `INTERP` 게이트가 잡는다 — 우리가 만든 게이트에 우리가 걸린다 |
| DART·특허 전면 자동 수집 | 엔티티 해소·별칭 유지보수가 운영 인원 한계를 넘고 rate·약관 리스크가 있다. 월간 배치 + 독립 검증자로 간다 |
| AI 구간 재현율 100% 주장 | 온도 0이어도 동일 출력이 보장되지 않는다. 실측값(0.077~0.401)을 그대로 보고한다 |
| 선행판 원문 화면 반출 | 사내 소재 관점이 담긴 원문 hub는 내보내지 않는다. 시스템 기준서와 SK SIGNAL이 그 자리를 대신한다 |
확장성 — 교체 경계 실측(배터리판 → 그룹판)
| 요소 | 도메인 변경 시 | 비고 |
|---|---|---|
| 계열사 명부 · 관측축 | 교체 | 회사·축은 도메인의 것이다. 구조(key·근거 URL·재검증 기록)는 재사용 |
| 소스 티어 · 금지어 · enum | 교체 | 값은 바뀌어도 「정본 한 곳을 세 경로가 읽는다」는 유지 |
| 게이트 · 카나리아 | 유지 | 날짜 정합·수치 조작·URL 형태·중복·금지어 판정은 도메인을 모른다 |
| 정본 → 빌드 → 검증 파이프라인 | 유지 | 단일 정본 · 결정론 · 외부 호출 0 · 사람이 마지막 |
| 교정 플로우 · 이력 규율 | 유지 | C-번호·G-번호와 「흔적 없이 지우지 않는다」는 어느 도메인에서도 같다 |
10. 정본 목록
어느 값이 어디 사는가. 같은 값을 두 곳에 두면 한 곳은 반드시 낡습니다. 이 저장소에서 그 형태로 다섯 번 정정했고, 다섯째는 제출물이 틀렸습니다.
| 정본 | 무엇 | 규율 |
|---|---|---|
| data/registry.json | 계열사 명부 33사 · 지분 · 상태 | 공정위 지정 + 전건 재검증 |
| data/company_ia.json | 회사별 관측축 · 메뉴 · 정보원 · 안 보기로 한 것 | 리서치 판정 결과 |
| data/propagation.json | 계열사 간 전이 · 경로 · 부호 · 시차 | 근거 있는 연결만 |
| data/monthly.json | 월간 층 — 공시 · 논문 · 특허 · 사업장 | 검증자 판정 통과분 |
| data/entity_aliases.json | DART 등록 상호 매핑 | 수집기가 조용히 실패하는 것을 막는다 |
| data/source_tiers.json | 인용 tier 판정 규칙 | 사람 감으로 등급을 매기지 않는다 |
| data/fin_baseline.json | 확정 실적 기준선 — 매출·영업이익·순이익 | OpenDART 2025 사업보고서 · 건마다 접수번호 |
| data/entity_aliases.json의 corp_code | DART 법인 고유번호 | 전체 118,810 법인과 대조해 확보. 회사명으로 조회하지 않는다 |
| data/url_check.json | URL 실재 검사 결과 | 게이트가 아니라 별도 도구가 만든다 |
| data/bridge_spec.json | 두 축의 역할 · AI 관여표 | m-BRIDGE 연결 화면 정본 |
| store/signals.json | 적재된 시그널 | 판정 통과분만 |
| src/collect_spec.py | enum · 금지어 · 차단 도메인 · 수집 회차 창 | 세 경로가 이것 하나를 읽는다 |
| src/rebuild_all.py | 절차 — 게이트와 빌드 순서 | 문서에 나열하지 않는다 |
| src/theme.py | 화면 토큰 — 색 · 타이포 6단 · 의미 클래스 | m-SIGNAL 승계 |
| mgscs/servera/mgscs/gates.py | 긴급 축 5게이트 판정 | 서버가 정본. 화면 사본은 drift_test가 글자 단위로 대조 — 한쪽만 고치면 릴리스가 막힌다 |
| mgscs/servera/mgscs/impact.py | 생산영향 등급 PI 문턱 | 취약도별 MMI 문턱·강제 상향 조건. 문서(docs_judgment_criteria)가 아니라 이 상수가 정본이다 |
| mgscs/DECISIONS.md | 긴급 축 결정 원장 | D-번호. m-SIGNAL의 D-번호와 별개 체계 — 인용할 때 「mGSCS D-」로 접두 |
| data/bridge_relations.json | 두 축 사이의 관계 | 합치지 않고 관계(same_event·follows·context·distinct_but_similar)만 든다 |
11. 없음을 가르는 법
이 시스템이 「없다」를 한 값으로 두지 않는 이유입니다. 뭉치면 그 게이트는 매번 붉고 아무도 보지 않습니다. 그리고 화면에서 「없음」이 「정상」과 같은 모양이 되면 아무도 알아채지 못합니다.
실측 하나 — 전이 원장을 시그널에 잇기 전에 조인율을 먼저 쟀더니 115건 중 71건이 「관련 이력 없음」으로 뜰 상태였고, 그중 진짜 없음은 8건이었습니다.
| 갈래 | 무슨 뜻 | 어떻게 다루나 |
|---|---|---|
| 전이 이력 없음 | 정말로 그 회사에 걸린 전이가 없다 | 판정이다 |
| 축 어휘 불일치 | 전이는 있는데 축 이름이 갈려 못 이었다 | 우리 데이터 문제다 |
| 전이 원장 축 미기재 | 전이는 있는데 원장이 축을 안 적었다 | 우리 데이터 문제다 |
| 미확정(AXISPEND) | 아직 회차를 닫을 때가 아니다 | 구멍이 아니다 |
| 지금 끊김(AXISDROP) | 닫힌 회차인데 들어온 것이 0 | 고장이다 |
| 과거 구멍(AXISHOLE) | 지나간 회차의 누락 | 보고만 하고 막지 않는다 |
| 못 잼(NOCLOCK) | 신선도를 잴 날짜 자체가 없다 | 나쁜 것과 다르다 |
| 미구축(NOROUTE) | 수집 경로를 두지 않기로 했다 | 고장이 아니라 의도다 |
12. 화면 규약
화면이 무엇을 보여 주느냐만큼 어떻게 적느냐가 규율입니다. 같은 뜻을 매번 손으로 다시 조립하면 화면마다 조금씩 달라지고 어느 것이 맞는지 아무도 모릅니다.
| 규약 | 내용 | 근거 |
|---|---|---|
| 제목은 명사 | 설명·이유는 제목에 붙이지 않고 바로 아래 註로 내린다. 대시 뒤에 올 수 있는 것은 한정어뿐이다 | G-052 |
| 메뉴는 분류 | 최상위는 매주 여는 것만. 33사는 대분류 7로 접는다. 그룹 이름은 목적으로 짓는다 | G-049 |
| 의미 클래스 | 반복 조합을 손으로 다시 조립하지 않는다. 간격은 그릇이 든다 | G-046 |
| 타이포 6단 | 연속 크기를 쓰지 않는다. 6단 밖으로 나가면 「이 글자는 몇 px 인가」를 아무도 답할 수 없다 | G-046 |
| 비어 있음을 감추지 않는다 | 기계가 못 고른 것을 고른 것처럼 보이게 하는 순간 화면이 사실과 달라진다 | G-048 |
13. 하지 못하는 것
약속할 수 없는 것은 약속하지 않습니다. 한계를 빼면 나머지가 전수 검증처럼 읽힙니다.
| 한계 | 내용 |
|---|---|
| audit_dates는 형식만 본다 | URL과 날짜가 멀쩡하면 통과한다. 내용이 그 사건인지는 보지 않는다 |
| audit_numbers는 코퍼스에 과거 값이 있어야 잡는다 | 처음 보는 조작은 못 잡는다. 공백은 data/fin_baseline.json에 사람이 심어 메운다 |
| URL을 실제로 열지 않는다 | 게이트는 외부 호출 0 이다. 실재는 별도 도구(check_urls)가 네트워크로 검사해 파일로 남기고, 게이트는 그 파일을 오프라인으로 읽는다 |
| 반입 시험은 자동화돼 있지 않다 | 소스 zip을 풀어 재빌드하는 시험은 사람이 돌려야 안다. ZIP_DIRS 누락이 재발해도 잡는 게이트가 없다 — 봉인마다 한 번 돌린다(C-035). 실제로 재발했다 — 연결 실증 데이터가 zip밖에 있어 재빌드 시 빈 절이 났다(C-056) |
| 바이너리 안의 글자는 못 본다 | PDF·PNG·docx는 zip 안이든 밖이든 텍스트로 읽지 않는다. 밖에서 만든 PDF를 넣으면 아무도 안 본다 |
| 링크 검사는 파일 존재까지다 | 앵커(#id)가 실제 뷰에 닿는지는 안 본다. 도달 불가 뷰(C-036)를 잡은 것은 이 검사기가 아니라 사람의 클릭이었다 |
| 명부는 낡는다 | 공정위 지정 기준일 이후 변동을 자동으로 알 수 없다. 재검증일을 화면에 표시한다 |
| AI 구간의 재현율을 100%로 약속하지 않는다 | 온도 0이어도 동일 출력이 보장되지 않는다. 결정론 구간과 갈라 쓰고 실측값을 그대로 보고한다 |
| 관측 경계는 외부까지다 | 사내 재고·계약 조건·발주 판단은 관측 대상이 아니다. 언론이 자사를 보도했더라도 '~로 보도됐다'로 쓴다 |
수집에서 실측된 함정 — DART · 비상장 3층 · 접근 불가 도메인
- 공시검색은 POST 전용. GET은 미지원
- 본문 뷰어는 세션 쿠키+Referer 2단계. 쿠키 없이 부르면 485바이트 빈 응답이 온다
- 정정 공시가 같은 사안에 여러 rcpNo로 남는다. 최신 rcpNo만 채택
- 회사명 한글 검색 금지 — 등록 정식상호 불일치(SK바이오팜→'에스케이바이오팜'). 종목코드 기반
- 1층 모회사 사업보고서 「II. 사업의 내용 › 7. 기타 참고사항」 — 전용 절이 있는지 먼저 본다
- 2층 연결재무제표 주석 — 특히 「우발부채 및 약정사항」. 사업 리스크가 여기 있다
- 3층 연결 영업부문 주석 — 기타부문에 묻힌다. 마지막에 본다
| 도메인 | 증상 |
|---|---|
dart.fss.or.kr | GET 검색 미지원 — POST 전용. 본문 뷰어는 세션 쿠키+Referer 2단계 |
egroup.go.kr | JS 렌더링 |
fnnews.com | 403 |
html.duckduckgo.com | CAPTCHA |
kisrating.com | 간헐 500 |
law.go.kr | JS 렌더링 |
search.naver.com | 페처 차단 |
sk-on.com | TLS 인증서 불일치(altnames가 *.skenergy.com 뿐) |
thebell.co.kr | 본문 빈 응답 |
yna.co.kr | 페처 차단 |
src/collect_spec.py 가 단일 정본14. m-BRIDGE를 이루는 체계
여섯 체계 — 운영 중인 것, 제출용으로 만든 것, 설계뿐인 것을 갈라 적는다
한 표에 놓는 이유는 성숙도를 숨기지 않기 위해서입니다. 30주 넘게 운영으로 이어 온 것은 원류 하나이고, 이식판 둘은 이식이 성립함을 확인한 단계이며, 연결 엔진은 설계와 정답셋까지입니다. 수는 각 판의 이식대장·발행 기록에서 옮겨 적었고, 이 저장소가 세는 수만 빌드 시 채웁니다.
| 체계 | 상태 | 주기 · 판정 단위 | 실물 | 출처 |
|---|---|---|---|---|
| m-SIGNAL 원류 · 동향 축 | 운영 중 — 반도체 소재 관점 주간 발행. WW01(2026-01)부터 WW35(2026-08-31 발행)까지 35회차 연속, 중단 0 | 주간 · 시그널(사건 1건 + 근거 인용) | 사내. 원문 화면은 반출하지 않는다 — 규율만 승계(「원류 규율」 절) | 발행 기록 WW35 |
| ON-SIGNAL 이식 1 · 배터리 소재 | 제출용 — 검사 코드 6줄 + 도메인 정본 7파일 교체로 이식 성립을 확인. 회차 35개는 소급 수집분을 포함 | 주간 · 같은 스키마 | 이식대장 · CONTRACT · 허브 WW35 판(「이식-실증」 폴더) | m-SIGNAL-ON/docs/이식대장.md §1 |
| 그룹 사업축 판 이식 2 · SK 그룹 사업 축 | 제출용 — 검사 코드 9줄(그중 3줄은 사이트 개념이 사라져 검사를 뺀 것). 이식이 성립함을 확인한 단계 | 주간 · 같은 스키마 · 사이트 축 없음 | 이식대장 · CONTRACT · 허브 WW35 판(「이식-실증」 폴더) | m-SIGNAL-SK/docs/이식대장.md §1 |
| SK SIGNAL 본선 · 계열사 전수 | 이 저장소 — 계열사 33사 · 게이트 14종 · 화면은 파일 하나. 원류 규율을 코드로 옮긴 것이 게이트다 | 주간 수집 + 월간 원장 · 회사별 관측축 | data/ · store/ · out/SK-SIGNAL.html · 이 기준서 | 이 빌드 |
| mGSCS 긴급 축 | 2026-04 실운영(이란·호르무즈 감지 실이력) · 제출판은 가상 명부로 갈아 끼운 꾸러미 — 실데이터·연락처·키는 저장소에 없다 | 30분 주기 수집 · 사건 1건 → 게이트 5 → 점검 대상 | mgscs/ 꾸러미 · 「긴급 축 기준」 절 | mgscs/docs_judgment_criteria.md |
| 연결 엔진 두 축의 인계 | 설계와 정답셋까지 — 엔진 코드는 없다. 2026-08-24 하루 착수 뒤 스코프 전환으로 중단. 인계는 지금 사람이 한다 | 사건 단위 · 플로우 A(긴급 → 동향) · B(동향 → 긴급) | bridge_harness/ (「연결 엔진 하네스」 절) | bridge_harness/docs/진행.md D1 |
15. 연결 엔진 하네스
엔진은 없다 — 엔진을 만들 때 먼저 있어야 하는 것만 있다
두 축을 자동으로 잇는 엔진 코드는 없습니다. 예선 기획서의 본체였던 연결 엔진은 본선 첫날 골격과 정답셋을 세운 뒤
스코프 전환으로 멈췄고, 멈춘 자리 그대로 bridge_harness/ 에 실었습니다. 인계는 지금 사람이 합니다(「하네스」 절 교환 규칙).
아래 수는 전부 그 꾸러미의 파일에서 셉니다.
| 부품 | 무엇 | 수 | 실물 |
|---|---|---|---|
| 설계서 | 플로우 A(긴급 → 동향 맥락 붙이기)와 B(동향 → 긴급 승격 제안). AI가 서는 자리는 둘뿐이고 나머지는 코드와 사람 | §0~§12 | 설계서-과제플로우-v1.md |
| 정답셋(노출) | 배터리 판 사이트 영향 라벨을 그대로 옮긴 것. 사람이 매긴 값이며 엔진이 만든 것이 아니다. 원본 파일 지문 동봉 | 380 라벨 · 원본 33파일 | eval/groundtruth_exposure.json |
| 행정구역 테이블 | 사이트 문자열을 행정구역으로 분해한다. 문자열 5개 중 3개가 복수 관할에 걸쳐 원형 반경으로도 단일 구역으로도 표현되지 않는다 | 44곳 · 비권역 6 | data/admin_areas.json |
| 별칭 사전 | 표기 → 행정구역. 그룹판은 지명이 시설명에 붙어 완전일치로는 안 잡힌다(D-005) | 표기 45 · 미해결 4 | data/aliases.json |
| 사건 유형 · 영향 계층 | 사건 발생 권역과 영향 전파는 다른 축이다 — 그래서 엔진은 2단(D-001) | 유형 13 · 계층 5 | data/event_impact_tiers.json |
| 어휘 커버리지 | 태그만으로 권역이 하나라도 잡히는 시그널의 비율. 본문 파싱은 포함하지 않았다 | 배터리 55/76 · 그룹 4/32 · 고유 태그 486 중 등재 40 | eval/geo_vocab.json |