@kaydash9999/banker-plugins 0.9.0 → 0.10.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.9.0"
9
+ "version": "0.10.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "banker",
3
- "version": "0.9.0",
3
+ "version": "0.10.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,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.10.0] - 2026-07-18
4
+
5
+ ### Changed
6
+ - **GitHub 별 프롬프트가 Y 입력 시 실제로 별을 단다**(oh-my-codex 방식과 동일). 이전에는 URL 안내만 했으나, 이제 `gh` CLI 인증으로 `gh api -X PUT /user/starred/smallOpenSource/banker_plugins` 를 호출해 자동으로 별을 누른다. `gh` 미설치·미인증·API 실패 시에는 이유를 알리고 URL 안내로 폴백한다(setup 을 절대 막지 않음·자체 timeout·오류삼킴). `starRepo` 를 `require.main` 가드 뒤로 export 해 주입 spawn 으로 단위테스트(gh 없음·성공·실패)를 커버했다. 실환경 검증: 실제 exported `starRepo()` 호출로 저장소가 404→204(별 눌림) 전이 확인.
7
+
3
8
  ## [0.9.0] - 2026-07-18
4
9
 
5
10
  ### Added
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
7
7
  [![npm downloads](https://img.shields.io/npm/dm/@kaydash9999/banker-plugins)](https://www.npmjs.com/package/@kaydash9999/banker-plugins) [![GitHub stars](https://img.shields.io/github/stars/smallOpenSource/banker_plugins)](https://github.com/smallOpenSource/banker_plugins)
8
8
 
9
- [빠른 시작](#빠른-시작) · [구성](#구성) · [설치 상세](#설치-상세-npm--codex) · [요구사항](#요구사항) · [업데이트 / 제거](#업데이트--제거) · [업데이트 확인](#업데이트-확인-및-사용량-카운팅) · [라이선스 / 서드파티](#라이선스--서드파티)
9
+ [빠른 시작](#빠른-시작) · [워크플로 예시](#워크플로-사용-예시) · [구성](#구성) · [설치 상세](#설치-상세-npm--codex) · [요구사항](#요구사항) · [업데이트 / 제거](#업데이트--제거) · [업데이트 확인](#업데이트-확인-및-사용량-카운팅) · [라이선스 / 서드파티](#라이선스--서드파티)
10
10
 
11
11
  banker는 QA·보안 감사·문서·아키텍처·위키 작업과 의존성·개발환경(OS별) 설치를 아우르는 **스킬 48개 + 커맨드 2개**(총 50개 구성요소)를 묶은 Claude Code 플러그인입니다.\
12
12
  설치하면 스킬과 커맨드가 `/banker:<이름>` 네임스페이스로 노출됩니다.\
@@ -36,6 +36,24 @@ banker setup --codex
36
36
 
37
37
  playwright(브라우저 QA)나 oh-my-claudecode(OMC/OMX)처럼 별도 의존성이 필요한 스킬은 실행 전에 설치부터 안내합니다(Claude Code는 `/banker:setup`).
38
38
 
39
+ ## 워크플로 사용 예시
40
+
41
+ 무엇부터 써야 할지 막막할 때, 상황별로 골라 쓰는 대표 워크플로입니다.\
42
+ Claude Code는 `/banker:<이름>`, Codex는 `banker-<이름>` 으로 호출합니다.
43
+
44
+ | 워크플로 | 언제 쓰나 | 하는 일 |
45
+ |---|---|---|
46
+ | `ultra-interview` | 처음 프로젝트 아이디어를 구체화할 때 | 최신 정보를 반영한 소크라테스식 인터뷰 |
47
+ | `ultra-init` | 프로젝트 기획이 충분히 구체적일 때 | 데모를 구현 |
48
+ | `curation` | 질문에 답하기 어렵거나 의사결정이 어려울 때 | 합리적 선택지 제공 (`--perf` 옵션 = 품질 우선) |
49
+ | `all-in-one` | 요건이 명확한 단계에서 | 계획 → 구현 → 검증 |
50
+ | `ralph-qa` | 검증이 충분하지 않을 때 | 다중 Agent 논의 |
51
+ | `smart-compact` | 컨텍스트 임계 초과로 맥락 단절이 걱정될 때 | 맥락을 더 잘 이어서 진행 |
52
+ | `refresh-readme` | 프로젝트 배포 전 | README 최신화 |
53
+ | `summary-wiki` | Agent가 아는 정보를 확인하고 싶을 때 | 요약 리포트 |
54
+ | `cleansing-memory` | 프로젝트가 장기화될 때 | 메모리 최적화 |
55
+ | `ready-compact` | 컨텍스트를 compact 하거나 새 세션을 대비할 때 | 이어갈 프롬프트를 준비 |
56
+
39
57
  ## 구성
40
58
 
41
59
  ### 커맨드
@@ -199,6 +217,16 @@ Codex CLI는 샌드박스가 네트워크를 차단하므로 알림·카운팅
199
217
 
200
218
  무엇을 수집하고 누가 수신하는지는 [PRIVACY.md](PRIVACY.md)에 정리했습니다.
201
219
 
220
+ ### 공개 대시보드 · 엔드포인트
221
+
222
+ 카운팅 워커(`banker.banker-plugins.workers.dev`)는 다음 공개 엔드포인트를 제공합니다.
223
+
224
+ | URL | 내용 |
225
+ |---|---|
226
+ | <https://banker.banker-plugins.workers.dev/> | 사용량 대시보드 (npm 다운로드 지표 + 스킬 사용 집계 차트) |
227
+ | <https://banker.banker-plugins.workers.dev/stats> | 집계 데이터 JSON |
228
+ | <https://banker.banker-plugins.workers.dev/health> | 헬스 체크 (`ok`) |
229
+
202
230
  ## 라이선스 / 서드파티
203
231
 
204
232
  banker 자체는 **MIT** ([LICENSE](LICENSE)). Owner: [smallOpenSource](https://github.com/smallOpenSource).
package/bin/banker.js CHANGED
@@ -19,6 +19,7 @@ const PLUGIN_JSON = path.join(PKG_ROOT, '.claude-plugin', 'plugin.json');
19
19
  const MARKETPLACE = 'banker-plugins';
20
20
  const PLUGIN_NAME = 'banker';
21
21
  const REPO_URL = 'https://github.com/smallOpenSource/banker_plugins';
22
+ const REPO_SLUG = REPO_URL.replace(/^https:\/\/github\.com\//, ''); // smallOpenSource/banker_plugins (star API 대상)
22
23
 
23
24
  function version() {
24
25
  try { return require(path.join(PKG_ROOT, 'package.json')).version; } catch { return '0.0.0'; }
@@ -26,6 +27,26 @@ function version() {
26
27
  function log(...a) { console.log(...a); }
27
28
  function warn(...a) { console.error(...a); }
28
29
 
30
+ // GitHub 저장소에 별을 단다 (gh CLI 인증 사용). star 는 repo 쓰기 권한이 필요 없어 인증된 어느 계정으로도
31
+ // 가능하다. gh 미설치/미인증/실패는 {ok:false, reason} 로 반환해 호출부가 URL 안내로 폴백하게 한다.
32
+ // spawn 은 테스트 주입용(기본 cp.spawnSync). 자체 timeout·오류삼킴으로 setup 을 절대 막지 않는다.
33
+ function starRepo(spawn = cp.spawnSync) {
34
+ try {
35
+ const v = spawn('gh', ['--version'], { stdio: 'ignore', timeout: 3000, windowsHide: true });
36
+ if (v.error || v.status !== 0) return { ok: false, reason: 'gh CLI 없음' };
37
+ const r = spawn('gh', ['api', '-X', 'PUT', `/user/starred/${REPO_SLUG}`],
38
+ { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], timeout: 10000, windowsHide: true });
39
+ if (r.error) return { ok: false, reason: r.error.message };
40
+ if (r.status !== 0) {
41
+ const msg = (`${r.stderr || r.stdout || ''}`).trim().split('\n')[0] || `gh exited ${r.status}`;
42
+ return { ok: false, reason: msg };
43
+ }
44
+ return { ok: true };
45
+ } catch (e) {
46
+ return { ok: false, reason: (e && e.message) || String(e) };
47
+ }
48
+ }
49
+
29
50
  function parseArgs(argv) {
30
51
  const a = { cmd: null, sub: null, claude: false, codex: false, scope: 'user', scopeExplicit: false, dryRun: false, help: false, version: false };
31
52
  for (const t of argv) {
@@ -260,8 +281,14 @@ async function maybeFirstRunPrompts(a) {
260
281
  if (askStar) {
261
282
  const ans = (await ask('banker가 유용했다면 GitHub 별(star)을 눌러 주세요. [Y/n] ')).trim().toLowerCase();
262
283
  if (ans === '' || ans === 'y' || ans === 'yes') {
263
- log('감사합니다. 아래 주소에서 직접 별을 눌러 주세요 (자동으로 누르지 않고 안내만 합니다):');
264
- log(` ${REPO_URL}`);
284
+ log('GitHub 별을 누르는 중...'); // gh 네트워크가 느리면 최대 10초 블로킹이라 진행 표시.
285
+ const star = starRepo(); // gh CLI 로 실제 별을 단다(인증 필요).
286
+ if (star.ok) {
287
+ log('감사합니다. GitHub 별을 눌렀습니다.');
288
+ } else {
289
+ log(`자동으로 누르지 못했습니다(${star.reason}). 아래에서 직접 눌러 주세요:`);
290
+ log(` ${REPO_URL}`);
291
+ }
265
292
  }
266
293
  next.promptedStarV1 = true;
267
294
  }
@@ -369,4 +396,9 @@ async function main() {
369
396
  return;
370
397
  }
371
398
  }
372
- main().catch((e) => { warn('banker:', e && e.message ? e.message : e); process.exitCode = 1; });
399
+ // CLI 로 직접 실행될 때만 main 을 돌린다. 테스트가 require 로 import 하면 main 은 안 돌고 starRepo 만 노출.
400
+ if (require.main === module) {
401
+ main().catch((e) => { warn('banker:', e && e.message ? e.message : e); process.exitCode = 1; });
402
+ }
403
+
404
+ module.exports = { starRepo };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaydash9999/banker-plugins",
3
- "version": "0.9.0",
3
+ "version": "0.10.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"