@kaydash9999/banker-plugins 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Claude Code skills + commands — QA, audit, docs, architecture, dependency setup, and wiki; the banker plugin marketplace.",
9
- "version": "0.13.0"
9
+ "version": "0.14.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "banker",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Claude Code plugin: QA/audit/docs/architecture skills + commands, a /banker:setup installer for OS dependencies (playwright, etc.), and wiki compaction.",
5
5
  "author": {
6
6
  "name": "smallOpenSource",
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.14.0] - 2026-10-04
4
+
5
+ ### Added
6
+ - **`tone-compact` 스킬을 추가했다.** 답변과 새 문서를 ASD-STE100 기반의 간결한 한글 개조식으로 쓰게 하는 문체 규칙을 켜고 끈다(인자가 없으면 `on`).\
7
+ 규칙은 단어 중심 개조식, 줄글 대신 표, 문장 속 나열 대신 세로 목록, em dash 대신 하이픈, 직접 만든 약어·이모지·장식 기호·감탄사 금지, 어색한 번역어 대신 원어의 한글 발음 표기다. 줄여 쓰더라도 부정어는 지우지 않고, 보안 경고·되돌리기 어려운 동작의 확인·순서가 중요한 절차는 완전한 문장으로 쓴다.\
8
+ 켜짐 상태는 `off` 할 때까지 모든 세션에 남는다. Claude Code 는 `<설정 폴더>/rules/banker-tone-compact.md`(세션 시작과 compaction 뒤 자동 로드), Codex 는 전역 지침 파일(`AGENTS.override.md` 에 블록 말고도 내용이 있으면 그쪽, 없으면 `AGENTS.md`) 끝의 블록 1개다. 이 블록은 `USER:OMX:POLICY` 표시로 감싸 `omx setup --merge-agents` 와 기본 `omx setup` 이 파일을 다시 써도 남는다(`--force`, 덮어쓰기 확인, team 모드를 끈 `omx setup` 은 파일을 새로 만들므로 그 뒤 `on` 을 다시 실행). `off` 는 켜기 전 바이트 그대로 되돌린다.\
9
+ 표시는 한 줄 전체로 시작과 끝이 차례로 와야만 블록으로 인정한다. 문장 속에 인용된 표시가 있으면 `on`·`off` 모두 거부해, 사용자의 다른 지침을 잘라 내지 않는다. UTF-8 이 아닌 지침 파일(CP949, UTF-16)도 손대지 않고 거부한다. 글자로 읽어 다시 쓰면 원래 바이트를 잃기 때문이다.
10
+ - **`graceful_pause` 스킬을 추가했다.** 진행 중인 작업을 지금 단계까지만 마무리하고 멈춘 뒤, 상태를 보고하고 중간 지시를 기다린다.\
11
+ `cancel` 과 달리 켜져 있는 모드(ralph·autopilot·ultragoal·team)와 계획을 그대로 두어, 지시를 받은 뒤 같은 흐름으로 이어 간다. 작업 중에 대기 입력으로 넣어 두면 그 입력이 읽히는 시점에 동작하며, 즉시 끊지는 않는다.\
12
+ Claude Code 는 `AskUserQuestion` 으로 묻고, 질문이 열려 있는 동안은 지속 모드가 끼어들지 않는다. Codex 에서 질문 도구 없이 지속 모드가 켜져 있으면 OMX Stop 훅 때문에 응답을 끝내도 멈출 수 없으므로, 그 사실을 알리고 계속할지 `cancel` 할지 묻는다.
13
+ - **`payload-mon` 스킬을 추가했다.** OMC HUD 상태표시줄의 ctx 옆에 현재 세션의 API 요청 payload 추정치(32MB 한도 대비, 8MB부터)를 켜고 끈다.\
14
+ 블록은 래퍼의 ctx 줄 뒤 하나라 구판과 최신 omc_hud 래퍼 모두에 들어가고, 추정 모듈은 래퍼 옆 사본을 불러와 플러그인 업데이트로 옛 버전 경로가 정리돼도 표시가 유지된다. 추정치 캐시는 계정별 폴더에 소유를 확인한 뒤에만 쓴다. `setup-omc-hud` 는 HUD 를 다시 깔 때 켜져 있던 payload-mon 을 다시 켠다.
15
+ - **`curation --deep` 을 추가했다.** `--perf` 처럼 품질을 우선하되, 확신 0.80 이하인 결정은 조사(코드·문서·웹·안전한 실측)와 검토(가장 강한 반대안, 가능하면 독립 검토자)를 더 해 0.80 초과로 올린 뒤 제시한다.\
16
+ 결정마다 최대 3회차이고 새 증거가 없으면 멈춘다. 그래도 미달이면 확신을 부풀리지 않고, 판단을 막는 변수를 사용자 질문으로 바꿔 내놓는다. 결과에는 결정별 조사 이력이 붙는다.
17
+
18
+ ### Fixed
19
+ - **OMC 5 에서 `all-in-one` 이 멈추던 문제를 고쳤다.** 원인은 두 가지였다.\
20
+ 첫째, 3단계가 부르던 `ultraqa` 가 OMC 5.0.0 에서 대체 이름 없이 삭제됐다. 공식 대체인 `verify` 는 증거만 모으고 고치지는 않으므로, 3단계를 독립 verifier → architect 진단 → executor 수정의 순환(최대 5회, 같은 실패 3회면 중단)으로 직접 돌린다. 변경 전부터 있던 실패(`ralph` 가 기록한 기준선)는 보고만 하고 게이트에서 막지 않는다. Codex 는 OMX 가 아직 제공하는 `ultraqa` 를 그대로 쓴다.\
21
+ 둘째, OMC 5 의 `ralph` 는 첫 반복에 `omc ralph verify` 를 실행하고 없으면 멈추는데, 플러그인보다 낡은 전역 `omc` CLI(4.x)에는 이 명령이 없다. 4.x 는 모르는 명령에도 도움말을 찍고 종료 코드 0 을 내므로, 사전 점검을 종료 코드가 아니라 출력 문구로 판정하게 바꿨다.
22
+ - **`ralph` 인계에 OMC 5.6.1 의 함정 두 가지를 반영했다(`all-in-one`·`ultra-init`).**\
23
+ `omc ralph verify` 는 피드백 명령 출력의 모든 줄을 서명으로 남기고 `<숫자><단위>` 꼴 시간만 지운다. 그래서 node:test 기본 출력의 `ℹ duration_ms 151.4` 와 `ℹ tests 8` 줄 때문에 코드를 바꾸지 않아도 매번 새 실패가 된다. 기준선을 기록하기 전에 실패만 출력하는 명령(node:test 는 `FORCE_COLOR=0 NODE_NO_WARNINGS=1` 과 `--test-reporter=dot`, 점 줄 필터)을 PRD `feedbackCommands` 로 정하게 했다. 색상이 켜진 환경에서는 점 줄에 색상 코드가 섞여 필터를 지나가므로 두 변수가 필요하다. 또 `ralph` 가 작업 설명에 `repoQualityClass` 가 없으면 사용자에게 묻기 때문에, 저장소 신호로 추론해 넘기게 했다.\
24
+ QA 게이트에 들어가기 전에 QA 명령을 변경 전 트리에서 한 번 실행해 사전 실패를 기록한다(Codex 의 OMX `ralph` 에는 기준선이 없어 이것이 유일한 기준선이다). 사전 실패는 이 기록이나 `ralph` 기준선(같은 세션의 `omc ralph verify --json`, `baselinePresent: true` 확인)에 있는 것뿐이고, 나머지는 모두 새 실패다. 변경 전 상태를 만들려고 `git stash`·`git reset` 을 쓰지 않는다.
25
+ - **`ultra-init` 에서 ultragoal 원장 단계를 뺐다.** OMC 5.6.1 의 `omc ultragoal checkpoint` 는 `complete-goals` 로 시작한 목표에만, 그 목표가 켜는 Claude Code `/goal` 의 스냅샷과 함께 기록된다. `/goal` 을 켜면 ralph 옆에 Stop 훅 루프가 하나 더 생기므로, 마지막 기록 단계가 반드시 실패하던 구성을 계획 파일과 ralph PRD 로 이어 가는 구성으로 바꿨다. `--plan-id` 는 함께 없어졌다.
26
+ - **같은 원인이 있던 곳도 고쳤다.** `ultra-init`(`ultraqa`·`ultrawork` 참조와 CLI 점검), `/banker:front-qa`(CLI 점검), `setup-omc`(의존 설명과 CLI 만 따로 올리는 방법), `omc-reference`(OMC 5.6.1 기준 스킬·에이전트·키워드·삭제 목록, plan/review 의 플러그인 이름, Team 도구 변화, OMX 0.20.2 목록), `rfp-author`(삭제된 `deep-dive` → `research`). CLI 점검은 Claude Code 에만 걸고, Codex 는 `omx --version` 으로 확인한다.
27
+
28
+ ### Changed
29
+ - **`ready-compact` 가 resume 프롬프트만 출력한다.** 최종 메시지가 펜스도 앞뒤 설명도 없는 프롬프트 본문뿐이라, `/copy` 한 번이면 프롬프트만 복사된다(이전에는 설명이 섞여 `compact-copy` 를 거쳐야 했다). 메시지에 코드 블록이 있으면 `/copy` 가 선택 창을 띄우므로 프롬프트 안에도 펜스를 쓰지 않는다. 저장에 실패하면 별도 보고 대신 프롬프트 둘째 줄에 경고가 붙는다.\
30
+ 지속 모드(ralph 등)의 Stop 훅이 프롬프트 뒤에 계속하라는 메시지를 넣으면, 작업을 다시 시작하지 않고 같은 프롬프트를 다시 낸다. 그래야 마지막 메시지가 프롬프트로 남는다.
31
+ - **`ready-compact --hand-off` 를 추가했다.** 같은 세션의 `/compact` 가 아니라 새 세션에서 처음부터 이어 가도록 준비한다.\
32
+ 새 세션에는 이번 대화가 없으므로, 노트에 작업 위치(절대경로·브랜치·마지막 커밋), 대화에서 정한 결정과 이유, 켜져 있는 모드와 상태 파일, 그 모드를 새 세션에서 다시 켜는 방법, 실행 중인 백그라운드 작업까지 옮기고, `[HANDOFF]` 프롬프트가 그 노트를 먼저 읽게 한다. 지속 모드가 켜져 있으면 유지할지 cancel 할지 먼저 묻는다. 노트는 Claude Code 에선 자동 메모리 폴더(꺼져 있으면 `.omc/handoffs/`), Codex 에선 작업 폴더의 `.omx/handoffs/` 에 둔다. 같은 머신의 새 세션이 대상이며, 다른 머신으로 넘길 때는 결정과 이유를 프롬프트에 직접 넣는다.
33
+ - `compact-copy` 는 이제 설명과 코드펜스가 섞인 이전 형식의 출력에서 프롬프트를 뽑을 때만 필요하다. `[HANDOFF]` 프롬프트도 인식한다.
34
+ - `graceful_pause` 는 세션을 끝내려는 사용자에게 `ready-compact --hand-off` 를 안내한다.
35
+ - `smart-compact` 는 `compact-copy` 를 더 거치지 않는다. TUI 3단(`/copy` → `/compact` → 붙여넣기) 안내를 `ready-compact` 앞에 한 줄로 하고, 마지막 메시지를 프롬프트로 끝낸다.
36
+ - `refresh-readme` 의 개수 점검 예시를 특정 숫자에 묶지 않게 바꿨다.
37
+
3
38
  ## [0.13.0] - 2026-08-12
4
39
 
5
40
  ### Changed
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  [빠른 시작](#빠른-시작) · [워크플로 예시](#워크플로-사용-예시) · [구성](#구성) · [설치 상세](#설치-상세-npm--codex) · [설정 변경 지점](#설정-변경-지점-claude-code--codex) · [요구사항](#요구사항) · [업데이트 / 제거](#업데이트--제거) · [업데이트 확인](#업데이트-확인-및-사용량-카운팅) · [라이선스 / 서드파티](#라이선스--서드파티)
10
10
 
11
- banker는 QA·보안 감사·문서·아키텍처·위키·미디어 작업과 의존성·개발환경(OS별) 설치를 아우르는 **스킬 54개 + 커맨드 2개**(총 56개 구성요소)를 묶은 Claude Code 플러그인입니다.\
11
+ banker는 QA·보안 감사·문서·아키텍처·위키·미디어 작업과 의존성·개발환경(OS별) 설치를 아우르는 **스킬 57개 + 커맨드 2개**(총 59개 구성요소)를 묶은 Claude Code 플러그인입니다.\
12
12
  설치하면 스킬과 커맨드가 `/banker:<이름>` 네임스페이스로 노출됩니다.\
13
13
  이 저장소 자체가 Claude Code 마켓플레이스(`.claude-plugin/marketplace.json`)이자 플러그인(`.claude-plugin/plugin.json`, name `banker`)이며, 도구에 무관한 스킬은 Codex CLI에도 설치됩니다.
14
14
 
@@ -50,14 +50,16 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
50
50
  |---|---|---|
51
51
  | `ultra-interview` | 처음 프로젝트 아이디어를 구체화할 때 | 최신 정보를 반영한 소크라테스식 인터뷰 |
52
52
  | `ultra-init` | 프로젝트 기획이 충분히 구체적일 때 | 데모를 구현 |
53
- | `curation` | 질문에 답하기 어렵거나 의사결정이 어려울 때 | 합리적 선택지 제공 (`--perf` 옵션 = 품질 우선) |
53
+ | `curation` | 질문에 답하기 어렵거나 의사결정이 어려울 때 | 합리적 선택지 제공 (`--perf` = 품질 우선, `--deep` = 확신 0.80 초과까지 추가 조사) |
54
54
  | `all-in-one` | 요건이 명확한 단계에서 | 계획 → 구현 → 검증 |
55
55
  | `ralph-qa` | 검증이 충분하지 않을 때 | 다중 Agent 백본 + 유효한 외부 LLM 좌석 |
56
56
  | `smart-compact` | 컨텍스트 임계 초과로 맥락 단절이 걱정될 때 | 맥락을 더 잘 이어서 진행 |
57
57
  | `refresh-readme` | 프로젝트 배포 전 | README 최신화 |
58
58
  | `summary-wiki` | Agent가 아는 정보를 확인하고 싶을 때 | 요약 리포트 |
59
59
  | `cleansing-memory` | 프로젝트가 장기화될 때 | 메모리 최적화 |
60
- | `ready-compact` | 컨텍스트를 compact 하거나 새 세션을 대비할 때 | 이어갈 프롬프트를 준비 |
60
+ | `ready-compact` | 컨텍스트를 compact 하거나 새 세션을 대비할 때 | 이어갈 프롬프트만 출력(`/copy` 한 번이면 복사), `--hand-off` = 새 세션에서 이어가기 |
61
+ | `graceful_pause` | 작업 도중 방향을 바꾸거나 끼어들고 싶을 때 | 지금 단계만 끝내고 멈춘 뒤 지시를 기다림 (작업 중 미리 입력해 둬도 됨) |
62
+ | `tone-compact` | 답변을 짧은 한글 개조식으로 받고 싶을 때 | 문체 규칙을 켜 두면 끌 때까지 모든 세션에 적용 |
61
63
 
62
64
  ## 구성
63
65
 
@@ -106,11 +108,11 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
106
108
  |---|---|
107
109
  | `all-in-one` | 계획→구현→검증 end-to-end 오케스트레이터 |
108
110
  | `ultra-init` | 아이디어→빌드→테스트 원샷 자동 실행 |
109
- | `ready-compact` | 컨텍스트 compaction 직전 상태 저장/이어가기 |
110
- | `compact-copy` | resume 프롬프트만 추출해 클립보드/파일로(compaction 이어가기) |
111
+ | `ready-compact` | 이어가기 상태 저장 + resume 프롬프트만 출력(`--hand-off` = 새 세션용 자급식 노트·프롬프트) |
112
+ | `compact-copy` | 설명·코드펜스가 섞인 resume 프롬프트 출력에서 본문만 추출(지금의 ready-compact 는 처음부터 프롬프트만 출력) |
111
113
  | `refresh-git-ignore` | `.gitignore` 비파괴·반복가능 갱신 |
112
114
  | `omc-reference` | OMC/OMX 에이전트·툴·스킬 레퍼런스(양 런타임 병기) |
113
- | `curation` | 의사결정을 선택지·권고·확신수준으로 큐레이션(--perf=품질 우선) |
115
+ | `curation` | 의사결정을 선택지·권고·확신수준으로 큐레이션(--perf=품질 우선, --deep=확신 0.80 이하는 추가 조사·검토 후 제시) |
114
116
  | `ralph-qa` | 다중 Agent 백본이 항상 돌고, 실제로 유효한 외부 LLM 만 좌석으로 합류해 독립 검증 반복 |
115
117
  | `smart-compact` | 컨텍스트 임계 초과 시 위키·resume 저장 게이트 자동 무장 |
116
118
  | `deep-research` | 다중 소스 팬아웃 + 적대적 검증 인용 리서치 |
@@ -120,6 +122,9 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
120
122
  | `update-banker` | 설치된 banker 를 3채널(Claude·npm·Codex) 순서 게이트로 최신화 |
121
123
  | `refresh-readme` | 코드와 어긋난 README 를 현재 상태에 맞게 갱신(드리프트 해소) |
122
124
  | `cleansing-memory` | 메모리 파일을 문서화된 threshold 내로 정리(중복 최신본화·무손실 압축) |
125
+ | `payload-mon` | 상태표시줄 ctx 옆에 요청 payload 추정치(32MB 한도 대비, 8MB부터) 표시 켜기·끄기 |
126
+ | `tone-compact` | 답변과 새 문서를 ASD-STE100 기반 한글 개조식(표·목록·원어 발음 표기·장식 기호 금지)으로 쓰는 문체 규칙 켜기·끄기(on 기본, 끌 때까지 유지) |
127
+ | `graceful_pause` | 진행 중인 작업을 지금 단계까지만 마무리하고 멈춘 뒤 중간 지시를 받음(cancel 과 달리 모드 상태·계획 보존) |
123
128
 
124
129
  ### 스킬: 미디어 (모션 그래픽 · 3D 인트로)
125
130
 
@@ -175,11 +180,16 @@ banker uninstall # 제거
175
180
 
176
181
  - `--scope project` 로 프로젝트 로컬(`./.codex`)에 설치하고, `--dry-run` 으로 미리 볼 수 있습니다.
177
182
  - non-root 전용입니다(전역 sudo 설치 시 root 소유 파일을 방지). postinstall이 없으므로 `banker setup` 을 직접 실행합니다.
178
- - Codex에는 스킬 54개가 `~/.codex/skills/banker-<name>/` 에, 커맨드 2개가 `~/.codex/prompts/banker-<name>.md` 에 설치됩니다(`codex/manifest.json`). \
183
+ - Codex에는 스킬 57개가 `~/.codex/skills/banker-<name>/` 에, 커맨드 2개가 `~/.codex/prompts/banker-<name>.md` 에 설치됩니다(`codex/manifest.json`). \
179
184
  디렉터리명과 일치하도록 프론트매터 `name:` 이 `banker-<name>` 으로 재작성되어 Codex가 `banker-<name>` 으로 인식합니다.
180
185
  - OMC/Claude 에 결합됐던 오케스트레이터·설치·유틸 표면(all-in-one·ultra-init·front-qa·setup·setup-omc·setup-omc-hud·setup-stitch·omc-reference·compact-copy)은 본문이 **런타임 인식**이라 Codex에서도 동작합니다.
186
+ - `payload-mon` 은 Codex에서 실행해도 같은 머신의 Claude Code HUD 래퍼만 켜고 끕니다. \
187
+ 32MB 요청 한도는 Claude Code 의 것이라 Codex 자신의 요청 크기는 재지 않습니다.
181
188
  - Codex에선 OMC 대신 **oh-my-codex(OMX)** 의 동명 스킬(ralplan·ralph·ultraqa·hud 등)과 `codex mcp`·내장 `/copy` 를 사용합니다(Codex는 `omx setup` 전제).
182
- - `~/.codex/AGENTS.md` 는 건드리지 않습니다(omx가 재생성하므로 `~/.codex/skills/` 자동 검색에 의존).
189
+ - OMC 5 는 `ultraqa` 를 삭제했습니다. 그래서 Claude Code 의 `all-in-one`·`ultra-init` QA 게이트는 `verify` 순환으로 돌고, Codex 는 OMX `ultraqa` 를 그대로 씁니다.
190
+ - 설치기는 `~/.codex/AGENTS.md` 를 건드리지 않습니다(omx가 재생성하므로 `~/.codex/skills/` 자동 검색에 의존). \
191
+ 예외는 사용자가 켠 `tone-compact` 하나입니다. 그 파일 끝에 `USER:OMX:POLICY` 로 감싼 블록 1개를 넣고, `off` 로 뺍니다. \
192
+ `omx setup --merge-agents` 와 기본 `omx setup` 은 이 블록을 남깁니다. `--force` 나 team 모드를 끈 `omx setup` 처럼 AGENTS.md 를 새로 만들면 사라지므로, 그 뒤 `on` 을 다시 실행합니다.
183
193
 
184
194
  ## 설정 변경 지점 (Claude Code · Codex)
185
195
 
@@ -215,6 +225,8 @@ banker uninstall # 제거
215
225
  | `setup-pwsh` | `env.CLAUDE_CODE_GIT_BASH_PATH` (병합) | — (네이티브 셸, 배선 불필요) |
216
226
  | `harness-factory` | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` (env 영속) | — |
217
227
  | `smart-compact` | `statusLine.command` 래핑 + `UserPromptSubmit` 훅 추가 (백업·멱등) | `~/.codex/` 대응 |
228
+ | `payload-mon` | `hud/omc-hud-custom.mjs` 에 표시 블록 1개 삽입(`.payload-mon.bak` 백업·멱등·`node --check` 검증) + 래퍼 옆 `hud/payload-mon/` 에 모듈 사본 (`off` 로 원복) | — (Codex에서 실행해도 Claude Code HUD 만 다룸) |
229
+ | `tone-compact` | `rules/banker-tone-compact.md` 생성 (`off` 로 삭제) | `AGENTS.md`(내용이 있는 `AGENTS.override.md` 우선) 끝에 `USER:OMX:POLICY` 로 감싼 블록 1개(`.tone-compact.bak` 백업·멱등, `off` 로 원복) |
218
230
  | `motion-graphic-setup` | 설정 파일 미패치 (Node/ffmpeg 확보 + `npx hyperframes` 설치만) | 동일 (`config.toml` 미변경) |
219
231
  | `3d-intro-setup` | `settings.json` 미패치 — 크레덴셜을 untracked env 파일에 기록(`.env.3d-intro.local` 또는 `~/.config/banker/3d-intro/env`) | 동일 (`config.toml` 미변경) |
220
232
 
@@ -225,8 +237,9 @@ banker uninstall # 제거
225
237
  - Claude Code (마켓플레이스 경로): 스킬이 `/banker:*` 로 동작.
226
238
  - 또는 Node.js ≥ 16.7 (npm 전역 설치 경로): `banker` CLI 제공.
227
239
  - 일부 스킬은 별도 의존성이 필요하며 `/banker:setup` 으로 설치합니다. 의존성이 없으면 각 스킬이 실행 전에 설치부터 안내합니다.
228
- - `all-in-one`, `ultra-init`, `/banker:front-qa`: oh-my-claudecode(OMC). Codex에서는 OMX.
240
+ - `all-in-one`, `ultra-init`, `/banker:front-qa`: oh-my-claudecode(OMC) 5 와 같은 버전대의 `omc` CLI(`ralph` 가 `omc ralph verify` 를 부르므로 4.x CLI 로는 멈춤). Codex에서는 OMX.
229
241
  - `audit-web-page`, `play-qa`, `ultra-ui-qa`: playwright.
242
+ - `payload-mon`: OMC 커스텀 HUD 래퍼(`setup-omc-hud` 로 설치).
230
243
  - `lineage`: Python 3.7+ (표준 라이브러리만 사용). RHEL8/Rocky8은 기본 `python3` 가 3.6이라 `setup-python` 등으로 3.11을 설치해 지정해야 합니다.
231
244
 
232
245
  ## 업데이트 / 제거
@@ -249,6 +262,14 @@ banker uninstall # 제거
249
262
 
250
263
  Codex는 재설치할 때마다 기존 `banker-*` 를 먼저 정리하므로 옛 버전이 중복으로 남지 않습니다.
251
264
 
265
+ > `payload-mon` 을 켰다면 제거 전에 `/banker:payload-mon off`(Codex는 `banker-payload-mon` 에 `off`)를 실행하세요.\
266
+ > 표시 블록과 모듈 사본은 플러그인 밖(`~/.claude/hud/`)에 있어서, 플러그인을 지워도 남아 계속 표시됩니다.\
267
+ > 이미 지웠다면 HUD를 재설치하거나, `omc-hud-custom.mjs` 에서 `// >>> payload-mon >>>` 부터 `// <<< payload-mon <<<` 까지 지우면 됩니다.
268
+
269
+ > `tone-compact` 를 켰다면 제거 전에 런타임마다 `off` 를 실행하세요(Claude Code `/banker:tone-compact off`, Codex `banker-tone-compact` 에 `off`).\
270
+ > 규칙 파일과 블록은 플러그인 밖(`~/.claude/rules/`, `~/.codex/AGENTS.md`)에 있어서, 플러그인을 지워도 남아 계속 적용됩니다.\
271
+ > 이미 지웠다면 `~/.claude/rules/banker-tone-compact.md` 를 지우고, AGENTS.md 에서 `<!-- banker:tone-compact:start -->` 부터 `<!-- banker:tone-compact:end -->` 까지와 그 바깥의 `USER:OMX:POLICY` 표시 두 줄을 지우면 됩니다.
272
+
252
273
  ## 업데이트 확인 및 사용량 카운팅
253
274
 
254
275
  banker는 기본값(default-on)으로 두 가지를 합니다.\
@@ -16,16 +16,16 @@
16
16
  { "name": "make-notion-guide", "type": "skill", "target": "both", "reason": "API guide authoring; tool-agnostic", "supportingFiles": [] },
17
17
  { "name": "nothing-design", "type": "skill", "target": "both", "reason": "UI design system; tool-agnostic", "supportingFiles": ["references/components.md", "references/platform-mapping.md", "references/tokens.md"] },
18
18
  { "name": "pdf-vision-extract", "type": "skill", "target": "both", "reason": "PDF->PNG for vision; tool-agnostic", "supportingFiles": [] },
19
- { "name": "ready-compact", "type": "skill", "target": "both", "reason": "pre-compaction state save; tool-agnostic", "supportingFiles": [] },
19
+ { "name": "ready-compact", "type": "skill", "target": "both", "reason": "state save + prompt-only resume output (compact in the same session, or --hand-off to a new one); Claude=auto-memory dir, Codex=.omx/handoffs/", "supportingFiles": [] },
20
20
  { "name": "refresh-git-ignore", "type": "skill", "target": "both", "reason": ".gitignore refresh; tool-agnostic", "supportingFiles": [] },
21
21
  { "name": "rfp-author", "type": "skill", "target": "both", "reason": "RFP authoring framework; tool-agnostic", "supportingFiles": ["references/compliance-and-ai-llm.md", "references/korean-rfp-framework.md", "references/research-provenance.md", "references/this-project-scope.md", "references/vendor-rfp-structure.md", "templates/rfp-skeleton.md", "scripts/md2docx.py"] },
22
22
  { "name": "setup-playwright", "type": "skill", "target": "both", "reason": "playwright/browser install; tool-agnostic (genericize /banker:setup trigger ref for Codex)", "supportingFiles": [] },
23
23
  { "name": "setup-insane-search", "type": "skill", "target": "both", "reason": "installs the insane-search plugin; Claude via `claude plugin`, Codex via `codex plugin add insane-research-codex@gptaku-codex`", "supportingFiles": [] },
24
24
  { "name": "ultra-ui-qa", "type": "skill", "target": "both", "reason": "UI vs SoT QA; tool-agnostic", "supportingFiles": [], "caveat": "needs playwright (setup-playwright)" },
25
25
 
26
- { "name": "all-in-one", "type": "skill", "target": "both", "reason": "orchestrates ralplan->ralph->ultraqa; Claude=OMC, Codex=OMX (same-named skills); body runtime-aware", "supportingFiles": [] },
27
- { "name": "compact-copy", "type": "skill", "target": "both", "reason": "shapes final message for /copy (built into BOTH Claude Code and Codex); response path is per-runtime; ready-compact(both) seeds the prompt", "supportingFiles": [] },
28
- { "name": "ultra-init", "type": "skill", "target": "both", "reason": "orchestrates ralplan/ultragoal/ralph/ultraqa; Claude=OMC, Codex=OMX; body runtime-aware", "supportingFiles": [] },
26
+ { "name": "all-in-one", "type": "skill", "target": "both", "reason": "orchestrates ralplan->ralph->QA gate; Claude=OMC 5 (verify cycle in place of the removed ultraqa; needs the omc CLI with `omc ralph verify`), Codex=OMX (same-named skills, OMX ultraqa); body runtime-aware", "supportingFiles": [] },
27
+ { "name": "compact-copy", "type": "skill", "target": "both", "reason": "shapes final message for /copy (built into BOTH Claude Code and Codex) from a fenced resume prompt; response path is per-runtime; ready-compact now outputs the prompt alone, so this is for older or mixed outputs", "supportingFiles": [] },
28
+ { "name": "ultra-init", "type": "skill", "target": "both", "reason": "orchestrates ralplan->ralph->QA gate (no ultragoal ledger: OMC 5.6.1 checkpoints need a /goal snapshot that would compete with ralph); Claude=OMC 5 (verify cycle in place of the removed ultraqa; needs the omc CLI with `omc ralph verify`), Codex=OMX (OMX ultraqa); body runtime-aware", "supportingFiles": [] },
29
29
  { "name": "omc-reference", "type": "skill", "target": "both", "reason": "OMC/OMX agent/tool/skill registry reference; runtime-aware (Codex counterpart is OMX)", "supportingFiles": [] },
30
30
  { "name": "setup-omc", "type": "skill", "target": "both", "reason": "installs OMC (Claude) or OMX (Codex `omx setup`); body already dual-runtime", "supportingFiles": [] },
31
31
  { "name": "setup-omc-hud", "type": "skill", "target": "both", "reason": "installs omc_hud (Claude statusLine); Codex uses OMX `hud`; runtime-aware", "supportingFiles": [] },
@@ -63,6 +63,9 @@
63
63
  { "name": "motion-graphic-make", "type": "skill", "target": "both", "reason": "thin wrapper delegating to hyperframes /motion-graphics (free form categories); owns no render pipeline; runtime-agnostic", "supportingFiles": [], "caveat": "needs hyperframes via motion-graphic-setup (npx, Apache-2.0)" },
64
64
  { "name": "3d-intro-setup", "type": "skill", "target": "both", "reason": "collects Azure creds (direct or console-sample parse) to untracked env + FREE preflight; installs Node/ffmpeg; runtime-agnostic", "supportingFiles": ["references/azure-adapter.mjs"] },
65
65
  { "name": "3d-intro-build", "type": "skill", "target": "both", "reason": "scroll-scrub 3D intro via Azure Sora-2 forward-chaining + gpt-image-2 stills; vendored scroll-world engine (MIT); cross-platform Node", "supportingFiles": ["references/azure-adapter.mjs", "references/scrub-engine.js", "references/index-template.html", "references/prompts.md", "references/LICENSE", "references/NOTICE.md", "references/serve.mjs", "references/assemble.mjs", "references/curate.mjs"] },
66
+ { "name": "payload-mon", "type": "skill", "target": "both", "reason": "toggles an estimated API request payload segment (bytes against Claude Code's 32MB request limit) in the OMC custom HUD statusline, beside ctx; pure Node, no deps", "supportingFiles": ["scripts/payload-mon.mjs", "scripts/payload-size.mjs"], "caveat": "measures Claude Code sessions only (the 32MB limit and the transcript format are Claude Code's); run from Codex it still manages the same machine's Claude Code HUD wrapper but never measures Codex's own requests. Needs the OMC custom HUD wrapper (setup-omc-hud); the wrapper imports a module copy kept beside it because plugin install paths are versioned and retired on update" },
67
+ { "name": "tone-compact", "type": "skill", "target": "both", "reason": "turns compact Korean writing rules (ASD-STE100 based: lists and tables, transliterated terms, no decorative symbols) on or off across sessions; pure Node, no deps", "supportingFiles": ["scripts/tone-compact.mjs"], "caveat": "per runtime: Claude Code gets <config>/rules/banker-tone-compact.md; Codex gets one marked block at the end of $CODEX_HOME/AGENTS.override.md (when it has content of its own) or AGENTS.md, wrapped in USER:OMX:POLICY so omx setup --merge-agents and a plain omx setup with team mode on keep it (--force, a confirmed overwrite or a plain omx setup with team mode off replace the file; run on again). Turning it on in one runtime leaves the other as it is" },
68
+ { "name": "graceful_pause", "type": "skill", "target": "both", "reason": "finishes only the step in progress, keeps mode state and plans (unlike cancel), reports, and waits for mid-course instructions; instructions only", "supportingFiles": [], "caveat": "acts when the queued input is read and never interrupts a step; Claude asks through AskUserQuestion, Codex through its structured question tool (or omx question in tmux). Without one, a persistent OMX mode (ralph/ultraqa/team) keeps re-continuing the turn, so the pause cannot hold: it reports this and asks continue vs cancel" },
66
69
 
67
70
  { "name": "front-qa", "type": "command", "target": "both", "reason": "ralplan->ralph frontend-QA pipeline; Claude=OMC, Codex=OMX", "supportingFiles": [] },
68
71
  { "name": "setup", "type": "command", "target": "both", "reason": "installer orchestrator; Claude AskUserQuestion multi-select, Codex prompt-based selection", "supportingFiles": [] }
@@ -7,7 +7,7 @@ The generator (`banker setup --codex`) applies the rules below for `target: both
7
7
  |---|---|---|
8
8
  | `skills/<name>/SKILL.md` (+ subtree) | `~/.codex/skills/banker-<name>/` (whole dir) | **COPY subtree** (Windows: no symlink), then **rewrite the frontmatter `name:` to `banker-<name>`**. Codex discovers skills by directory and requires `name:` == directory name, so the prefix must be applied to both (leaving `name: <name>` while the dir is `banker-<name>` makes Codex skip the skill). `description` is left as-is. |
9
9
  | `commands/<name>.md` | `~/.codex/prompts/banker-<name>.md` | Near-identical (frontmatter `description`+`argument-hint`). Codex prompts are flat → the `banker-` prefix lives in the filename; invoked as `/banker-<name>`. |
10
- | (none) | `~/.codex/AGENTS.md` | **NOT TOUCHED.** omx regenerates it (clobber risk, `:7`/`:253`). Rely on `~/.codex/skills/` auto-discovery; if a listing is wanted, write ONLY inside the sanctioned `<!-- user-custom -->` region, idempotently. |
10
+ | (none) | `~/.codex/AGENTS.md` | **NOT TOUCHED by setup.** omx regenerates it (clobber risk, `:7`/`:253`); `omx setup --merge-agents` keeps only `<!-- USER:OMX:POLICY:START -->`…`END` blocks on a rewrite; `--force`, a confirmed overwrite, and a plain `omx setup` with team mode off replace the file whole; a plain `omx setup` with team mode on only refreshes the model table. Rely on `~/.codex/skills/` auto-discovery. The one runtime writer is the `tone-compact` skill, at the user's request, inside such a block. |
11
11
 
12
12
  ## Naming
13
13
  - Codex skill dir **and** frontmatter `name:`: `banker-<name>` (avoids collision with omx/system skills; kept in sync so Codex discovers it).
@@ -18,7 +18,7 @@ The generator (`banker setup --codex`) applies the rules below for `target: both
18
18
 
19
19
  ## Runtime-aware surfaces (both) — Codex uses OMX / Codex equivalents
20
20
  현재 `claude-only` 표면은 **없다**(전부 `both`). OMC/Claude 에 결합됐던 표면은 본문이 런타임 인식으로 작성돼 Codex에서도 동작한다 — Codex에선 OMC 대신 oh-my-codex(OMX)의 동명 스킬을 쓴다:
21
- - 오케스트레이터 `all-in-one`·`ultra-init`·커맨드 `front-qa` → OMX `ralplan`/`ralph`/`ultraqa`/`ultragoal`.
21
+ - 오케스트레이터 `all-in-one`·`ultra-init`·커맨드 `front-qa` → OMX `ralplan`/`ralph`/`ultraqa`. `ultra-init` 은 0.14.0 부터 ultragoal 원장을 쓰지 않는다(OMC 5.6.1 checkpoint 가 `/goal` 스냅샷을 요구해 ralph 와 Stop 훅 루프가 겹친다). Claude 쪽은 OMC 5 기준: `ultraqa` 가 5.0.0 에서 삭제돼 QA 게이트를 `verify` 순환(독립 verifier → architect 진단 → executor 수정, 최대 5회)으로 직접 돌리고, `ralph` 가 부르는 `omc ralph verify` 때문에 전역 `omc` CLI 가 플러그인과 같은 5.x 여야 한다(사전 점검은 종료 코드가 아니라 출력 문구로).
22
22
  - `setup-omc` → `omx setup`(본문에 이미 존재). `setup-omc-hud` → OMX `hud`. `setup-stitch` → `codex mcp add`.
23
23
  - `compact-copy` → Codex 내장 `/copy`(경로는 Codex 규약). `omc-reference` → Codex는 OMX 카탈로그 기준. `setup` 커맨드 → Codex는 프롬프트 선택 UX.
24
24
  `setup-insane-search` 도 `both`: Codex에선 `codex plugin add insane-research-codex@gptaku-codex`.
@@ -40,6 +40,9 @@ The generator (`banker setup --codex`) applies the rules below for `target: both
40
40
  - `deep-research` — needs web search/fetch (Claude WebSearch/WebFetch or bundled workflow; Codex OMX autoresearch).
41
41
  - `smart-compact` — Claude statusLine exposes context%; Codex signal unconfirmed → heuristic fallback; `/copy`·`/compact`·paste stay user-driven (TUI).
42
42
  - `obsidizer` — OMC-managed trees respect the 9-field frontmatter whitelist + reserved files + no-rename + bare `[[slug]]` links only; `aliases` are written in generic vaults only; Canvas sidecars and body-inline `::` are durable in-place; no `wiki_*` write dependency, `wiki_lint` read-only for verification. `--enable` is Claude-only (plugin-declared PostToolUse hook); Codex has no MCP tool hooks → honest no-op.
43
+ - `payload-mon` — needs the OMC custom HUD wrapper (`setup-omc-hud`). It measures Claude Code sessions only; from Codex it manages the same machine's Claude Code HUD wrapper and never measures Codex's own requests.
44
+ - `tone-compact` — per runtime: Claude Code loads `<config>/rules/banker-tone-compact.md`; Codex reads one marked block at the end of `$CODEX_HOME/AGENTS.override.md` (when it has content of its own) or `AGENTS.md`, wrapped in `USER:OMX:POLICY` so `omx setup --merge-agents` keeps it (`--force` or team mode off replaces the file; run `on` again). Turning it on in one runtime leaves the other as it is.
45
+ - `graceful_pause` — acts when the queued input is read; it never interrupts a step. Claude waits through `AskUserQuestion`; Codex through its structured question tool (or `omx question` in tmux). Without one, a persistent OMX mode (ralph/ultraqa/team) keeps re-continuing the turn, so the pause cannot hold: it says so and asks whether to continue or cancel.
43
46
 
44
47
  신규 스킬(0.7.0)도 `both`·런타임 인식:
45
48
  - `ultra-interview` → 리서치 선행 질문 최소화 + 모호성 3% 이하 종료. **자체 루브릭 소유**가 설계 요점이다: OMC deep-interview 는 3차원, OMX 는 5차원으로 산식이 달라 네이티브 채점을 물려받으면 같은 임계값이 런타임마다 다른 뜻이 된다. OMC/OMX 네이티브 `deep-interview` 를 번들하거나 대체하지 않는다. 규제 조회는 엔드포인트 하드코딩이 아니라 "해당 관할의 공식 1차 출처를 찾아라"는 일반 지시다.
@@ -48,3 +51,12 @@ The generator (`banker setup --codex`) applies the rules below for `target: both
48
51
  - `update-banker` → 축이 OS 가 아니라 **채널**이다. Claude 런타임 = `claude plugin update` 후 프로브로 전진 확인, 안 움직이면 `claude plugin marketplace update` 를 더한다("항상 2단계"인지는 **DISPUTED** 이므로 확정으로 쓰지 않는다). Codex 런타임 = claude 분기 스킵, npm 갱신 후 `banker setup --codex`. 공통 = npm-first 순서 게이트(구버전 CLI 로 setup 하면 sweep 후 그 구버전 매니페스트 수만큼만 복원된다)와 채널별 독립 프로브 검증. 채널 부재는 에러가 아니라 스킵이다.
49
52
  - `refresh-readme` → 런타임 무관(파일 읽기·쓰기뿐, 의존성 0). 안티슬롭 마커는 `humanizer` 에 위임하고 재서술하지 않는다.
50
53
  - `cleansing-memory` → **두 런타임의 메모리 모델이 거의 안 닮았다.** Claude = `CLAUDE.md`(문서화된 한도 없음) + `MEMORY.md`(200줄 OR 25KB 하드 게이트) + `@path` 4홉 import + AGENTS.md 미지원. Codex = `AGENTS.md` 프로젝트 스코프 32768B(`project_doc_max_bytes`) + 전역 `~/.codex/AGENTS.md` 무제한. Codex 는 raw 바이트를 자른 뒤 lossy UTF-8 디코드를 하므로 한글 경계 문자가 깨진다. Claude 의 코드베이스 유도분 트림은 `/doctor` 에 위임한다.
54
+
55
+ 추가 스킬 `payload-mon` 도 `both`·런타임 인식:
56
+ - `payload-mon` → 다루는 신호가 Claude Code 의 것이다. 32MB 요청 한도와 세션 파일 형식이 Claude Code 기준이라 **Codex 자신의 요청 크기는 재지 않는다.** Codex 에서 실행하면 같은 머신의 Claude Code HUD 래퍼(`omc-hud-custom.mjs`)를 켜고 끄는 것만 하고, `status` 의 현재 세션 추정치는 Claude Code 세션에서만 나온다. OMX `hud` 는 건드리지 않는다.
57
+ - HUD 래퍼가 불러오는 추정 모듈은 스킬 폴더가 아니라 래퍼 옆에 둔 사본이다. Claude Code 플러그인 설치 경로(`plugins/cache/<마켓>/<플러그인>/<버전>/`)는 업데이트 때 옛 버전 폴더가 정리되므로, 그 경로를 래퍼에 박으면 다음 업데이트 뒤 표시가 소리 없이 사라진다. Codex 설치 경로에는 버전이 없지만 같은 사본 방식을 쓴다.
58
+
59
+ 추가 스킬 `tone-compact`·`graceful_pause` 도 `both`·런타임 인식:
60
+ - `tone-compact` → 켜짐 상태를 두는 곳이 런타임마다 다르다. Claude Code 는 사용자 규칙 폴더(`<설정 폴더>/rules/`)의 banker 전용 파일 하나를 쓰고 지운다. 세션 시작과 compaction 뒤에 다시 읽히는 곳이다. Codex 는 전역 지침 파일 끝에 블록 하나를 넣고 뺀다. 파일은 `AGENTS.override.md` 에 내용이 있으면 그쪽, 없으면 `AGENTS.md` 다. `omx setup --merge-agents` 가 생성형 AGENTS.md 를 다시 쓸 때 `USER:OMX:POLICY` 블록만 남기므로 그 표시로 감싼다(`--force` 나 team 모드를 끈 `omx setup` 은 파일을 통째로 바꾸므로 그 뒤 `on` 을 다시 실행). 전역 파일은 32KiB 한도에 잘리지 않는다(35.6KB 로 실측).
61
+ - `graceful_pause` → 순수 지시문. 대기 방식만 다르다: Claude 는 `AskUserQuestion`(응답을 끝내지 않아 OMC 지속 모드의 Stop 훅에 막히지 않음), Codex 는 구조화 질문 도구 또는 짧은 질문 하나로 응답 종료. 정지 중 지속 모드의 계속 신호는 사용자 지시로 보지 않는다.
62
+ - `ready-compact` → 노트 위치만 런타임마다 다르다. Claude Code 는 자동 메모리 폴더(`MEMORY.md` 포인터가 새 세션에도 로드됨), Codex 는 자동 메모리가 없어 작업 폴더의 `.omx/handoffs/`(OMX 의 handoff 관례). 출력은 양쪽 모두 프롬프트 본문만이라 내장 `/copy` 한 번으로 복사된다. `--hand-off` 는 새 세션에 이 대화가 없다는 전제로 결정과 이유, 작업 위치, 진행 중인 모드와 백그라운드 작업까지 노트에 옮긴다.
@@ -10,9 +10,12 @@ argument-hint: "[스펙/note 파일 경로 — 생략 시 docs/note.txt]"
10
10
 
11
11
  ## 0. 전제조건: OMC (없으면 설치부터)
12
12
 
13
- 이 커맨드는 `/ralplan`·`/ralph` 등 oh-my-claudecode(OMC)에 의존한다. **진행 전 먼저 확인**하고, 없으면 **설치부터 안내**한다:
14
- - 확인: `command -v omc` + `/oh-my-claudecode:*` 사용 가능 여부.
15
- - 미설치면 `/banker:setup` → oh-my-claudecode(또는 `setup-omc` 스킬 / `omc update`)로 먼저 구성한 뒤 이어서 진행.
13
+ 이 커맨드는 `/ralplan`·`/ralph` 등 oh-my-claudecode(OMC)에 의존한다. **진행 전 먼저 확인**하고, 없거나 낡았으면 **설치·갱신부터 안내**한다:
14
+ - 확인(Claude Code): `/oh-my-claudecode:*` 사용 가능 여부 + `omc` CLI 가 `ralph verify` 를 갖췄는지. OMC 5 의 `ralph` 는 첫 반복에 `omc ralph verify` 를 실행하고 없으면 멈춘다. 플러그인보다 낡은 4.x CLI 는 이 명령이 없는데도 `--help` 를 주면 전체 도움말을 찍고 종료 코드 0 을 내므로 **출력 문구로 판정**한다(`--help` 없이 부르면 Claude 실행으로 넘어가니 반드시 붙인다). Codex 는 `omx --version` 으로 OMX 를 확인한다:
15
+ ```bash
16
+ omc ralph verify --help 2>&1 | grep -q 'Usage: omc ralph verify' && echo "omc ok" || echo "omc CLI 없음 또는 낡음"
17
+ ```
18
+ - 실패하면 `/banker:setup` → oh-my-claudecode(또는 `setup-omc` 스킬 / `npm install -g oh-my-claude-sisyphus@latest`)로 먼저 구성한 뒤 이어서 진행. 점검을 통과하기 전에는 절차 1을 시작하지 않는다.
16
19
  - **런타임 매핑:** 아래 절차의 `/ralplan`·`/ralph`는 Claude Code에선 OMC 스킬, **Codex에선 oh-my-codex(OMX)의 동명 스킬**이다(Codex는 OMC 대신 OMX 전제). 각 런타임에서 사용 가능한 형태로 호출한다.
17
20
 
18
21
  ## 절차 (CLAUDE.md: 계획 없는 즉시실행 금지)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaydash9999/banker-plugins",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "banker — Claude Code + Codex CLI plugin (QA, audit, docs, architecture, wiki skills). Install via Claude Code marketplace, or `npm i -g @kaydash9999/banker-plugins` then `banker setup`.",
5
5
  "bin": {
6
6
  "banker": "bin/banker.js"