# SPRINT-UP-02-operator-shell-and-repeatability

> NEXT / operator-shell-repeatability / narrow

## Status

- `NEXT`

## Bucket

- `operator-surface`

## Why This Sprint Exists

Facebook one-channel conveyor proof는 끝났다.

지금 부족한 건 채널 수가 아니라 `내가 실제로 쓰는 작업실`이다.

현재도 엔진은 돈다.
하지만 지금 `upload.citidel-app.com`은 아직 operator가 매일 들어가서 쓰는 작업장이라기보다,
proof를 위해 흩어진 경로를 직접 밟는 기술적 surface에 가깝다.

즉 이번 스프린트는 더 많은 채널을 붙이는 일이 아니라,
이미 붙은 첫 파이프라인을 `반복 사용 가능한 작업실`에 고정하는 일이다.

## Goal

`citidel-upload-tool`에 최소 operator shell을 만든다.

이 shell은 아래를 한 곳에 모아야 한다.

- 현재 Meta 연결 상태
- 현재 기본 destination / binding 상태
- package 실행 진입점
- 마지막 publish 결과
- 최근 attempt / blocker
- 다음 행동

한 줄로:

`proof용 엔진을 실제 operator 작업장으로 내린다.`

## Included

- operator home or shell surface
- connect status summary
- binding readiness summary
- last result / last attempt summary
- package execution entrypoint guidance
- repeatability-focused UX wording

## Excluded

- Instagram adapter
- second provider
- AI wrapper
- content generation / review UI
- full multi-user auth system
- polished customer-facing product shell

## Questions To Lock

### 1. Entry point

operator가 처음 들어왔을 때 어디서 시작하는가

- `/`
- `/operator`
- `/workspace`

이번 스프린트에서 canonical entry를 하나 고정해야 한다.

### 2. Surface scope

처음 shell에서 무엇까지 보여줄 것인가

필수:

- connect readiness
- binding readiness
- publish path
- recent result

후순위:

- deep history
- retry dashboard
- inspect explorer

### 3. Execution handoff

이번 shell에서 package 입력을 어디까지 다룰 것인가

- local file drop only?
- sample package launcher?
- command copy surface?

이번 단계에서는 실제 operator가 다음 행동을 바로 이해할 수 있게만 만들면 된다.

## Proposed Work Order

### 1. Shell information architecture

- home surface block 정의
- connect / binding / run / result 섹션 고정
- operator가 다음 행동을 잃지 않게 wording 정리

### 2. Status aggregation

- current Meta page/binding 상태 읽기
- last result / last attempt 요약
- blocked 상태가 있으면 그 이유를 한 줄로 표시

### 3. Action lane

- reconnect entry
- publish smoke entry
- package path 안내
- runtime cleanup 안내

### 4. Repeatability pass

- 같은 작업을 다음에 다시 밟을 수 있는지 확인
- runbook과 shell wording을 맞춘다

## Done When

- operator가 더 이상 `/api/connect/meta/access` 같은 경로를 외우지 않아도 된다
- 현재 연결 상태와 다음 행동을 shell 한 화면에서 알 수 있다
- Facebook lane을 다시 밟는 비용이 줄어든다
- 이 상태에서야 다음 provider를 꽂을 준비가 됐다고 말할 수 있다

## Verification

- operator가 shell 한 화면만 보고 reconnect를 시작할 수 있다
- binding ready / not ready 상태를 바로 이해할 수 있다
- 마지막 publish 결과를 찾기 위해 폴더를 뒤질 필요가 없다
- runbook과 shell이 서로 모순되지 않는다

## Note

이 스프린트는 `더 똑똑하게 만드는 작업`이 아니다.

`이미 만들어진 conveyor belt를 사람이 반복해서 쓸 수 있게 정리하는 작업`이다.
