# A축 09~16편 — 기록된 산출물을 시험 매수 API 에 **진짜로 POST** 한 실측 (Part 2)

> **환경 고지**
> 격리 임시 PostgreSQL 클러스터(`weltiq_xfer2` · 포트 55542 · Unix 소켓 전용 · TCP 수신 끔) · **합성 호가만** ·
> API `http://127.0.0.1:8902` · 픽스처 계정 `xfer2@example.invalid`(plan pro, `WELTIQ_FORWARD_TEST_MONTHLY_LIMIT=200`).
> **운영 배포 아님 · 운영 DB 아님 · 운영 `.env` 아님 · 실계좌 아님 · 외부 거래소 주문 아님 · 커밋 없음.**
> 돌고 있는 로컬 엔진(8722~8724)과 DB `weltiq_r1_claude` 는 건드리지 않았다(실행 전후 확인).
> 커밋 SHA **`ef529e4c9bc9d842329769abbd9f597d324b57e0`**.
> 실행 시각 **2026-09-28 01:41:34 → 01:42:18 KST** (44초, 하네스 `run_part2.py`, 증거 원문 `part2-evidence.json`).
> **도구를 한 개도 새로 설치하지 않았다.** 입력은 전부 `docs/tutorials/a/NN-*.md` 와 `reports/a/*/` 의 기록이고
> 케이스마다 `source`(출처)·`touched`(손댄 것)를 증거 JSON 에 적었다.

**환경을 운영과 같게 맞춘 것**
- `market.license`: `krx` **open** · `us-equity` **open** 행을 넣었다(운영 실측과 동일). `cme` 는 **행을 넣지 않아
  기본값 `license_pending`** 그대로 뒀다 — 실측 결과 `422 market_not_licensed` (E3). **CME 가 막히는 것도 결과다.**
- `market.listings`(전부 `tradable=true`): `BTCUSDT`(binance-spot, alt `binance-usdm`) · **`BTCUSDT.PERP`**(binance-usdm,
  `asset_class=futures`) · `SOLUSDT`(binance-spot) · `NVDA`·`AAPL`(us-equity) · `005930`(krx).
  → 첫 실행에서 `binance-usdm BTCUSDT unlisted` 로 시세가 안 붙었다. `universe.listed()` 가 venue→`asset_class`
  (`binance-usdm`=`futures`)까지 보기 때문에 **무기한은 별 행이 필요하다** — `alt_venues` 만으로는 안 열린다.
- 브로커·엔진 프로필: `binance-spot v1` · `binance-usdm v1` · **`us-equity v4`**(`shortable=True`) · `krx v1`.
- 합성 호가는 **그 도구 기록에 적힌 가격대**로: binance-spot BTCUSDT `85945.52/85945.54`(16편 증거 종가 85945.53) ·
  SOLUSDT `117.82/117.83`(13편 실체결 117.4~117.86) · binance-usdm BTCUSDT `76863.3/76863.5`(15편 진입가 76863.2 +1틱) ·
  NVDA `226.24/226.26`(09편 실측 226.25) · AAPL `338.94/338.99`(11편 `62-quote-in.json` 원문 그대로) ·
  krx 005930 `70000/70100` — **이 마지막 하나만 어느 도구 기록에도 없는 통제용 임의 값이다.**
- 실측한 틱·lot·최소노셔널: binance-spot BTCUSDT `0.01/0.00001/5` · **binance-spot SOLUSDT `0.01/0.00001/10`**
  (SOLUSDT 는 `SYMBOL_RULES` 에 없어 venue 기본값을 쓴다) · binance-usdm BTCUSDT `0.1/0.001/50` ·
  us-equity `0.01/1/1` · krx 005930 `100/1/1`.

**계좌·한도 (전체 실행 결과)** — 계좌 9개 표(`account.accounts/portfolios/sleeves/ledger/direction_leases/
reduce_reservations` · `trading.intents/fills/order_transitions`) 시작·종료 스냅샷 **완전 동일**(`account_unchanged_vs_E0: true`).
한도 원장은 `entry_accepted +1` **9건**, `placement_rejected:market_closed −1` **4건** → 순 **5회** 사용(200 중 195 남음).
us-equity·krx 는 지금 폐장이라 **접수는 되고 배치에서 거절되며 한도가 복원된다** — 계약 §6 그대로 실측됐다.

---

## 판정 표

| 편 | 원본 값의 출처 | 손댄 것 | 판정 | 응답 코드·사유 |
|---|---|---|---|---|
| **09 InvestSkill** | `09-investskill.md:133-135,302` — us-equity NVDA · BULLISH/BUY · `entry>226.60 stop=225.70 tp=228.40 qty=1`. 시한 후보는 278행 "not trigger before the **2026-09-21 16:00 ET** close" 하나 | 시한만 보탰다(도구 시각은 과거) | **PASS-보강** (시한) | C09a `422 exit_plan_deadline_required` → C09b(`max_duration_hours=48`만) **여전히** `422 exit_plan_deadline_required` → C09c(도구의 16:00 ET) `422 invalid_close_at "close_at must be in the future"` → **C09d `201` long qty 1**, 집행 `rejected:market_closed`(폐장·한도 복원) |
| **10 NautilusTrader** | `reports/a/10-nautilus/RUN-LOG.md:119-120` — binance-spot BTCUSDT `BUY MARKET 0.01 @ 65043.98`(2026-07-14) → `SELL MARKET 0.01 @ 75644.48`(2026-09-15) | 기록된 SELL 가를 `take_profit` 으로 옮겼다. 63일 보유를 **168h 로 잘랐다** | **PASS-보강** (시한 절단) | C10a `422 exit_plan_deadline_required` → C10b(63일=5,443,200초) `422 invalid_close_after_seconds "1..604800"` → **C10c `201`** qty 0.00008. 진입 지정가 65043.98 이 현재 대역 85,945 에서 **미체결(`entering`)** 로 남는다 |
| **11 ALTA** | `11-alta.md:232,344` — 끝까지 간 세 사이클 전부 `expression=null`, **종목 AAPL 은 필자가 넣었다**. 도구가 낸 유일한 숫자는 `61-alta-shadow-fill.json` `fill_price 339.159495` | (판정용 부수 실측) 시한 3600초를 보탰다 / 그 뒤 가격 반올림 | **N/A** — 도구가 낼 진입 제안이 없다<br>(부수: **PASS-반올림**) | C11a `422 invalid_limit_price "px 339.159495 is not a multiple of tick 0.01"` → C11b(`339.16`) **`201`** long qty 1, 집행 `rejected:market_closed` |
| **12 TradingAgents** | `12-tradingagents.md:274,277` — rE1(NVDA, 2026-03-30) **Action Sell · Entry Price 173.2 · Stop Loss 178.91 · Time Horizon 3–6 months**. **목표가는 기록에 없다** | 목표가는 **안 넣었다**. 3개월을 **168h 로 잘랐다** | **PASS-보강** (시한 절단) — 숏이 정면 통과 | C12a `422 exit_plan_deadline_required` → C12b(3개월=7,776,000초) `422 invalid_close_after_seconds` → **C12c `201` side `short` · `us-equity` v4 · qty 1** → 집행 `rejected:market_closed`. 별도 C12d(손절 178.91 을 목표가로 재사용) `422 invalid_exit_plan "short: take_profit must be below stop_loss"` |
| **13 hummingbot** | `hummingbot-trades.sqlite` `TradeFill` — **SOL-USDT** `BUY 117.8332` / `SELL 117.7068`(amount 0.5, fee percent 0.001) · `13-hummingbot.md:206` 22체결 11왕복 약 30분 | 왕복 한 쌍을 진입·목표로 **재구성**(도구가 방향·레벨을 선언하지 않는다), 30분을 시한으로, 가격을 틱 0.01 로 반올림 | **PASS-반올림** | C13a `422 exit_plan_deadline_required` → C13b `422 invalid_take_profit "117.7068 is not a multiple of tick 0.01"` → **C13c `201`** qty 0.10609 → 진입 체결 `117.83`, **`close_reason=take_profit` · `exit_trigger_px 117.82` · 청산 체결 `117.8032175`** (완결 왕복) |
| **14 QuantDinger** | `14-quantdinger.md:294-347` — 격자 산출은 **기간 `fast/slow 60/180`** 과 **실측 비용 `commission 0.0010`·`slippage 0.0001`**. 가격 레벨·시한 없음(손절 5% 는 생성 코드의 예제 상수). 방향 롱 | 계획 **전부**를 보탰다(시한 3600초) | **PASS-보강** — 본문에 남는 도구 값은 `side=long` 하나 | C14a(`exit_plan {}`) `422 exit_plan_deadline_required` → C14b(`exit_plan {}` + `max_duration_hours=24`) **여전히** `422 exit_plan_deadline_required` → **C14c `201`** qty 0.00008, 진입 체결 `85954.144553`, `auto_close armed` |
| **15 Moss** | `21-moss-own-backtest-30d.json` `trades[1]` — **SHORT · entry 76863.2 · exit 75943.85 · exit_reason `take_profit` · 1.5h · leverage 10** (BTC/USDT 15분봉) | 목표가를 틱 0.1 로 반올림(`75943.85 → 75943.8`, 동가라 숏에 먼 쪽). 레버리지 10·`sl_atr_mult 2.0`·`tp_rr_ratio 3.3` 은 **넣을 칸이 없다** | **PASS-반올림** | C15a `422 exit_plan_deadline_required` → C15b `422 invalid_take_profit "75943.85 is not a multiple of tick 0.1"` → **C15c `201` side `short`** qty 0.001 → 진입 체결 **`76863.2`**(기록가와 동일), **`close_reason=take_profit` · `exit_trigger_px 75900.2` · 청산 체결 `75907.89001`** |
| **16 OpenAlice** | `43-agent-cp1-decision.json` — `sma_cross(30,80)` · `trailing_stop 2.0%` · **`fixed_qty 0.005`** · 롱. `55-agent-stop-pct-cp1.json` 하드 손절 **`stop_pct 3.0`**. 절대 기준가는 `43-agent-cp0-decision.json` 증거 종가 **85945.53** 뿐 | 손절 = 85945.53×0.97 = `83367.1641` → 틱 0.01 로 `83367.16`. 시한은 도구에 없어 계약 상한 168h 을 보탰다 | **PASS-반올림+보강** | C16a(qty 0.005 명시) `422 invalid_request / extra_forbidden: body.qty` → C16b `422 exit_plan_deadline_required` → C16c(`max_duration_hours=72`만) **여전히** `422 exit_plan_deadline_required` → **C16d `201`** qty 0.00008, 진입 체결 `85954.144553`, `armed` |
| *(환경 통제)* | 픽스처 | — | — | E1 krx 롱 `201`(라이선스 open 확인) · E2 krx 숏 `422 unsupported_direction "krx does not support short entries"` · **E3 cme `422 market_not_licensed "cme does not allow orders on this instance"`** |

---

## 09편 InvestSkill — 레벨은 그대로 통과, 시한은 도구가 못 준다

- 도구가 낸 숫자 셋(226.60·225.70·228.40)은 **하나도 안 고치고** 통과했다 — us-equity 틱 0.01 의 배수이고, 롱이라
  `take_profit > stop_loss` 도 만족한다. `qty=1` 은 보내지 않았고 서버가 같은 값 1주를 정했다(`rule: one_share_or_contract`).
- **도구에 시한이 없는 게 아니라, 있는데 못 쓴다.** `Thesis Invalidation` 넷째 줄이 "2026-09-21 16:00 ET 전에
  안 걸리면 취소하라"고 숫자로 적었다. 그 시각을 그대로 `close_at` 에 넣으니 `422 invalid_close_at
  "close_at must be in the future"` — **출력에 발행일이 안 적혀 있다는 12편의 결함이 09편에도 같은 형태로 있다.**
- 그래서 통과한 회차의 시한은 같은 편 259행의 **필자가 친 테두리 3시간**이다 — 도구 산출이 아니라고 본문에 적었다.
- `max_duration_hours=48` 만으로는 안 된다(C09b). `max_duration_hours` 는 수명 상한이고 `exit_plan` 의 시한이 아니다.
- 집행은 `rejected:market_closed`(ET 일요일). 한도 1회가 복원됐다.

## 10편 NautilusTrader — 계약이 도구의 보유기간을 담지 못한다

- 완결 거래는 `BUY 0.01 @ 65043.98` → `SELL 0.01 @ 75644.48`, **63일** 보유였다. 63일을 초로 넣으면
  `422 invalid_close_after_seconds "1..604800"` — 계약 상한은 **168시간**이다. **이 도구의 대표 거래는 시험 매수로
  끝까지 담기지 않는다.** 168h 로 자른 회차만 접수된다.
- 자른 회차도 **체결되지 않았다**: 진입 지정가 65043.98 은 2026-07-14 봉의 값이고 합성 호가는 기록 대역 85,945 라서
  `entering` 에서 멈춘다. 계약 §3.3("gap 을 판정하지 않는다") 그대로 거절도 안 되고 체결도 안 된다.
- 손절 레벨은 기록에 없다(±0.4% 브래킷은 1시간봉 스윕의 **비율**이고 레벨이 아니다) — 안 넣었다.

## 11편 ALTA — 넣을 값이 없다. 다만 도구가 낸 유일한 숫자가 틱에서 깨진다

- 끝까지 간 세 사이클이 전부 `expression=null` 이고 종목 AAPL 은 필자가 넣었다. **진입 제안이 0건이라 이관할 본문이
  없다 → N/A.**
- 도구가 실제로 계산해 낸 숫자는 `evaluate_shadow_fill` 의 `fill_price 339.159495` 하나다. 그것을 `limit_price` 로
  넣으니 `422 invalid_limit_price "px 339.159495 is not a multiple of tick 0.01"` — **ALTA 의 체결 정책은 소수 6자리
  가격을 내고 us-equity 틱은 0.01 이다.** 반올림하면 통과한다(C11b `201`).
- 종전 판정이 X 의 사유에 "우리 쪽 `us-equity license_pending`" 을 덧붙였는데 **우리 쪽 벽은 없다** — 이번 실측에서
  us-equity 는 `open` 이고 접수된다. X 의 사유는 전부 저쪽이다.

## 12편 TradingAgents — 숏이 정면으로 통과했다

- **`side="short"` · `venue="us-equity"` · `limit_price="173.2"` · `stop_loss="178.91"` 이 `201` 로 접수됐다**
  (`execution_model {"profile_id":"us-equity","version":4}`, `qty 1`, `affects_account false`).
  방향을 사람이 롱으로 뒤집는 단계가 실제로 사라진다.
- **목표가는 기록에 없어서 안 넣었다.** 넣으면 안 되는 이유도 실측했다 — 손절 178.91 을 목표가 칸에 재사용하면
  `422 invalid_exit_plan "short: take_profit must be below stop_loss"` 다. 숏은 목표가 < 손절가라서 도구가 손절로 낸
  숫자를 목표로 쓰는 것은 계약 단계에서 막힌다.
- **시한은 잘라야 한다.** 도구가 적은 `Time Horizon: 3–6 months` 의 하한 3개월(7,776,000초)은
  `422 invalid_close_after_seconds` 다. 168h 로 잘라 넣었고, 그 사실이 곧 "이 판단의 유효기간을 계약이 담지 못한다"다.
- 집행은 `rejected:market_closed`(ET 일요일) — 한도 복원. 숏이 **체결·청산까지** 도는 것은 15편에서 확인했다.

## 13편 hummingbot — 실체결가가 우리 틱 격자에 안 맞는다

- 종목이 **SOL-USDT** 다(종전 문서의 호출 예시는 BTCUSDT 로 적혀 있다). `TradeFill` 의 실체결 `117.8332`·`117.7068` 은
  `binance-spot` SOLUSDT 틱 **0.01** 의 배수가 아니다 → `422 invalid_take_profit`. SOLUSDT 는 `SYMBOL_RULES` 에 없어
  venue 기본값(tick 0.01 · min_notional **10**)을 쓴다.
- 반올림(117.83 / 117.71) 뒤 `201`, 서버 수량 **0.10609 SOL**(`reference_px 117.825`). 진입 117.83 체결 →
  **목표가 발동 청산**: `close_reason take_profit` · `exit_trigger_px 117.82` · 청산 체결 `117.8032175`.
  **8편 중 완결 왕복이 실제로 돈 둘 중 하나다.**
- 다만 방향·진입레벨·시한은 도구가 선언한 것이 아니라 왕복 한 쌍과 30분 회차에서 **재구성**했다 — 마켓메이킹은
  방향 판단을 내지 않는다.

## 14편 QuantDinger — 옮길 도구 값이 `side` 하나뿐이다

- 격자 산출은 **기간**(60/180 → 120/360)과 **비용**(0.0010 · 0.0001)이다. 시험 매수 본문에는 기간 칸도 비용 칸도 없다.
- 손절 5% 는 생성 코드의 예제 상수이고 **진입가가 있어야 절대값이 된다** — 도구가 진입가를 안 낸다. 그래서
  `exit_plan {}` 으로 보냈고 `422 exit_plan_deadline_required`. `max_duration_hours=24` 를 얹어도 **같은 422** 다.
- 시간만 준 회차(`close_after_seconds 3600` = 도구가 쓴 1시간봉 한 봉)는 `201` 이고 체결도 된다
  (진입 `85954.144553`, `armed`). **접수는 되지만 본문에 남은 도구 값은 `side=long` 하나다.**

## 15편 Moss — 도구의 청산 사유와 우리 `close_reason` 이 같은 값으로 맞았다

- 옮길 값은 36 파라미터가 아니라 **도구 자기 백테스트의 거래 행**이다: `trades[1]` = SHORT · entry 76863.2 ·
  exit 75943.85 · `exit_reason take_profit` · 1.5h. (파라미터 쪽 `sl_atr_mult 2.0`·`tp_rr_ratio 3.3` 은 **비율**이라
  절대 레벨이 없고, `base_leverage 10.0` 은 시험 매수에 칸이 없다.)
- 목표가 `75943.85` 는 `binance-usdm` BTCUSDT 틱 **0.1** 의 배수가 아니다 → `422 invalid_take_profit`.
  `75943.8` 로 반올림(0.1 격자에서 동가라 숏에 먼 쪽을 골랐다) 뒤 `201`, `side short`, qty 0.001.
- 진입이 **기록가 그대로 `76863.2`** 에 체결되고, 목표가가 발동해 `close_reason take_profit` ·
  `exit_trigger_px 75900.2` · 청산 체결 `75907.89001`. **도구가 적은 `exit_reason` 과 우리 `close_reason` 이 같은
  이름으로 맞은 유일한 편이다.**

## 16편 OpenAlice — 수량 칸이 계약으로 사라지고, 비율 손절은 반올림을 요구한다

- 도구가 스스로 고친 `fixed_qty 0.005` 를 `qty` 로 넣으면 `422 invalid_request / extra_forbidden: body.qty`
  (감사 기록 `field_errors: [{code: extra_forbidden, field: qty}]`). 자기수정 다섯 칸 중 수량 칸은 검증되지 않는다는
  종전 서술이 실측으로 확인됐다.
- 하드 손절은 **비율**(`stop_pct 3.0`)이고 절대값은 도구 증거의 종가 85945.53 을 곱해야 나온다 →
  `83367.1641` 은 틱 0.01 배수가 아니다. `83367.16` 으로 반올림하니 `201`, 진입 체결 `85954.144553`.
- 시한은 도구 결정문 어디에도 없다. `max_duration_hours=72` 만으로도 `422 exit_plan_deadline_required` 라
  계약 상한 604,800초를 **보탰다** — 도구 값이 아니다.
- 덧붙임: `43-agent-cp1-decision.json` 의 증거 종가는 **149.90** 이다(도구 자신이 "BTCUSDT 실시간과 동일하다고
  보장되지 않는다"고 적었다). cp1 의 그 값으로 손절을 계산하면 BTCUSDT 대역에서 수백 배 어긋난다 — **절대 레벨의
  기준가를 cp0 증거(85945.53)에서 가져와야 했다는 사실 자체가 이 도구 출력의 결함이다.**

---

## 종전 등급과 대조 (어긋나는 것만)

종전 등급: 09 **A** · 10 **A** · 11 **X** · 12 **S** · 13 **A** · 14 **A** · 15 **S** · 16 **A**.
**등급 자체가 뒤집힌 편은 없다.** 어긋난 것은 등급을 받쳐 준 **근거와 예시**다.

1. **`A_TOOLS_TRIAL_ORDER_2026-09-27.md` 의 「호출」 블록 숫자 대부분이 도구 기록 값이 아니다.**
   8편 중 도구 기록의 레벨을 그대로 쓴 것은 **09**(226.60/225.70/228.40)와 **12**(173.2/178.91) **둘뿐**이다.
   10 은 `take_profit="51000" stop_loss="49000"`, 13 은 시한 `180`, 14 는 `51000/49000`, 15 는 `51500/49700`,
   16 은 `52000/48500` — 전부 그 문서가 만든 예시다. 실제 기록 값을 넣으면 **10·13·15·16 은 넣는 순간 422 를 받는다.**

2. **13편은 종목이 틀렸다.** 문서의 호출은 `symbol="BTCUSDT"` 인데 13편의 실체결은 **SOL-USDT** 다. 그리고 SOLUSDT 는
   `SYMBOL_RULES` 에 없어 venue 기본 최소노셔널 **10 USDT**(BTCUSDT 는 5)를 쓴다 — 수량도 0.10609 로 다르다.

3. **「시한이 필수 필드라 유효기간 사고를 계약이 막는다」는 절반만 맞다(12·10).** 계약은 시한을 **요구**하지만
   **168시간까지만 담는다.** 12 의 `Time Horizon: 3–6 months`(7,776,000초)와 10 의 63일 보유(5,443,200초)는
   둘 다 `422 invalid_close_after_seconds` 다. **도구의 유효기간을 우리가 자르는 것이고, 자른 뒤의 회차는 도구가
   낸 거래가 아니다.** 이 절단은 그 문서에 적혀 있지 않다.

4. **틱 배수 위반이 「54편의 756.2436」 하나가 아니다 — 이 8편에서 넷이다.**
   `339.159495`(11, tick 0.01) · `117.8332`·`117.7068`(13, tick 0.01) · `75943.85`(15, tick **0.1**) ·
   `83367.1641`(16, 비율 손절 계산값). 규칙성: **비율·소수 체결가를 내는 도구는 전부 걸린다.** 정수 달러·센트
   레벨을 내는 09·12 는 안 걸린다.

5. **`max_duration_hours` 는 시한이 아니다 — 세 번 확인했다**(C09b·C14b·C16c 전부 `exit_plan_deadline_required`).
   판정 규칙의 기대와 다르다. `exit_plan` 안에 `close_at` 또는 `close_after_seconds` 가 있어야 한다.

6. **11편 X 의 사유에서 우리 쪽 항목 하나를 빼야 한다.** 그 문서는 "우리 쪽에 하나 추가: `us-equity`
   `license_pending`" 이라고 적었는데, 운영과 같게 맞춘 이번 실측에서 us-equity 는 `open` 이고 접수된다.
   **11 이 막히는 사유는 전부 저쪽이다.**

7. **15편 S 의 근거가 문서와 다른 자리에서 나온다.** 문서는 「36 파라미터를 옮긴다」로 S 를 세웠지만, 시험 매수에
   실제로 들어가는 것은 파라미터가 아니라 **Moss 자기 백테스트의 거래 행**(`trades[]`)이다. 그리고 그 경로에서만
   도구의 `exit_reason` 과 우리 `close_reason` 이 같은 이름(`take_profit`)으로 맞는다 — S 의 가장 강한 근거는
   문서가 지목한 곳이 아니라 여기다.

8. **14편은 「옮길 도구 값이 `side` 하나」다.** A 등급의 근거인 비용 되먹임(수수료·슬리피지 → 격자)은 유효하지만,
   그것은 **우리 체결 기록을 저쪽으로 보내는 방향**이고 시험 매수 **본문으로 들어오는** 도구 값은 없다.
   "이 도구의 산출을 시험 주문에 넣는다"는 문장은 14 에는 성립하지 않는다.

9. **CME 는 실측으로 막혀 있다** — `422 market_not_licensed "cme does not allow orders on this instance"`(E3).
   `market.license` 에 행을 넣지 않은 기본값 상태가 운영과 같다. 종전 §125 의 서술과 일치한다.

10. **us-equity·krx 는 지금 폐장이라 접수만 되고 체결되지 않는다.** 승인 4건이 배치에서
    `rejected:market_closed` 로 버려지고 한도가 `−1` 로 복원됐다(`forward.usage_events` id 10~13).
    **그래서 us-equity 숏(12)은 접수 계약까지만 실측됐고, 숏의 체결·청산은 15편(`binance-usdm`)에서 확인했다.**

---

### 끝낸 방식

자식 프로세스에 SIGINT(uvicorn graceful) → `pg_ctl -m fast -w stop`(`part2-stop.txt`: "server stopped") →
임시 디렉터리(`/tmp/weltiq-xfer2-*`) 삭제. 확인: 포트 **8902·55542 모두 비어 있음**, `run_part2`·`weltiq_xfer2`
프로세스 **0개**, `/tmp/weltiq-xfer2-*` **0개**. 로컬 엔진 **8722·8723·8724 는 그대로 LISTEN** 중이다(건드리지 않았다).

부수 기록: 이 디렉터리에서 형제 하네스(part1·part3·part4)가 같은 시간대에 돌아 일반 이름
(`initdb.txt`·`start.txt`·`stop.txt`·`schema.txt`·`migrate.txt`·`role.txt`·`db.txt`)을 서로 덮어썼다.
그래서 이 회차의 보조 로그는 **`part2-*.txt`** 로 접두했다.
