승격 대기 — 매트릭스 정본 후보
{
"contract": "matrix-component-v1",
"component_id": "module.risu.131264265.all-in-one-command-orchestrator",
"component_version": "1.0.0",
"component_type": "module",
"provenance": {
"review_status": "candidate",
"runtime_status": "inactive",
"availability_verdict": "untested",
"source_refs": [
{
"source_id": "risu:131264265",
"source_version": "module.risum",
"sha256": "sha256:1f8bff5bdd75b465b5668b5ca274b8c6a485b3b8e7cea096be92c97088b29530"
}
],
"source_kind": "risu_attachment",
"static_analysis_only": true,
"active_code_policy": "static_preserve_no_execute",
"fixture_kind": "parsed_risu_projection",
"publishable": false
},
"capabilities": {
"provides": [
"command.dispatch",
"llm.auxiliary_call",
"choice.button",
"reroll.history",
"context.assembly",
"display.regex_pipeline"
],
"requires": [
"hook.edit_request",
"chat_state_kv",
"low_level_access"
],
"conflicts": []
},
"payload": {
"namespace": "risu.module",
"controller": "user",
"triggers": [
"세션 시작 시 보조 함수(deep copy, 문자열 분할, 괄호 제거, 문단 정리)를 전역에 등록한다.",
"editRequest 훅이 메시지 열을 가로채 NewChat 표식을 지우고, 역할별 제목을 달아 병합한다.",
"editInput 훅이 슬래시 명령을 번역/윤문/이어쓰기로 분류하고 캐릭터 정보를 주입한다."
],
"state_effects": {
"command_key": "현재 명령 종류(번역/윤문/이어쓰기), 프롬프트 분기의 기준",
"choices": "리롤로 누적된 이전 결과 목록, 동적 버튼으로 다시 선택 가능",
"batch_state": "명령별 입력·프롬프트·결과를 키 접두사로 묶어 저장"
},
"activation_rules": [
"명령어가 키워드 목록(번역/윤문/이어쓰기 각 다국어 변형)에_hit하면 해당 분기로 진입한다.",
"채팅이 짧으면 간결 프롬프트, 길면 컨텍스트를 포함한 기본 프롬프트를 선택한다.",
"리롤 명령이면 이전 프롬프트를 재사용하고 기존 결과를 선택지에 누적한다."
],
"invariants": [
"보조 모델 호출 결과는 원문·현재 결과·이전 결과·리롤 버튼으로만 사용자에게 돌아간다.",
"연속된 같은 역할 메시지는 하나로 병합되고 과도한 줄바꿈은 정리된다.",
"번역·윤문·이어쓰기 각각 컨텍스트 범위와 주입하는 캐릭터 정보가 다르다."
],
"boundaries": [
"활성 코드 본문(Lua/CJS/정규식 패턴)은 포함하지 않는다 — 정적 구조/원리/역할만 기술.",
"실행·sandbox 재현·승격은 사람 승인 전까지 금지.",
"candidate 상한: 검토 전 runtime catalog 공급 없음."
],
"idea_layers": {
"evidence": {
"source_post": "131264265",
"source_format": "module.risum",
"lead_id": "risu.deep.risum.131264265",
"analysis_mode": "static_projection_read",
"code_executed": false
},
"situation": {
"concrete_scene": "사용자가 /translate 라고 치면 모듈이 이전 대화를 끌어와 번역 프롬프트를 조립하고, 보조 모델이 영문 결과를 내면 원문·결과·리롤 버튼 세 개로 돌려준다.",
"emotion_evoked": "선택의 자유 — 한 번의 결과에 갇히지 않고 여러 번 고쳐 비교할 수 있는 통제감.",
"why_memorable": "명령 한 단어가 컨텍스트 범위·캐릭터 주입·프롬프트 템플릿·버튼 구성을 모두 바꾸는 분기 설계.",
"transferable_lesson": "보조 모델 호출을 설계할 때는 단일 프롬프트가 아니라 ‘명령 종류별 컨텍스트 정책과 결과 반환 형식’을 함께 설계해야 한다."
},
"core": {
"core_idea": "슬래시 명령을 번역·윤문·이어쓰기로 분류해 각각 전용 보조 모델 프롬프트를 조립하고 결과를 버튼 선택지로 돌려주는 올인원 명령 오케스트레이션.",
"behavioral_cause": "editInput·editRequest 훅과 시작 트리거가 명령어를 가로채 분기하고 보조 모델을 비동기로 부른다.",
"invariant_conflict": "원문 보존(사용자 입력 그대로)과 개선(보조 모델 결과로 대체)의 긴장.",
"core_drive": "명령 종류에 따라 컨텍스트 범위·캐릭터 정보·프롬프트 템플릿·prefill을 바꿔 보조 모델에 보낸다.",
"core_dilemma": "풍부한 컨텍스트(많이 끌어오기)와 비용·지연(적게 끌어오기)의 균형."
},
"swappable_parts": {
"command_keywords": "번역/윤문/이어쓰기를 식별하는 키워드 목록, 다국어 변형 확장 가능",
"context_range": "명령별로 끌어올 이전 대화 범위(번역은 6, 윤문은 12, 이어쓰기는 20)",
"prompt_template": "간결형/기본형 프롬프트와 prefill 문구",
"model_target": "GPT 4o·4.5 등 타겟 보조 모델 포맷"
},
"lineage": {
"promotion_status": "candidate",
"origin": "risu_deep_dive_lead",
"reverse_translation": "module.risum -> matrix-component-v1(module)"
}
}
},
"projection": {
"title": "올인원 명령 오케스트레이터 — 번역·윤문·이어쓰기 보조 모델 분기",
"prompt": "사용자의 슬래시 명령을 번역·윤문·이어쓰기로 분류한다. 각 명령에 맞춰 이전 대화에서 컨텍스트를 끌어오고 캐릭터 정보를 주입해 보조 모델용 프롬프트를 조립한 뒤 호출한다. 결과는 원문·현재 결과·누적된 이전 결과·리롤 버튼으로 돌려주어 사용자가 여러 결과를 비교·선택하게 한다. 디스플레이 정규식들은 사고 과정 접기, 입력 대필 버튼, 선택지 버튼, 대사·속마음 강조와 띄어쓰기 보정을 담당한다. 이 모듈은 분기와 조립 원리만 기술하며 실행 코드나 정확한 정규식 패턴은 포함하지 않는다.",
"prompt_sha256": "sha256:1268b0556618c447c117effd693808b0c049e5820088db5f4e470e47030ded74",
"summary": "슬래시 명령을 번역·윤문·이어쓰기로 분류해 각각 전용 보조 모델 프롬프트를 조립하고 결과를 버튼 선택지로 돌려주는 올인원 명령 오케스트레이션.",
"tags": [
"command-dispatch",
"auxiliary-llm",
"reroll",
"context-assembly",
"display-pipeline"
],
"flagship": false,
"core": false,
"content_labels": [
"risu-module",
"static-analysis"
],
"harness_compatibility": "display_only",
"replay_status": "not_run"
}
}