@kaydash9999/banker-plugins 0.20.5 → 0.22.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.
Files changed (67) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +52 -0
  4. package/PRIVACY.md +25 -1
  5. package/README.md +63 -18
  6. package/bin/banker.js +173 -14
  7. package/bin/lib/codex-hooks.mjs +254 -0
  8. package/bin/lib/codex-routes.mjs +112 -0
  9. package/bin/lib/command-skill.cjs +19 -0
  10. package/bin/lib/telemetry-config.mjs +4 -1
  11. package/codex/command-skills/front-qa/SKILL.md +56 -0
  12. package/codex/command-skills/setup/SKILL.md +87 -0
  13. package/codex/hooks.json +29 -0
  14. package/codex/manifest.json +13 -10
  15. package/codex/skills/graceful-pause/SKILL.md +30 -0
  16. package/codex/skills/progress/SKILL.md +42 -0
  17. package/codex/skills/progress/scripts/progress-plan.mjs +722 -0
  18. package/codex/skills/progress/scripts/progress.mjs +295 -0
  19. package/codex/transform-matrix.md +18 -13
  20. package/commands/setup.md +2 -2
  21. package/hooks/obsidize-hook.mjs +116 -4
  22. package/hooks/progress-plan.mjs +1 -1
  23. package/hooks/telemetry-count-codex.mjs +309 -0
  24. package/hooks/update-notify.mjs +105 -14
  25. package/package.json +1 -1
  26. package/skills/3d-intro-build/references/verify-intro.mjs +15 -1
  27. package/skills/anti-drm/SKILL.md +1 -1
  28. package/skills/anti-drm/scripts/instruction-toggle.mjs +57 -4
  29. package/skills/append_wiki/SKILL.md +34 -8
  30. package/skills/arch-diagram/build_pptx_template.py +47 -28
  31. package/skills/audit-web-page/SKILL.md +1 -1
  32. package/skills/audit-web-page/harness.py +0 -1
  33. package/skills/compact-wiki/SKILL.md +37 -6
  34. package/skills/deep-research/SKILL.md +6 -0
  35. package/skills/lfm/SKILL.md +148 -0
  36. package/skills/lineage/SKILL.md +14 -4
  37. package/skills/lineage/lineage.py +1582 -516
  38. package/skills/motion-graphic-make/SKILL.md +1 -1
  39. package/skills/obsidizer/SKILL.md +44 -10
  40. package/skills/obsidizer/obsidize.mjs +42 -11
  41. package/skills/omc-patch/SKILL.md +6 -0
  42. package/skills/payload-mon/SKILL.md +3 -1
  43. package/skills/play-qa/SKILL.md +1 -1
  44. package/skills/ralph-qa/SKILL.md +1 -1
  45. package/skills/remains/SKILL.md +1 -1
  46. package/skills/rfp-author/SKILL.md +5 -3
  47. package/skills/rfp-author/references/vendor-rfp-structure.md +1 -1
  48. package/skills/rfp-author/scripts/md2docx.py +63 -34
  49. package/skills/setup-bypass-permissions/SKILL.md +28 -10
  50. package/skills/setup-bypass-permissions/scripts/codex-bypass.mjs +135 -0
  51. package/skills/setup-bypass-permissions/scripts/codex-config.mjs +210 -0
  52. package/skills/setup-bypass-permissions/scripts/fallback/bypass-permissions.py +66 -15
  53. package/skills/setup-omc-hud/SKILL.md +33 -3
  54. package/skills/setup-omc-hud/assets/codex-config.mjs +210 -0
  55. package/skills/setup-omc-hud/assets/codex-status-line.mjs +90 -0
  56. package/skills/smart-compact/SKILL.md +59 -13
  57. package/skills/smart-compact/scripts/codex-gate.mjs +385 -0
  58. package/skills/theme-selection/SKILL.md +1 -1
  59. package/skills/tone-compact/SKILL.md +1 -1
  60. package/skills/tone-compact/scripts/instruction-toggle.mjs +57 -4
  61. package/skills/ultra-chain/SKILL.md +10 -6
  62. package/skills/ultra-interview/SKILL.md +13 -2
  63. package/skills/ultra-ui-qa/SKILL.md +1 -1
  64. package/skills/update-banker/SKILL.md +31 -6
  65. package/skills/vertical-pptx/SKILL.md +1 -1
  66. package/skills/vertical-pptx/build_a4p.js +20 -2
  67. package/skills/vertical-pptx/build_a4p.py +560 -359
@@ -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.20.5"
9
+ "version": "0.22.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "banker",
3
- "version": "0.20.5",
3
+ "version": "0.22.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,57 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.22.0] - 2026-10-29
4
+
5
+ ### Added
6
+ - Codex 의 plugin 명령으로도 설치할 수 있다: `codex plugin marketplace add smallOpenSource/banker_plugins` 뒤 `codex plugin add banker@banker-plugins`. 스킬은 `$banker:<이름>` 으로 부른다. npm 길(`banker setup --codex`, `$banker-<이름>`)과 같은 구성요소가 들어간다.
7
+ - Codex 플러그인 매니페스트 `.codex-plugin/plugin.json`: 스킬 폴더 셋(`skills/`, Codex 전용 `codex/skills/`, 명령을 스킬로 바꾼 `codex/command-skills/`), 훅 파일 `codex/hooks.json`, `commands: []`(Codex 0.160 이 Claude 명령을 `source-command-*` 스킬로 바꾸지 않게).
8
+ - 훅: 업데이트 알림(`SessionStart`)과 사용량 카운팅(`Stop`). `/hooks` 에서 신뢰한 뒤에 돈다. obsidizer 훅은 `obsidizer --enable` 할 때만 사용자 범위에 따로 설치한다.
9
+ - 두 길을 함께 두면 스킬이 두 이름으로 겹친다. 세션 시작 알림, `banker setup --codex`, `banker doctor` 가 알리고, 지우지는 않는다(프로젝트 범위 npm 설치도 본다).
10
+ - 스킬 본문의 Codex 경로 안내가 두 길을 모두 적는다.
11
+
12
+ ### Changed
13
+ - Codex 플러그인 훅이 샌드박스 밖에서 돌리는 node 를 고르는 규칙: PATH 의 node 를 실제 경로로 풀어, 임시 폴더나 작업 폴더 안이면 돌리지 않고 이유를 알린다(작업 폴더가 홈 자체면 작업 폴더 규칙은 쓰지 않음). 플러그인 폴더에서 돈다. npm 길 훅도 홈 폴더에서 연 세션의 nvm node 를 받는다.
14
+ - multicall shim(Volta, mise, snap)과 Windows 의 `node.cmd` shim 은 그 shim 에 실제 node 를 물어 그 node 로 돈다.
15
+ - node 를 찾은 뒤에는 PATH 에서 임시 폴더와 작업 폴더 아래 항목을 빼, `realpath`, `readlink` 와 shim 이 부르는 프로그램을 프로젝트의 `.venv/bin`, `node_modules/.bin` 같은 곳에서 가져오지 않는다. Windows 는 경로를 비교할 때 링크, junction, subst 드라이브를 풀고 8.3 짧은 이름도 긴 경로로 비교하며, node 를 찾을 때부터 네트워크 드라이브와 UNC PATH 항목은 읽지 않는다(Windows PowerShell 5.1 과 pwsh 7 에서 시험).
16
+ - macOS 데스크톱에서 연 Codex 처럼 PATH 에 node 가 없으면 Homebrew(`/opt/homebrew/bin`)와 공식 설치(`/usr/local/bin`) 위치를 본다. realpath 와 `readlink -f` 가 없는 macOS 12.3 미만도 링크를 따라가 판단한다.
17
+ - Codex 플러그인 훅 명령 앞에 훅이 실행하는 파일의 해시(`banker-hooks-rev`)가 붙는다. 훅 코드가 바뀐 판은 Codex 가 `/hooks` 에서 신뢰를 다시 묻고, 신뢰하기 전에는 돌지 않는다(0.144.5, 0.160.1 실측).
18
+ - 두 길의 훅이 같은 세션에서 함께 돌아도 세션 시작 알림과 사용 횟수는 한 번이다(세션 id 폴더 `codex-sessions/`, 턴 키 잠금. PRIVACY.md). 30초 넘게 지나 같은 세션을 이어 열면(resume) 알림을 다시 확인한다.
19
+ - 사용 기록과 체크인의 스킬 이름은 소문자만 받는다.
20
+ - `vertical-pptx` python 빌더가 node 빌더와 같은 글꼴 체인과 대조로 글꼴을 고른다. Windows 에 `NotoSansKR-VF.ttf` 만 있을 때 없는 이름 `Noto Sans CJK KR` 을 적던 것, ASCII 글자 없는 이름(예: 나눔고딕)을 아무 파일로 찾던 것, Windows junction 글꼴 폴더로 들어가던 것을 고친다. node 빌더는 `--font constructor` 에서 멈추지 않는다.
21
+ - `tone-compact`, `anti-drm` 의 Codex 지침 쓰기가 Windows 에서 끊어진 링크를 따라가 그 너머에 파일을 만들던 것을 고친다(잠금, 새 `AGENTS.md`, 임시 파일).
22
+ - `obsidizer --enable` 의 Codex 훅 설치 절차는 설치 길과 관계없이 실제 node 와 `banker.js` 의 절대경로를 확인한 뒤 샌드박스 밖 실행을 요청한다.
23
+ - `3d-intro-build` 의 측정(`verify-intro`)이 Chromium 의 일시적 `Unable to capture screenshot` 에서 멈추지 않고 세 번까지 다시 찍는다.
24
+ - README 의 Codex CLI 설치 안내가 플러그인 마켓플레이스 길(`codex plugin marketplace add smallOpenSource/banker_plugins` 뒤 `codex plugin add banker@banker-plugins`)을 권장으로 적는다.
25
+
26
+ ### Notes
27
+ - main 에 push 한 커밋은 다음 Codex 세션에서 플러그인 사용자에게 바로 간다(Codex 가 세션 시작 때 git 마켓플레이스를 올림). RELEASING.md 9번에 적었다.
28
+ - 유지보수자용: Windows 에서 늘 건너뛰던 링크 시험 29건이 링크를 만들 수 있는 계정이면 돈다(`scripts/test-fixtures/can-symlink.mjs`). 파이썬 파일은 `ruff format` 을 따르고 `ruff.toml` 의 대상 판은 3.7 이다(3.6 에서도 파싱).
29
+ - 실측: 실제 Codex 0.144.5(Linux), 0.160.1(Linux, macOS, Windows), 0.165.0(macOS, Rocky Linux 8). vertical-pptx 결과는 Windows 에서 LibreOffice 26.8 로 렌더해 Noto Sans KR 과 맑은 고딕이 대체 글꼴 없이 그려짐을 확인했다. PowerPoint 로는 렌더하지 않았다.
30
+
31
+ ## [0.21.0] - 2026-10-28
32
+
33
+ ### Added
34
+ - 새 스킬 `lfm`(learn from master): 어떤 분야의 최고 전문가 그룹이 실제로 일하는 방식을 그들이 공개한 1차 자료로 조사한다. 근거 있는 그룹 3~5곳, 관점별 자료(작업 순서, 역할, 품질 기준, 검토, 도구, 실패와 대응), 공통 관행과 반대 근거, 계획 적용 항목(`M-1` …의 적용, 조정, 제외와 이유)을 낸다. 웹 조사를 못 하면 모델 지식으로 채우지 않고 "웹 조사 불가" 로 끝난다. Claude Code 와 Codex(Linux 0.144.5, Windows 0.160.1)에서 실제로 불러 확인했다.
35
+ - `ultra-interview`, `ultra-chain`, `deep-research`, `rfp-author` 의 리서치가 그 분야 전문가 그룹의 작업 방식도 조사해 계획에 쓴다. ultra-chain 은 1단계에서 `01-masters.md` 를 남기고, 3단계 계획이 `M-n` 마다 판정과 이유를 적으며 계획 검토자가 이를 본다. rfp-author 는 조사 결과를 내부 추적용 `references/expert-practices.md` 에만 두고 벤더 발송본에는 넣지 않는다.
36
+ - Codex 에서 모든 구성요소가 동작한다.
37
+ - 명령 `front-qa`, `setup` 이 Codex 스킬(`$banker-front-qa`, `$banker-setup`)로도 설치된다. Codex 0.144 이상에는 사용자 프롬프트가 없다.
38
+ - Codex 전용 스킬 `graceful-pause`(작업 중 보내면 실행 중인 도구 호출이 끝난 뒤 멈춤)와 `progress`(지금 세션의 계획 파일 트리, `update_plan` 단계, 최근 도구 호출. tmux 안이면 `--pane` 으로 오른쪽 칸 갱신).
39
+ - `banker setup --codex` 가 Codex 훅을 설치한다: 업데이트 알림(`SessionStart`), 사용량 카운팅(`Stop`, 턴마다 한 번). 사본은 `$CODEX_HOME/hooks-custom/banker/`, 묶음은 이벤트 맨 뒤, Windows 는 PowerShell 형식. `banker hooks status|enable|disable`, `banker uninstall --codex`. Codex 를 다시 열 때 Hooks need review 나 `/hooks` 에서 신뢰해야 돈다.
40
+ - `obsidizer --enable` 이 Codex 에서 `omx_wiki/.obsidizer` 와 `PostToolUse`(matcher `Bash`) 훅으로 동작한다. `omx wiki` 의 ingest, add 셸 호출 뒤에만, CLI 출력 JSON 이 이름 붙인 일반 페이지만, 검사한 `omx_wiki/` 를 cwd 로 고정한 정규화기(`--page --vault=<dev>:<ino>`)로 고친다.
41
+ - `lineage` 3.1.1 이 Codex 기록(rollout)을 읽는다(0.144 와 0.160 형식). Codex 안에서는 `CODEX_THREAD_ID` 로 지금 세션을 찾고, `--all-sessions` 는 이 폴더의 rollout 을 하위 에이전트 기록을 빼고 합친다.
42
+ - `setup-bypass-permissions` 에 대상 `codex`(`config.toml` 의 `approval_policy = "never"`, `sandbox_mode = "danger-full-access"`, 켜기 전 값 기록과 `off` 원복, 조직 정책과 기본 프로필 확인).
43
+ - `setup-omc-hud` 의 Codex 대상이 `[tui] status_line` 을 OMX 프리셋으로 켜고 끈다(없을 때만 넣고 banker 가 넣은 줄만 뺌).
44
+ - Codex 기록 형식이 바뀌어도 결과가 조용히 비지 않는다: lineage 는 사용자 턴 0 이면 Codex 버전과 함께 exit 2, progress 는 경고 줄, 카운팅 훅은 다음 세션 시작 때 경고 한 번. `banker doctor` 가 최신 rollout 의 형식을 점검한다(Codex 를 업데이트한 뒤 확인용).
45
+
46
+ ### Changed
47
+ - `banker setup --codex` 가 `CODEX_HOME` 을 따른다(상대 경로는 Codex 처럼 지금 폴더 기준). Codex 홈이 지금 폴더나 그 저장소 안이면 샌드박스가 고칠 수 있어 훅을 설치하지 않는다.
48
+ - Codex 사용량 카운팅은 이 Codex 에 설치된 banker 스킬 이름만 센다. 체크인 형식 `{version, os, counts}` 는 그대로이고 세션 id 와 턴 id 는 보내지 않는다(PRIVACY.md 에 Codex 절).
49
+ - 위키(`append_wiki`, `compact-wiki`)는 Codex 에서 `omx wiki` CLI 와 `omx_wiki/` 를 쓰고, Windows PowerShell 5.1 의 인자 전달을 맞춘다. `smart-compact` 는 Codex 에서 토큰 사용량을 rollout 으로 재는 훅을 쓴다. `payload-mon`, `omc-patch`, `setup-omc-hud`, `smart-compact` 는 `~/.codex` 나 `~/.claude` 쓰기를 명령별 승인이나 사용자의 `!` 명령으로 하고, 설정 폴더를 통째로 여는 `--add-dir` 은 권하지 않는다.
50
+
51
+ ### Notes
52
+ - Codex 에서 지금도 Claude Code 와 다른 것: `payload-mon` 은 Codex 자신의 요청 크기를 재지 않고, `omc-patch` 는 OMX 를 패치하지 않으며, `progress` 는 상시 패널이 아니고(Windows 는 옆 칸 없음), `graceful-pause` 는 실행 중인 도구 호출이 끝난 뒤 멈춘다.
53
+ - Windows 에서 SSH 로 접속한 세션은 Codex 샌드박스가 어떤 명령도 실행하지 못한다(Codex 쪽 제약). 데스크톱 세션에서는 샌드박스를 켠 채 확인했다.
54
+
3
55
  ## [0.20.5] - 2026-10-21
4
56
 
5
57
  ### Changed
package/PRIVACY.md CHANGED
@@ -8,7 +8,7 @@
8
8
  하나는 새 버전이 나왔을 때 알려주는 **업데이트 알림**이고, 다른 하나는 유지보수자가 사용량을 파악하기 위한 **익명 사용량 카운팅**입니다.\
9
9
  두 기능 모두 기본값은 켜짐(default-on)이며, 따로 끌 수 있습니다.\
10
10
  다만 사용량 체크인은 업데이트 확인과 함께 보내므로, 업데이트 알림을 끄면(`BANKER_NO_UPDATE_CHECK`) 체크인 전송도 멈춥니다. 그때 카운팅 기록은 이 기기에만 쌓이다가 5,000줄에서 멈춥니다.\
11
- 이 기능은 Claude Code 런타임에서만 동작합니다. Codex CLI는 샌드박스가 네트워크 접근을 차단하므로 알림과 카운팅 둘 다 동작하지 않습니다.
11
+ Claude Code 와 Codex CLI 모두에서 동작합니다. Codex 에서는 `banker setup --codex` 가 Codex 훅으로 설치하거나, Codex 플러그인(`codex plugin add banker@banker-plugins`)이 훅을 함께 가져옵니다. 수집 범위는 아래 "Codex CLI" 절에 있습니다.
12
12
 
13
13
  ## 현재 상태
14
14
 
@@ -84,6 +84,30 @@ update-notifier·Homebrew 등 다른 CLI 도구가 쓰는 것과 같은 방식
84
84
  세 훅 모두 트리거될 때마다 짧게 실행되는 node 프로세스를 하나씩 기동합니다(수십 ms 수준).\
85
85
  opt-out 하더라도 훅의 등록 자체는 남고, 각 스크립트 내부의 게이트가 즉시 무동작으로 반환합니다.
86
86
 
87
+ ## Codex CLI
88
+
89
+ `banker setup --codex` 가 Codex 사용자 범위(`~/.codex/hooks.json`)에 훅 두 개를 넣습니다.\
90
+ 훅 스크립트는 `~/.codex/hooks-custom/banker/` 사본에서 돌고, Codex 를 다시 열 때 뜨는 Hooks need review 창이나 `/hooks` 에서 사용자가 신뢰해야 돌기 시작합니다.\
91
+ `banker uninstall --codex` 가 둘 다 지우고, `banker hooks disable update` 나 `banker hooks disable count` 로 하나씩 끌 수 있습니다.
92
+
93
+ Codex 플러그인으로 설치하면 같은 두 훅이 플러그인의 `codex/hooks.json` 에서 오고, 설치된 플러그인 폴더(`~/.codex/plugins/cache/banker-plugins/banker/<판>/`)에서 돕니다.\
94
+ 역시 `/hooks` 에서 신뢰해야 돌고, 신뢰하지 않거나 `/hooks` 에서 끄면 돌지 않습니다. `codex plugin remove banker@banker-plugins` 가 이 두 훅을 함께 지웁니다. `obsidizer --enable` 로 따로 설치한 obsidizer 훅은 사용자 범위에 있어 남습니다(README 의 제거 절).
95
+
96
+ - `SessionStart`: 세션 시작 시 1회, Claude Code 와 같은 캐시로 업데이트 알림을 확인합니다. 알림은 TUI 에 경고 줄로 보입니다.
97
+ - `Stop`: 턴이 끝날 때 1회, 이번 턴에 쓴 banker 스킬 이름을 셉니다. 도구 호출마다 돌지 않습니다.
98
+
99
+ Codex 카운팅이 읽는 것과 남기는 것은 다음과 같습니다.
100
+
101
+ - 읽는 것: 훅 입력이 알려 주는 이 세션의 Codex 기록 파일(rollout)에서 이번 턴 부분만. 그중 도구 호출 기록과, `$banker-<이름>`(플러그인은 `$banker:<이름>`)으로 부른 스킬을 Codex 가 넣은 머리 줄의 `skills/banker-<이름>/SKILL.md`(플러그인은 `plugins/cache/<마켓플레이스>/banker/<판>/.../<이름>/SKILL.md`) 경로만 봅니다. 이 Codex 에 설치된 banker 스킬 이름만 셉니다.
102
+ - 보지 않는 것: 사용자가 입력한 글, 모델의 답, 도구 결과, 스킬 본문.
103
+ - 로컬에 남기는 것: Claude Code 와 같은 `usage-log`, `used-skills.json` 의 스킬 이름과 시간대, 같은 턴을 두 번 세지 않게 하는 최근 턴 키(`codex-count-turns`, Codex 세션 ID 와 턴 ID, 최근 100개).
104
+ - 로컬에 남기는 것(추가): 세션 시작 알림을 낸 Codex 세션 ID 를 이름으로 한 빈 폴더(`codex-sessions/`, 이틀 뒤 지움). npm 설치와 플러그인 설치의 훅이 함께 돌 때 같은 세션에 두 번 알리지 않는 데만 쓰고 전송하지 않습니다.
105
+ - 로컬에 남기는 것(추가): 이 훅이 기록 형식을 읽지 못한 Codex 버전(`codex-shape-miss.json`, 버전과 알림 여부만). 다음 세션 시작 때 경고를 한 번 보이는 데만 쓰고 전송하지 않습니다.
106
+ - 전송하는 것: Claude Code 와 같은 체크인 `{version, os, counts}` 입니다. 세션 ID 와 턴 ID 는 전송하지 않습니다.
107
+
108
+ Codex 훅은 Codex 샌드박스 밖에서 돌므로, 샌드박스가 네트워크를 막아도 업데이트 조회와 체크인은 Claude Code 와 같이 나갑니다.\
109
+ 끄는 방법(`BANKER_NO_TELEMETRY`, `BANKER_NO_UPDATE_CHECK`, `banker telemetry off`)도 같습니다. 플러그인만 설치해 `banker` 명령이 없으면 두 환경 변수를 쓰거나 `/hooks` 에서 banker 훅을 끕니다.
110
+
87
111
  ## 전송 안전
88
112
 
89
113
  - 업데이트 알림 조회는 GET 요청이며 페이로드가 없습니다.
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  [빠른 시작](#빠른-시작) · [워크플로 예시](#워크플로-사용-예시) · [구성](#구성) · [설치 상세](#설치-상세-npm--codex) · [설정 변경 지점](#설정-변경-지점-claude-code--codex) · [요구사항](#요구사항) · [업데이트 / 제거](#업데이트--제거) · [업데이트 확인](#업데이트-확인-및-사용량-카운팅) · [오프라인](#오프라인에서-쓰기) · [라이선스 / 서드파티](#라이선스--서드파티)
10
10
 
11
11
  □ banker는 다음을 포함하는 Claude Code 및 Codex CLI 플러그인입니다.
12
- - QA·보안 감사·문서·아키텍처·위키·미디어 작업과 의존성·개발환경(OS별) 설치를 아우르는 **스킬 63개 + 커맨드 2개**(총 65개 구성요소)
12
+ - QA·보안 감사·문서·아키텍처·위키·미디어 작업과 의존성·개발환경(OS별) 설치를 아우르는 **스킬 64개 + 커맨드 2개**(총 66개 구성요소)
13
13
  - Claude Code 즉시 명령 `/graceful-pause`, `/progress`
14
14
 
15
15
  □ 설치하면 스킬과 커맨드가 `/banker:<이름>` 네임스페이스로 노출됩니다.
@@ -37,21 +37,38 @@ Claude Code 세션 안에서 입력합니다.
37
37
 
38
38
  스킬과 커맨드를 `/banker:audit-security` 처럼 `/banker:` 로 호출합니다.
39
39
 
40
- **Codex CLI:** npm 전역 설치 후 `banker setup`
40
+ **Codex CLI:** 두 방법 중 하나를 고릅니다.
41
+
42
+ 1) Codex 플러그인 마켓플레이스로 설치 (권장, npm 불필요)
43
+
44
+ 터미널 셸에서 입력합니다. 첫 줄은 이 GitHub 저장소를 Codex 의 플러그인 마켓플레이스 `banker-plugins` 로 등록하고, 둘째 줄은 그 마켓플레이스에서 banker 플러그인을 설치합니다.
45
+
46
+ ```bash
47
+ codex plugin marketplace add smallOpenSource/banker_plugins
48
+ codex plugin add banker@banker-plugins
49
+ ```
50
+
51
+ 스킬을 `$banker:audit-security` 처럼 `$banker:<name>` 으로 호출합니다.\
52
+ 훅(업데이트 알림, 사용량 카운팅)은 Codex 를 다시 열 때 뜨는 Hooks need review 창이나 `/hooks` 에서 신뢰해야 돕니다.\
53
+ Codex 는 세션을 시작할 때 마켓플레이스를 스스로 올려 새 판을 받습니다. 바로 올리려면 `codex plugin marketplace upgrade banker-plugins` 를 실행합니다.
54
+
55
+ 2) npm 전역 설치 후 `banker setup`
41
56
 
42
57
  ```bash
43
58
  npm i -g @kaydash9999/banker-plugins
44
59
  banker setup --codex
45
60
  ```
46
61
 
47
- 스킬을 `banker-audit-security` 처럼 `banker-<name>` 으로 호출합니다.
62
+ 스킬을 `$banker-audit-security` 처럼 `$banker-<name>` 으로 호출합니다.
63
+
64
+ 두 방법을 함께 쓰지 않습니다. 함께 두면 스킬과 훅이 두 벌이 되고, banker 가 세션 시작과 `banker doctor` 에서 알립니다.
48
65
 
49
66
  playwright(브라우저 QA)나 oh-my-claudecode(OMC/OMX)처럼 별도 의존성이 필요한 스킬은 실행 전에 설치부터 안내합니다(Claude Code는 `/banker:setup`).
50
67
 
51
68
  ## 워크플로 사용 예시
52
69
 
53
70
  무엇부터 써야 할지 막막할 때, 상황별로 골라 쓰는 대표 워크플로입니다.\
54
- Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합니다.
71
+ Claude Code는 `/banker:<이름>`, Codex는 `$banker-<이름>`(플러그인 설치면 `$banker:<이름>`)으로 호출합니다.
55
72
 
56
73
  | 워크플로 | 언제 쓰나 | 하는 일 |
57
74
  |---|---|---|
@@ -82,8 +99,8 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
82
99
  |---|---|
83
100
  | `/banker:front-qa` | 스펙(note) 기반 프론트엔드 구현 + parity QA |
84
101
  | `/banker:setup` | 구성요소·의존성 설치 오케스트레이터 (multi-select) |
85
- | `/graceful-pause` | 작업 중에도 바로 실행되는 정지 요청. 지금 단계만 끝내고 멈춘 뒤 보고하고 지시를 기다림 (Claude Code 2.1.289 이상, mod. Codex 미지원) |
86
- | `/progress` | 진행 상황 패널을 켜고 끔(`show` 기본 토글, `on`, `off`). 맨 위는 이 세션이 쓰거나 읽은 마지막 계획 파일(`.omc/plans/*.md`, `docs/superpowers/plans/*.md`, `~/.claude/plans/*.md`, ralph `prd.json`, ultragoal `goals.json`) 전체. Notion 토글 목록처럼 제목이 그 아래 내용을, 목록 항목이 하위 항목을, 표와 코드 블록이 행과 줄을 품고, 처음에는 큰 제목만 접힌 채 보임. 체크박스는 완료와 대기, 제목은 그 아래 체크 수(`2/5`). 그 아래 단계는 할 일 목록(Claude 의 작업 목록이나 `mcp__banker__todo`), 없으면 이 세션의 요청이고, 하위 목록은 그 단계가 진행 중일 때 한 도구 호출 한 단계까지. 작업 중에도 바로 실행됨(2.1.289 이상에서 확인) (mod. Codex 미지원) |
102
+ | `/graceful-pause` | 작업 중에도 바로 실행되는 정지 요청. 지금 단계만 끝내고 멈춘 뒤 보고하고 지시를 기다림 (Claude Code 2.1.289 이상, mod. Codex 는 작업 중에 `$banker-graceful-pause` 를 보내면 실행 중인 도구 호출이 끝난 뒤 멈춤) |
103
+ | `/progress` | 진행 상황 패널을 켜고 끔(`show` 기본 토글, `on`, `off`). 맨 위는 이 세션이 쓰거나 읽은 마지막 계획 파일(`.omc/plans/*.md`, `docs/superpowers/plans/*.md`, `~/.claude/plans/*.md`, ralph `prd.json`, ultragoal `goals.json`) 전체. Notion 토글 목록처럼 제목이 그 아래 내용을, 목록 항목이 하위 항목을, 표와 코드 블록이 행과 줄을 품고, 처음에는 큰 제목만 접힌 채 보임. 체크박스는 완료와 대기, 제목은 그 아래 체크 수(`2/5`). 그 아래 단계는 할 일 목록(Claude 의 작업 목록이나 `mcp__banker__todo`), 없으면 이 세션의 요청이고, 하위 목록은 그 단계가 진행 중일 때 한 도구 호출 한 단계까지. 작업 중에도 바로 실행됨(2.1.289 이상에서 확인) (mod. Codex 는 `$banker-progress` 스킬이 지금 세션의 계획 트리, `update_plan` 단계, 최근 도구 호출을 텍스트로 보이고, tmux 안이면 `--pane` 으로 오른쪽 칸에 갱신) |
87
104
 
88
105
  Claude Code 2.1.296 은 Claude 5 모델(Opus 5.5 등)에 작업 목록 도구(TaskCreate, TodoWrite)를 주지 않습니다. 그래서 `/progress` 를 켜면 모델에게 할 일 도구 `mcp__banker__todo` 를 줍니다(다음 요청부터). 모델이 여러 단계 작업을 시작할 때 할 일 목록을 보내면 그 목록이 단계가 됩니다. 한 단계로 끝나는 일에는 쓰지 않으므로 그때는 요청이 단계입니다. 내장 작업 목록 도구가 있는 세션(옛 모델, `CLAUDE_CODE_ENABLE_TODO_TOOLS=1`)에는 이 도구를 더하지 않습니다. 도구는 `/progress off` 뒤에도 세션이 끝날 때까지 남고, 그동안 부르면 패널이 꺼져 있다고 답합니다.
89
106
 
@@ -120,7 +137,8 @@ Claude Code 2.1.296 은 Claude 5 모델(Opus 5.5 등)에 작업 목록 도구(Ta
120
137
 
121
138
  > `obsidizer` 는 banker 최초의 플러그인 선언 hook(`hooks/hooks.json`)을 함께 설치합니다.\
122
139
  > banker가 활성화되어 있으면 이 hook은 **항상 등록**되어 위키 쓰기(`wiki_ingest`/`wiki_add`)마다 node 프로세스를 띄웁니다(플래그 확인이 그 안에서 일어나므로 `--enable` 전에도 쓰기당 약 30ms).\
123
- > `--enable` 전에는 아무것도 쓰지 않는 순수 no-op입니다.
140
+ > `--enable` 전에는 아무것도 쓰지 않는 순수 no-op입니다.\
141
+ > Codex 에는 위키 MCP 가 없어 `--enable` 이 `omx_wiki/.obsidizer` 를 쓰고 Codex 사용자 범위에 `PostToolUse`(matcher `Bash`) 훅을 설치합니다(`banker hooks enable obsidize`, 샌드박스 밖 실행 승인 필요). 이 훅은 `--enable` 한 때만 설치되고, 설치된 동안 셸 호출마다 node 프로세스를 띄워 `omx wiki` 의 ingest, add 일 때만 정규화합니다.
124
142
 
125
143
  ### 스킬: 워크플로 · 유틸
126
144
 
@@ -136,6 +154,7 @@ Claude Code 2.1.296 은 Claude 5 모델(Opus 5.5 등)에 작업 목록 도구(Ta
136
154
  | `ralph-qa` | 세션 모델로 띄운 독립 검토 에이전트 3개 이상이 합의할 때까지 검증 반복. `--codex`·`--gemini`·`--opencode` 를 주면 그 CLI 에서 가장 뛰어난 모델이 좌석으로 합류 |
137
155
  | `smart-compact` | 컨텍스트 임계 초과 시 위키·resume 저장 게이트 자동 무장 |
138
156
  | `deep-research` | 다중 소스 팬아웃 + 적대적 검증 인용 리서치 |
157
+ | `lfm` | learn from master. 그 분야 최고 전문가 그룹이 일하는 방식을 1차 자료로 조사해 계획 적용 항목으로 정리(ultra-interview, ultra-chain, deep-research, rfp-author 의 리서치에서도 씀) |
139
158
  | `ultra-interview` | 리서치 선행으로 사람 질문 최소화, 모호성 3% 이하까지 인터뷰 |
140
159
  | `interval-report` | 장기 수행 중간 보고를 `docs/intermission.md` 로 갱신(경과·잔여·단일 표) |
141
160
  | `summary-wiki` | 위키를 `docs/` 단일 파일 개조식으로 요약(지식 동기화 검토용, 읽기 전용) |
@@ -192,7 +211,7 @@ USER_RESOURCES 가이드의 공통 요소를 OS별·런타임별(Claude Code/Cod
192
211
  ## 설치 상세 (npm · Codex)
193
212
 
194
213
  마켓플레이스 대신 npm으로 전역 설치할 수 있고, Codex CLI에도 스킬을 설치할 수 있습니다.\
195
- Codex 설치는 npm 전역 설치가 선행되어야 합니다.
214
+ Codex CLI 에는 두 길이 있습니다. Codex 플러그인 마켓플레이스 길(`codex plugin marketplace add` 뒤 `codex plugin add`, npm 불필요, 아래 목록의 Codex 플러그인 항목)과 npm 길(`banker setup --codex`, npm 전역 설치가 먼저)입니다. 둘 중 하나만 씁니다.
196
215
 
197
216
  ```bash
198
217
  npm i -g @kaydash9999/banker-plugins
@@ -205,8 +224,20 @@ banker uninstall # 제거
205
224
 
206
225
  - `--scope project` 로 프로젝트 로컬(`./.codex`)에 설치하고, `--dry-run` 으로 미리 볼 수 있습니다.
207
226
  - non-root 전용입니다(전역 sudo 설치 시 root 소유 파일을 방지). postinstall이 없으므로 `banker setup` 을 직접 실행합니다.
208
- - Codex에는 스킬 63개가 `~/.codex/skills/banker-<name>/` 에, 커맨드 2개가 `~/.codex/prompts/banker-<name>.md` 에 설치됩니다(`codex/manifest.json`). \
227
+ - Codex에는 스킬 64개와 Codex 전용 스킬 2개(`graceful-pause`, `progress`)가 `~/.codex/skills/banker-<name>/` 에, 커맨드 2개가 `~/.codex/prompts/banker-<name>.md` 에 설치됩니다(`codex/manifest.json`). \
228
+ `CODEX_HOME` 을 설정했으면 `~/.codex` 대신 그 폴더에 설치합니다(Codex 가 읽는 곳). \
229
+ `lineage`, `progress`, 사용량 카운팅은 Codex 의 대화 기록(rollout)을 읽습니다. Codex 는 이 형식을 공개 약속으로 내놓지 않아 업데이트로 바뀔 수 있습니다. \
230
+ Codex 를 업데이트한 뒤에는 `banker doctor` 로 형식을 점검합니다. 읽지 못하면 lineage 는 빈 페이지 대신 오류로 멈추고, progress 는 경고 줄을 보이며, 카운팅은 다음 세션 시작 때 경고를 한 번 보입니다. \
231
+ Codex 0.144 이상에는 사용자 프롬프트가 없으므로 커맨드 2개는 스킬로도 설치되어 `$banker-front-qa`, `$banker-setup` 으로 부릅니다. \
209
232
  디렉터리명과 일치하도록 프론트매터 `name:` 이 `banker-<name>` 으로 재작성되어 Codex가 `banker-<name>` 으로 인식합니다.
233
+ - Codex 플러그인 설치(`codex plugin add banker@banker-plugins`)는 저장소를 `~/.codex/plugins/cache/banker-plugins/banker/<판>/` 에 두고 `.codex-plugin/plugin.json` 을 읽습니다. \
234
+ 스킬 64개, Codex 전용 스킬 2개, 커맨드 2개(스킬로)가 `$banker:<name>` 으로 보이고, 업데이트 알림과 사용량 카운팅 훅은 `codex/hooks.json` 에서 옵니다. \
235
+ Codex 는 세션을 시작할 때 마켓플레이스를 스스로 올려 새 판을 설치합니다. 훅 명령 앞에는 훅이 실행하는 파일의 해시가 붙어 있어, 훅 코드가 바뀐 판에서는 `/hooks` 가 다시 신뢰를 묻고 신뢰하기 전에는 훅이 돌지 않습니다. 훅 코드가 그대로인 판은 신뢰도 그대로입니다. 스킬 파일은 신뢰 확인 없이 새 판으로 바뀝니다. \
236
+ obsidizer 훅은 npm 설치와 같이 `obsidizer --enable` 할 때만 사용자 범위에 설치됩니다(셸 호출마다 node 를 띄우므로). \
237
+ 훅은 Codex 샌드박스 밖에서 돌므로, PATH 의 node 가 임시 폴더나 작업 폴더 안에 있으면(샌드박스가 바꿀 수 있는 곳) 아무것도 돌리지 않고 그 이유를 세션 시작 알림으로 보입니다. 작업 폴더가 홈 폴더 자체이면 홈 아래의 node(nvm 등)는 그대로 씁니다. \
238
+ node 를 찾은 뒤에는 PATH 에서 임시 폴더와 작업 폴더 아래 항목을 빼므로, 프로젝트의 `.venv/bin` 이나 `node_modules/.bin` 에 있는 프로그램은 훅에서 돌지 않습니다(작업 폴더가 홈 폴더 자체이면 홈 아래 항목은 남깁니다). Windows 는 네트워크 드라이브와 UNC 경로의 PATH 항목을 읽지 않습니다. macOS 데스크톱에서 연 Codex 처럼 PATH 에 node 가 없으면 Homebrew(`/opt/homebrew/bin`)와 공식 설치(`/usr/local/bin`)의 node 를 씁니다. \
239
+ Volta, mise, snap 처럼 이름을 보고 동작하는 node 와 Windows 의 `node.cmd` shim(mise)은 그 도구가 고른 node 를 씁니다. 훅은 플러그인 폴더에서 돌므로 asdf, nodenv 는 전역 버전(`asdf set -u nodejs <판>`, asdf 0.16 미만은 `asdf global nodejs <판>`, `nodenv global <판>`)이 있어야 합니다. \
240
+ 이 설치에는 `banker` 명령이 없습니다. `banker doctor`, `banker telemetry` 가 필요하면 npm 으로도 설치하되 `banker setup`(인자 없음)과 `banker setup --codex` 는 돌리지 않습니다(Codex 에 npm 길이 함께 설치됨). Claude Code 에 넣으려면 `banker setup --claude` 만 씁니다.
210
241
  - OMC/Claude 에 결합됐던 오케스트레이터·설치·유틸 표면(all-in-one·ultra-chain·ultra-init·front-qa·setup·setup-omc·setup-omc-hud·setup-stitch·omc-reference·compact-copy)은 본문이 **런타임 인식**이라 Codex에서도 동작합니다.
211
242
  - `payload-mon` 은 Codex에서 실행해도 같은 머신의 Claude Code HUD 래퍼만 켜고 끕니다. \
212
243
  32MB 요청 한도는 Claude Code 의 것이라 Codex 자신의 요청 크기는 재지 않습니다.
@@ -228,6 +259,7 @@ banker uninstall # 제거
228
259
  |---|---|---|
229
260
  | Claude Code | 플러그인 레지스트리 | `claude plugin marketplace add` + 설치 → `/banker:*` (`settings.json` 직접수정 없음) |
230
261
  | Codex CLI | `~/.codex/skills/banker-*/`, `~/.codex/prompts/banker-*.md` | 기존 `banker-*` 정리 후 복사(멱등). `AGENTS.md`·`config.toml` 미변경 |
262
+ | Codex CLI | `~/.codex/hooks.json`, `~/.codex/hooks-custom/banker/` | 업데이트 알림(`SessionStart`)과 사용량 카운팅(`Stop`) 훅. 사본은 작업 폴더 밖에 두고, 이벤트마다 맨 뒤에 묶음 1개를 더하며, 쓰기 전 `hooks.json.banker.bak` 백업. `banker hooks status`, `banker hooks enable <이름>`, `banker hooks disable <이름>` 으로 확인하고 켜고 끔. Codex 를 다시 열 때 Hooks need review 창이나 `/hooks` 에서 신뢰해야 돎. Codex 홈(`CODEX_HOME`)이 지금 폴더나 그 저장소 안이면 샌드박스가 고칠 수 있어 훅을 설치하지 않음 |
231
263
 
232
264
  **플러그인 자체 훅 — `hooks/hooks.json` (설치 시 Claude Code에서 자동 발화)**
233
265
 
@@ -247,10 +279,10 @@ banker uninstall # 제거
247
279
  | `setup-mcp` | `claude mcp add` (context7·seq-thinking·filesystem·git·fetch) | `[mcp_servers.*]` |
248
280
  | `setup-lsp` | LSP MCP 등록 | `[mcp_servers.lsp_bridge]` |
249
281
  | `setup-stitch` | `claude mcp add stitch` | `codex mcp add stitch` |
250
- | `setup-omc-hud` | `statusLine`(바뀔 때 `settings.json` 백업) + `hud/omc-hud-custom.mjs`, `hud/omc-hud.mjs`, `.omc/hud-config.json`(바뀐 파일은 `.backup.<시각>` 백업) + payload-mon 켜기. 옛 판이 넣은 갱신 안내 블록은 `off` 로 원복 | — (Codex는 OMX `hud`) |
282
+ | `setup-omc-hud` | `statusLine`(바뀔 때 `settings.json` 백업) + `hud/omc-hud-custom.mjs`, `hud/omc-hud.mjs`, `.omc/hud-config.json`(바뀐 파일은 `.backup.<시각>` 백업) + payload-mon 켜기. 옛 판이 넣은 갱신 안내 블록은 `off` 로 원복 | 대상이 Codex 면 `~/.codex/config.toml` 의 `[tui] status_line` 이 없을 때만 OMX 프리셋으로 넣고 `# banker:status-line` 표시(`config.toml.banker-hud.bak` 백업). OMX 나 사용자가 둔 줄은 그대로, `off` 는 banker 줄만 뺌. Claude Code 쪽을 고르면 왼쪽과 같음 |
251
283
  | `setup-pwsh` | `env.CLAUDE_CODE_GIT_BASH_PATH` (병합) | — (네이티브 셸, 배선 불필요) |
252
284
  | `setup-harness-factory` | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` (env 영속) | — |
253
- | `smart-compact` | `statusLine.command` 래핑 + `UserPromptSubmit` 훅 추가 (백업·멱등) | `~/.codex/` 대응 |
285
+ | `smart-compact` | `statusLine.command` 래핑 + `UserPromptSubmit` 훅 추가 (백업·멱등) | `hooks.json` 의 `UserPromptSubmit` 맨 뒤에 훅 묶음 1개 + `smart-compact.json`(임계값), `smart-compact-state.json`(세션 상태). 훅 사본 `hooks-custom/banker-smart-compact-gate.mjs`. `hooks.json` 을 바꿀 때마다 직전 내용을 `hooks.json.smart-compact.bak` 에 백업, 멱등. `off` 는 이 훅과 사본, 설정만 지움. 새 훅은 `/hooks` 에서 신뢰해야 돎 |
254
286
  | `payload-mon` | `hud/omc-hud-custom.mjs` 에 표시 블록 1개 삽입(`.payload-mon.bak` 백업·멱등·`node --check` 검증) + 래퍼 옆 `hud/payload-mon/` 에 모듈 사본 (`off` 로 원복) | — (Codex에서 실행해도 Claude Code HUD 만 다룸) |
255
287
  | `tone-compact` | `rules/banker-tone-compact.md` 생성 (`off` 로 삭제) | `AGENTS.md`(내용이 있는 `AGENTS.override.md` 우선) 끝에 `USER:OMX:POLICY` 로 감싼 블록 1개(`.tone-compact.bak` 백업·멱등, `off` 로 원복) |
256
288
  | `anti-drm` | `rules/banker-anti-drm.md` 생성 (`off` 로 삭제) + 설정 `~/.config/banker/anti-drm.json`(두 런타임 공용, `off` 뒤에도 남음, anti-drm 이 쓰지 않은 파일이 있었으면 `.bak`) | `AGENTS.md`(내용이 있는 `AGENTS.override.md` 우선) 끝에 `USER:OMX:POLICY` 로 감싼 블록 1개(`.anti-drm.bak` 백업·멱등, `off` 로 원복) |
@@ -258,9 +290,9 @@ banker uninstall # 제거
258
290
  | `remains` | 설정 파일 미변경. `~/.config/banker/test-boxes.json` 은 읽기만 함(사용자가 만들거나, 사용자가 준 정보로 확인받고 만듦). 처음 접속하는 박스의 호스트 키가 `~/.ssh/known_hosts` 에 더해짐. 테스트박스에는 임시 폴더를 만들고 끝나면 지움(시간 초과나 중단 때는 시작한 프로세스를 먼저 끝냄, 못 지우면 결과에 표시) | 동일 |
259
291
  | `motion-graphic-setup` | 설정 파일 미패치 (Node/ffmpeg 확보 + `npx hyperframes` 설치만) | 동일 (`config.toml` 미변경) |
260
292
  | `3d-intro-setup` | `settings.json` 미패치 — 크레덴셜을 untracked env 파일에 기록(`.env.3d-intro.local` 또는 `~/.config/banker/3d-intro/env`) | 동일 (`config.toml` 미변경) |
261
- | `setup-bypass-permissions` | `permissions.defaultMode` = `bypassPermissions` (켜기 전 내용은 `settings.json.bypass-permissions.bak`, 되돌리기 기록은 `settings.json.bypass-permissions.json`, `off` 로 원복. 관리 정책, 설정 파일의 금지 키, root 계정이면 거부) | Codex 에서 실행해도 같은 머신의 Claude Code 설정을 바꿈 (Codex 승인 정책은 미변경) |
293
+ | `setup-bypass-permissions` | `permissions.defaultMode` = `bypassPermissions` (켜기 전 내용은 `settings.json.bypass-permissions.bak`, 되돌리기 기록은 `settings.json.bypass-permissions.json`, `off` 로 원복. 관리 정책, 설정 파일의 금지 키, root 계정이면 거부) | 대상 `codex` 면 `~/.codex/config.toml` 최상위의 `approval_policy` = `"never"`, `sandbox_mode` = `"danger-full-access"` (켜기 전 원본 `config.toml.bypass-permissions.bak`, 되돌리기 기록 `config.toml.bypass-permissions.json`, `off` 로 원복. 조직 정책이 막으면 거부). 대상 `claude` 면 Codex 에서 실행해도 Claude Code 설정을 바꿈 |
262
294
 
263
- `obsidizer` 는 `settings.json` 대신 `<위키디렉터리>/.obsidizer` 플래그 파일로만 켜고 끕니다.
295
+ `obsidizer` 는 `settings.json` 대신 `<위키디렉터리>/.obsidizer` 플래그 파일로만 켜고 끕니다. Codex 는 `omx_wiki/.obsidizer` 플래그에 더해 `~/.codex/hooks.json` 에 훅 묶음 1개를 더합니다.
264
296
 
265
297
  ## 요구사항
266
298
 
@@ -273,8 +305,8 @@ banker uninstall # 제거
273
305
  - `omc-patch`: Node 18 이상과 `git`(OMC 마켓플레이스 고정과 확인에 사용).
274
306
  - `remains`: 테스트박스를 쓰려면 이 머신에 `ssh`, `scp`, `git`, 박스에 `tar` 와 시험에 필요한 런타임(예: Node)이 있어야 하고, SSH 키로 암호 없이 접속돼야 합니다.
275
307
  - `ultra-chain`: 위 OMC(Codex 는 OMX), 웹 조사 수단, 시각 검토의 캡처에는 Node 용 playwright 패키지와 Chromium, OS 시험에는 `remains` 와 같은 테스트박스 조건.
276
- - `/graceful-pause`: Claude Code 2.1.289 이상(mod). 그보다 오래된 Claude Code 는 명령을 등록하지 않고 한 줄로 알리며, Codex 에는 이 명령이 없습니다.
277
- - `/progress`: mod 를 지원하는 Claude Code(2.1.286 과 2.1.296 에서 확인). 작업 중 즉시 실행은 2.1.289 이상에서 확인했습니다. mod 가 없는 Claude Code(2.1.250 에서 확인)에서는 "mod 를 지원하지않는 claude code 버전입니다" 만 보이고 모델은 호출되지 않습니다. Codex 에는 이 명령이 없습니다.
308
+ - `/graceful-pause`: Claude Code 2.1.289 이상(mod). 그보다 오래된 Claude Code 는 명령을 등록하지 않고 한 줄로 알립니다. Codex 는 스킬 `$banker-graceful-pause` 입니다(0.144.5 에서 확인).
309
+ - `/progress`: mod 를 지원하는 Claude Code(2.1.286 과 2.1.296 에서 확인). 작업 중 즉시 실행은 2.1.289 이상에서 확인했습니다. mod 가 없는 Claude Code(2.1.250 에서 확인)에서는 "mod 를 지원하지않는 claude code 버전입니다" 만 보이고 모델은 호출되지 않습니다. Codex 는 스킬 `$banker-progress` 입니다(상시 패널이 아니라 부를 때마다 보임, tmux 칸은 선택).
278
310
  - `lineage`: Python 3.7+ (표준 라이브러리만 사용). RHEL8/Rocky8은 기본 `python3` 가 3.6이라 `setup-python` 등으로 3.11을 설치해 지정해야 합니다.
279
311
 
280
312
  ## 업데이트 / 제거
@@ -297,6 +329,17 @@ banker uninstall # 제거
297
329
 
298
330
  Codex는 재설치할 때마다 기존 `banker-*` 를 먼저 정리하므로 옛 버전이 중복으로 남지 않습니다.
299
331
 
332
+ **Codex 플러그인:**
333
+
334
+ ```bash
335
+ codex plugin marketplace upgrade banker-plugins # 최신화 (Codex 가 세션 시작 때도 스스로 올림, 다시 열면 적용)
336
+ codex plugin remove banker@banker-plugins # 제거
337
+ ```
338
+
339
+ > Codex 플러그인 설치에서 `obsidizer --enable` 을 했다면, 제거 전에 obsidizer 의 Codex 절차대로 `hooks disable obsidize` 를 실행하세요.\
340
+ > 이 훅은 사용자 범위(`~/.codex/hooks.json`, `~/.codex/hooks-custom/banker/`)에 따로 있어서 `codex plugin remove` 로 지워지지 않고, 셸 호출마다 node 를 계속 띄웁니다.\
341
+ > 이미 지웠다면 `~/.codex/hooks.json` 에서 명령에 `hooks-custom/banker/hooks/obsidize-hook.mjs` 가 든 묶음을 지우고 `~/.codex/hooks-custom/banker/` 폴더를 지우면 됩니다.
342
+
300
343
  > `payload-mon` 을 켰다면 제거 전에 `/banker:payload-mon off`(Codex는 `banker-payload-mon` 에 `off`)를 실행하세요.\
301
344
  > 표시 블록과 모듈 사본은 플러그인 밖(`~/.claude/hud/`)에 있어서, 플러그인을 지워도 남아 계속 표시됩니다.\
302
345
  > 이미 지웠다면 HUD를 재설치하거나, `omc-hud-custom.mjs` 에서 `// >>> payload-mon >>>` 부터 `// <<< payload-mon <<<` 까지 지우면 됩니다.
@@ -305,7 +348,7 @@ Codex는 재설치할 때마다 기존 `banker-*` 를 먼저 정리하므로 옛
305
348
  > 0.19.5 이하의 `setup-omc-hud` 가 옛 래퍼에 넣은 Claude 갱신 안내 블록은 제거 전에 `/banker:setup-omc-hud off` 로 뺄 수 있습니다.\
306
349
  > 이미 지웠다면 HUD를 재설치하거나, `// >>> claude-update-last >>>` 부터 `// <<< claude-update-last <<<` 까지 지우면 됩니다. 블록을 남겨 두어도 상태표시줄은 깨지지 않습니다.
307
350
 
308
- > `setup-bypass-permissions` 로 바꾼 권한 모드는 `settings.json` 에 남아, 플러그인을 지워도 모든 세션에서 확인 없이 도구가 실행됩니다. 제거 전에 `/banker:setup-bypass-permissions off` 를 실행하세요.\
351
+ > `setup-bypass-permissions` 로 바꾼 권한 모드는 `settings.json`(Codex 대상은 `~/.codex/config.toml`)에 남아, 플러그인을 지워도 모든 세션에서 확인 없이 도구가 실행됩니다. 제거 전에 `/banker:setup-bypass-permissions off` 를 실행하세요(Codex 는 `$banker-setup-bypass-permissions off codex`).\
309
352
  > 이미 지웠다면 설정 폴더(`$CLAUDE_CONFIG_DIR`, 없으면 `~/.claude`)의 `settings.json` 에서 `permissions.defaultMode` 를 지우거나 원래 값으로 되돌리면 됩니다. 옆의 `settings.json.bypass-permissions.bak` 과 `settings.json.bypass-permissions.json` 도 지우세요. 백업에는 설정의 비밀 값이 들어 있을 수 있습니다.\
310
353
  > root 계정에서 이 모드 때문에 Claude Code 가 시작되지 않으면 `claude --permission-mode default` 로 시작한 뒤 `off` 를 실행하세요.
311
354
 
@@ -343,7 +386,8 @@ export BANKER_NO_TELEMETRY=1 # 사용량 카운팅만 끄기
343
386
 
344
387
  카운팅은 `banker telemetry off` 로도 끌 수 있습니다.\
345
388
  플러그인은 기본 카운팅 엔드포인트(`banker.banker-plugins.workers.dev`)를 내장하므로 count-default-on 이라 설치 즉시 활성이며, `BANKER_TELEMETRY_ENDPOINT` 환경변수로 자가호스팅/override 할 수 있습니다.\
346
- Codex CLI는 샌드박스가 네트워크를 차단하므로 알림·카운팅 둘 다 동작하지 않습니다.
389
+ Codex CLI 에서는 `banker setup --codex` 가 같은 일을 Codex 훅 `SessionStart`(알림 확인)와 `Stop`(턴이 끝날 때 이번 턴에 쓴 banker 스킬 집계)으로 설치합니다. 도구 호출마다 돌지 않고 턴마다 한 번 돕니다. \
390
+ Codex 를 다시 열 때 Hooks need review 창이나 `/hooks` 에서 신뢰해야 돌고, 훅은 Codex 샌드박스 밖에서 돌므로 샌드박스가 네트워크를 막아도 동작합니다. 끄는 방법은 같습니다.
347
391
 
348
392
  무엇을 수집하고 누가 수신하는지는 [PRIVACY.md](PRIVACY.md)에 정리했습니다.
349
393
 
@@ -368,13 +412,14 @@ npm i -g ./kaydash9999-banker-plugins-<판>.tgz # 옮긴 뒤
368
412
  banker setup
369
413
  ```
370
414
 
415
+ - Codex 플러그인 설치(`codex plugin add`)는 GitHub 에서 저장소를 받으므로 네트워크가 필요합니다. 오프라인에서는 위의 npm 묶음으로 `banker setup --codex` 를 씁니다.
371
416
  - 세션 시작 훅의 업데이트 조회와 체크인은 따로 돌아 세션을 기다리게 하지 않습니다. 실패하면 24시간 동안 다시 시도하지 않고, 아예 시도하지 않게 하려면 `BANKER_NO_UPDATE_CHECK=1` 을 둡니다.
372
417
  - 훅은 `HTTPS_PROXY`, `HTTP_PROXY` 를 따르지 않습니다(Node 가 `NODE_USE_ENV_PROXY=1` 일 때만 따름). 프록시를 거쳐야만 밖에 닿는 망에서는 훅의 확인이 실패로 기록됩니다(`banker telemetry status` 의 "마지막 시도").
373
418
  - 네트워크가 필요한 스킬과 네트워크 없이 끝나는 모습
374
419
  - 내려받는 설치 스킬(`setup-omc-hud`, `setup-bypass-permissions` 를 뺀 `setup-*`, `docs-setup`, `vertical-pptx-setup`, `motion-graphic-setup`, `3d-intro-setup`): 웹 원천(npm, PyPI, GitHub 등)은 먼저 닿는지 보고, 닿지 못하면 받지 않고 "오프라인이라 설치하지 않음" 으로 알립니다. OS 패키지 관리자(dnf, apt, brew, winget)의 단계는 그 관리자의 미러 설정을 따르므로 미리 판정하지 않고 시도합니다. 단 `setup-pwsh` 는 winget 이 유일한 원천이라 그 원천을 먼저 봅니다.
375
420
  - `update-banker`: 레지스트리에 닿지 못하면 어느 채널도 바꾸지 않고 멈춥니다.
376
421
  - `audit-security` 의 의존성 취약점 조회: 결과로 읽을 수 없는 도구는 0건이 아니라 "미커버" 로 적습니다.
377
- - `deep-research`, 이를 부르는 `ultra-chain` 1단계, `ultra-interview` 의 조사: 웹 도구가 모두 실패하면 조사하지 못했다고 알립니다.
422
+ - `deep-research`, `lfm`, 이를 부르는 `ultra-chain` 1단계, `ultra-interview` 와 `rfp-author` 의 조사: 웹 도구가 모두 실패하면 조사하지 못했다고 알립니다. `lfm` 은 모델이 아는 관행으로 표를 채우지 않고 "웹 조사 불가" 로 끝납니다.
378
423
  - `npx` 로 부르는 도구(`motion-graphic-make` 의 hyperframes 등): 전역 설치가 없으면 패키지를 받으려 해, 네트워크가 없으면 약 70초 뒤 실패합니다. 오프라인에서는 전역 설치한 실행 파일을 부릅니다.
379
424
  - 유료 API 를 부르는 `3d-intro-build`(요청마다 시간 제한), `ralph-qa` 의 외부 좌석(codex, gemini, opencode, 좌석마다 600초)
380
425
  - `vertical-pptx`, `pdf-vision-extract` 가 빠진 도구를 설치하라고 안내할 때, `nothing-design` 의 글꼴(Google Fonts. 받지 못하면 대체 글꼴로 보임)