habrlisted
Install: claude install-skill AceDataCloud/Skills
# Habr Cookie client
Habr does not publish a supported write API. This Skill uses the current
`https://habr.com/kek/v2/*` endpoints used by Habr's own web editor. The
connector encrypts the Cookie jar at rest, then injects a transient decrypted
JSON copy as `$HABR_COOKIES` only inside the Skill sandbox. Never print it,
pass it in command arguments, or write it to disk.
```bash
H="$SKILL_DIR/scripts/habr.py"
[ -f "$H" ] || H=$(find /tmp -maxdepth 8 -path '*/skills/*/habr/scripts/habr.py' 2>/dev/null | head -1)
[ -f "$H" ] || { echo "habr script not found" >&2; exit 1; }
python3 "$H" drafts --limit 20
python3 "$H" get --id ARTICLE_ID > draft.json
```
An auth error means the Cookie expired. Ask the user to reconnect Habr at
<https://auth.acedata.cloud/user/connections>; never retry in a loop.
## Save or preview a draft
Habr's private editor schema can change. Preserve the complete object returned
by `get`, edit only intended fields, and pass the resulting JSON back rather than
constructing a partial payload from memory. The client derives a stable
`idempotenceKey` from the payload when one is absent, so dry-run and confirmed
save use the same key.
```bash
# Edit draft.json while preserving unknown fields, then inspect without writing.
python3 "$H" save --id ARTICLE_ID --payload-file draft.json
python3 "$H" preview --payload-file draft.json
# Save only after showing the final title/body/hubs/tags and receiving approval.
python3 "$H" save --id ARTICLE_ID --payload-file dra