승격 대기 — 매트릭스 정본 후보
{
"contract": "matrix-component-v1",
"component_id": "module.risu.172616217.interview-broadcast-mode",
"component_version": "1.0.0",
"component_type": "module",
"provenance": {
"review_status": "candidate",
"runtime_status": "inactive",
"availability_verdict": "untested",
"source_refs": [
{
"source_id": "risu:172616217",
"source_version": "risum",
"sha256": "sha256:99bc6753b2cda7cfe8925aa8eca65d0699d96da644bdc7953abc79d6c8839506"
}
],
"source_kind": "risu_attachment",
"static_analysis_only": true,
"active_code_policy": "static_preserve_no_execute",
"fixture_kind": "parsed_risu_projection",
"publishable": false
},
"capabilities": {
"provides": [
"interview.mode_switch",
"interview.button_controls",
"interview.render"
],
"requires": [
"hook.start",
"hook.edit_display",
"hook.edit_process",
"low_level_access"
],
"conflicts": []
},
"payload": {
"namespace": "risu.module",
"controller": "user",
"triggers": [
"start 시점에 editDisplay 리스너를 등록해 인터뷰 모드를 관리한다."
],
"state_effects": {
"interview_mode": "방송(on-record)과 비공개(off-record) 모드 상태",
"render_targets": "방송 화면·비공개 화면·버튼 렌더링 대상"
},
"activation_rules": [
"인터뷰 모드에 따라 방송용 또는 비공개 출력을 렌더링한다.",
"4개 선택 버튼으로 진행 방향을 조작한다."
],
"invariants": [
"방송 모드와 비공개 모드는 동시에 표시되지 않는다.",
"최근 출력만 화면에 표시한다."
],
"boundaries": [
"활성 코드 본문(Lua/CJS/정규식 패턴)은 포함하지 않는다 — 정적 구조/원리/역할만 기술.",
"실행·sandbox 재현·승격은 사람 승인 전까지 금지.",
"candidate 상한: 검토 전 runtime catalog 공급 없음."
],
"idea_layers": {
"evidence": {
"source_post": "172616217",
"source_format": "risum",
"lead_id": "risu.deep.risum.172616217",
"analysis_mode": "static_projection_read",
"code_executed": false
},
"situation": {
"concrete_scene": "인터뷰 카메라가 켜지면 캐릭터가 방송용 답변을 하고, 버튼을 눌러 비공개 모드로 바꾸면 카메라가 꺼진 사이의 진짜 속마음이 드러난다.",
"emotion_evoked": "발견의 재미 — 공적인 말 뒤에 숨은 사적인 맥락이 드러나는 순간.",
"why_memorable": "방송/비공개 모드 전환과 4버튼 조작이라는 간결한 장치로 인터뷰의 깊이를 만든다.",
"transferable_lesson": "공적 발언과 사적 맥락을 분리하는 것만으로도 캐릭터 입체감이 생긴다."
},
"core": {
"core_idea": "방송과 비공개를 모드로 전환해 인터뷰를 입체적으로 진행하는 모듈.",
"behavioral_cause": "editDisplay에서 모드 상태를 읽어 렌더링 대상을 바꾼다.",
"invariant_conflict": "공적 발언(방송)과 사적 맥락(비공개)의 분리.",
"core_drive": "모드 전환과 버튼 입력이 진행 방향을 결정한다.",
"core_dilemma": "비공개가 많으면 캐릭터는 깊어지지만 방송의 긴장감은 줄어든다."
},
"swappable_parts": {
"mode_state": "방송/비공개 모드",
"button_set": "4개 선택 버튼",
"render_split": "방송·비공개 렌더링 분기"
},
"lineage": {
"promotion_status": "candidate",
"origin": "risu_deep_dive_lead",
"reverse_translation": "module.risum -> matrix-component-v1(module)"
}
}
},
"projection": {
"title": "인터뷰 방송 모듈 — 방송/비공개 전환·4버튼 조작",
"prompt": "캐릭터 인터뷰를 진행하는 모듈. 방송용 질문과 비공개 발언을 모드로 전환해 출력하고, 4개의 선택 버튼으로 진행을 조작한다. Lua로 인터뷰 모드 상태를 관리하며, 정규식으로 방송 화면·비공개 화면·버튼을 렌더링한다. 실행 코드는 포함하지 않고 원리만 기술한다.",
"prompt_sha256": "sha256:5d86a39a132da4c0c83f05f81ac38cdd325ed873264dde719312f4f7afc6726c",
"summary": "방송용과 비공개 발언을 모드로 전환하고 4버튼으로 진행하는 캐릭터 인터뷰 모듈.",
"tags": [
"interview",
"mode-switch",
"broadcast",
"button-controls"
],
"flagship": false,
"core": false,
"content_labels": [
"risu-module",
"static-analysis"
],
"harness_compatibility": "display_only",
"replay_status": "not_run"
}
}