# 코딩 에이전트와 일하기

allob 은 코딩 에이전트가 쓰도록 만들었어요. CLI 와 MCP 서버가 같은 기능을 제공하고, 에이전트는 CLI 도움말 한 번(`allob help --all`)으로 필요한 명령을 찾을 수 있어요. 사람은 로그인 허락처럼 꼭 필요한 순간에만 손대면 돼요.

## 한 번에 설정하기

제품 코드 폴더에서 에이전트에게 이 프롬프트를 붙여 넣으세요. `<product>` 는 제품 주소에 들어가는 영문 이름(예: `diary`)으로 바꿔요. 웹의 제품 › 연결에도 같은 프롬프트가 있어요.

```text
Set up allob for this project (product: <product>):

1. Install the CLI if `allob` is not on PATH: curl -fsSL https://allob.app/install.sh | sh   (Windows PowerShell: irm https://allob.app/install.ps1 | iex)
2. Log in: allob auth login   (I will approve it in the browser)
3. Register the MCP server with this agent: allob mcp install
4. Link this repo, start its event schema if it has none, and generate the tracking SDK: allob folder init <product>
   (if the folder already has allob.json and an SDK, run allob folder status first and do what it says)
   If the web, app, or server code lives in subfolders, point "sdk" in allob.json at them (e.g. "web": "web/src/allob") and run allob sdk pull.
   If it says a server or app target was skipped, add that kind of event to allob.schema.json, run allob schema push, then allob sdk pull.
5. Add the allob workflow rules to AGENTS.md: allob folder agents
6. Check: allob folder status — tell me anything it says is still missing.

From then on, follow the allob section in AGENTS.md: when a deploy goes live run allob release create with one short line per change people will notice, and record marketing changes with allob change add. For a bigger job (app store release, payouts, in-app purchases, ads), find its skill with allob skills and follow allob skills show <name>.
```

에이전트가 설치, MCP 등록, 폴더 연결, SDK 생성, `AGENTS.md` 규칙 추가까지 진행하고, `allob folder status` 에서 아직 남은 일을 알려 줘요. 브라우저에서 로그인 허락은 직접 해야 해요.

새 제품이라면 4번에서 첫 이벤트 스키마도 만들어 올려요. 처음에는 제품만의 이벤트가 없어요(앱이면 앱 열기 이벤트 하나). 제품만의 이벤트는 [첫 제품 연결하기](/docs/first-product#3-측정할-이벤트-정하고-코드-넣기)의 3단계 프롬프트로 추가하면 돼요.

## MCP 서버 등록

```sh
allob mcp install          # Claude Code 에 등록
allob mcp install --print  # 다른 에이전트용 설정만 출력
```

MCP 서버를 등록하면 에이전트가 터미널 명령 대신 allob 기능(제품 조회, 스키마, SDK, 릴리스, 변경 기록, 지표, 연결)을 직접 호출해요. 다른 에이전트는 MCP 설정에 `command: allob`, `args: ["mcp", "serve"]` 를 넣으면 돼요. 로그인은 CLI 와 같은 기기 토큰을 써요.

제품 폴더에서 MCP 서버를 켜면 그 폴더에 연결된 제품을 기본으로 써요.

## AGENTS.md 규칙

```sh
allob folder agents          # AGENTS.md 에 allob 규칙 추가 또는 업데이트
allob folder agents --print  # 넣을 내용만 미리 보기
```

에이전트는 프로젝트의 `AGENTS.md` 를 읽고 작업해요. 여기에 allob 규칙을 넣어 두면, 매번 말하지 않아도 에이전트가 배포 때 릴리스를 기록하고 마케팅 변경을 남겨요. allob 은 표시된 구간만 고치고 나머지 내용은 건드리지 않아요. 들어가는 규칙은 이래요.

**The path** — allob keeps the steps from business registration to launch, ads, and tax, and the one next step:

```sh
allob path view                      # the next step and the steps by stage (--business for the business path)
allob step view <id>                 # read the step's guide before doing it
allob step start <id>                # when you start
allob step done <id> --note "…"      # when it is done, with what shows it (file, mail, screen, date)
allob step wait <id> --for "…"       # when it waits on someone else (review, mail, payout check)
```

- Stop at what only a person does (sign, pay, identity, bank account) and tell them.
- Ask the person before answering a hard-to-undo choice (allob step answer); record their answer with --note.
- When a command says it is waiting for a person's OK, give them the link, then run `allob approval wait <id>` in the same turn and keep running it while it says waiting — don't end your turn to wait.

**Skills** — for a bigger job (app store release and each of its steps, payouts, in-app purchases, app ads, push, OTA, Meta ads and social posts, content ideas, SEO and store keywords, books and tax, legal docs), find the skill for the job and follow it step by step (always the latest — nothing to install):

```sh
allob skills                         # names and when to use each
allob skills show <name>             # the full procedure
```

**When a release goes live** (a deploy people can see — once per release, not per commit):

```sh
allob release create <version> -c "<kind>: <line>" [-c …] [--platform web,ios]
```

- One line per change people will notice. kind: feature · ux · price · fix · tracking.
- Each line says what changed and the number to watch, under 80 characters.
  Good: `ux: new pricing page — watch checkout_start`, `fix: checkout froze on Safari`
  Leave out: refactors, tooling, docs, dependency bumps, redeploys, "misc fixes".
- Not sure what shipped? `allob release create --dry-run` lists the commits since the last release.
- An app release: use the app's version (1.2.0) as <version> with `--platform ios,android`; for an over-the-air update add `--ota <update ids>`. Impact then compares devices on that version with the rest.

**When marketing changes** (record it right when it happens — one change, one line):

```sh
allob change add <ad|content|promo|store> "<line>"
```

- ad: ads on/off, budget, targeting, creative · content: a post · promo: a discount or event · store: store listing.
- Each line says what changed (before → after when there is a value) and the number to watch, under 80 characters.
  Good: `ad: Meta budget $20 → $40/day — watch cost per checkout`, `content: Reel "typing pet" — watch landing visits`
  Leave out: the reasoning, hashtags, links, and several changes in one line (record each one).

**Reading the effect** (a few days later):

```sh
allob metrics impact <version | change id>   # same days before vs after, plus other changes in that window
allob timeline view                           # releases and marketing changes
allob metrics board                           # funnel, active users, retention
```

**Events** live in allob's schema: `allob schema pull` → edit `allob.schema.json` → `allob schema push` → `allob sdk pull`. Never edit the SDK folders listed under sdk in `allob.json` by hand.

**Secrets** (signing keys, APNs keys, service-account files, business documents) live in the allob vault, never in the repo:

```sh
allob vault use <item> -- <command>    # the human approves in the browser; the file exists only while the command runs
allob vault add <kind> --file <path>   # right after you create a new key; ask the human before --remove-source
```

- Never print, copy, commit, or paste a vault value or the temp file it gives you, and don't open that file yourself.
- Exit code 75 (last stderr line starts with "allob: waiting for approval") means the request is waiting for the human: show them the URL and match code, then rerun with `--approval <id>` right away — it waits for the approval again, so don't end your turn to wait.

규칙이 새 버전으로 바뀌면 `allob folder status` 가 다시 넣으라고 알려 줘요.

## 스킬

앱 출시, 스토어에서 돈 받을 준비, 인앱 결제·광고 붙이기처럼 큰 일은 스킬을 따라 하게 해요. 스킬은 allob 이 늘 최신으로 주는 절차 글이라 설치할 것이 없어요. `AGENTS.md` 에 넣는 한 줄과 스킬 목록은 [에이전트에게 스킬 쓰게 하기](/docs/skills)에 있어요.

```sh
allob skills                    # 이름과 언제 쓰는지
allob skills show <이름>        # 따라 할 절차 전부
```

## 에이전트가 지키는 규칙

에이전트에게 맡길 때 이 내용을 함께 알려 주면 더 안정적으로 동작해요.

- 첫 명령은 `allob folder status --json` 이에요. 로그인 상태와 남은 설정을 알 수 있어요.
- 항상 `--json` 을 붙여요. 에러도 `{"error":{"message","code"}}` 형식으로 나와요. 종료 코드가 4 면 사람에게 `allob auth login` 을 부탁해요.
- 로그인으로 연결하는 서비스(OAuth)는 사람이 허락해야 해요. 에이전트는 연결 주소만 받아서 전달해요.
- `allob connection remove`, `allob ingest key --rotate` 처럼 되돌릴 수 없는 명령은 사람에게 먼저 물어봐요.
- `allob.json` 의 `"sdk"` 에 적힌 SDK 폴더 안의 파일은 고치지 않고, 스키마를 고친 뒤 SDK 를 다시 받아요.
- 배포 전에 `allob sdk pull --check` 를 돌려요. 끝 코드가 1 이면 SDK 가 스키마와 어긋났거나 손으로 고친 파일이 있다는 뜻이라, 고치고 다시 받아요.

## 브라우저로 하는 할 일

App Store Connect, Play Console, Meta 광고 관리자, 홈택스처럼 웹 콘솔에서 하는 할 일이 많아요. 에이전트가 직접 조작할 수 있는 브라우저가 있으면 이런 할 일도 끝까지 맡길 수 있어요.

1. 에이전트가 쓸 브라우저를 정해요. 브라우저 확장(예: Claude in Chrome)은 사이트에 따라 막히거나 권한이 모자랄 수 있어요. 그럴 땐 에이전트가 터미널에서 다루는 브라우저 CLI 를 써요. 에이전트는 설치하기 전에 한 번 물어요.

   예: Aside — 설치는 Aside 공식 안내를 따라요. 아래 첫 줄은 Aside 가 배포하는 공식 설치 스크립트(releases.aside.com)이고, 설치한 뒤 `aside guide` 로 쓰는 법을 봐요.

   ```sh
   curl -fsSL https://releases.aside.com/install.sh | bash
   aside guide
   ```

2. 그 브라우저에서 콘솔마다 한 번 로그인해 둬요.
3. 나머지는 에이전트가 해요. 입력란을 채우고, 올리고, 제출·저장까지 누른 뒤 결과를 다시 읽어 확인해요.

사람이 하는 건 이것뿐이에요. 에이전트는 이 순간에서 멈추고 무엇을 보고 누르면 되는지 알려 줘요.

- 로그인·본인 인증
- 비밀번호, 주민번호, 계좌·카드 번호 입력
- 자동입력 방지 문자
- 돈이 나가는 것(결제, 유료 요금제, 광고비)
- 내 이름으로 맺는 계약·약관 동의와 서명·선언(예: 개발자 프로그램 계약, 판매자 약관, 세금 양식 서명, 전자 서명)
- 로그인 연결 허락(OAuth)
- 되돌릴 수 없는 삭제

## llms.txt

웹 문서를 읽는 에이전트를 위해 [/llms.txt](/llms.txt)(문서 목록)와 [/llms-full.txt](/llms-full.txt)(모든 문서와 CLI 도움말)를 제공해요. 모든 문서 페이지는 주소 끝에 `.md` 를 붙이면 마크다운으로 열려요.
