Memenexus · 운영 workflow

QUERY-ONLY OPERATIONS REFERENCE

탐지부터 24시간 라벨까지, 증거가 연결되는 방식

이 문서는 현재 코드가 보장하는 경계와 복구 규칙을 설명합니다. 숫자 현황은 문서에 고정하지 않고 /labels에서 실시간으로 확인합니다.

Active commit: /Users/Shared/memenexus/current-release-commit Source evidence: release-manifest.json Runtime evidence: runtime-manifest.json Label policy: observed-2x-gmgn-5m-v2
핵심 원칙: CA가 같다는 사실은 같은 알림이 배송됐다는 증거가 아닙니다. prediction, report, delivery, label은 명시적인 episode_idflow_prediction_id로만 연결합니다.

1. 한 episode의 전체 흐름

  1. PredictionFlow score/tier, scorer version, chain과 canonical asset key를 저장합니다.prediction_created
  2. Investigation탐지를 큐에 전달하고 조사 cycle을 시작·예약합니다.investigation_started
  3. Report원인·근거를 저장하고 publish 결과를 episode에 연결합니다.report_saved
  4. Deliverystream별 원장에 sending/sent/failure 상태를 기록합니다.delivery_sent
  5. 24h labelGMGN 5분 kline으로 미래 24시간 성과를 엄격 평가합니다.label_evaluated

코인 상세의 “예측 → 라벨 에피소드”는 flow_episode_events를 발생 시각 순으로 읽고, report와 delivery 원장을 같은 episode로 조회합니다. 과거 행에 lineage가 없으면 lineage unavailable로 표시하며 CA/report 일치만으로 배송 성공을 만들지 않습니다.

2. 지원 체인과 외부 링크

체인 이름과 외부 URL은 shared/chains.ts 한 곳에서 정규화합니다. 알 수 없는 체인은 “Unknown”으로 보이고 링크를 만들지 않습니다.

Canonical ID표시허용 aliasGMGN slugDexScreener
solanaSOLsolana, solsolsolana
ethereumETHethereum, ethethethereum
baseBASEbasebasebase
bscBSCbsc, bnb, binance-smart-chainbscbsc
polygonPOLpolygon지원 안 함polygon
arbitrumARBarbitrumarbitrumarbitrum
robinhoodRHrobinhoodrobinhoodrobinhood
stableSTABLEstablestablestable
monadMONmonadmonadmonad
tronTRXtrontrontron
blastBLASTblastblastblast
avalancheAVAXavalanche, avaxavaxavalanche
Robinhood 주의: GMGN의 검증된 token/kline 경로 slug는 robinhood입니다. hood나 CA 뒤에 임의 suffix를 붙이지 않습니다.

3. Strict future label 정책

관측 범위

탐지 시점부터 정확히 24시간, 5분 봉 288개를 대상으로 합니다. 원본은 gmgn-token-kline이며 요청 체인과 응답 context가 일치해야 합니다.

2× 성공 조건

단일 spike가 아니라 2개 연속 peak candle이 2× 이상이어야 하며, exit quote volume은 최소 $1,000입니다. 8× 이상 비정상 jump는 glitch 방어 규칙을 적용합니다.

미래 데이터만

이 정책은 version이 붙은 prospective prediction을 평가합니다. 요청 범위에서 과거 전체 라벨 backfill은 실행하지 않습니다. legacy/unversioned 행은 별도 집계합니다.

identity

chain:canonical-address가 자산 키입니다. EVM 주소는 소문자로 canonicalize하고, 체인이 모호하거나 응답 context가 다르면 성공/실패 라벨을 만들지 않습니다.

“24시간 라벨 완료”의 뜻: 기술적 완료는 evaluated_win + evaluated_loss입니다. 실패 원인을 보려면 terminal, retry, invalid metadata를 분리해서 봐야 하며, 완료 건수 자체가 “실패 건수”를 뜻하지 않습니다.

라벨 상태 정의

under_24h
24시간 window가 아직 닫히지 않았습니다.
eligible
window가 닫혔고 지금 평가할 수 있습니다.
retry_waiting
일시적 kline/chain 오류 후 다음 재시도 시각을 기다립니다.
terminal
재시도해도 의미가 없는 영구 오류로 종료됐습니다. win/loss가 아닙니다.
evaluated_win
엄격한 24h 2× 조건을 충족했습니다.
evaluated_loss
평가는 정상 완료됐지만 2× 조건을 충족하지 못했습니다.
aged_out
72시간 평가 가능 기간을 넘겨 자동 평가 대상에서 제외됐습니다.
invalid_metadata
시각·version·terminal/label 조합 등 저장된 불변식이 맞지 않아 판정을 신뢰할 수 없습니다.

실시간 라벨 상태 열기

4. Lease, retry, recovery

라벨 evaluator

Telegram delivery ledger

상태의미와 복구
sending전송 전에 durable row를 확보한 상태. 신선한 lease면 기다립니다.
sentTelegram message ID까지 저장된 확정 성공. 재처리 시 ACK만 합니다.
failed명시적 실패. max attempts 전에는 다시 sending으로 전환할 수 있습니다.
needs_reviewstale sending, identity 충돌, retry 소진처럼 중복 전송 위험이 있어 자동 재전송하지 않습니다.
skipped정책상 보내지 않은 확정 disposition입니다.
dead_letter자동 처리에서 제외된 확정 disposition입니다.
중복 방지: 오래된 sending은 “실패했으니 다시 보내기”가 아니라 needs_review입니다. Telegram이 실제로 받았지만 응답 저장 전에 프로세스가 죽었을 수 있기 때문입니다.

5. Episode timeline과 provenance

한 episode에는 다음 이벤트가 append-only로 쌓입니다.

prediction_createddetection_publishedinvestigation_started / cycle_scheduledreport_saved / report_publisheddelivery_*label_retry_scheduled / label_terminal / label_evaluated

6. Dashboard 신뢰 경계

Production market DB · read only

  • reports, predictions, labels, events, delivery ledger 조회
  • Dashboard 코드에서 CREATE/ALTER/UPDATE 금지
  • 스키마가 오래되면 fail-soft 메시지

Dashboard user DB · writable

  • 숨김/scam flag, notes, system feedback
  • Prompt Lab 실행 메타데이터
  • 프롬프트 원문은 저장하지 않음

Prompt contract

Prompt Lab은 공용 compiled contract로 ID/version/SHA-256, UTC/KST 규칙과 missing-evidence 규칙을 서버에서 검사합니다. 오류가 있으면 DexScreener 조회와 Grok 호출 전에 422로 차단합니다.

시간 표현

모델과 저장 계층의 provenance는 원본 UTC/epoch millisecond를 유지합니다. 사람이 보는 KST 변환은 application UI에서만 수행합니다.

외부 링크

공유 chain registry가 허용한 GMGN/DexScreener URL만 생성합니다. unknown chain에는 추측 링크를 노출하지 않습니다.

운영 숫자

고정 문서 숫자보다 /labels의 generated-at, backlog, lag, retry/terminal 이유와 chain/anomaly breakdown을 사용합니다.

7. 운영 점검 순서

  1. /labels에서 generated time과 warning을 확인합니다.
  2. eligible + retry_waiting backlog, oldest due, p95 lag를 확인합니다.
  3. retry/terminal/invalid reason과 chain breakdown으로 원인을 좁힙니다.
  4. 코인 상세 episode timeline에서 prediction → report → delivery → label의 ID를 대조합니다.
  5. needs_review delivery는 Telegram/ledger 증거를 확인한 뒤 사람이 disposition을 결정합니다.
  6. Prompt 변경은 Prompt Lab에서 version/hash/diff와 contract 통과를 확인한 뒤 실행합니다.