What does ssul do?
A post works when a stranger reads the first line, keeps going, understands every line without context, and believes a real person wrote it. This skill gets there in one pass. It merges hook formulas, storytelling, anti-AI editing, and Korean spoken-register rules, and settles the places where those sources disagree (see references/conflicts.md).
The core lesson behind this skill: style passes cannot rescue invented content. A post with a perfect hook and natural 구어체 still reads as AI if the scene, the numbers, and the quote were made up. Real material comes first.
Modes
Pick the mode from the request. Do not ask which one.
| Request | Mode | Output |
|---|---|---|
| "써줘", topic or notes | draft | one post + a 3-line note |
| a draft + "다듬어줘 / AI 같아 / 무거워" | polish | the fixed post + changed points |
| "검사해줘 / 뭐가 문제야" | audit | findings only, no rewrite |
| "훅만 / 첫 줄만" | hooks | 3 first lines from different triggers + a pick |
Step 1. Get real material (draft mode)
Before writing, you need at least three of these, from the user or from facts already in the conversation:
- who is in the scene (me, my dad, a coworker, my cat)
- where / when (a field at 9pm, the subway at 8:10, a Monday standup)
- one concrete detail you can see or count (영하 2도, 16 repos, a headlamp)
- one line someone actually said, or one thing that actually happened
- why the user wants to post it (laugh, vent, show, ask)
Facts in the current conversation count as real material: what the user built, installed, said, or asked. Use them. They are often the best source available.
If you do not have enough, ask at most 3 short questions from references/interview.md in one message. If the user wants a draft anyway, write it with [brackets] around every invented detail and say plainly that those parts are placeholders. Never present invented biography, numbers, quotes, or events as true.
Step 2. Fix the voice
Pick the register in this order. The first source that exists wins.
- The user's own posts (3 or more): note endings, how often they use ㅋㅋ and emoji, line length, openers and closers. Match them.
- Feed samples the user pasted (other people's posts they want to sound like): match the register most of those posts use, not the polite average.
- The niche default (
references/korean-voice.md#register-by-niche): AI, dev, startup, investing, and hot-take posts default to 반말 혼잣말 (~다,~함,~임,~네,~냐). Daily life, parenting, food, and brand accounts default to 해요체 구어 (~거든요,~더라고요,~잖아요).
One register per post. Quotes inside the post keep the speaker's register.
Step 3. Pick the shape
| Shape | Use when | Goal |
|---|---|---|
| Scene (장면) | one moment with a small turn | likes |
| Confession (고백) | something real the user did, including the embarrassing part | replies |
| Reversal (뒤집기) | a common belief vs what actually happened, both concrete | reposts |
| List (목록) | the content is truly a list (tools, steps) and each item is one line | saves |
| Question (질문) | the user genuinely wants answers | replies |
| One-liner (한두 줄) | one feeling or one verdict says it all | likes, reposts |
| Finding (발견) | the user tried something and learned facts others can use | saves, reposts |
| Hot take (한마디) | the user has an attitude about a trend: 짜증, 냉소, 자조 | replies, quotes |
Choose by what the material has:
- a real event with a turn → Scene or Confession
- facts the reader can use → Finding or List
- an attitude → Hot take or One-liner
Do not manufacture humor. If nothing in the material is actually funny, do not build a punchline. Write the Finding or the attitude instead. Attitude (annoyance, cynicism, self-mockery) carries a post further than a forced joke. Shorter is usually better: a two-line post is a complete post.
No navel-gazing. A story about the writing session itself, the tools used to write it, or the AI that helped is insider material. It passes only if the reader has lived the same thing.
Format details per shape: references/formats.md.
Step 4. Write the first line
Generate 3 candidates from different triggers (specific number, a quoted line, a confession, a reversal, a question). Formulas: references/hooks.md. Check each against the four killers:
- Late: the topic is not in the first line.
- Confusing: needs a second read or context the reader does not have.
- Not mine: the reader cannot see themselves in it.
- Flat: no gap between what the reader expects and what happened.
Keep the one that passes all four. A first-person line is fine when the moment is one the reader has lived too. Do not force "여러분".
Step 5. Draft
- Write the last line first. It should be the line people would quote on its own. A concrete punchline or a real quote beats a lesson.
- Fill the middle with beats joined by 근데 (but) or 그래서 (so). If "그리고 나서" fits between two beats, one of them is filler.
- Write the way the user would say it to one friend. Line breaks follow breath.
- Stay under 500 characters per post (Threads limit). Casual daily posts usually land at 120 to 300.
Step 6. Run the passes
Run all of these, in order, on every draft. Details in references/korean-voice.md and references/checklist.md.
- Truth: every number, name, quote, and event is real or bracketed.
- Stranger test: someone with zero context understands every line. Replace insider words ("윤문 스킬", project names, inside jokes) with plain words. If you need the conversation to understand the post, it fails.
- Weight test: does it read like a report? Cut setup, lists that are not lists, explanations of the joke, and the moral at the end.
- Value test: what does a stranger get: a fact they can use, a feeling they recognize, or a real laugh? If none, change the shape or the material. Do not polish a post that gives nothing.
- Korean AI tells: lesson endings,
X가 아니라 Y다with a vague Y, rule-of-three lists, 명사화 (진행하다,공유드리다), 번역투 (당신,~하는 것은 중요합니다), stacked adjectives, em dashes, curly quotes for emphasis, bold. - Spoken register: no report words (따라서, 종합하면, 부각, 안착), no 4 identical sentence endings in a row, at most one self-question.
- Platform: 0 or 1 hashtag, no link in the first post, at most 2 emoji, ends without engagement bait.
Output
Draft and polish modes return the post first, then at most 3 short lines:
- the shape and why
- what is real and what is a placeholder
- one thing the user should check before posting
Do not attach long reports, tables, or scores unless asked. The user asked for a post.
Never publish, schedule, or send anything. Output text only.