@kaydash9999/banker-plugins 0.14.0 → 0.15.1
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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +66 -0
- package/README.md +23 -11
- package/codex/manifest.json +5 -5
- package/codex/transform-matrix.md +5 -5
- package/commands/front-qa.md +2 -2
- package/commands/setup.md +13 -4
- package/hooks/graceful-pause.mjs +222 -0
- package/hooks/hooks.json +2 -1
- package/hooks/register.mjs +12 -0
- package/package.json +4 -1
- package/skills/3d-intro-build/SKILL.md +1 -1
- package/skills/3d-intro-setup/SKILL.md +1 -1
- package/skills/all-in-one/SKILL.md +1 -1
- package/skills/append_wiki/SKILL.md +1 -1
- package/skills/arch-diagram/SKILL.md +1 -1
- package/skills/audit-mock/SKILL.md +1 -1
- package/skills/audit-security/SKILL.md +1 -1
- package/skills/audit-web-page/SKILL.md +1 -1
- package/skills/cleansing-memory/SKILL.md +1 -1
- package/skills/compact-copy/SKILL.md +1 -1
- package/skills/compact-wiki/SKILL.md +1 -1
- package/skills/curation/SKILL.md +1 -1
- package/skills/deep-init/SKILL.md +1 -1
- package/skills/deep-research/SKILL.md +1 -1
- package/skills/docs-setup/SKILL.md +1 -1
- package/skills/humanizer/SKILL.md +1 -1
- package/skills/interval-report/SKILL.md +1 -1
- package/skills/lineage/SKILL.md +152 -16
- package/skills/lineage/lineage.py +1210 -108
- package/skills/make-notion-guide/SKILL.md +1 -1
- package/skills/motion-graphic-make/SKILL.md +1 -1
- package/skills/motion-graphic-setup/SKILL.md +1 -1
- package/skills/nothing-design/SKILL.md +1 -1
- package/skills/obsidizer/SKILL.md +1 -1
- package/skills/omc-reference/SKILL.md +1 -1
- package/skills/payload-mon/SKILL.md +1 -1
- package/skills/pdf-vision-extract/SKILL.md +1 -1
- package/skills/play-qa/SKILL.md +1 -1
- package/skills/ralph-qa/SKILL.md +304 -112
- package/skills/ralph-qa/references/gemini-read-only.toml +9 -0
- package/skills/ralph-qa/references/gemini-seat.mjs +207 -0
- package/skills/ralph-qa/references/payload-scan.mjs +154 -0
- package/skills/ralph-qa/references/verifier-probe.mjs +881 -780
- package/skills/ready-compact/SKILL.md +1 -1
- package/skills/refresh-git-ignore/SKILL.md +1 -1
- package/skills/refresh-readme/SKILL.md +1 -1
- package/skills/rfp-author/SKILL.md +1 -1
- package/skills/setup-bypass-permissions/SKILL.md +123 -0
- package/skills/setup-bypass-permissions/agents/openai.yaml +4 -0
- package/skills/setup-bypass-permissions/scripts/bypass-permissions.mjs +381 -0
- package/skills/setup-bypass-permissions/scripts/fallback/bypass-permissions.ps1 +247 -0
- package/skills/setup-bypass-permissions/scripts/fallback/bypass-permissions.py +241 -0
- package/skills/{harness-factory → setup-harness-factory}/SKILL.md +3 -3
- package/skills/setup-insane-search/SKILL.md +1 -1
- package/skills/setup-java/SKILL.md +1 -1
- package/skills/setup-lsp/SKILL.md +1 -1
- package/skills/setup-mcp/SKILL.md +1 -1
- package/skills/setup-node/SKILL.md +1 -1
- package/skills/setup-omc/SKILL.md +1 -1
- package/skills/setup-omc-hud/SKILL.md +15 -1
- package/skills/setup-omc-hud/scripts/claude-update-last.mjs +247 -0
- package/skills/setup-playwright/SKILL.md +1 -1
- package/skills/setup-pwsh/SKILL.md +1 -1
- package/skills/setup-python/SKILL.md +1 -1
- package/skills/setup-sandbox/SKILL.md +1 -1
- package/skills/setup-stitch/SKILL.md +1 -1
- package/skills/setup-tmux/SKILL.md +1 -1
- package/skills/smart-compact/SKILL.md +1 -1
- package/skills/summary-wiki/SKILL.md +1 -1
- package/skills/tone-compact/SKILL.md +1 -1
- package/skills/ultra-init/SKILL.md +1 -1
- package/skills/ultra-interview/SKILL.md +1 -1
- package/skills/ultra-ui-qa/SKILL.md +1 -1
- package/skills/update-banker/SKILL.md +1 -1
- package/skills/vertical-pptx/SKILL.md +1 -1
- package/skills/vertical-pptx-setup/SKILL.md +1 -1
- package/skills/visual-ralph/SKILL.md +1 -1
- package/skills/graceful_pause/SKILL.md +0 -95
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "banker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.1",
|
|
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,71 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.15.1] - 2026-10-06
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **ralph-qa 외부 좌석에는 저자가 목록으로 고른 새 파일만 보낸다.** 0.15.0 은 추적하지 않는 새 파일을 모두 실어(`add -N .`) 작업과 무관한 파일까지 외부 프로바이더로 보냈다.\
|
|
7
|
+
저자가 `$d/new-files.txt` 에 한 줄에 하나씩 적은 파일만 올리고, 보내지 않은 새 파일은 `unsent.txt` 에 남겨 보고한다. 올라갈 파일을 목록과 하나씩 비교해, 목록에 없는 파일(폴더 줄, `.`)이 있으면 그 경로를 찍고 멈춘다. diff 는 textconv, 외부 diff 드라이버, 색, 하위 저장소 내용 없이 원문으로 싣는다(git-crypt 같은 필터가 푼 평문, `color.ui=always` 의 색 코드, `diff.submodule=diff` 의 하위 저장소 내용이 실리지 않는다).\
|
|
8
|
+
Claude Code 의 grep 함수 대신 시스템 grep 으로 세어, UTF-8 이 아닌 파일이 있어도 사슬이 사유 없이 멈추지 않는다. 사슬이 멈추면 사유를 찍고, 사유마다 다음 행동을 적었다. 512 KiB 를 넘는 페이로드는 묻고 보낸다. 관련 코드는 `sed -n` 범위로 붙인다. 인덱스 사본은 `cp -p` 로 만들어, 인덱스와 같은 초에 크기가 같게 바뀐 파일도 diff 에 담는다.
|
|
9
|
+
- **ralph-qa 좌석에 600초 상한을 둔다.** 좌석 명령은 `timeout -k 10 600`(macOS 는 프로세스 그룹을 끝내는 `perl` 명령)으로, 진입점이 띄운 작업 프로세스까지 스스로 끝난다. 그래도 끝나지 않으면 TaskStop 으로 멈춘 뒤 정리한다. 하위 에이전트로 돌면 정리를 마친 뒤 답한다.\
|
|
10
|
+
첫 판정 뒤의 반복에서 페이로드를 만들지 못하면 그 좌석은 `ERROR` 다. 512 KiB 전송을 사용자가 거절하면 `model-declined` 다.
|
|
11
|
+
- **ralph-qa 정리가 늦게 쓴 기록과 끊긴 실행의 사본을 찾는다.** gemini 가 정리 뒤 다시 쓴 기록은 `projects.json` 으로 찾아 지운다. opencode 좌석 세션도 지운다. 끊긴 실행이 남긴 하루 지난 폴더는 1단계의 표지 파일(`.ralph-qa`)이 있을 때만 지워, 이름 꼴이 같은 사용자 폴더와 링크는 남는다.\
|
|
12
|
+
0.15.0 이 끊긴 실행에서 남긴 사본에는 표지가 없어 이 규칙이 지우지 않는다. 기준 폴더(`$XDG_RUNTIME_DIR` 또는 `~/.cache`, macOS 는 `$TMPDIR`, PowerShell 은 `TEMP`)의 `ralph-qa.*`, `ralph-qa-out.*` 폴더를 확인해 손으로 지운다.
|
|
13
|
+
- **ralph-qa 비밀 검사기가 긴 줄에서 죽지 않고, 흔한 오탐과 미탐을 고쳤다.** 모든 반복에 상한을 둬 수백만 자 한 줄(data URI, 개인 키 머리 뒤의 긴 낱말 줄)도 끝까지 읽는다. 검사 중 예외는 exit 2 로 끝나 보내지 않는다.\
|
|
14
|
+
`date -u +%H:%M`, `$(id -u):$(id -g)`, 값 전체가 uid:gid 인 `-u "1000:1000"`, Docker 비밀 파일 경로(`*_FILE`), go.sum 과 Terraform 의 `h1:` 해시는 비밀로 보지 않는다. `-u "4242:2024!Winter"` 처럼 숫자로 시작하는 비밀번호는 잡는다.
|
|
15
|
+
- **ralph-qa 프로브가 codex 설정을 끝까지 바르게 읽는다.** 주석의 U+2028, U+2029 뒤 줄을 놓치지 않는다. 읽지 못한 줄이 있거나 관리 설정 파일을 끝까지 읽지 못하면 좌석을 세우지 않는다. 프로브는 opencode 를 띄우지 않는다(1.3.10 은 시작할 때 캐시를 비울 수 있다).
|
|
16
|
+
- **lineage 3.0.1: 검토자에게 가는 비밀을 더 가리고, 품질 게이트 재실행을 바로잡았다.**\
|
|
17
|
+
검토자와 critic 이 읽는 파트 파일과 샘플에서 Basic 인증의 여러 꼴(첨자 대입, `=>`, 헤더 설정 호출, HAR, nginx)과 curl `-u` 의 여러 꼴(`-su`, `-4u` 묶음, 따로 감싼 `"user":"pw"`, 따옴표 친 명령 속의 이스케이프한 따옴표, `${API_USER}:pw`, 인라인 코드와 괄호 안, 인자 목록, 빈 사용자나 빈 비밀번호)을 가린다. `date -u`, `$(id -u):$(id -g)`, uid:gid, 양쪽이 변수인 꼴은 그대로 둔다(공백 없는 인자 목록 안에서는 가린다).\
|
|
18
|
+
게이트를 두 번 돌려도 페이지는 하나다. 판정 경로 없이 다시 돌려 FAIL 을 지나치지 않는다. 기본 흐름은 `--reviewer-timeout` 을 주지 않으면 판정을 기다리지 않는다. 판정 경로의 사용자 파일은 덮지 않고 다시 쓰라고 안내하지도 않는다. `idx` 항목이 없는 판정 배열은 critic 에게 다시 판정시키라고 안내한다.\
|
|
19
|
+
결정 파일은 1,000,000 바이트, 배열 시작 후보 200곳까지만 읽는다. 검토자가 사용자가 입력한 턴을 빼면 WARN 으로 알린다.\
|
|
20
|
+
기본 흐름의 HTML 페이지는 아직 검토자 패턴을 쓰지 않아, 페이지 쪽 가림이 놓친 `curl -u 사용자:비밀번호` 같은 값이 페이지에 남을 수 있다(3.0.0 부터). 다음 릴리스에서 고친다. 공유 전에 페이지를 확인한다.
|
|
21
|
+
|
|
22
|
+
## [0.15.0] - 2026-10-06
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- **`/graceful-pause` 명령을 추가했다.** Claude Code 2.1.289 이상에서 function hooks(`hooks/register.mjs`)로 등록하는 즉시 명령이라, 작업 중에 입력해도 턴이 끝나기를 기다리지 않고 바로 실행된다. 그보다 오래된 엔진에서는 등록하지 않고 한 줄로 알린다.\
|
|
26
|
+
실행되면 사용자에게 보이지 않는 사용자 메시지 1개를 대화에 추가하고(`$.session.append`), 진행 중인 작업은 실행 중인 도구 호출이 끝난 뒤 다음 모델 요청에서 그 메시지를 읽는다. 메시지에는 정지 절차가 들어 있다: 지금 단계만 마무리, 다음 단계 시작 금지, 정지 보고, `AskUserQuestion` 으로 지시 대기.\
|
|
27
|
+
마지막 답변 도중에 입력해 메모가 읽히지 않은 채 턴이 끝나면 무효 메모를 덧붙여 다음 지시를 가로채지 않게 한다. 쉬는 중이면 진행 중인 작업이 없다고 답한다. 백그라운드 작업이나 예약 실행(`/loop`, ScheduleWakeup)이 남아 있으면, 그 결과가 다음 단계를 시작하지 않도록 메모를 사용자 메시지로 따로 보내 정지 보고를 받는다. 같은 턴에 다시 입력해도 메모는 한 번만 들어간다. `/clear` 하면 진행 중이던 턴의 기록을 비운다.\
|
|
28
|
+
실행 중인 도구 호출을 끊지는 않으며, 바로 끊으려면 지금처럼 Esc 를 쓴다.
|
|
29
|
+
|
|
30
|
+
- **`setup-bypass-permissions` 스킬을 추가했다.** Claude Code 전역 `settings.json` 의 `permissions.defaultMode` 를 `bypassPermissions` 로 바꿔, 모든 세션에서 도구 실행 확인을 끈다.\
|
|
31
|
+
모델은 이 스킬을 부를 수 없다(Claude Code 는 `disable-model-invocation`, Codex 는 `agents/openai.yaml` 의 `allow_implicit_invocation: false`). 사용자가 직접 입력해야 실행되고, 켜기 전에 위험 경고를 보여 준 뒤 명시적인 확인을 받는다. 무응답, 시간 초과, 다른 에이전트나 도구가 전한 동의는 확인으로 보지 않는다.\
|
|
32
|
+
`off` 는 켜기 전 값으로 되돌리고, 켜기 전에 없던 `skipDangerousModePermissionPrompt` 도 지운다. `status` 는 현재 값과 켜기를 막는 요인을 보여 준다.\
|
|
33
|
+
적용은 노드 스크립트(`scripts/bypass-permissions.mjs`)가 한다. 다른 키와 BOM, 파일 모드, 링크를 그대로 둔 채 파일을 통째로 교체하고, 켜기 전 내용을 이 계정만 읽는 `.bypass-permissions.bak` 에 남긴다. `node` 를 쓸 수 없으면 OS 별 폴백(`scripts/fallback/` 의 python3, PowerShell 스크립트)을 쓴다. 이 계정이 파일에 쓸 수 없거나 도구 실행이 막히면, 사용자가 Claude Code 밖에서 실행할 명령을 준다. 도구 실행이 막혔을 때는 다른 도구나 경로로 다시 시도하지 않는다.\
|
|
34
|
+
관리 정책(`managed-settings.json` 과 `managed-settings.d`)이 막거나 이 계정이 그 정책을 읽을 수 없을 때, 설정 파일 자체의 `disableBypassPermissionsMode`, root 계정(`IS_SANDBOX=1` 도, 참 값의 `CLAUDE_CODE_BUBBLEWRAP` 도 없을 때. Claude Code 2.1.289 와 같은 조건), Claude Code 설정 폴더가 없는 머신에서는 켜지 않는다.\
|
|
35
|
+
`/banker:setup` 목록에서는 따로 묻는 주의 항목이고 기본으로 선택되지 않는다. 고르면 사용자에게 명령을 직접 입력하라고 안내한다. 폴백 스크립트는 테스트가 직접 실행한다(python 3.6, pwsh 7. Windows PowerShell 5.1 은 CI 의 windows 잡에서만 확인).
|
|
36
|
+
|
|
37
|
+
### Removed
|
|
38
|
+
- **`graceful_pause` 스킬을 뺐다.** 스킬과 플러그인 명령은 작업 중에 입력하면 턴이 끝날 때까지 대기열에 머물러, 정작 필요한 순간에 동작하지 않았다. 같은 이름의 스킬이 있으면 엔진이 즉시 명령 등록을 거부하므로 새 명령 이름은 `/graceful-pause`(하이픈)다.\
|
|
39
|
+
플러그인을 업데이트하면 옛 스킬이 사라지고, Codex 는 `banker setup --codex` 때 `banker-graceful_pause` 가 정리된다. Codex 에는 즉시 명령 장치가 없어 대응 기능이 없다.
|
|
40
|
+
- **`ralph-qa` 의 GPT, Gemini API 크리덴셜 좌석과 `--external`, `--model` 을 뺐다.** 외부 모델은 좌석 플래그 값(`--codex=<model>` 등)으로 준다.
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
- **스킬과 명령 설명 앞의 `(banker)` 를 뺐다.** Claude Code 자동완성은 플러그인 스킬 설명 앞에 플러그인 이름을 스스로 붙여서, `/banker:curation (banker) (banker) 의사결정을...` 처럼 두 번 보였다. Codex 사본은 이름이 `banker-<이름>` 이라 표시가 따로 필요 없다. smoke 가 설명이 `(banker)` 로 시작하지 않는지 확인한다.
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
- **스킬과 명령 설명을 tone-compact 문체 규칙에 맞췄다.** 설명 60개(스킬 57, 명령 2, `/graceful-pause`) 가운데 규칙을 어긴 설명만 고쳤다.\
|
|
47
|
+
가운뎃점, 화살표, em dash 같은 장식 기호는 쉼표나 조사로 바꾸고, 명사 4개 이상 연속과 `A=B`, `+` 같은 약식 표기를 풀어 썼다. 영어 일반 단어는 한글로, 파일 이름과 플래그와 명령은 코드 표기로 바꿨다.\
|
|
48
|
+
트리거 문구, 조건과 한정어, 같은 파일 본문의 용어(드리프트, 노이즈, resume 프롬프트 등)는 그대로 두었고, 가운뎃점으로 묶인 트리거는 빠짐없이 나눴다. 이미 규칙을 지키던 설명과 줄 끝 문자는 바꾸지 않았다.\
|
|
49
|
+
smoke 가 설명마다 장식 기호와 유사 기호, 그림 문자, 느낌표, 번역투(활용형 포함), 25단어 넘는 문장, 여러 줄 YAML 을 검사한다. 코드 구간은 원문이라 기호와 번역투 검사에서 뺀다(25단어 검사는 코드 구간의 단어도 센다).
|
|
50
|
+
- **`ralph-qa` 검증자 구성을 바꿨다.** 세션 모델로 띄운 독립 검토 에이전트 3개 이상이 조건 없이 합의 루프를 돈다(`--agents=N`, 3 미만은 3으로 올림). Claude Code 는 `Plan` 을 `model` 없이 띄우고, Codex 는 `spawn_agent` 를 역할 없이, 저자 대화를 넘기지 않고 띄운다. `Explore` 는 정의가 코드 리뷰 용도를 금하고 세션 모델이 Opus 보다 위면 Opus 로 돌아 쓰지 않는다. 검토자는 파일을 고치지 않고, 게이트(테스트, smoke)는 저자가 돌려 원문 출력을 넘긴다.\
|
|
51
|
+
외부 좌석은 `--codex`, `--gemini`, `--opencode` 를 줄 때만 앉고, 그 CLI 에서 쓸 수 있는 가장 뛰어난 모델을 쓴다(codex 는 내장 카탈로그 1위, gemini 는 `pro` 별칭). 모델은 로컬 설정과 CLI 내장 목록으로 정하며, 프로브는 HTTP 요청과 프롬프트를 보내지 않는다. 무엇이 가장 뛰어난지 알 수 없거나 후보가 여럿이면 선택지로 묻고(opencode 는 순위가 없어, 설정 모델 말고는 돌릴 모델이 없을 때만 채택한다), 물을 수 없는 실행이면 CLI 설정의 기본 모델로 앉힌 뒤 그 사실과 다른 후보를 보고한다.\
|
|
52
|
+
저자 계열 모델은 이름 어디에 계열 표시가 있든 외부 좌석에 앉지 않는다(Codex 런타임의 `--codex` 는 자기 자신). 런타임을 모르면 claude 와 gpt 를 모두 빼고, 이름으로 계열을 읽지 못한 모델은 스스로 고르지 않는다.\
|
|
53
|
+
외부 좌석에는 페이로드를 명령줄 대신 파일로 넘기고(원문 부분은 재지정으로 붙인다. diff 는 임시 인덱스로 만들어 추적하지 않는 새 파일도 담는다), 보내기 전에 `references/payload-scan.mjs` 로 비밀처럼 보이는 문자열을 찾아 가린다. 좌석마다 이 계정만 쓰는 폴더 아래 페이로드 사본 하나만 든 폴더에서 띄우고, 답은 다른 폴더로 받는다.\
|
|
54
|
+
codex 는 읽기 전용 샌드박스에 더해 셸 도구(샌드박스는 셸의 읽기를 막지 않는다)와 그 밖에서 도는 사용자 실행 정책 규칙, MCP 서버, 하위 에이전트, 훅, 알림 프로그램(`notify`), 웹 검색, 사용량 지표 전송, OpenTelemetry 내보내기를 끄고 띄운다. 끌 수 없는 MCP 서버가 있거나, 관리 설정(`/etc/codex/managed_config.toml`)이 그 키를 정하거나, 요구 파일(`/etc/codex/requirements.toml`)이 좌석 값을 허용하지 않으면 좌석을 세우지 않는다.\
|
|
55
|
+
gemini 는 모든 도구를 막는 관리자 정책(`references/gemini-read-only.toml`)으로, MCP 서버와 확장, 텔레메트리의 프롬프트 기록 없이 띄운다. 자체 샌드박스(`tools.sandbox`)는 `GEMINI_SANDBOX=false` 로 끈다. 켜 두면 자체 샌드박스 안에서 다시 뜨고(docker, podman 컨테이너. macOS 는 `sandbox-exec`), 컨테이너 안에는 정책 파일이 없어 도구가 열린다. 새 `references/gemini-seat.mjs` 가 보내기 전에 정책 파일과 홈 밖 상위 폴더의 `.env` 를 확인하고, 끝나면 gemini 가 홈 폴더에 남긴 좌석 기록(페이로드 전문)을 지운다. 앞서 끊긴 실행의 기록도 지운다. API 오류 보고(요청 전문)는 `TMPDIR` 을 답 폴더로 두어 그 폴더에 남긴다. 작업 공간을 넓히는 gemini 설정(`context.includeDirectories`, IDE 모드)이 있으면 좌석을 세우지 않는다. opencode 는 실행마다 이름이 다른 전용 검토 에이전트로 모든 도구를 막고 자동 압축을 끈 채, 페이로드를 표준 입력으로 받는다(첨부는 50 KB 에서 잘린다). 셸 문법이 될 수 있는 문자가 든 모델 이름은 버린다.
|
|
56
|
+
- **`lineage` 의 기본 흐름을 세션 모델 검토로 바꿨다(스킬 3.0.0).** 규칙 요약은 긴 답변의 앞뒤 문장을 이어 붙여, 결론 대신 도입이나 맺음말을 고르곤 했다.\
|
|
57
|
+
이제 스크립트가 규칙으로 1차 정리한 턴을 검토 묶음으로 내보내고(`--emit-review`), 40턴 이하로 고르게 나눈 파트마다 세션이 검토 에이전트를 띄워 턴마다 남길지와 1줄 요약을 정한다. `--apply-review` 가 그 결정으로 HTML 을 만든다.\
|
|
58
|
+
검토자는 세션 모델로 돈다. Claude Code 는 `Plan` 을 `model` 없이 띄우고(`Explore` 는 검토 용도가 금지되고 세션 모델보다 낮게 돌 수 있어 쓰지 않는다), Codex 는 `spawn_agent` 를 역할 없이 띄운다. 파트가 6개를 넘으면 진행 전에 묻는다. 파트 하나에 검토 에이전트 1개가 돈다(이 저장소 실측: 40턴 파트에 약 11만 토큰, 7분). Codex 검토자에게는 파일 읽기 도구가 없어, 파트 파일을 읽는 셸 명령만 쓰게 한다.\
|
|
59
|
+
규칙이 확실한 노이즈는 묶음 전에 빠지고, 규칙이 판단한 것(에코 교환, 도구만 쓴 턴)은 표시만 해 검토자가 확정하거나 되살린다. 범위 인자(`--last`, `--turns`)는 규칙이 남기는 턴으로 세어 `--rulebase` 와 같은 턴을 고른다.\
|
|
60
|
+
묶음과 파트 파일에는 redact 된 본문만 들어가고 0600 으로 쓴다. 검토자가 읽는 파트 파일은 `--redact-mode mask` 여도 값의 일부를 남기지 않고, 페이지에는 없는 키 패턴(URL 자격 증명, Bearer 토큰, 따옴표 친 꼴을 포함한 Basic 인증 헤더, 붙여 쓴 꼴을 포함한 curl `-u`)도 키를 통째로 가린다. 파트의 규칙 요약은 가린 본문에서 만든다. `--redact-extra` 키워드 목록은 파일에 쓰지 않고, 파트 파일에서는 도구 이름의 키워드까지 가린다. 검토자 요약은 캐시를 거쳐 다음 검토자에게 다시 가므로, `--redact-mode` 와 관계없이 키를 통째로 가린 뒤 120자로 자른다. 렌더가 성공하면 묶음, 파트, 결정 파일을 지운다.\
|
|
61
|
+
품질 게이트 인자(`--skip-reviewer`, `--reviewer-output`, `--reviewer-timeout`)는 `--emit-review` 에 준 값이 `--apply-review` 까지 간다. 기본 흐름의 게이트는 `--reviewer-output` 을 줄 때만 돌고, `--apply-review` 를 전경으로 두 번 실행한다(첫 실행이 샘플을 쓰고 멈추면 critic 판정을 쓴 뒤 다시 실행). 샘플은 같은 턴이면 같은 턴을 뽑고 파트 파일 기준으로 가리며(요약도 가린 본문에서 만든다), 샘플마다 턴 id 와 내용 지문(`key`)이 붙는다. 판정은 샘플마다 하나씩, 그 샘플의 id 와 key 를 담아야 통과한다. 그래서 결정을 고치기 전 샘플에 대한 늦은 판정은 통과하지 못한다. 읽은 판정 파일은 `.used` 로 옮겨 다시 실행할 때 새 판정을 기다리고, 샘플이 바뀌면 그 전에 있던 판정 파일은 읽지 않는다. 판정 경로에 판정 목록이 아닌 것(사용자 파일, 폴더)이 있으면 샘플을 쓰기 전에 멈추고 그 파일을 건드리지 않는다. critic 은 검토자와 같은 세션 모델 하위 에이전트이고, 샘플을 프롬프트 본문으로 받아 도구를 쓰지 않는다. 띄울 수 없으면 세션이 스스로 판정하지 않는다. FAIL 과 판정 범위 오류가 합쳐 두 번 이어지면 세션이 멈추고 사용자에게 묻는다. `--keep-trivia`, `--keep-tool-only` 는 검토자의 `keep: false` 보다 앞선다. 검토자 결정은 캐시되어, 다음 실행에서는 본문, 규칙 결정, keep 플래그가 바뀐 턴만 다시 검토한다(캐시 폴더에 쓸 수 없으면 WARN).\
|
|
62
|
+
2.x 의 한 번 실행(규칙만, 모델 호출 없음)은 `/lineage --rulebase` 다. 스크립트를 리뷰 인자 없이 부르면 출력(HTML, stdout, stderr)이 예전과 같고, 2.0.0 출력과 바이트 단위로 같은지 테스트가 고정한다. 출력 밖의 차이는 셋이다: 게이트 샘플 파일을 0600 으로 쓰고, 캐시 폴더에 쓸 수 없으면 traceback 대신 WARN 을 내고 계속한다. 기록의 턴 id 와 세션 이름으로 캐시 파일 이름을 만들 때 영숫자, `_`, `.`, `-` 밖의 글자는 `_` 로 바꾼다. 조작한 id 로 캐시 밖에 파일을 쓰지 못하고, 그런 이름의 기록은 캐시를 한 번 다시 만든다.
|
|
63
|
+
- **`harness-factory` 스킬 이름을 `setup-harness-factory` 로 바꿨다.** 다른 설치 스킬(`setup-*`)과 이름을 맞췄다. 호출은 `/banker:setup-harness-factory`, Codex 는 `banker-setup-harness-factory` 다.\
|
|
64
|
+
플러그인을 업데이트하면 옛 이름은 사라진다. Codex 는 `banker setup --codex` 때 `banker-harness-factory` 를 정리하고 새 이름으로 설치한다. `/banker:setup` 목록의 항목 이름도 바뀌었다.
|
|
65
|
+
- **`setup-omc-hud` 가 Claude Code 갱신 안내를 상태표시줄 맨 끝으로 옮긴다.** 새 Claude Code 가 나오면 OMC 5.6.1 HUD 는 `[Claude#2.1.288] -> 2.1.289 claude update` 를 띄우는데, omc_hud 래퍼는 이 안내를 구판에서는 버리고 최신판에서는 경로 앞 줄 중간에 흐리게 둔다.\
|
|
66
|
+
적용 단계 끝에 `scripts/claude-update-last.mjs on` 을 실행해, 래퍼가 세그먼트를 합치기 직전 줄(`let result = colored.join(SEP);`) 앞에 블록 1개를 넣는다. 블록은 안내를 원래 자리에서 빼 OMC 표시 뒤 맨 끝에 흐리게 붙이고, 안내가 없으면 아무것도 하지 않는다. OMC 가 2번째 줄에 따로 띄우는 `[!] claude <버전> - paste: ! claude update` 는 그대로 남는다. OMC `safeMode` 를 꺼 공백이 U+00A0 으로 바뀐 안내도 찾는다.\
|
|
67
|
+
payload-mon 과 같은 규칙을 따른다. 바꾸기 전 내용은 `.claude-update-last.bak` 에 남기고, `node --check` 를 통과하지 못하는 결과는 쓰지 않으며, 개수나 순서가 맞지 않는 표시와 낯선 래퍼는 거부하고, `off` 는 블록만 빼서 바이트 그대로 되돌린다. payload-mon 블록과는 서로 건드리지 않는다.
|
|
68
|
+
|
|
3
69
|
## [0.14.0] - 2026-10-04
|
|
4
70
|
|
|
5
71
|
### Added
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
[빠른 시작](#빠른-시작) · [워크플로 예시](#워크플로-사용-예시) · [구성](#구성) · [설치 상세](#설치-상세-npm--codex) · [설정 변경 지점](#설정-변경-지점-claude-code--codex) · [요구사항](#요구사항) · [업데이트 / 제거](#업데이트--제거) · [업데이트 확인](#업데이트-확인-및-사용량-카운팅) · [라이선스 / 서드파티](#라이선스--서드파티)
|
|
10
10
|
|
|
11
|
-
banker는 QA·보안 감사·문서·아키텍처·위키·미디어 작업과 의존성·개발환경(OS별) 설치를 아우르는 **스킬 57개 + 커맨드 2개**(총 59개 구성요소)를 묶은 Claude Code 플러그인입니다.\
|
|
11
|
+
banker는 QA·보안 감사·문서·아키텍처·위키·미디어 작업과 의존성·개발환경(OS별) 설치를 아우르는 **스킬 57개 + 커맨드 2개**(총 59개 구성요소)와 Claude Code 즉시 명령 `/graceful-pause` 를 묶은 Claude Code 플러그인입니다.\
|
|
12
12
|
설치하면 스킬과 커맨드가 `/banker:<이름>` 네임스페이스로 노출됩니다.\
|
|
13
13
|
이 저장소 자체가 Claude Code 마켓플레이스(`.claude-plugin/marketplace.json`)이자 플러그인(`.claude-plugin/plugin.json`, name `banker`)이며, 도구에 무관한 스킬은 Codex CLI에도 설치됩니다.
|
|
14
14
|
|
|
@@ -52,13 +52,13 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
|
|
|
52
52
|
| `ultra-init` | 프로젝트 기획이 충분히 구체적일 때 | 데모를 구현 |
|
|
53
53
|
| `curation` | 질문에 답하기 어렵거나 의사결정이 어려울 때 | 합리적 선택지 제공 (`--perf` = 품질 우선, `--deep` = 확신 0.80 초과까지 추가 조사) |
|
|
54
54
|
| `all-in-one` | 요건이 명확한 단계에서 | 계획 → 구현 → 검증 |
|
|
55
|
-
| `ralph-qa` | 검증이 충분하지 않을 때 |
|
|
55
|
+
| `ralph-qa` | 검증이 충분하지 않을 때 | 세션 모델로 띄운 독립 검토 에이전트 3개 이상의 합의 루프 (+ 플래그로 고른 CLI 좌석) |
|
|
56
56
|
| `smart-compact` | 컨텍스트 임계 초과로 맥락 단절이 걱정될 때 | 맥락을 더 잘 이어서 진행 |
|
|
57
57
|
| `refresh-readme` | 프로젝트 배포 전 | README 최신화 |
|
|
58
58
|
| `summary-wiki` | Agent가 아는 정보를 확인하고 싶을 때 | 요약 리포트 |
|
|
59
59
|
| `cleansing-memory` | 프로젝트가 장기화될 때 | 메모리 최적화 |
|
|
60
60
|
| `ready-compact` | 컨텍스트를 compact 하거나 새 세션을 대비할 때 | 이어갈 프롬프트만 출력(`/copy` 한 번이면 복사), `--hand-off` = 새 세션에서 이어가기 |
|
|
61
|
-
| `
|
|
61
|
+
| `/graceful-pause` | 작업 도중 방향을 바꾸거나 끼어들고 싶을 때 | 작업 중에 입력해도 바로 전달. 실행 중인 도구 호출이 끝나면 그 단계까지만 마무리하고 멈춘 뒤 지시를 기다림 (Claude Code) |
|
|
62
62
|
| `tone-compact` | 답변을 짧은 한글 개조식으로 받고 싶을 때 | 문체 규칙을 켜 두면 끌 때까지 모든 세션에 적용 |
|
|
63
63
|
|
|
64
64
|
## 구성
|
|
@@ -69,6 +69,9 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
|
|
|
69
69
|
|---|---|
|
|
70
70
|
| `/banker:front-qa` | 스펙(note) 기반 프론트엔드 구현 + parity QA |
|
|
71
71
|
| `/banker:setup` | 구성요소·의존성 설치 오케스트레이터 (multi-select) |
|
|
72
|
+
| `/graceful-pause` | 작업 중에도 바로 실행되는 정지 요청. 지금 단계만 끝내고 멈춘 뒤 보고하고 지시를 기다림 (Claude Code 2.1.289 이상, function hooks. Codex 미지원) |
|
|
73
|
+
|
|
74
|
+
`/graceful-pause` 는 `commands/` 가 아니라 function hooks(`hooks/register.mjs`)로 등록되는 명령이라 구성요소 수에 넣지 않습니다.
|
|
72
75
|
|
|
73
76
|
### 스킬: QA · 감사
|
|
74
77
|
|
|
@@ -92,7 +95,7 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
|
|
|
92
95
|
| `nothing-design` | Nothing 스타일 UI 디자인 적용 |
|
|
93
96
|
| `rfp-author` | 외주 제안요청서(RFP) 저작 (범용 프레임워크) |
|
|
94
97
|
| `humanizer` | AI 글 흔적 제거(자연스러운 문체로 윤문) |
|
|
95
|
-
| `lineage` | 세션 대화를 카카오톡 스타일 단일 HTML로 export (마크다운
|
|
98
|
+
| `lineage` | 세션 대화를 카카오톡 스타일 단일 HTML로 export. 세션 모델이 턴마다 1줄 요약을 쓰고 남길 턴을 고름(`--rulebase` 는 규칙만), 마크다운 렌더, 다중 세션 병합 |
|
|
96
99
|
| `append_wiki` | 프로젝트 위키 문서 추가/보강 |
|
|
97
100
|
| `compact-wiki` | 위키 중복 제거·supersede·병합 (무손실) |
|
|
98
101
|
| `obsidizer` | AI 위키를 의미보존 Obsidian 그래프로 정규화·상호링크·백링크 |
|
|
@@ -113,7 +116,7 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
|
|
|
113
116
|
| `refresh-git-ignore` | `.gitignore` 비파괴·반복가능 갱신 |
|
|
114
117
|
| `omc-reference` | OMC/OMX 에이전트·툴·스킬 레퍼런스(양 런타임 병기) |
|
|
115
118
|
| `curation` | 의사결정을 선택지·권고·확신수준으로 큐레이션(--perf=품질 우선, --deep=확신 0.80 이하는 추가 조사·검토 후 제시) |
|
|
116
|
-
| `ralph-qa` |
|
|
119
|
+
| `ralph-qa` | 세션 모델로 띄운 독립 검토 에이전트 3개 이상이 합의할 때까지 검증 반복. `--codex`·`--gemini`·`--opencode` 를 주면 그 CLI 에서 가장 뛰어난 모델이 좌석으로 합류 |
|
|
117
120
|
| `smart-compact` | 컨텍스트 임계 초과 시 위키·resume 저장 게이트 자동 무장 |
|
|
118
121
|
| `deep-research` | 다중 소스 팬아웃 + 적대적 검증 인용 리서치 |
|
|
119
122
|
| `ultra-interview` | 리서치 선행으로 사람 질문 최소화, 모호성 3% 이하까지 인터뷰 |
|
|
@@ -124,7 +127,6 @@ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합
|
|
|
124
127
|
| `cleansing-memory` | 메모리 파일을 문서화된 threshold 내로 정리(중복 최신본화·무손실 압축) |
|
|
125
128
|
| `payload-mon` | 상태표시줄 ctx 옆에 요청 payload 추정치(32MB 한도 대비, 8MB부터) 표시 켜기·끄기 |
|
|
126
129
|
| `tone-compact` | 답변과 새 문서를 ASD-STE100 기반 한글 개조식(표·목록·원어 발음 표기·장식 기호 금지)으로 쓰는 문체 규칙 켜기·끄기(on 기본, 끌 때까지 유지) |
|
|
127
|
-
| `graceful_pause` | 진행 중인 작업을 지금 단계까지만 마무리하고 멈춘 뒤 중간 지시를 받음(cancel 과 달리 모드 상태·계획 보존) |
|
|
128
130
|
|
|
129
131
|
### 스킬: 미디어 (모션 그래픽 · 3D 인트로)
|
|
130
132
|
|
|
@@ -154,15 +156,16 @@ USER_RESOURCES 가이드의 공통 요소를 OS별·런타임별(Claude Code/Cod
|
|
|
154
156
|
| 스킬 | 설명 |
|
|
155
157
|
|---|---|
|
|
156
158
|
| `setup-omc` | oh-my-claudecode(OMC) 설치·갱신 (Codex는 OMX) |
|
|
157
|
-
| `harness-factory` | revfactory/harness 팀 아키텍처 팩토리 설치·구성·사용안내 (Codex=meta-harness) |
|
|
159
|
+
| `setup-harness-factory` | revfactory/harness 팀 아키텍처 팩토리 설치·구성·사용안내 (Codex=meta-harness) |
|
|
158
160
|
| `setup-playwright` | Playwright + headless 브라우저 (RHEL8/Rocky8·non-root·no-conda 폴백) |
|
|
159
|
-
| `setup-omc-hud` | omc_hud 상태표시줄 (OS별) |
|
|
161
|
+
| `setup-omc-hud` | omc_hud 상태표시줄 (OS별). Claude 갱신 안내는 줄 맨 끝 |
|
|
160
162
|
| `setup-insane-search` | insane-search 플러그인 설치 (Claude·Codex) |
|
|
161
163
|
| `setup-stitch` | Stitch 디자인 MCP 프록시 등록(RockyLinux8 proxy) |
|
|
162
164
|
| `docs-setup` | arch-diagram·pdf-vision-extract 의존성(pptx·pymupdf·plantuml) 설치 |
|
|
163
165
|
| `vertical-pptx-setup` | vertical-pptx 의존성(pptxgenjs·python-pptx) + 시각 검증용 LibreOffice (OS·권한 적응형) |
|
|
164
166
|
| `motion-graphic-setup` | hyperframes(무료 모션 그래픽 CLI) 전제조건 설치 (Node≥22 + ffmpeg) |
|
|
165
167
|
| `3d-intro-setup` | 3D 인트로용 Azure 크레덴셜·의존성 설치 + 무과금 프리플라이트 (Node/ffmpeg) |
|
|
168
|
+
| `setup-bypass-permissions` | Claude Code 기본 권한 모드를 `bypassPermissions` 로 바꿔 모든 세션에서 도구 실행 확인을 끔. 사용자가 직접 입력해야 실행(모델은 호출 불가), 위험 경고와 확인 뒤 적용, `off` 로 원복. `/banker:setup` 에서는 기본 미선택 |
|
|
166
169
|
|
|
167
170
|
## 설치 상세 (npm · Codex)
|
|
168
171
|
|
|
@@ -221,14 +224,15 @@ banker uninstall # 제거
|
|
|
221
224
|
| `setup-mcp` | `claude mcp add` (context7·seq-thinking·filesystem·git·fetch) | `[mcp_servers.*]` |
|
|
222
225
|
| `setup-lsp` | LSP MCP 등록 | `[mcp_servers.lsp_bridge]` |
|
|
223
226
|
| `setup-stitch` | `claude mcp add stitch` | `codex mcp add stitch` |
|
|
224
|
-
| `setup-omc-hud` | `statusLine` | — (Codex는 OMX `hud`) |
|
|
227
|
+
| `setup-omc-hud` | `statusLine` + `hud/omc-hud-custom.mjs` 에 Claude 갱신 안내를 줄 맨 끝으로 옮기는 블록 1개(`.claude-update-last.bak` 백업·멱등·`node --check` 검증, `off` 로 원복) | — (Codex는 OMX `hud`) |
|
|
225
228
|
| `setup-pwsh` | `env.CLAUDE_CODE_GIT_BASH_PATH` (병합) | — (네이티브 셸, 배선 불필요) |
|
|
226
|
-
| `harness-factory` | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` (env 영속) | — |
|
|
229
|
+
| `setup-harness-factory` | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` (env 영속) | — |
|
|
227
230
|
| `smart-compact` | `statusLine.command` 래핑 + `UserPromptSubmit` 훅 추가 (백업·멱등) | `~/.codex/` 대응 |
|
|
228
231
|
| `payload-mon` | `hud/omc-hud-custom.mjs` 에 표시 블록 1개 삽입(`.payload-mon.bak` 백업·멱등·`node --check` 검증) + 래퍼 옆 `hud/payload-mon/` 에 모듈 사본 (`off` 로 원복) | — (Codex에서 실행해도 Claude Code HUD 만 다룸) |
|
|
229
232
|
| `tone-compact` | `rules/banker-tone-compact.md` 생성 (`off` 로 삭제) | `AGENTS.md`(내용이 있는 `AGENTS.override.md` 우선) 끝에 `USER:OMX:POLICY` 로 감싼 블록 1개(`.tone-compact.bak` 백업·멱등, `off` 로 원복) |
|
|
230
233
|
| `motion-graphic-setup` | 설정 파일 미패치 (Node/ffmpeg 확보 + `npx hyperframes` 설치만) | 동일 (`config.toml` 미변경) |
|
|
231
234
|
| `3d-intro-setup` | `settings.json` 미패치 — 크레덴셜을 untracked env 파일에 기록(`.env.3d-intro.local` 또는 `~/.config/banker/3d-intro/env`) | 동일 (`config.toml` 미변경) |
|
|
235
|
+
| `setup-bypass-permissions` | `permissions.defaultMode` = `bypassPermissions` (켜기 전 내용은 `settings.json.bypass-permissions.bak`, 되돌리기 기록은 `settings.json.bypass-permissions.json`, `off` 로 원복. 관리 정책, 설정 파일의 금지 키, root 계정이면 거부) | Codex 에서 실행해도 같은 머신의 Claude Code 설정을 바꿈 (Codex 승인 정책은 미변경) |
|
|
232
236
|
|
|
233
237
|
`obsidizer` 는 `settings.json` 대신 `<위키디렉터리>/.obsidizer` 플래그 파일로만 켜고 끕니다.
|
|
234
238
|
|
|
@@ -240,6 +244,7 @@ banker uninstall # 제거
|
|
|
240
244
|
- `all-in-one`, `ultra-init`, `/banker:front-qa`: oh-my-claudecode(OMC) 5 와 같은 버전대의 `omc` CLI(`ralph` 가 `omc ralph verify` 를 부르므로 4.x CLI 로는 멈춤). Codex에서는 OMX.
|
|
241
245
|
- `audit-web-page`, `play-qa`, `ultra-ui-qa`: playwright.
|
|
242
246
|
- `payload-mon`: OMC 커스텀 HUD 래퍼(`setup-omc-hud` 로 설치).
|
|
247
|
+
- `/graceful-pause`: Claude Code 2.1.289 이상(function hooks). 그보다 오래된 Claude Code 는 명령을 등록하지 않고 한 줄로 알리며, Codex 에는 이 명령이 없습니다.
|
|
243
248
|
- `lineage`: Python 3.7+ (표준 라이브러리만 사용). RHEL8/Rocky8은 기본 `python3` 가 3.6이라 `setup-python` 등으로 3.11을 설치해 지정해야 합니다.
|
|
244
249
|
|
|
245
250
|
## 업데이트 / 제거
|
|
@@ -266,6 +271,13 @@ Codex는 재설치할 때마다 기존 `banker-*` 를 먼저 정리하므로 옛
|
|
|
266
271
|
> 표시 블록과 모듈 사본은 플러그인 밖(`~/.claude/hud/`)에 있어서, 플러그인을 지워도 남아 계속 표시됩니다.\
|
|
267
272
|
> 이미 지웠다면 HUD를 재설치하거나, `omc-hud-custom.mjs` 에서 `// >>> payload-mon >>>` 부터 `// <<< payload-mon <<<` 까지 지우면 됩니다.
|
|
268
273
|
|
|
274
|
+
> `setup-omc-hud` 가 넣은 Claude 갱신 안내 블록도 플러그인 밖(`~/.claude/hud/omc-hud-custom.mjs`)에 남습니다. 원래 순서로 되돌리려면 제거 전에 `/banker:setup-omc-hud off` 를 실행하세요.\
|
|
275
|
+
> 이미 지웠다면 HUD를 재설치하거나, `// >>> claude-update-last >>>` 부터 `// <<< claude-update-last <<<` 까지 지우면 됩니다. 블록을 남겨 두어도 상태표시줄은 깨지지 않습니다.
|
|
276
|
+
|
|
277
|
+
> `setup-bypass-permissions` 로 바꾼 권한 모드는 `settings.json` 에 남아, 플러그인을 지워도 모든 세션에서 확인 없이 도구가 실행됩니다. 제거 전에 `/banker:setup-bypass-permissions off` 를 실행하세요.\
|
|
278
|
+
> 이미 지웠다면 설정 폴더(`$CLAUDE_CONFIG_DIR`, 없으면 `~/.claude`)의 `settings.json` 에서 `permissions.defaultMode` 를 지우거나 원래 값으로 되돌리면 됩니다. 옆의 `settings.json.bypass-permissions.bak` 과 `settings.json.bypass-permissions.json` 도 지우세요. 백업에는 설정의 비밀 값이 들어 있을 수 있습니다.\
|
|
279
|
+
> root 계정에서 이 모드 때문에 Claude Code 가 시작되지 않으면 `claude --permission-mode default` 로 시작한 뒤 `off` 를 실행하세요.
|
|
280
|
+
|
|
269
281
|
> `tone-compact` 를 켰다면 제거 전에 런타임마다 `off` 를 실행하세요(Claude Code `/banker:tone-compact off`, Codex `banker-tone-compact` 에 `off`).\
|
|
270
282
|
> 규칙 파일과 블록은 플러그인 밖(`~/.claude/rules/`, `~/.codex/AGENTS.md`)에 있어서, 플러그인을 지워도 남아 계속 적용됩니다.\
|
|
271
283
|
> 이미 지웠다면 `~/.claude/rules/banker-tone-compact.md` 를 지우고, AGENTS.md 에서 `<!-- banker:tone-compact:start -->` 부터 `<!-- banker:tone-compact:end -->` 까지와 그 바깥의 `USER:OMX:POLICY` 표시 두 줄을 지우면 됩니다.
|
|
@@ -353,7 +365,7 @@ banker 자체는 **MIT** ([LICENSE](LICENSE)). Owner: [smallOpenSource](https://
|
|
|
353
365
|
|---|---|---|---|
|
|
354
366
|
| 프레임워크 | oh-my-claudecode(OMC)·oh-my-codex(OMX), by [Yeachan-Heo](https://github.com/Yeachan-Heo) | MIT | `all-in-one`·`ultra-init`·`/banker:front-qa`·`setup-omc` |
|
|
355
367
|
| 플러그인 | insane-search (© fivetaku, [fivetaku/gptaku_plugins](https://github.com/fivetaku/gptaku_plugins)) | MIT | `setup-insane-search` |
|
|
356
|
-
| 팀 아키텍처 팩토리 | revfactory/harness (© Minho Hwang, [revfactory/harness](https://github.com/revfactory/harness)) · Codex 포트 SaehwanPark/meta-harness | Apache-2.0 | `harness-factory`(설치·구성만 안내) |
|
|
368
|
+
| 팀 아키텍처 팩토리 | revfactory/harness (© Minho Hwang, [revfactory/harness](https://github.com/revfactory/harness)) · Codex 포트 SaehwanPark/meta-harness | Apache-2.0 | `setup-harness-factory`(설치·구성만 안내) |
|
|
357
369
|
| 서비스(독점·상표) | Notion | 독점 | `make-notion-guide` |
|
|
358
370
|
| 서비스(독점·상표) | Google Stitch | 독점 | `setup-stitch` |
|
|
359
371
|
| 디자인(상표) | Nothing 디자인 언어 | 상표 | `nothing-design` |
|
package/codex/manifest.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{ "name": "compact-wiki", "type": "skill", "target": "both", "reason": "wiki dedup/merge; tool-agnostic workflow", "supportingFiles": [], "caveat": "uses wiki_* MCP at runtime" },
|
|
13
13
|
{ "name": "play-qa", "type": "skill", "target": "both", "reason": "Godot HTML5 in-browser QA; tool-agnostic", "supportingFiles": [], "caveat": "needs playwright (setup-playwright)" },
|
|
14
14
|
{ "name": "humanizer", "type": "skill", "target": "both", "reason": "AI-writing cleanup; tool-agnostic (vendored MIT)", "supportingFiles": ["LICENSE", "README.md", "AGENTS.md"] },
|
|
15
|
-
{ "name": "lineage", "type": "skill", "target": "both", "reason": "session->HTML export;
|
|
15
|
+
{ "name": "lineage", "type": "skill", "target": "both", "reason": "session->HTML export; the default flow has session-model reviewers (Claude=Plan without a model, Codex=spawn_agent without a role) judge noise and write one-line summaries from a redacted review pack; --rulebase is the rules-only one-pass run; reads Claude Code transcripts only", "supportingFiles": ["lineage.py"] },
|
|
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": [] },
|
|
@@ -28,7 +28,7 @@
|
|
|
28
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
|
-
{ "name": "setup-omc-hud", "type": "skill", "target": "both", "reason": "installs omc_hud (Claude statusLine); Codex uses OMX `hud`; runtime-aware", "supportingFiles": [] },
|
|
31
|
+
{ "name": "setup-omc-hud", "type": "skill", "target": "both", "reason": "installs omc_hud (Claude statusLine) and moves OMC's Claude Code update notice to the end of the line; Codex uses OMX `hud`; runtime-aware", "supportingFiles": ["scripts/claude-update-last.mjs"] },
|
|
32
32
|
{ "name": "setup-stitch", "type": "skill", "target": "both", "reason": "registers the Stitch MCP proxy (RockyLinux8 ~/bin/stitch-proxy.sh); Claude `claude mcp add`, Codex `codex mcp add`", "supportingFiles": [] },
|
|
33
33
|
|
|
34
34
|
{ "name": "docs-setup", "type": "skill", "target": "both", "reason": "installs arch-diagram/pdf-vision-extract deps (python-pptx, pymupdf, plantuml); python-env detect/select; runtime-agnostic installer", "supportingFiles": [] },
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
{ "name": "curation", "type": "skill", "target": "both", "reason": "decision-framing behavior (options/rec/confidence + --perf); no runtime deps; identical in both", "supportingFiles": [] },
|
|
37
37
|
{ "name": "deep-init", "type": "skill", "target": "both", "reason": "hierarchical AGENTS.md generation (port of OMC deepinit); runtime-agnostic fs+doc; subagents Claude=OMC/Codex=OMX", "supportingFiles": [] },
|
|
38
38
|
{ "name": "deep-research", "type": "skill", "target": "both", "reason": "fan-out + adversarial-verify web research (re-authored from bundled workflow); Claude WebSearch/Workflow, Codex OMX autoresearch; runtime-aware", "supportingFiles": [] },
|
|
39
|
-
{ "name": "ralph-qa", "type": "skill", "target": "both", "reason": "independent verify loop (ralplan+critic logic):
|
|
39
|
+
{ "name": "ralph-qa", "type": "skill", "target": "both", "reason": "independent verify loop (ralplan+critic logic): a backbone of 3+ reviewer agents on the session model always runs (Claude=Plan without a model, Codex=spawn_agent without a role or forked context; read-only by instruction); --codex/--gemini/--opencode seat that CLI's best model (asks when ambiguous, configured default when nobody can be asked), the payload (a diff that carries new files, made through a temporary index) sent from a file after a secret scan, each seat run from its own copy in a private folder with answers kept elsewhere (codex read-only with its shell tool, exec-policy rules, MCP servers, sub-agents, hooks, notify, web search, metrics and OpenTelemetry off, not seated when a managed config or a requirements file overrides those; gemini under a deny-all admin policy that a helper checks first, with no MCP servers, extensions or prompt telemetry, its error reports kept in the answer folder, and its session records removed after, those of runs cut short too; opencode as a per-run deny-all agent reading the payload on stdin, auto-compaction off). Seat-lifecycle monotone gate (INCONCLUSIVE on seat loss); runtime-aware", "supportingFiles": ["references/verifier-probe.mjs", "references/payload-scan.mjs", "references/gemini-read-only.toml", "references/gemini-seat.mjs"] },
|
|
40
40
|
{ "name": "smart-compact", "type": "skill", "target": "both", "reason": "context-threshold compaction-hygiene gate (statusLine detect + hook bridge + assistant chain + TUI handoff); runtime-aware", "supportingFiles": [] },
|
|
41
41
|
{ "name": "visual-ralph", "type": "skill", "target": "both", "reason": "measured visual build loop (port of OMX visual-ralph); Claude ralph+visual-verdict+Stitch imagegen, Codex $ralph+$imagegen; runtime-aware", "supportingFiles": [] },
|
|
42
42
|
|
|
@@ -47,8 +47,9 @@
|
|
|
47
47
|
{ "name": "setup-tmux", "type": "skill", "target": "both", "reason": "installs tmux per-OS (Rocky8 3.6a source-build, apt/brew, Windows psmux); OMC team/worktree + OMX $team/HUD require it", "supportingFiles": [] },
|
|
48
48
|
{ "name": "setup-pwsh", "type": "skill", "target": "both", "reason": "Windows PowerShell 7 env (Terminal/Git/$PROFILE UTF-8); Claude CLAUDE_CODE_GIT_BASH_PATH, Codex native shell; no-op off-Windows", "supportingFiles": [] },
|
|
49
49
|
{ "name": "setup-mcp", "type": "skill", "target": "both", "reason": "installs common standalone MCP servers (context7/seq-thinking/filesystem/git/fetch); Claude `claude mcp add`, Codex config.toml [mcp_servers.*]; needs setup-node/python", "supportingFiles": [] },
|
|
50
|
+
{ "name": "setup-bypass-permissions", "type": "skill", "target": "both", "reason": "opt-in, typed by the person only (disable-model-invocation; Codex agents/openai.yaml allow_implicit_invocation: false): sets Claude Code permissions.defaultMode to bypassPermissions after a risk warning and an explicit confirmation; node script first, python3/PowerShell fallback when node cannot run, a command the person runs when the account may not write; off restores; Codex leaves its own approval policy alone", "supportingFiles": ["scripts/bypass-permissions.mjs", "scripts/fallback/bypass-permissions.py", "scripts/fallback/bypass-permissions.ps1", "agents/openai.yaml"] },
|
|
50
51
|
{ "name": "setup-sandbox", "type": "skill", "target": "both", "reason": "agent sandbox per-OS (bubblewrap+userns / AppContainer / Seatbelt) + rust/cargo + git safe.directory; Codex sandbox_mode", "supportingFiles": [] },
|
|
51
|
-
{ "name": "harness-factory",
|
|
52
|
+
{ "name": "setup-harness-factory","type": "skill", "target": "both", "reason": "installs+configures+guides the revfactory/harness team-architecture factory plugin (Claude harness@harness-marketplace, Codex SaehwanPark/meta-harness); Apache-2.0 referenced not redistributed", "supportingFiles": [] },
|
|
52
53
|
|
|
53
54
|
{ "name": "obsidizer", "type": "skill", "target": "both", "reason": "AI-wiki -> Obsidian graph normalize/interlink; LLM semantic edits + zero-input deterministic canonicalizer, runtime-agnostic; in-place durable", "supportingFiles": ["obsidize.mjs"], "caveat": "OMC-managed trees: 9-field frontmatter envelope + reserved files + no-rename + bare [[slug]] links only (extractWikiLinks slugifies piped/heading forms -> broken-ref); aliases written in generic vaults only; Canvas sidecars and body-inline :: are durable in-place; uses wiki_lint read-only. --enable is Claude-only (Codex has no MCP tool hooks) and is an honest no-op on Codex." },
|
|
54
55
|
|
|
@@ -65,7 +66,6 @@
|
|
|
65
66
|
{ "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
67
|
{ "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
68
|
{ "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" },
|
|
69
69
|
|
|
70
70
|
{ "name": "front-qa", "type": "command", "target": "both", "reason": "ralplan->ralph frontend-QA pipeline; Claude=OMC, Codex=OMX", "supportingFiles": [] },
|
|
71
71
|
{ "name": "setup", "type": "command", "target": "both", "reason": "installer orchestrator; Claude AskUserQuestion multi-select, Codex prompt-based selection", "supportingFiles": [] }
|
|
@@ -27,7 +27,8 @@ The generator (`banker setup --codex`) applies the rules below for `target: both
|
|
|
27
27
|
- `visual-ralph` → OMX `$ralph`·`$imagegen`(+`omx imagegen continuation`)·Visual Verdict; Claude은 `ralph`+`visual-verdict`+Stitch/ccg imagegen.
|
|
28
28
|
- `deep-init` → 서브에이전트 Claude=OMC explore/architect/writer, Codex=OMX worker/explore(부재 시 직접 수행). 순수 fs+doc.
|
|
29
29
|
- `deep-research` → Claude 번들 워크플로/`WebSearch`, Codex OMX `autoresearch`/`best-practice-research`.
|
|
30
|
-
- `ralph-qa` → 백본은
|
|
30
|
+
- `ralph-qa` → 백본은 세션 모델로 띄운 검토 에이전트 3개 이상이다(Claude=Agent 의 `Plan` 을 `model` 없이, Codex=`spawn_agent` 를 역할 없이, 저자 대화를 넘기지 않고). 두 런타임 모두 Bash 가 있어 읽기 전용은 지시로 선다. 외부 좌석은 `--codex`·`--gemini`·`--opencode` 를 줄 때만 앉고, 저자 계열은 앉지 않는다(Codex 런타임의 `--codex` 는 자기 자신이라 부적격). Codex 의 `workspace-write` 샌드박스는 HOME 쓰기를 막아 gemini, opencode 가 시작부터 실패하고, Linux 에서는 페이로드 기준 폴더(`$XDG_RUNTIME_DIR`, `~/.cache`)도 막는다. 그래서 외부 좌석 전송의 명령 전부(폴더, 페이로드, 사본, 좌석, 정리)를 승인을 받아 샌드박스 밖에서 실행한다.
|
|
31
|
+
- `lineage` → 기본 흐름의 검토자는 세션 모델이다(Claude=Agent 의 `Plan` 을 `model` 없이, Codex=`spawn_agent` 를 역할 없이, 저자 대화를 넘기지 않고). 띄울 수 없으면 세션이 파트를 직접 검토한다. Codex 검토자에게는 파일 읽기 도구가 없어 파트 파일을 읽는 셸 명령만 쓰게 한다. `workspace-write` 샌드박스에서는 `~/.cache` 에 쓸 수 없어 이번 실행의 검토 결정을 캐시에 쓰지 못한다(WARN). 앞선 실행이 남긴 결정은 읽는다. 읽는 기록은 Claude Code 형식뿐이라 Codex 에서는 Claude Code 기록을 내보낼 때만 쓴다. `--rulebase` 는 모델 호출 없이 양쪽 같다.
|
|
31
32
|
- `smart-compact` → Claude statusLine `context_window.used_percentage`+hook; Codex 신호 미확인 시 휴리스틱 폴백. TUI 3단(`/copy`·`/compact`·paste)은 유저.
|
|
32
33
|
- `curation` → 런타임 무관(외부 의존 0, 양쪽 동일).
|
|
33
34
|
|
|
@@ -36,13 +37,13 @@ The generator (`banker setup --codex`) applies the rules below for `target: both
|
|
|
36
37
|
- `audit-web-page`, `play-qa`, `ultra-ui-qa` — need playwright (install via `setup-playwright`).
|
|
37
38
|
- `setup-playwright` — genericize the `/banker:setup` trigger phrasing for the Codex copy.
|
|
38
39
|
- `visual-ralph` — needs an imagegen path (Stitch via `setup-stitch`, or `/ccg`/Gemini) + a frontend repo; static/live-URL reference works without imagegen.
|
|
39
|
-
- `ralph-qa` — runs with no external dependency: the
|
|
40
|
+
- `ralph-qa` — runs with no external dependency: the backbone of 3+ session-model reviewer agents always runs, and an external CLI seat joins only on its flag (`--codex`, `--gemini`, `--opencode`), on that CLI's best model as the probe reads it from local config and the CLI's bundled list (the probe sends no HTTP request and no prompt; opencode is started with its model-list refresh off). Its absence is a coverage fact (model axis uncovered), not a degraded mode. A same-runtime `critic` is never substituted for an external seat — on Codex that would be GPT approving GPT, i.e. self-approval.
|
|
40
41
|
- `deep-research` — needs web search/fetch (Claude WebSearch/WebFetch or bundled workflow; Codex OMX autoresearch).
|
|
41
42
|
- `smart-compact` — Claude statusLine exposes context%; Codex signal unconfirmed → heuristic fallback; `/copy`·`/compact`·paste stay user-driven (TUI).
|
|
42
43
|
- `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
44
|
- `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
45
|
- `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
|
-
- `
|
|
46
|
+
- `/graceful-pause` (not a manifest surface) — a Claude Code function-hooks command (`hooks/register.mjs`, 2.1.289+) registered `immediate`, so it runs mid-turn; it appends one hidden user row the running turn reads at its next model request. Codex has no equivalent (no function hooks), and the earlier `graceful_pause` skill was removed because a typed skill waits until the turn ends.
|
|
46
47
|
|
|
47
48
|
신규 스킬(0.7.0)도 `both`·런타임 인식:
|
|
48
49
|
- `ultra-interview` → 리서치 선행 질문 최소화 + 모호성 3% 이하 종료. **자체 루브릭 소유**가 설계 요점이다: OMC deep-interview 는 3차원, OMX 는 5차원으로 산식이 달라 네이티브 채점을 물려받으면 같은 임계값이 런타임마다 다른 뜻이 된다. OMC/OMX 네이티브 `deep-interview` 를 번들하거나 대체하지 않는다. 규제 조회는 엔드포인트 하드코딩이 아니라 "해당 관할의 공식 1차 출처를 찾아라"는 일반 지시다.
|
|
@@ -56,7 +57,6 @@ The generator (`banker setup --codex`) applies the rules below for `target: both
|
|
|
56
57
|
- `payload-mon` → 다루는 신호가 Claude Code 의 것이다. 32MB 요청 한도와 세션 파일 형식이 Claude Code 기준이라 **Codex 자신의 요청 크기는 재지 않는다.** Codex 에서 실행하면 같은 머신의 Claude Code HUD 래퍼(`omc-hud-custom.mjs`)를 켜고 끄는 것만 하고, `status` 의 현재 세션 추정치는 Claude Code 세션에서만 나온다. OMX `hud` 는 건드리지 않는다.
|
|
57
58
|
- HUD 래퍼가 불러오는 추정 모듈은 스킬 폴더가 아니라 래퍼 옆에 둔 사본이다. Claude Code 플러그인 설치 경로(`plugins/cache/<마켓>/<플러그인>/<버전>/`)는 업데이트 때 옛 버전 폴더가 정리되므로, 그 경로를 래퍼에 박으면 다음 업데이트 뒤 표시가 소리 없이 사라진다. Codex 설치 경로에는 버전이 없지만 같은 사본 방식을 쓴다.
|
|
58
59
|
|
|
59
|
-
추가 스킬 `tone-compact
|
|
60
|
+
추가 스킬 `tone-compact` 도 `both`·런타임 인식:
|
|
60
61
|
- `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
62
|
- `ready-compact` → 노트 위치만 런타임마다 다르다. Claude Code 는 자동 메모리 폴더(`MEMORY.md` 포인터가 새 세션에도 로드됨), Codex 는 자동 메모리가 없어 작업 폴더의 `.omx/handoffs/`(OMX 의 handoff 관례). 출력은 양쪽 모두 프롬프트 본문만이라 내장 `/copy` 한 번으로 복사된다. `--hand-off` 는 새 세션에 이 대화가 없다는 전제로 결정과 이유, 작업 위치, 진행 중인 모드와 백그라운드 작업까지 노트에 옮긴다.
|
package/commands/front-qa.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "(
|
|
3
|
-
argument-hint: "[
|
|
2
|
+
description: "스펙 파일(기본 `docs/note.txt`)을 바탕으로 프론트엔드를 구현하고, 레퍼런스 구현과 같은지 엄격하게 QA 하는 워크플로(`ralplan`, `ralph`, `/loop`)."
|
|
3
|
+
argument-hint: "[스펙 파일 경로. 생략하면 docs/note.txt]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /front-qa — 스펙 기반 프론트엔드 구현 + 엄격 QA
|
package/commands/setup.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "
|
|
3
|
-
argument-hint: "[설치할
|
|
2
|
+
description: "구성요소와 의존성을 여러 개 골라 설치하는 오케스트레이터. 런타임(Node, Python, Java), LSP, tmux, MCP, 샌드박스, OMC, Playwright 등. 권한 확인 끄기는 따로 묻고 기본으로 고르지 않으며, 골라도 실행하지 않고 직접 입력할 명령만 안내."
|
|
3
|
+
argument-hint: "[설치할 구성요소 이름. 비우면 여러 개 고르는 목록 표시]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /banker:setup — 구성요소 설치 오케스트레이터
|
|
@@ -12,6 +12,8 @@ banker 플러그인이 제공하는 설치 스킬들을 **multi-select**로 골
|
|
|
12
12
|
|
|
13
13
|
1. **선택 받기**: `$ARGUMENTS` 에 컴포넌트명이 명시돼 있으면 그것만 실행(질문 생략).
|
|
14
14
|
비어 있으면 아래를 `AskUserQuestion`(**multiSelect: true**)으로 제시한다(**Codex 런타임엔 AskUserQuestion 이 없으므로 목록을 제시하고 설치할 항목을 사용자에게 물어 받는다**). 항목은 **계층/의존 순서**로 묶여 있으니, 뒤 계층을 고르면 앞 계층 전제를 먼저 채운다:
|
|
15
|
+
- 질문 하나에 선택지는 4개까지다. 5개 이상인 묶음은 두 질문으로 나눈다.
|
|
16
|
+
- 맨 아래 **권한** 항목은 이 다중 선택에 넣지 않고, 그 항목의 규칙대로 따로 묻는다.
|
|
15
17
|
|
|
16
18
|
**런타임 (기반 — 먼저)**
|
|
17
19
|
- **setup-node** — nvm + Node 22(winget/nvm-windows). npx 기반 MCP·CLI 전제.
|
|
@@ -27,7 +29,7 @@ banker 플러그인이 제공하는 설치 스킬들을 **multi-select**로 골
|
|
|
27
29
|
|
|
28
30
|
**프레임워크·플러그인**
|
|
29
31
|
- **setup-omc** — oh-my-claudecode(OMC) 설치/갱신(Codex는 OMX). `all-in-one`·`ultra-init`·`/banker:front-qa` 의존성.
|
|
30
|
-
- **harness-factory** — revfactory/harness(팀 아키텍처 팩토리) 설치+구성+안내(Codex=meta-harness).
|
|
32
|
+
- **setup-harness-factory** — revfactory/harness(팀 아키텍처 팩토리) 설치+구성+안내(Codex=meta-harness).
|
|
31
33
|
- **setup-insane-search** — insane-search 플러그인(차단 사이트 우회, Claude/Codex 양쪽).
|
|
32
34
|
- **setup-omc-hud** — omc_hud 상태표시줄(OS별).
|
|
33
35
|
- **setup-stitch** — Stitch(디자인 생성) MCP 프록시 등록(RockyLinux8 proxy-script, API key 필요).
|
|
@@ -38,7 +40,14 @@ banker 플러그인이 제공하는 설치 스킬들을 **multi-select**로 골
|
|
|
38
40
|
- **motion-graphic-setup** — hyperframes(무료 모션 그래픽 CLI) 전제조건(Node≥22 + ffmpeg → `npx hyperframes`). (`motion-graphic-make` 의존성)
|
|
39
41
|
- **3d-intro-setup** — Azure Sora-2/gpt-image-2 3D 인트로용 크레덴셜·의존성(Node/ffmpeg) + 무과금 프리플라이트. (`3d-intro-build` 의존성)
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
**권한 (주의, 기본 미선택)**
|
|
44
|
+
- **setup-bypass-permissions** — Claude Code 의 기본 권한 모드를 `bypassPermissions` 로 바꿔 모든 세션에서 도구 실행 확인을 끔.
|
|
45
|
+
- 위 묶음과 섞지 않고 단일 선택 질문 하나로 따로 묻는다(`multiSelect: false`). 선택지는 `넣지 않음 (권장)`, `넣기 (위험)` 순서다.
|
|
46
|
+
- 사용자가 이 항목을 직접 고를 때만 넣는다. "전부" 같은 묶음 선택이나 번호 범위에는 들어가지 않는다.
|
|
47
|
+
- 이 스킬은 모델이 호출할 수 없다(`disable-model-invocation`). `넣기` 를 고르면 실행하지 말고, 사용자에게 `/banker:setup-bypass-permissions on` 을 직접 입력하라고 안내한다. Codex 는 `$banker-setup-bypass-permissions` 를 직접 부르라고 안내한다.
|
|
48
|
+
- 입력하면 그 스킬이 위험 경고를 보여 주고 한 번 더 확인받는다. 되돌리기는 `off`.
|
|
49
|
+
|
|
50
|
+
2. **실행**: 선택된 각 항목을 호출한다(미선택은 건드리지 않음). 단 `setup-bypass-permissions` 는 호출하지 않는다(위 권한 항목의 안내만). Claude Code는 `Skill("banker:<name>")`, **Codex 런타임에선 설치된 `banker-<name>` 스킬을 적용**한다(예: `Skill("banker:setup-node")`).
|
|
42
51
|
- **의존 순서 강제**: 뒤 계층을 고르면 전제 스킬을 먼저 실행한다 — `setup-lsp` 전에 setup-node·setup-python·setup-java; `setup-mcp` 전에 setup-node·setup-python; `docs-setup` 전에 setup-python. 이미 설치돼 있으면 각 스킬이 감지해 skip(멱등).
|
|
43
52
|
- 각 스킬이 OS를 감지해 알맞은 절차로 설치하고 끝에 검증한다. 한 항목이 실패해도 정직히 보고하고 다음 항목 진행.
|
|
44
53
|
|