# ops-console — 규모 축

## 이 전시물이 다른 이유

앞선 다섯 전시물은 **도메인**이 달랐고 이 전시물은 **크기**가 다르다.

| | 앞선 다섯 | ops-console |
| --- | --- | --- |
| 시드 아티팩트 | 25~60줄 · 1.1~2.8 KB | **305줄 · 12.5 KB** |
| 스키마 엔티티 | ≤1 | **3** |
| 데이터 행 | ≤3 | **39** |
| capability | 1~2 | **4** |
| 상호작용 | 0~1 | **2** (필터 · 정렬) |

305줄을 고른 이유는 임의가 아니다. 아카이브된 실모델 run 중 가장 큰 산출이 **286줄
/ 11.3 KB** 였다. 그 아래에 서면 *이미 도달한 규모*를 다시 재는 것이라 새로 아는 것이
없다.

## 시드 상태

- `Service` 12행 — 티어 셋(`tier-1/2/3`), 소유자 다섯, 둘은 `degraded`.
- `Incident` 9행 — `Service` 를 `serviceId` 로 참조. 셋은 미해결.
- `Deploy` 18행 — 같은 참조. 하나는 `failed`, 둘은 `rolled-back`.
- 요약 capability 는 다섯 값을 돌려주는데 시드 화면은 **넷만** 쓴다. 다섯째
  (`rolledBack`)는 카드 목록이 아티팩트 소유이기 때문에 화면에 없다.

화면은 요약 카드 넷 · 소유자 롤업(표가 아니다) · 표 셋(서비스·인시던트·배포) ·
티어 필터 · 정렬 가능한 배포 헤더로 구성된다. **규모가 반복이 아니라 구조에서 나오는
것이 요점이다** — 같은 행을 늘려 줄 수만 채우면 국소 변경의 diff 가 무엇인지 물을 수 없다.

## 턴

### ① 카드 한 장을 더한다 (scripted)

capability 가 이미 돌려주는 `rolledBack` 을 요약 카드로 올린다. UI facet 하나만
움직이는 **국소 변경**이다.

**완주 기준**은 "적용되는가"가 아니다. 그것은 작은 전시물에서 이미 증명됐다.
여기서 묻는 것은 셋이다:

1. **국소 변경이 국소 diff 로 나오는가** — 305줄 아티팩트에서 한 줄을 더하는 변경이
   전체 재작성으로 나오지 않는가. 작은 전시물에서는 둘의 줄 수가 비슷해 구별되지 않았다.
2. **롤백이 규모에서도 바이트로 되돌리는가** — 12.5 KB 전부.
3. **토큰 비용이 규모에서 어떻게 되는가** — `/agent/metrics` 가 보고한다. 단,
   scripted provider 는 토큰을 보고하지 않으므로 이 값은 **실모델 run 에서만** 나온다.

## 이 전시물이 재는 것 — 판정 하한의 유효 범위

이것이 전시물이 세워진 진짜 이유다.

앞선 측정 하나가 문제를 세웠다: 값이 전부 빠진 작은 화면을 텍스트 총량 하한이 **19자
에서 잡았고, 카드 하나만 늘자 29자로 통과**시켰다. 즉 그 판정의 유효 범위는 *옳음*이
아니라 **화면 크기**로 정해진다. 그렇다면 지금 게이트들의 여러 하한이 작은 화면에서만
유효할 수 있고, 그 가정은 실측된 적이 없다.

`smoke-scale` 게이트가 그것을 잰다. 여러 단언이 **통과가 곧 결함** 어법으로 서 있다 —
하한이 못 잡는다는 사실을 통과로 고정하고, 잡기 시작하면 *전제가 바뀌었다*고 빨개진다.

**잃는 하한이 0건이면 그것은 깨끗한 결과가 아니라 규모가 부족하다는 신호다.**

## 증거

데이터가 사라졌다/돌아왔다의 증거는 화면 픽셀이 아니라 **월드 상태와 원장**이다 —
capability mock 은 정적이라 데이터 facet 의 변화를 반영하지 않는다(다른 전시물과 같은
규율). 화면이 증언하는 것은 UI facet 뿐이다.
