승격 대기 — 매트릭스 정본 후보
{
"contract": "matrix-component-v1",
"component_id": "module.risu.172577975.livechat-comment-viewer",
"component_version": "1.0.0",
"component_type": "module",
"provenance": {
"review_status": "candidate",
"runtime_status": "inactive",
"availability_verdict": "untested",
"source_refs": [
{
"source_id": "risu:172577975",
"source_version": "risum",
"sha256": "sha256:bb299ded52a369c5cd5367ae5a90e56eaa2ee60af5cf3824b704668ceb7a5909"
}
],
"source_kind": "risu_attachment",
"static_analysis_only": true,
"active_code_policy": "static_preserve_no_execute",
"fixture_kind": "parsed_risu_projection",
"publishable": false
},
"capabilities": {
"provides": [
"livechat.nick_color",
"livechat.comment_feed",
"livechat.lazy_render"
],
"requires": [
"hook.start",
"hook.edit_display",
"hook.edit_process"
],
"conflicts": []
},
"payload": {
"namespace": "risu.module",
"controller": "user",
"triggers": [
"start 시점에 닉네임 색상 할당 로직과 댓글 포맷팅을 등록한다."
],
"state_effects": {
"nick_colors": "닉네임 해시 기반 고정 색상 할당",
"comment_feed": "실시간 댓글 피드 렌더링",
"lazy_load": "지연 로딩 버튼 상태"
},
"activation_rules": [
"닉네임별로 안정적인 색상을 자동 할당한다.",
"최근 댓글만 화면에 표시하고 오래된 댓글 요청은 제거한다."
],
"invariants": [
"같은 닉네임은 항상 같은 색상을 받는다.",
"지연 로딩 버튼은 사용자 조작 전에 전체 피드를 불러오지 않는다."
],
"boundaries": [
"활성 코드 본문(Lua/CJS/정규식 패턴)은 포함하지 않는다 — 정적 구조/원리/역할만 기술.",
"실행·sandbox 재현·승격은 사람 승인 전까지 금지.",
"candidate 상한: 검토 전 runtime catalog 공급 없음."
],
"idea_layers": {
"evidence": {
"source_post": "172577975",
"source_format": "risum",
"lead_id": "risu.deep.risum.172577975",
"analysis_mode": "static_projection_read",
"code_executed": false
},
"situation": {
"concrete_scene": "실시간 채팅방처럼 댓글이 화면에 흐르고, 각 닉네임마다 고유 색상이 붙어 누가 말하는지 한눈에 보인다.",
"emotion_evoked": "현장감 — 마치 진짜 스트리밍 채팅을 보는 듯한 생동감.",
"why_memorable": "닉네임을 해시해 안정적 색상을 주고, 최근 댓글만 남겨 화면을 깔끔하게 유지한다.",
"transferable_lesson": "색상 일관성과 최신 필터가 함께 작동할 때 라이브 피드가 읽기 쉬워진다."
},
"core": {
"core_idea": "닉네임별 안정적 색상과 최근 필터로 댓글 피드를 관리하는 라이브챗 모듈.",
"behavioral_cause": "start에서 색상·포맷 로직을 등록하고 editDisplay에서 렌더링한다.",
"invariant_conflict": "전체 댓글 표시(완전성)와 최근 필터(가독성)의 균형.",
"core_drive": "닉네임 해시로 색상을, 시간 창으로 표시 범위를 결정한다.",
"core_dilemma": "창이 넓으면 정보가 많지만 어수선하고, 좁으면 깔끔하지만 맥락이 잘린다."
},
"swappable_parts": {
"color_hash": "닉네임→색상 해시 함수",
"render_filter": "최근 메시지 표시 필터",
"lazy_button": "지연 로딩 버튼"
},
"lineage": {
"promotion_status": "candidate",
"origin": "risu_deep_dive_lead",
"reverse_translation": "module.risum -> matrix-component-v1(module)"
}
}
},
"projection": {
"title": "라이브챗 댓글 뷰어 — 닉네임 색상·지연 로딩·최근 필터",
"prompt": "채팅방 댓글을 실시간으로 화면에 표시하는 라이브챗 모듈. Lua로 닉네임별 색상을 할당하고 댓글을 포맷하며, 지연 로딩 버튼과 최근 메시지 필터로 화면을 관리한다. 정규식으로 렌더링 찐빠를 수정하고 오래된 댓글의 요청을 제거한다. 실행 코드는 포함하지 않고 원리만 기술한다.",
"prompt_sha256": "sha256:bc1971cf5120e5f3da0e98d9d3c4d63ec7bfeabbb87ade5407ec6ca1209ae914",
"summary": "닉네임별 색상을 자동 할당하고 최근 댓글만 표시하는 실시간 라이브챗 디스플레이 모듈.",
"tags": [
"livechat",
"comment",
"nick-color",
"lazy-loading"
],
"flagship": false,
"core": false,
"content_labels": [
"risu-module",
"static-analysis"
],
"harness_compatibility": "display_only",
"replay_status": "not_run"
}
}