Replace the smoke-test main() with a proper argparse CLI that accepts
a URL and --name, validates the name, fetches + extracts + analyzes the
article, calls generate_theme_yaml(), and writes the YAML to
toolkit/themes/. Prints a human-readable theme report with color values
and typography. Adds `learn-theme` subcommand to toolkit/cli.py
(delegates to subprocess call of scripts/learn_theme.py).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
WeChat API returns Content-Type without charset, causing requests to
default to ISO-8859-1. Chinese content was decoded as mojibake.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- publisher.py: add get_draft() to fetch draft content by media_id,
add html_to_plaintext() for HTML→text conversion
- learn_edits.py: add --from-wechat flag that auto-fetches latest draft
from WeChat, converts both sides to plaintext, and diffs
- learn_edits.py: add markdown_to_plaintext() for local file conversion
- SKILL.md: update edit workflow — both local and WeChat edits supported
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>