@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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: all-in-one
3
- description: "(banker) 한 명령으로 합의 계획→검증 구현→독립 테스트 게이트를 연쇄(ralplan→ralph→ultraqa). 코딩 작업을 계획부터 통과까지 최대 rigor로 한 번에. 'all-in-one'/'all in one' 시 사용(한 줄 수정은 ralph, 아이디어 확장은 autopilot)."
3
+ description: "(banker) 한 명령으로 합의 계획→검증 구현→독립 QA 게이트를 연쇄(ralplan→ralph→QA 게이트: Claude Code는 verify 순환, Codex는 ultraqa). 코딩 작업을 계획부터 통과까지 최대 rigor로 한 번에. 'all-in-one'/'all in one' 시 사용(한 줄 수정은 ralph, 아이디어 확장은 autopilot)."
4
4
  argument-hint: "[--short] [--checkpoint] [--critic=critic|architect|codex] [--qa=tests|build|lint|typecheck] [--no-deslop] <task description>"
5
5
  level: 4
6
6
  ---
@@ -9,18 +9,40 @@ level: 4
9
9
 
10
10
  [ALL-IN-ONE ACTIVATED — SEQUENTIAL 3-STAGE PIPELINE]
11
11
 
12
- ## 0. Prerequisite: OMC (install first if missing)
13
-
14
- This skill orchestrates OMC's `ralplan` → `ralph` → `ultraqa`. **Check the dependency before running**; if it is missing, **guide installation first** rather than failing mid-pipeline:
15
- - Check: `command -v omc` and whether `/oh-my-claudecode:*` skills are available.
16
- - If missing: install via `/banker:setup` → oh-my-claudecode (or the `setup-omc` skill / `omc update`), then resume. On Codex the equivalent is OMX (`omx setup`).
17
-
18
- **런타임 매핑 (Claude Code ↔ Codex).** 이 스킬이 부르는 `ralplan`·`ralph`·`ultraqa`는 Claude Code에선 OMC 스킬이고 **Codex에선 oh-my-codex(OMX)가 제공하는 동명 스킬**이다. 아래 Execution의 `Skill("oh-my-claudecode:<name>")` 표기는 Claude Code 기준 — **Codex 런타임에선 OMC 대신 OMX의 해당 스킬(`ralplan`/`ralph`/`ultraqa`)을 적용**한다.
12
+ ## 0. Prerequisite: OMC 5 with a matching `omc` CLI (check first)
13
+
14
+ This skill orchestrates OMC's `ralplan` → `ralph`, then a QA gate built on OMC's
15
+ `verify` workflow. **Check the dependency before Stage 1**; if it is missing or
16
+ stale, **guide installation first** rather than failing mid-pipeline. The `omc`
17
+ check below is for Claude Code; on Codex check OMX instead (`omx --version`), whose
18
+ `ralph` does not use the `omc` CLI.
19
+
20
+ - **The `omc` CLI must have `ralph verify` (Claude Code).** OMC 5's `ralph` runs
21
+ `omc ralph verify` on its first iteration and stops when the command is
22
+ missing, and a global `omc` CLI older than the plugin (4.x) does not have it.
23
+ Judge by the output, not the exit code: given `--help`, a 4.x CLI prints its
24
+ general help and still exits 0. Keep the `--help`: without it, an unknown
25
+ command makes the CLI launch Claude Code.
26
+ ```bash
27
+ omc ralph verify --help 2>&1 | grep -q 'Usage: omc ralph verify' && echo "omc ok" || echo "omc CLI missing or too old"
28
+ ```
29
+ ```powershell
30
+ if ((omc ralph verify --help 2>&1 | Out-String) -match 'Usage: omc ralph verify') { 'omc ok' } else { 'omc CLI missing or too old' }
31
+ ```
32
+ - **If the check fails:** stop before Stage 1 and guide the fix (`/banker:setup`
33
+ → oh-my-claudecode, the `setup-omc` skill, or
34
+ `npm install -g oh-my-claude-sisyphus@latest`), then resume. Do not start a
35
+ pipeline whose Stage 2 will stop.
36
+ - **`ultraqa` does not exist in OMC 5** (removed in 5.0.0, no alias), so a call
37
+ to `oh-my-claudecode:ultraqa` fails. Stage 3 below runs in its place.
38
+ - On Codex the equivalent framework is OMX (`omx setup`).
39
+
40
+ **런타임 매핑 (Claude Code ↔ Codex).** Stage 1·2 의 `ralplan`·`ralph` 는 Claude Code에선 OMC 스킬이고 **Codex에선 oh-my-codex(OMX)가 제공하는 동명 스킬**이다. Stage 3 은 런타임마다 다르다: Claude Code(OMC 5)는 `ultraqa` 가 없어 아래 verify 순환을 직접 돌리고, **Codex는 OMX 가 아직 제공하는 `ultraqa`** 를 쓴다. 아래 `Skill("oh-my-claudecode:<name>")`·`Task(subagent_type="oh-my-claudecode:<name>")` 표기는 Claude Code 기준이다.
19
41
 
20
42
  ## Purpose
21
43
 
22
44
  Run one substantial coding task through three independent quality gates in a
23
- fixed order, each delegated to an existing OMC skill:
45
+ fixed order:
24
46
 
25
47
  ```
26
48
  Stage 1 /ralplan --deliberate consensus plan (Planner → Architect → Critic)
@@ -29,15 +51,18 @@ Stage 1 /ralplan --deliberate consensus plan (Planner → Architect → Cri
29
51
  Stage 2 /ralph --critic=critic PRD-driven persistent build, critic-verified
30
52
  │ → implementation + deslop + regression, then ralph self-cancels
31
53
  ▼
32
- Stage 3 /ultraqa --tests independent test-cycling acceptance gate
33
- → PASS, or honest STOPPED-with-diagnosis
54
+ Stage 3 QA gate (--qa=tests) fresh verifier → diagnose → fix, bounded cycle
55
+ → PASS, or honest STOPPED-with-diagnosis (Codex: OMX /ultraqa)
34
56
  ```
35
57
 
36
58
  This skill is a **thin sequential orchestrator**. It does not implement, plan,
37
- or test directly, and it does **not** create its own persistence loop or state
38
- file — every loop, retry, and verification belongs to the sub-skill it
39
- delegates to. Its only job is to invoke the three skills in order, bridge their
40
- handoffs, gate each stage on the previous one's success, and report honestly.
59
+ or test directly, and it does **not** create its own state file. Stages 1 and 2
60
+ hand every loop, retry, and verification to the sub-skill they invoke. The one
61
+ loop all-in-one owns is Stage 3's bounded verify → fix cycle: OMC 5 removed
62
+ `ultraqa`, which used to own it, and its replacement `verify` gathers evidence
63
+ but does not fix. Beyond that, its only job is to run the stages in order,
64
+ bridge their handoffs, gate each stage on the previous one's success, and
65
+ report honestly.
41
66
 
42
67
  ## Why three stages (and not just ralph)
43
68
 
@@ -50,23 +75,24 @@ modes, and each stage's reviewer is independent of the previous stage's author
50
75
  2. **A partial or unverified build declared "done"** → Stage 2's PRD
51
76
  story-by-story persistence + critic verification catch this.
52
77
  3. **Integration / regression breakage slipping past the builder's own checks**
53
- → Stage 3's fresh, test-focused, fix-cycling loop catches this.
78
+ → Stage 3's fresh, test-focused, fix-cycling gate catches this.
54
79
 
55
80
  **On the apparent redundancy of Stage 3:** ralph (Stage 2) already runs its own
56
- Step-7 critic verification and Step-7.6 regression re-run on the changed-file
57
- set. ultraqa (Stage 3) is still worth running because it is *independent* (fresh
58
- agents, not the ones that built it), *test-suite-focused*, and *actively fixes*
59
- in a cycle. If ralph's regression already ran the full suite green, ultraqa
60
- usually confirms in cycle 1 (cheap); its value rises when the suite is broad,
61
- when changes touched many files, or when integration/flaky issues hide behind
62
- unit-level checks. Keeping it explicit gives a clean, separate PASS signal.
81
+ Step-7 reviewer verification and Step-7.6 regression re-run (`omc ralph verify`
82
+ against the baseline it recorded). Stage 3 is still worth running because it is
83
+ *independent* (a fresh verifier agent, not the context that built the change),
84
+ *test-suite-focused*, and *actively fixes* in a bounded cycle. If ralph's
85
+ regression already ran the suite green, the gate usually passes in cycle 1
86
+ (cheap); its value rises when the suite is broad, when changes touched many
87
+ files, or when integration/flaky issues hide behind unit-level checks. Keeping
88
+ it explicit gives a clean, separate PASS signal.
63
89
 
64
90
  ## When to use
65
91
 
66
92
  - A substantial, mostly-specified coding task you want carried from plan →
67
93
  verified implementation → green test gate in one step, with the most
68
94
  front-loaded rigor OMC offers.
69
- - You have been running `ralplan → ralph → ultraqa` by hand and want it as one
95
+ - You have been running `ralplan → ralph →` a QA pass by hand and want it as one
70
96
  command.
71
97
  - The task is moderately under-specified — that's fine: Stage 1's consensus
72
98
  planning absorbs scoping, so all-in-one tolerates vaguer input than raw ralph.
@@ -75,8 +101,9 @@ unit-level checks. Keeping it explicit gives a clean, separate PASS signal.
75
101
 
76
102
  - **One-line fix or tiny change** → use `/ralph` or delegate to an executor;
77
103
  three heavy multi-agent loops is overkill.
78
- - **Pure exploration / brainstorming** → use `/oh-my-claudecode:plan` or the
79
- brainstorming skill; nothing should be implemented yet.
104
+ - **Pure exploration / brainstorming** → use `/oh-my-claudecode:ralplan` on its
105
+ own (it stops at a `pending approval` plan) or the brainstorming skill;
106
+ nothing should be implemented yet.
80
107
  - **A 2-3 line product idea needing requirements expansion** → use
81
108
  `/autopilot` (it expands the idea first) or `/deep-interview`.
82
109
  - **Frontend spec / reference-parity work** → use the specialized `/front-qa`.
@@ -88,7 +115,7 @@ unit-level checks. Keeping it explicit gives a clean, separate PASS signal.
88
115
  | `--short` | Stage 1 runs ralplan **without** `--deliberate` (skips pre-mortem + expanded test plan) for lower-risk work | off → deliberate |
89
116
  | `--checkpoint` | Insert an `AskUserQuestion` approval gate between Stage 1 (plan) and Stage 2 (implement) | off → auto-proceed |
90
117
  | `--critic=critic\|architect\|codex` | Reviewer passed to ralph's verification | `critic` |
91
- | `--qa=tests\|build\|lint\|typecheck` | Goal passed to ultraqa in Stage 3 | `tests` |
118
+ | `--qa=tests\|build\|lint\|typecheck` | What the Stage 3 gate checks (Codex: the goal passed to ultraqa) | `tests` |
92
119
  | `--no-deslop` | Passed through to ralph (skip the post-review deslop pass) | off |
93
120
 
94
121
  Everything before the flags / after them that isn't a recognized flag is the
@@ -118,6 +145,21 @@ then **stops**.
118
145
  `APPROVE`): do not auto-proceed. Surface the best plan and ask the user how to
119
146
  proceed. Never build on an unapproved plan.
120
147
 
148
+ ### Before Stage 2 — record what already fails
149
+
150
+ Run the command(s) of the `--qa` goal once on the unchanged tree and keep the
151
+ failing items (test names, error lines) in this conversation. This
152
+ **pre-change record** is the gate's baseline: it covers checks that are not
153
+ among ralph's feedback commands, and on Codex it is the only baseline there is
154
+ (OMX `ralph` keeps none). Never use `git stash` or `git reset` to get a
155
+ pre-change state for it; if the tree already has changes, take the record from
156
+ a clean copy of HEAD (`git worktree add --detach <tmp> HEAD`, run there, then
157
+ `git worktree remove <tmp>`). A fresh worktree has no installed dependencies
158
+ (`node_modules`, a venv): link or install them there first, and confirm the
159
+ commands really ran — a record made only of "command not found" errors is no
160
+ baseline. The record lives only in this conversation; if the session may
161
+ compact or end before Stage 3, put it in the `ready-compact` note.
162
+
121
163
  ### Stage 2 — Implement: `/ralph`
122
164
 
123
165
  Precondition: a consensus plan exists and is approved (auto via the invocation,
@@ -131,33 +173,93 @@ its job is to turn the plan's stages into PRD stories and implement + verify
131
173
  them, not to re-plan. (This mirrors how autopilot consumes a ralplan plan and
132
174
  skips its own planning phase.)
133
175
 
134
- ralph runs its full loop on its own: PRD refinement → implement per story →
135
- verify acceptance criteria → Step-7 critic verification → Step-7.5 deslop →
136
- Step-7.6 regression → Step-8 `/oh-my-claudecode:cancel`.
176
+ ralph runs its full loop on its own: feedback baseline (`omc ralph verify
177
+ --write-baseline`) → PRD refinement → implement per story → verify acceptance
178
+ criteria → Step-7 reviewer verification → Step-7.5 deslop → Step-7.6 regression
179
+ → Step-8 closeout and `/oh-my-claudecode:cancel`.
137
180
 
138
- > ralph's Step-8 cancel clears **ralph/ultrawork** session state — it ends the
181
+ > ralph's Step-8 cancel clears **ralph's own** session state — it ends the
139
182
  > IMPLEMENTATION stage, not all-in-one. all-in-one is not a registered OMC mode,
140
183
  > so the cancel does not affect it. Let ralph fully finish (reviewer APPROVE +
141
- > deslop + regression + cancel) **before** Stage 3 — ralph and ultraqa share
142
- > mutually-exclusive session state, so they must not overlap.
143
-
184
+ > deslop + regression + cancel) **before** Stage 3, so the gate checks the final
185
+ > tree and no ralph continuation is still steering the session.
186
+
187
+ - **Settle ralph's questions up front.** ralph 5.6.1 asks the user once for the
188
+ PRD's `repoQualityClass` (`prototype`, `production` or `library`) when the task
189
+ does not say. Infer it from repo signals (CI config, test depth, published
190
+ package metadata) and put it in the handoff; let ralph ask only when the
191
+ signals conflict.
192
+ - **Give ralph feedback commands that print only failures.** OMC 5.6.1's
193
+ `omc ralph verify` fingerprints *every* output line of each feedback command,
194
+ and normalizes only durations written as `<number><unit>`, timestamps, `/tmp`
195
+ paths and hex ids. A line that changes between runs or when a story adds
196
+ tests therefore reads as a NEW failure: node:test's default reporter prints
197
+ `ℹ duration_ms 151.4` and `ℹ tests 8`, so its gate fails on every run with no
198
+ change at all. In the handoff, tell ralph to set the PRD's `feedbackCommands`
199
+ **before it records the baseline** to forms whose output is constant on
200
+ success and names each failure — for node:test,
201
+ `FORCE_COLOR=0 NODE_NO_WARNINGS=1 node --test --test-reporter=dot 2>&1 | grep -Ev '^[.X]+$'`
202
+ (the two variables keep color codes from slipping past the filter and
203
+ warnings with a process id out of the output; adapt the form on Windows);
204
+ keep build/lint commands that are silent on success. If the gate still flags
205
+ only such lines, fix the commands and re-record ralph's baseline on the
206
+ current tree (`omc ralph verify --write-baseline`) — the pre-change record
207
+ still tells old failures from new ones. Never edit the baseline file by
208
+ hand; never stash or reset.
209
+ - **Carry the baseline forward.** ralph's own baseline (first iteration) also
210
+ lists failures that existed before the change; ralph treats them as noise
211
+ and reports them at Step 8. Note its session id (the `<id>` in its PRD path
212
+ `.omc/state/sessions/<id>/`) for Stage 3.
144
213
  - **If ralph reports a fundamental blocker** (same issue across 3+ iterations,
145
- missing credentials, unclear requirement, external dependency down): stop and
146
- report. Do **not** run Stage 3 on a broken or partial build and call it done.
147
-
148
- ### Stage 3 — QA gate: `/ultraqa`
149
-
150
- Precondition: Stage 2's ralph has completed and self-cancelled (no session-state
151
- overlap).
152
-
153
- Invoke `Skill(oh-my-claudecode:ultraqa)` with args `--<qa goal>` (default
154
- `--tests`). ultraqa cycles run-QA → architect-diagnose → executor-fix → repeat
155
- (max 5; early-exit if the same failure appears 3×).
214
+ missing credentials, unclear requirement, external dependency down, or the
215
+ `omc ralph verify` command unavailable): stop and report. Do **not** run
216
+ Stage 3 on a broken or partial build and call it done.
217
+
218
+ ### Stage 3 — QA gate
219
+
220
+ Precondition: Stage 2's ralph has completed and self-cancelled.
221
+
222
+ **Claude Code (OMC 5):** run the bounded cycle that `ultraqa` used to own —
223
+ the same shape as OMC 5's autopilot QA phase. No state file: the cycle count
224
+ lives in this conversation.
225
+
226
+ 1. **Verify, independently.** `Task(subagent_type="oh-my-claudecode:verifier", ...)`
227
+ — a fresh context that did not build the change. Brief it to follow the
228
+ `oh-my-claudecode:verify` workflow for the `--qa` goal (`tests` by default;
229
+ `build`, `lint` or `typecheck` select that check), run the project's real
230
+ commands, and return **PASS** or **FAIL** with the commands, their output and
231
+ each failing item.
232
+ Whether a failure predates the change is not judged by eye. A failure is
233
+ **pre-existing only** when the pre-change record lists it, or — Claude
234
+ Code — when `omc ralph verify --session <ralph's session id> --json` leaves
235
+ it out of `newFailures` (cancel leaves the baseline in place; check that the
236
+ JSON reports `baselinePresent: true` — without a baseline it reports every
237
+ current failure as new). **Everything else is new**, and so is a
238
+ pre-existing failure that points at a file the change touched (as in ralph).
239
+ If ralph was run again in this session (a resumed run), its first iteration
240
+ rewrote that baseline on the half-changed tree; then judge by the
241
+ pre-change record alone.
242
+ 2. **PASS** → the gate is met; go to the final report.
243
+ 3. **FAIL** → `Task(subagent_type="oh-my-claudecode:architect", ...)` diagnoses
244
+ the root cause (read-only), then `Task(subagent_type="oh-my-claudecode:executor", ...)`
245
+ makes the smallest fix inside the change's scope. The next cycle verifies
246
+ again with a **fresh** verifier, never the one that saw the failure.
247
+
248
+ Limits: at most 5 verifications. When the 5th still fails, stop without
249
+ another fix (a fix nobody verified is not a result). Stop early when the same
250
+ failure (same test, same error signature) comes back 3 times — that is a
251
+ fundamental problem for the user, not for another cycle. Never fix a baseline
252
+ failure inside this gate; report it.
253
+
254
+ **Codex (OMX):** run OMX `$ultraqa` with the goal (OMX still ships it). OMX
255
+ keeps no feedback baseline, so hand it the pre-change record, tell it not to
256
+ fix those failures, and report them apart; treat its outcome the same way.
156
257
 
157
258
  Report the real outcome:
158
259
  - **Goal met** → "ALL-IN-ONE COMPLETE" with the cycle count.
159
- - **Max cycles / same failure 3×** → "STOPPED" with ultraqa's diagnosis. Do
160
- **not** claim success if the gate did not reach goal-met.
260
+ - **5 failed verifications / same failure 3×** → "STOPPED" with the verifier's
261
+ evidence and the architect's diagnosis. Do **not** claim success if the gate did not reach
262
+ goal-met.
161
263
 
162
264
  ## Orchestrator rules
163
265
 
@@ -165,8 +267,8 @@ Report the real outcome:
165
267
  next begins. No skipping, no reordering, no running two stages' loops at once.
166
268
  - Emit one clear progress line at each stage boundary so the user always knows
167
269
  where the pipeline is (`[all-in-one] Stage 1/3 — planning…`, etc.).
168
- - Do not add a competing persistence loop or all-in-one-specific state file; the
169
- sub-skills own all looping and state.
270
+ - Do not add an all-in-one state file or a second persistence loop. Stages 1–2
271
+ own their loops and state; Stage 3's bounded cycle is the only loop here.
170
272
  - Treat a sub-skill's internal "stop"/"cancel" as the end of *that stage*, never
171
273
  as the end of the pipeline (see the Stage 1 and Stage 2 notes above).
172
274
 
@@ -178,7 +280,8 @@ When the pipeline ends (complete or stopped), give a concise honest summary:
178
280
  (1 line).
179
281
  - **Implementation**: stories/stages completed, files changed, the ralph critic
180
282
  verdict.
181
- - **QA**: ultraqa goal, PASS after N cycles or STOPPED-with-diagnosis.
283
+ - **QA**: the gate's goal, PASS after N cycles or STOPPED-with-diagnosis, and
284
+ the baseline failures that predate the change, listed apart.
182
285
  - **Unmet / scope-limited / deferred**: state plainly — never paper over a gate
183
286
  that did not pass.
184
287
 
@@ -205,21 +308,23 @@ first to expand it into a spec.
205
308
 
206
309
  ## Stop conditions
207
310
 
311
+ - The `omc` CLI check in §0 fails → guide the install/update; do not start.
208
312
  - Stage 1 cannot reach consensus → surface best plan, ask the user (don't build).
209
313
  - Stage 2 ralph hits a fundamental blocker → stop and report (don't run QA).
210
- - Stage 3 ultraqa exhausts cycles / repeats a failure 3× → report the diagnosis
211
- honestly (don't claim success).
314
+ - Stage 3 fails its 5th verification / sees the same failure 3× → report the
315
+ diagnosis honestly (don't claim success).
212
316
  - User says "stop" / "cancel" / "abort" at any point → run
213
317
  `/oh-my-claudecode:cancel` and stop.
214
318
 
215
319
  ## Final checklist
216
320
 
321
+ - [ ] §0: on Claude Code the `omc` CLI answered `omc ralph verify --help` with its usage (Codex: `omx --version`)
217
322
  - [ ] Stage 1 produced a consensus plan in `.omc/plans/` (or stopped honestly on
218
323
  no-consensus / checkpoint rejection)
219
324
  - [ ] Stage 2 received the plan path, completed all PRD stories, passed critic
220
325
  verification, and self-cancelled before Stage 3
221
- - [ ] Stages did not overlap (ralph fully ended before ultraqa began)
222
- - [ ] Stage 3 ran the chosen QA goal and reached goal-met (or reported STOPPED
223
- with diagnosis)
326
+ - [ ] Stages did not overlap (ralph fully ended before the gate began)
327
+ - [ ] Stage 3: a fresh verifier reported the chosen goal met (or STOPPED with
328
+ diagnosis); baseline failures reported apart, not fixed
224
329
  - [ ] Final report states plan/implementation/QA outcomes and any unmet items
225
330
  plainly
@@ -1,17 +1,18 @@
1
1
  ---
2
2
  name: compact-copy
3
- description: "(banker) /ready-compact resume 프롬프트에서 코드펜스 본문만 뽑아 최종 메시지를 '프롬프트-only'로 출력(response.md 기록 → /copy로 클립보드에 담김). 'compact-copy'/'프롬프트만 복사'/'resume 프롬프트만' 시 사용."
3
+ description: "(banker) 코드펜스로 감싼 resume 프롬프트(이전 형식 ready-compact 출력 등)에서 본문만 뽑아 최종 메시지를 '프롬프트-only'로 출력(response.md 기록 → /copy로 클립보드에 담김). 지금의 ready-compact 는 처음부터 프롬프트만 출력하므로 보통은 필요 없음. 'compact-copy'/'프롬프트만 복사'/'resume 프롬프트만' 시 사용."
4
4
  ---
5
5
 
6
6
  # compact-copy — resume 프롬프트만 추출 복사
7
7
 
8
- `/ready-compact` 출력은 「설명 + 코드펜스(resume 프롬프트) + 설명」 형태다. `/copy` 는 그
9
- **직전 어시스턴트 메시지 전체**를 클립보드와 `/tmp/claude-<uid>/response.md` 에 복사하므로
10
- 설명까지 함께 담긴다. 이 스킬은 **코드펜스 안 프롬프트 본문만** 남겨, 파일과(이어지는 `/copy`
11
- 로) 클립보드에 프롬프트-only 가 담기게 한다.
8
+ `/ready-compact` 는 0.14.0 부터 **프롬프트 본문만** 출력하므로(`[RESUME]`/`[HANDOFF]`), 바로 `/copy` 하면 된다.
9
+ 이 스킬은 그 밖의 경우, 곧 「설명 + 코드펜스(resume 프롬프트) + 설명」 형태의 출력(0.13.0 이전 ready-compact,
10
+ 다른 도구가 낸 resume 프롬프트)에서 프롬프트만 뽑을 때 쓴다. `/copy` 는 **직전 어시스턴트 메시지 전체**를
11
+ 클립보드와 `/tmp/claude-<uid>/response.md` 에 복사하므로 설명까지 함께 담긴다. 이 스킬은 **코드펜스 안
12
+ 프롬프트 본문만** 남겨, 파일과(이어지는 `/copy` 로) 클립보드에 프롬프트-only 가 담기게 한다.
12
13
 
13
14
  ## 언제 쓰나
14
- - `/ready-compact` 로 resume 프롬프트를 만든 직후, 그 **프롬프트만** 복사하고 싶을 때.
15
+ - 설명과 코드펜스가 섞인 resume 프롬프트 출력에서 그 **프롬프트만** 복사하고 싶을 때(지금의 `/ready-compact` 출력은 이미 프롬프트만이라 해당 없음).
15
16
  - `/copy` 로 전체를 저장한 뒤(response.md), 프롬프트만 남기고 싶을 때.
16
17
 
17
18
  ## 쓰지 않을 때
@@ -29,10 +30,10 @@ description: "(banker) /ready-compact resume 프롬프트에서 코드펜스 본
29
30
  ## 워크플로우
30
31
 
31
32
  ### 1) 프롬프트 본문 확보 (우선순위)
32
- 1. **1순위 — 직전 컨텍스트**: 방금 이 대화에서 `/ready-compact` 로 resume 프롬프트(코드펜스
33
- 안 `[RESUME]…`)를 만들었다면 **그 본문을 그대로** 쓴다(가장 신선·정확).
33
+ 1. **1순위 — 직전 컨텍스트**: 방금 이 대화에서 resume 프롬프트(`[RESUME]…` 또는 `[HANDOFF]…`, 코드펜스
34
+ 유무 무관)를 만들었다면 **그 본문을 그대로** 쓴다(가장 신선·정확).
34
35
  2. **폴백 — response.md(신선할 때만)**: 1순위가 없으면 `/tmp/claude-$(id -u)/response.md`
35
- 를 읽어 **첫 코드펜스 블록의 본문**을 추출한다. 블록이 여럿이면 `[RESUME]` 로 시작하는 블록
36
+ 를 읽어 **첫 코드펜스 블록의 본문**을 추출한다. 블록이 여럿이면 `[RESUME]`·`[HANDOFF]` 로 시작하는 블록
36
37
  우선, 없으면 가장 큰 블록. ⚠️ `/ready-compact` 와 이 스킬 사이에 `/copy` 가 없었다면
37
38
  response.md 는 **stale**(과거 내용)일 수 있다 → 본문이 resume 프롬프트가 맞는지 확인하고,
38
39
  아니면 사용자에게 알리고 멈춘다.
@@ -43,18 +44,18 @@ description: "(banker) /ready-compact resume 프롬프트에서 코드펜스 본
43
44
 
44
45
  ### 3) 클립보드 — 메시지 셰이핑 (★ 핵심 불변식)
45
46
  - 이 스킬의 **최종 어시스턴트 메시지는 프롬프트 본문 그 자체만** 출력한다.
46
- - **외곽 코드펜스로 감싸지 말 것** — ready-compact 템플릿은 프롬프트를 펜스로 감싸지만
47
- compact-copy 는 **감싸지 않는다**(펜스째 복사되면 붙여넣기가 오염된다).
47
+ - **외곽 코드펜스로 감싸지 말 것** — 펜스째 복사되면 붙여넣기가 오염된다(지금의 ready-compact 도
48
+ 같은 이유로 펜스 없이 출력한다).
48
49
  - **앞뒤 설명·보고를 같은 메시지에 넣지 말 것** — `/copy` 가 그 설명까지 통째로 복사한다.
49
50
  파일 기록·상태 확인은 **프롬프트를 내보내기 전**(도구 호출 단계)에 끝내고, 메시지에 마지막으로
50
51
  남는 것은 프롬프트뿐이게 한다.
51
52
  - 이후 사용자는 **`/copy` 한 번**으로 클립보드에 프롬프트-only 를 담는다(response.md 는 이미
52
- 프롬프트-only). 흐름: `/ready-compact` → `/compact-copy` → `/copy`.
53
+ 프롬프트-only). 흐름: 설명이 섞인 출력이면 `/compact-copy` → `/copy`. 지금의 `/ready-compact` 출력이면 `/copy` 만으로 충분하다.
53
54
 
54
55
  ## 검증 (셀프체크)
55
56
  - response.md 가 **프롬프트 본문만** 담는가(설명·표·외곽 펜스 없음)?
56
57
  - 최종 메시지가 프롬프트와 동일하고 **외곽 펜스/전후 설명이 없는가**?
57
- - 프롬프트가 `[RESUME]` 로 시작하며 ready-compact 원문과 **내용 동일**한가(추출 변형 없음)?
58
+ - 프롬프트가 `[RESUME]` 또는 `[HANDOFF]` 로 시작하며 원문과 **내용 동일**한가(추출 변형 없음)?
58
59
  - 경로를 `id -u` 로 계산했는가(**uid 숫자 하드코딩 금지**)?
59
60
 
60
61
  ## 함정
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: curation
3
- description: "(banker) 의사결정을 {선택지·권고안·근거·확신수준(0.00~1.00)·확신근거}로 구조화해 제시. --perf는 결과물 품질·완성도를 효율보다 우선. 'curation'/'큐레이션'/'결정 정리'/'선택지 정리' 시 사용."
3
+ description: "(banker) 의사결정을 {선택지·권고안·근거·확신수준(0.00~1.00)·확신근거}로 구조화해 제시. --perf는 결과물 품질·완성도를 효율보다 우선. --deep은 --perf에 더해 확신 0.80 이하 결정을 추가 조사·검토해 0.80 초과로 끌어올린 뒤 제시(끝내 못 넘으면 확신 미달로 표시하고 사용자 질문으로 전환). 'curation'/'큐레이션'/'결정 정리'/'선택지 정리' 시 사용."
4
4
  ---
5
5
 
6
6
  # curation — 결정 큐레이션 (선택지·권고·확신)
@@ -9,7 +9,8 @@ description: "(banker) 의사결정을 {선택지·권고안·근거·확신수
9
9
  "그냥 골라주기"가 아니라 **선택지 → 권고 → 근거 → 확신수준 → 확신 근거**를 명시해,
10
10
  사용자가 권고를 검증·재정(裁定)할 수 있게 한다.
11
11
 
12
- **런타임:** 이 스킬은 외부 도구·프레임워크 의존이 **전혀 없다**(순수 출력 규약).
12
+ **런타임:** 이 스킬은 외부 도구·프레임워크 의존이 **전혀 없다**(기본·`--perf` 는 순수 출력 규약).
13
+ `--deep` 은 그 런타임에 이미 있는 조사 수단(파일 읽기, 셸, 웹 검색, 하위 에이전트)을 쓰지만 별도 설치는 필요 없다.
13
14
  Claude Code(OMC)·Codex CLI(OMX) 양쪽에서 **동일하게** 동작한다.
14
15
 
15
16
  ## 언제 쓰나
@@ -54,6 +55,29 @@ Claude Code(OMC)·Codex CLI(OMX) 양쪽에서 **동일하게** 동작한다.
54
55
  `--perf`는 **후자(품질)로 기운다**. 권고 근거·확신근거에 이 기준이 어떻게 작용했는지 드러낸다.
55
56
  (기본 curation은 노력·품질·시간을 **균형** 있게 저울질한다.)
56
57
 
58
+ ## --deep (품질 우선 + 확신 하한)
59
+ `curation --deep` 은 `--perf` 처럼 동작하되(위 채택 기준 포함), **확신수준이 0.80 이하인 결정을 그대로 내놓지 않는다.**
60
+ 조사와 검토를 충분히 더 해서 확신을 **0.80 초과**로 올린 뒤 제시한다.
61
+
62
+ - **경계**: 0.80 이하 = 추가 조사 대상, 통과 = 0.80 초과. 0.80 정각도 조사 대상이다
63
+ ("0.80 이하이면 더 조사"와 "0.80 이상이 되도록"을 함께 만족하는 해석).
64
+ - `--deep --perf` 는 `--deep` 과 같다.
65
+
66
+ ### 절차
67
+ 1. 모든 결정을 `--perf` 기준으로 1차 큐레이션하고 확신수준을 매긴다.
68
+ 2. 0.80 이하인 결정마다 **확신을 막는 변수**를 적는다. 무엇을 확인하면 확신이 오르거나 내리는가.
69
+ 3. 그 변수를 직접 겨냥해 **조사**와 **검토**를 한다.
70
+ - 조사: 저장소의 코드·설정·이력, 공식 문서와 1차 자료, 웹 검색(런타임에 있을 때), 안전한 재현·측정(읽기 전용 명령, 임시 디렉터리 실험).
71
+ - 검토: 권고에 가장 강하게 맞서는 선택지를 최선의 형태로 세워 반박해 본다. 가능하면 독립 검토자(읽기 전용 하위 에이전트 등)에게 권고와 근거를 넘겨 반론을 받는다.
72
+ 4. 새 증거로 권고안·근거·확신수준을 **다시 산정**한다. 증거가 권고를 뒤집으면 권고를 바꾼다. 확신 숫자만 올리지 않는다.
73
+ 5. 0.80 초과가 될 때까지 3~4를 반복한다. **결정마다 최대 3회차**이고, 새 증거가 나오지 않은 회차가 생기면 그 결정의 조사를 멈춘다.
74
+ 6. 그래도 0.80 이하로 남은 결정은 **확신을 부풀리지 않는다.** "확신 미달"로 표시하고, 남은 변수를 사용자가 답할 수 있는 질문(가능하면 선택형)으로 바꿔 함께 제시한다. 답을 받으면 그 결정만 다시 산정한다.
75
+
76
+ ### 출력 추가
77
+ - 결정마다 **조사 이력**을 붙인다: 회차별로 확인한 것(출처·명령·파일), 그 결과, 확신 변화(예: `0.65 → 0.84`).
78
+ - 처음부터 0.80 을 넘은 결정은 "추가 조사 불필요"로 한 줄만 남긴다.
79
+ - 표 형식이면 `조사 이력` 열을 추가하고, 길면 표 아래에 결정 번호별로 적는다.
80
+
57
81
  ## 적용 범위
58
82
  - 호출 시점의 **현재 작업/요청에 걸린 결정들**에 이 형식을 적용한다.
59
83
  - 이후에도 같은 작업 맥락에서 결정이 나오면 형식을 유지한다(사용자가 바꾸라기 전까지).
@@ -71,10 +95,19 @@ Claude Code(OMC)·Codex CLI(OMX) 양쪽에서 **동일하게** 동작한다.
71
95
  - **확신수준**: 0.75
72
96
  - **확신수준 근거**: 질의·집계 요구가 확실하면 SQLite 우위가 뚜렷(↑). 단 로그량·배포 환경(임베디드 등)이 미확인이면 파일이 나을 여지(↓). `--perf`라 "싸고 대충"인 파일보다 완성도 높은 SQLite로 기울였다.
73
97
 
98
+ **같은 질문을 `curation --deep` 으로 부르면**, 0.75 는 0.80 이하이므로 멈추지 않고 조사를 더 한다:
99
+ - **확신을 막는 변수**: 로그량, 배포 환경, 질의 요구.
100
+ - **조사 이력**:
101
+ - 1회차: 배포 설정과 기존 로그 코드 확인 → 서버 배포(임베디드 아님), 하루 약 2만 건, 대시보드가 기간별 집계를 요구 → `0.75 → 0.83`.
102
+ - 검토: 가장 강한 반대안(파일 + 회전, 집계는 배치)을 세워 봤으나 동시쓰기 내구성과 질의 요구를 못 넘음 → 권고 유지.
103
+ - **확신수준**: 0.83 (0.80 초과라 제시)
104
+
74
105
  ## 함정
75
106
  - **선택지 억지 금지** — 결정이 없는데 형식을 씌우지 말 것.
76
107
  - **권고는 선택지 안에서** — 제3의 절충안을 슬쩍 끼우면 감사 가능성이 깨진다(정 필요하면 그것도 선택지로 명시).
77
108
  - **확신수준은 정직하게** — 높게 부풀리지 말 것. 미해결 변수가 있으면 낮추고 그 이유를 확신근거에 적는다.
78
109
  - **--perf ≠ 무조건 비싼 옵션** — 품질이 동등하면 효율적 옵션을 택한다. --perf는 품질이 갈릴 때의 **타이브레이커**다.
110
+ - **--deep 은 확신을 사는 게 아니라 증거를 사는 것** — 근거 없이 숫자만 올리거나, 결정을 쪼개거나 조건부 권고로 바꿔 0.80 을 맞추지 않는다(필요하면 그것도 선택지로 명시).
111
+ - **조사 명목의 위험 행위 금지** — 배포·삭제·외부 전송·되돌리기 어려운 실험은 하지 않는다. 필요하면 확신 미달 질문으로 돌린다.
79
112
 
80
- ARGUMENTS: [--perf] [결정 맥락/질문] (없으면 현재 작업의 결정 분기에 적용)
113
+ ARGUMENTS: [--perf] [--deep] [결정 맥락/질문] (없으면 현재 작업의 결정 분기에 적용. --deep 은 --perf 를 포함)
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: graceful_pause
3
+ description: "(banker) 진행 중인 작업을 지금 단계까지만 마무리하고 멈춘 뒤, 상태를 보고하고 사용자 중간 지시를 받을 준비를 함. cancel 과 달리 모드 상태와 계획을 지우지 않음. 작업 중 대기 입력으로 넣어 두면 읽히는 시점에 동작. 'graceful_pause'/'잠깐 멈춰'/'지금 단계만 끝내고 멈춰'/'중간 지시' 시 사용."
4
+ argument-hint: "[멈춘 뒤 다룰 지시나 메모]"
5
+ ---
6
+
7
+ # graceful_pause: 지금 단계만 끝내고 멈춤
8
+
9
+ 인자: `$ARGUMENTS`
10
+ - 선택. 멈춘 뒤 다룰 지시나 메모
11
+ - Codex: 사용자 메시지에서 읽음
12
+
13
+ ## 동작 시점
14
+
15
+ - 작업 도중 사용자가 대기 입력으로 넣어 두면, 큐에서 넘어와 이 스킬을 읽는 시점에 동작
16
+ - 즉시 끊는 장치 없음. 읽기 전에 끝난 동작은 되돌리지 않음
17
+ - 바로 끊어야 하면 Esc. 이 스킬의 몫이 아님
18
+ - 함께 들어온 다른 대기 입력: 이 스킬 먼저 처리. 나머지는 정지 보고의 "받은 지시"에 넣음
19
+ - 이미 작업이 끝난 뒤에 읽혔으면 1단계와 2단계는 건너뛰고 정지 보고부터 시작
20
+
21
+ ## cancel 과 차이
22
+
23
+ | 항목 | graceful_pause | cancel |
24
+ |---|---|---|
25
+ | 진행 중인 단계 | 끝까지 마무리 | 그 자리에서 중단 |
26
+ | 켜져 있는 모드 | 그대로 둠 | 실행을 끝냄 |
27
+ | 모드가 남기는 기록 | 손대지 않음 | 모드마다 다름. ralph 상태는 지우고, autopilot 진행 상황과 ultragoal 원장은 남김 |
28
+ | 이후 | 지시를 받아 같은 흐름 재개 | 모드를 다시 시작해 남은 기록부터 이어 감 |
29
+
30
+ ## 절차
31
+
32
+ 1. 지금 단계 확인
33
+ - 지금 단계: 이미 시작한 도구 동작 하나와, 그 동작이 남긴 불일치를 닫는 최소 작업
34
+ - 예: 함수 이름을 바꾸던 중이면 그 이름을 쓰는 곳까지 바꿈
35
+ - 포함하지 않음: 스토리나 할 일 목록의 다음 항목
36
+ 2. 지금 단계 마무리
37
+
38
+ | 진행 중인 동작 | 처리 |
39
+ |---|---|
40
+ | 파일 수정 | 그 파일을 일관된 상태까지 수정. 반쯤 고친 파일을 남기지 않음 |
41
+ | 실행 중인 명령이나 테스트 | 결과 받기 |
42
+ | 백그라운드 작업 | 멈추지 않음. 이름과 출력 위치만 기록 |
43
+ | 이미 띄운 하위 에이전트 | 결과를 기다리거나 백그라운드로 둠. 새로 띄우지 않음 |
44
+
45
+ 3. 하지 않는 것
46
+ - 다음 단계 시작 (예: 다음 파일, 다음 스토리)
47
+ - 되돌리기 어려운 동작
48
+ - 커밋과 push
49
+ - 배포와 게시
50
+ - 삭제와 외부 전송
51
+ - 모드 상태와 계획 파일 삭제. `cancel` 실행
52
+ 4. 정지 보고. 대화에만 짧게
53
+
54
+ | 항목 | 내용 |
55
+ |---|---|
56
+ | 끝낸 단계 | 방금 마무리한 것 |
57
+ | 현재 상태 | 검증 결과와 커밋하지 않은 변경 |
58
+ | 진행 중인 것 | 실행 중인 백그라운드 작업과 켜져 있는 모드 |
59
+ | 다음 예정 단계 | 1개에서 3개 |
60
+ | 열린 결정 | 사용자 판단이 필요한 것 |
61
+ | 받은 지시 | 인자 메모와 함께 들어온 대기 입력. 그 지시가 계획에 주는 영향 |
62
+
63
+ 5. 지시 대기
64
+
65
+ | 런타임 | 방법 |
66
+ |---|---|
67
+ | Claude Code | `AskUserQuestion` 으로 질문. 선택지는 계획대로 계속, 지시 반영 후 계속(자유 입력), 상태를 둔 채 중단. 질문이 열려 있는 동안은 응답이 끝나지 않으므로 ralph 같은 지속 모드도 끼어들지 않음 |
68
+ | Codex | 구조화 질문 도구(`request_user_input` 등)가 있으면 사용. tmux 안이면 `omx question` 도 가능. 둘 다 없을 때는 아래 표 |
69
+
70
+ - Codex 에서 질문 도구가 없을 때
71
+
72
+ | 지속 모드 (ralph, ultraqa, team 등) | 처리 |
73
+ |---|---|
74
+ | 꺼짐 | 짧은 질문 하나로 응답 종료 |
75
+ | 켜짐 | 응답을 끝내도 그 모드의 Stop 훅이 작업을 다시 이어 가게 하므로 멈출 수 없음. 이 사실을 정지 보고에 적고, 계속할지 `cancel` 할지 묻기 |
76
+
77
+ 6. 재개
78
+
79
+ | 사용자 답 | 처리 |
80
+ |---|---|
81
+ | 계속 | 다음 예정 단계부터 진행 |
82
+ | 새 지시 | 영향받는 단계를 다시 계획. 범위가 바뀌면 바뀐 계획을 먼저 보여 주고 승인 뒤 진행 |
83
+ | 중단 | 상태를 둔 채 멈춤. 세션을 끝낼 예정이면 `ready-compact --hand-off` 로 새 세션용 노트와 프롬프트 준비를 안내 |
84
+ | 취소 | 사용자가 명시할 때만 `cancel` 실행 |
85
+
86
+ - 중단 중인 지속 모드
87
+ - Claude Code: 응답이 끝날 때마다 OMC Stop 훅이 한 번씩 계속하라는 메시지를 넣음. 사용자가 재개를 말할 때까지 작업을 진행하지 않고 정지 중이라는 한 줄만 답함
88
+ - 예외: 직전 출력이 `ready-compact` 의 resume 프롬프트였다면 그 한 줄 대신 같은 프롬프트를 그대로 다시 출력. 마지막 메시지가 프롬프트여야 `/copy` 가 맞는 것을 복사함
89
+ - 이 메시지까지 멈추려면 `cancel` 이 필요함을 알림. 그 모드가 남기는 기록은 위 표의 cancel 열
90
+
91
+ ## 함정
92
+
93
+ - 정지 보고를 핑계로 다음 단계를 미리 하지 않음
94
+ - 정지 중 받은 계속 신호(훅 메시지)는 사용자 승인이 아님. 사용자가 재개를 말할 때까지 모든 응답에 해당
95
+ - 정지 중 도착한 백그라운드 작업 결과: 보고에 추가만 함. 후속 작업은 시작하지 않음