승격 대기 — 매트릭스 정본 후보
{
"contract": "matrix-component-v1",
"component_id": "module.risu.130373658.all-in-one-output-pipeline",
"component_version": "1.0.0",
"component_type": "module",
"provenance": {
"review_status": "candidate",
"runtime_status": "inactive",
"availability_verdict": "untested",
"source_refs": [
{
"source_id": "risu:130373658",
"source_version": "risum",
"sha256": "sha256:ac9b9b7711399182b48bf5a3932a32cd4ba611dbd666e8bbddde87ddaf0daadc"
}
],
"source_kind": "risu_attachment",
"static_analysis_only": true,
"active_code_policy": "static_preserve_no_execute",
"fixture_kind": "parsed_risu_projection",
"publishable": false
},
"capabilities": {
"provides": [
"output.phase_split",
"typography.normalize",
"display.cot_fold",
"ui.choice_render"
],
"requires": [
"hook.edit_request",
"display_layer",
"process_layer"
],
"conflicts": []
},
"payload": {
"namespace": "risu.module",
"controller": "user",
"triggers": [
"start 시점에 파이프라인을 등록하고, editRequest에서 단계별 변환을 적용한다."
],
"state_effects": {
"phase_split": "사전분석·응답·후속응답·에필로그·선택지 등 콘텐츠 위상을 분리",
"toggle_state": "토글로 각 섹션(인풋 대필·번역·선택지·CoT·상태창)의 켜짐/꺼짐을 기억"
},
"activation_rules": [
"각 변환군은 토글로 독립 켜짐/꺼짐. 비활성군은 무시한다.",
"변환은 표시(display)·처리(process)·출력(output)·입력(input)·치환(trans)의 단계로 나뉘어 순차 적용된다."
],
"invariants": [
"표시용 변환은 보이는 쪽만 바꾸고, 처리용 변환은 모델에 보내는 본문을 바꾼다 — 둘을 섞지 않는다.",
"한국어 대사·속마음의 따옴표/볼드/이탤릭은 역할별로 구분해 정규화한다."
],
"boundaries": [
"활성 코드 본문(Lua/CJS/정규식 패턴)은 포함하지 않는다 — 정적 구조/원리/역할만 기술.",
"실행·sandbox 재현·승격은 사람 승인 전까지 금지.",
"candidate 상한: 검토 전 runtime catalog 공급 없음."
],
"idea_layers": {
"evidence": {
"source_post": "130373658",
"source_format": "risum",
"lead_id": "risu.deep.risum.130373658",
"analysis_mode": "static_projection_read",
"code_executed": false
},
"situation": {
"concrete_scene": "AI가 뱉은 긴 응답이 단계별로 다듬어져 — 생각의 사슬은 접히고, 응답 본문만 남으며, 한국어 대사는 띄어쓰기가 고쳐지고, 선택지는 보기 좋은 패널로 바뀌어 사용자에게 도달한다.",
"emotion_evoked": "정돈된 몰입 — 보이는 쪽은 깔끔하고 보내는 쪽은 통제된다.",
"why_memorable": "같은 텍스트가 보이는 쪽(display)과 모델에게 가는 쪽(process)으로 분리되어 각자 다르게 다듬어진다는 구조적 분리.",
"transferable_lesson": "출력 품질은 단일 변환이 아니라 위상별로 나뉜 순차 파이프라인에서 가장 안정적으로 얻어진다."
},
"core": {
"core_idea": "콘텐츠 위상(분석/응답/에필로그/선택지)을 분리하고 단계별로 독립 토글되는 출력 조건 파이프라인.",
"behavioral_cause": "editRequest가 표시·처리·출력·입력·치환 단계의 변환 규칙을 순차 적용한다.",
"invariant_conflict": "정보 손실 없는 가공(모델용 본문 보존)과 깔끔한 표시(디스플레이 정제)의 분리 요구.",
"core_drive": "토글 가능한 섹션들로 가독성과 통제를 동시에 제공한다.",
"core_dilemma": "많은 섹션을 켤수록 풍부하지만 충돌과 복잡도가 커진다."
},
"swappable_parts": {
"sections": "인풋 대필·번역·선택지·CoT 접기·상태창·가독성 보정",
"css_variant": "CSS 적용/미적용 전환",
"model_family": "Sonnet·GPT·Gemini·DeepSeek 버전 파생"
},
"lineage": {
"promotion_status": "candidate",
"origin": "risu_deep_dive_lead",
"reverse_translation": "module.risum -> matrix-component-v1(module)"
}
}
},
"projection": {
"title": "올인원 출력 조건 파이프라인 — 위상별 단계 변환",
"prompt": "AI 응답을 사전분석·응답·후속응답·에필로그·선택지 위상으로 분리한 뒤, 표시용(display)과 처리용(process) 변환을 각각 적용한다. 한국어 대사와 속마음의 따옴표·볼드·이탤릭은 역할별로 구분해 정규화하고, CoT는 접고, 선택지는 패널로 그린다. 각 섹션은 토글로 켜고 끈다. 이 모듈은 위상 분리와 단계 변환의 원리만 기술한다.",
"prompt_sha256": "sha256:0b40e2bd03f9c819b5889f3cafccd202835167da2986429da88e1b3c2cf23bdc",
"summary": "콘텐츠 위상(분석/응답/에필로그/선택지)을 분리하고 단계별로 독립 토글되는 출력 조건 파이프라인.",
"tags": [
"output-pipeline",
"typography",
"phase-split",
"display"
],
"flagship": false,
"core": false,
"content_labels": [
"risu-module",
"static-analysis"
],
"harness_compatibility": "display_only",
"replay_status": "not_run"
}
}