# Threads Web Publish

> Threads(스레드) 웹을 브라우저 자동화로 조작해 글을 올리거나 예약·수정할 때 쓰는 실전 절차. '스레드에 올려줘', '예약 발행해줘', '예약한 글 어디 있어?', '사진 첨부해줘', 'alt 텍스트 넣어줘', '자답글 체인으로 묶어줘', '올린 글 수정해줘', '인용해서 올려줘', '답글 고정해줘', 'DM 내용으로 글 써줘' 같은 요청이면 반드시 이 스킬을 쓸 것. 절대 규칙 4개와 발행 전 점검은 이 파일에 있고, 상황별 상세는 references/composing.md(입력·사진·alt), references/scheduling.md(예약·인용카드), references/recovery.md(수정·고정·복구), references/dm-source.md(DM 소재)로 나눠 두었으니 하는 일에…

- **Type:** Skill
- **Install:** `agentstack add skill-tygb99-threads-writing-skills-threads-web-publish`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Tygb99](https://agentstack.voostack.com/s/tygb99)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Tygb99](https://github.com/Tygb99)
- **Source:** https://github.com/Tygb99/threads-writing-skills/tree/main/threads-web-publish

## Install

```sh
agentstack add skill-tygb99-threads-writing-skills-threads-web-publish
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Threads 웹 발행 운영

Threads 웹은 브라우저 자동화로 다루기에 함정이 많다. 여기 있는 것은 전부 실제로 한 번씩 사고를 내고 알아낸 것들이다.

전제: 로그인 세션에 붙는 브라우저 도구로 조작한다. 상세 문서의 항목에는 확인에 쓴 도구를 적어두었다 — 2026-07-27·07-29 실측은 **claude-in-chrome**, 2026-07-31과 08-01 일부는 **Aside repl**, 08-01 사진·업로드 실패 항목은 다시 **claude-in-chrome**이며 인용카드 항목은 두 도구로 교차 확인했다. 관측이 엇갈릴 때 도구를 바꿔 재현하면 원인을 가릴 수 있으니 도구명을 지우지 말 것.

공식 API는 예약 발행을 지원하지 않는다. 예약이 필요하면 웹을 쓴다.

---

## 절대 규칙 4개

이건 매번 적용한다. 나머지는 상황에 맞는 상세 문서를 열어 본다.

1. **작업 중 새로고침 금지.** `page.reload()`는 작성 중 상태를 초기화하고 ref를 전부 무효화한다. 상태 확인은 새 `snapshot()`이나 `screenshot()`으로 한다. 새로고침은 작업이 끝나고 최종 검증할 때 한 번만.

2. **모든 편집 칸은 `.`으로 시작**해 타이핑하고, 끝나면 맨 앞 1글자를 지운다. 클릭 직후 첫 글자가 잘리는 일이 거의 매번 일어난다. 잘려도 잃는 건 `.` 하나다.

3. **해시태그는 `#태그 ` 단위로 뒤 공백까지** 하나씩 넣는다. 경계를 만드는 것은 Escape가 아니라 뒤따르는 공백이다. 안 그러면 저장 시점에 한 덩어리로 병합된다.

4. **팝업은 X 버튼으로 닫는다.** Escape는 작성창까지 닫아 `임시 저장하시겠어요?` 확인창을 띄운다. 작업을 이어갈 때는 그 창에서 `취소`다. `저장 안 함`은 되돌릴 수 없다.

---

## 상세 문서 라우팅

| 지금 하는 일 | 읽을 문서 |
|---|---|
| 본문·자답글 입력, 사진 첨부, alt 텍스트, 캐럿·스크롤 함정 | `references/composing.md` |
| 예약 발행, 예약 글 다시 찾기, 인용카드, API 예약 불가 | `references/scheduling.md` |
| 잘못 올린 글 수정, 답글 고정, 되돌릴 수 없는 클릭 | `references/recovery.md` |
| DM 대화를 글 소재로 정리 | `references/dm-source.md` |

줄바꿈·문단 규칙은 `threads-linebreak` 스킬을 쓴다. 이미지 alt 문안은 `alt-text-generator` 스킬을 쓴다.

---

## 가장 비싼 함정 4개

상세 문서를 열기 전에 이 네 개만 기억해도 큰 사고는 막는다.

**인라인 답글창에서 Enter는 줄바꿈이 아니라 발행이다.** 줄바꿈이 섞인 문자열을 그대로 타이핑하면 첫 줄만 올라가고 나머지는 사라진다. 여러 줄은 확장(⤢) 창이나 수정 창에서 쓴다. 인라인을 꼭 써야 하면 `Shift+Enter`.

**사진은 클립보드가 유일한 경로다.** 파일 업로드 도구는 거부된다. macOS에서는 `osascript`로 클립보드에 올린 뒤 `Cmd+V`. webp는 받지 않으므로 `sips`로 PNG 변환한다.

**인용카드가 붙으면 예약이 안 된다.** 링크 미리보기 카드는 예약을 막지 않지만 Threads 인용카드(share URL)는 `예약...`을 비활성으로 만든다. 메뉴는 열리고 항목도 보이므로 눈으로는 안 걸린다. 판정은 DOM으로 한다.

**글자 수가 맞아도 글자가 빠져 있을 수 있다.** 가드 `.`을 지우는 절차가 타이핑 중 유실된 한 글자를 상쇄해, 218자가 초안과 정확히 일치하는데도 본문은 `코드가`가 `드가`로 저장돼 있었다. 검증은 총합이 아니라 **문자 단위 대조**로 한다.

---

## 발행 전 점검

- [ ] 확장 창에서 썼는가 (인라인 Enter로 반쪽만 올라가지 않았는가)
- [ ] 전문을 `innerText`로 검증했는가 (한글 오타, **잘린 앞 글자**, **뭉친 해시태그**)
- [ ] 각 칸을 초안과 **문자 단위로 대조**했는가 — 글자 수만 맞춰보면 안 된다. 가드 `.`을 지운 것이 타이핑 중 유실된 글자를 상쇄해 총합이 맞아떨어진 사례가 있다(`composing.md` §2)
- [ ] 자답글을 `스레드에 추가`로 묶었는가 (칸 번호 `n/N`로 확인)
- [ ] 사진마다 alt를 넣었는가 (입력 전 `contenteditable` 인덱스를 확인했는가)
- [ ] 다중 이미지의 세로 비율이 비슷한가 (다르면 같은 비율로 패딩했는가)
- [ ] 첨부가 무겁지 않은가 (합계 12MB에서 업로드가 실패한 사례가 있다 — `composing.md` §3)
- [ ] 사진이 눕지 않았는가 (EXIF orientation 이중 적용 — `composing.md` §3)
- [ ] alt는 라벨이 아니라 **다시 열어** 확인했는가 (저장돼도 `대체 텍스트 추가`로 남는다)
- [ ] 해시태그가 본문 마지막에 단독으로 있는가 (자답글에는 0개)
- [ ] 예약이라면 배너와 `예약` 버튼을 눈으로 확인했는가
- [ ] 예약이라면 인용카드가 안 붙어 있는가 (붙었다면 `예약...` 상태를 DOM으로 확인)
- [ ] 인용카드가 필요한 글인가 (임시 저장은 카드를 보존하지 않으니 게시 직전에 다시 붙였는가)
- [ ] 인용카드를 붙일 칸에 이미지가 없는가 (한 칸에서 양립 불가)
- [ ] `(no name)` 버튼을 누르기 전에 정체를 DOM으로 확인했는가
- [ ] 답글 고정을 교체했다면 확인창의 `확인`을 눌렀는가 (`고정됨` 배지로 검증)
- [ ] DM 소재라면 발화자를 좌우 좌표로 갈랐는가
- [ ] DM 소재라면 입력 경로(음성/키보드) 분류를 **사용자에게 확인받았는가** — 문장부호는 단서일 뿐 규칙이 아니다
- [ ] DM 소재라면 게재·인용 동의를 받았는가

**사용자가 "게시된 것 같다"고 말하면 그 말이 내 화면 판단보다 우선한다.** 즉시 피드를 확인하고, 확인될 때까지 다음 입력을 하지 않는다.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Tygb99](https://github.com/Tygb99)
- **Source:** [Tygb99/threads-writing-skills](https://github.com/Tygb99/threads-writing-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-tygb99-threads-writing-skills-threads-web-publish
- Seller: https://agentstack.voostack.com/s/tygb99
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
