@lexiaowen/md2wechat-new 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,814 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.0] - 2026-05-13
11
+
12
+ ### Fixed
13
+ - Fixed npm installer release downloads to use the current GitHub repository `LeXiaoWen/md2wechat-new`.
14
+ - Reset the fork release version to `0.1.0`.
15
+
16
+ ### Added
17
+ - **Brand Profile(品牌档案)**: 新增 `brand init` 和 `brand show` 命令,支持在 `~/.config/md2wechat-new/brand.md` 存储品牌档案
18
+ - `brand init`:幂等初始化,创建带注释的 Markdown 模板文件;目录不存在时自动创建
19
+ - `brand show`:以 JSON envelope 返回当前品牌档案原始文本(`data.content`)和文件路径(`data.path`)
20
+ - 支持 `BRAND_INITIALIZED` / `BRAND_SHOWN` / `BRAND_NOT_FOUND` / `BRAND_READ_FAILED` 四个状态码
21
+ - Brand Profile 由 Agent 读取原始文本,CLI 完全不解析此文件(工具职责分离)
22
+ - **格式选择 Markdown 而非 YAML**:LLM 理解自然语言优于结构化字段;Markdown 可写反例、具体示例,信息密度更高
23
+ - **Markdown Expression Diagnosis(排版诊断层)**: `skills/md2wechat/SKILL.md` 新增三步诊断框架
24
+ - Step 1 意图识别:目标读者、conversion goal、memorability anchor
25
+ - Step 2 内容映射:四目标框架(attention / readability / memorability / conversion)
26
+ - Step 3 模块选择:结合 Brand Profile limits 和 layout.opening 从 43 个模块选择最优组合
27
+ - **Brand Profile 协议**: `SKILL.md` 新增完整 Agent 读取协议
28
+ - 优先级链:CLI flag → brand.md → config.yaml → Layout Policy 推荐 → 硬编码默认
29
+ - 降级规则:文件不存在/字段缺失时各字段的回退行为
30
+ - Sanity Caps:max_modules(43) / max_cta(2) / max_quotes(10) / max_hero(1),超出自动截断并 warn
31
+ - style_ref:支持指向单个 .md 文件或目录(遍历目录下所有文件)
32
+ - 3 问引导流程:BRAND_NOT_FOUND 时 Agent 主动引导用户配置品牌档案
33
+ - **`docs/AGENT-GUIDE.md`**: AI Agent 操作手册,12 大章节 685 行,覆盖
34
+ - 能力发现(5 条 discovery 命令)
35
+ - Brand Profile 操作(check / init / 读取 / 降级)
36
+ - Markdown 排版诊断(三步法 + 四目标框架)
37
+ - 文章转换、发布流程、高级排版模块操作
38
+ - 异常处理与降级(4 种常见故障场景)
39
+ - 决策优先级链、完整场景示例(5 个)、快速参考表
40
+
41
+ ### Changed
42
+ - `skills/md2wechat/SKILL.md`:追加两大章节(Markdown Expression Diagnosis + Brand Profile 协议),从 199 行扩展至 ~400 行
43
+ - `platforms/openclaw/md2wechat/SKILL.md`:与 Claude Code 版本完全同步(同步新增章节,199 → ~400 行)
44
+ - `docs/CONFIG.md`:新增 Brand Profile 完整章节(Schema / 字段说明表 / 降级行为 / 配置对比表)
45
+
46
+ ### Technical Details
47
+ - **New Files**: `cmd/md2wechat-new/brand.go`, `cmd/md2wechat-new/brand_test.go`, `docs/AGENT-GUIDE.md`, `docs/BRAND-PROFILE.md`
48
+ - **Modified Files**: `cmd/md2wechat-new/main.go`, `docs/CONFIG.md`, `skills/md2wechat/SKILL.md`, `platforms/openclaw/md2wechat/SKILL.md`, `docs/AGENT-GUIDE.md`
49
+ - **New code constants**: `BRAND_INITIALIZED`, `BRAND_INIT_FAILED`, `BRAND_SHOWN`, `BRAND_NOT_FOUND`, `BRAND_READ_FAILED`
50
+ - **Tests**: 8 contract tests in `brand_test.go`(init×4 + show×4),全部通过 `t.Setenv(HOME)` + `t.TempDir()` 隔离
51
+
52
+ ### Migration Guide
53
+ 无需迁移。Brand Profile 为可选配置,Agent 专用,不影响任何现有 CLI 工作流。
54
+
55
+ ### Changed
56
+ - **License**: Upgraded from MIT to Source Available License (BUSL 1.1 base + custom Additional Use Grant)
57
+ - Personal use, learning, evaluation, non-profit, and contributions remain free without authorization
58
+ - Commercial use (SaaS, client delivery, rebranding, white-labeling, AI training data) requires a written commercial license
59
+ - Change Date: 2030-01-01 — project automatically relicenses to Apache 2.0 on that date
60
+ - Historical versions released under MIT are unaffected; this license applies to all new versions from this commit onward
61
+ - Contact for commercial licensing: skrphper@gmail.com / https://jieni.ai / https://x.com/seekjourney
62
+
63
+ ## [2.1.0] - 2026-04-27
64
+
65
+ ### Added
66
+ - **`md2wechat layout` command tree**: 4 new CLI subcommands for AI-agent-friendly discovery of 43 advanced WeChat layout modules (:::block syntax)
67
+ - `layout list [--category] [--serves] [--content-type] [--industry] [--tag] --json` — filtered module discovery
68
+ - `layout show <name> --json` — full spec with fields, when_to_use, example, metadata
69
+ - `layout render <name> --var KEY=VALUE --json` — generate :::block syntax from structured inputs
70
+ - `layout validate [--file | --stdin] --json` — validate :::block usage, unknown modules warn not error
71
+ - **43 built-in layout modules** across 7 categories (opening, judgment, infographic, evidence, brand, conversion, sprint4)
72
+ - **4-level module override**: builtin → ~/.config/md2wechat-new/layout/ → ./layout/ → $MD2WECHAT_LAYOUT_DIR
73
+ - **`internal/layoutcatalog` package**: schema, loader, renderer, validator with 20+ unit tests
74
+ - **Integration test fixtures**: 3 article shapes (opinion-piece, data-report, mixed-with-unknown)
75
+ - **E2E test suite**: gated by MD2WECHAT_E2E=1, validates each module's example against /api/convert
76
+ - **`docs/LAYOUT.md`**: 保姆级高级排版模块教程,覆盖全部 43 个模块的字段说明、使用场景、示例和常见错误
77
+ - **`--intensity authentic` for `humanize`**: new standalone intensity level that bypasses the 24-pattern AI-trace detection pipeline and instead applies six-dimension writing-quality rules (用词 / 句式 / 语气 / 内容表达 / 结构 / 整体原则). The goal is writing that reads like a skilled human, not merely text with AI markers removed. Aliases: `authentic` / `natural` / `真实` / `自然`.
78
+ - **`docs/HUMANIZE.md`**: 保姆级 humanize 命令教程,覆盖四种强度选择逻辑、`--show-changes` 输出格式、Agent/JSON 用法、管道输入、与 `write` 集成,以及 `authentic` vs `aggressive` 的本质区别
79
+
80
+ ### Fixed
81
+ - **9 YAML module field doc errors** (`sprint4` category): corrected JSON key names in YAML field documentation so Agents no longer generate wrong keys at render time
82
+ - `quote-card`: `quote`/`content` → `text`
83
+ - `tweet`: `content`→`text`, `author`→`name`, `date`→`timestamp`
84
+ - `definition`: added `term`/`def`/`termLabel` fields, anti_pattern clarifies `def` not `definition`
85
+ - `stat-row`, `question`, `resource-list`, `comparison-table`, `changelog`: replaced misleading pipe-format rows with correct JSON object field docs
86
+
87
+ ### Changed
88
+ - **README.md**: restructured from 1941 → 388 lines as a commercial landing page. Removed 3 Mermaid diagrams, 5 repeated install sections, 200-line AI quality scoring system, and ModelScope flowchart. New structure: Hero → API unlock banner → comparison table → quickstart → command table → 高级排版模块 → Agent discovery → AI vs API table → Coding Agent platforms → FAQ → community → Star History.
89
+ - **SKILL.md (both Claude Code and OpenClaw)**: added API-mode-only blockquote for layout modules; removed `https://www.md2wechat.cn` URL from public skill files (security); added gentle AI→API nudge rule; added `authentic` intensity example and four-level intensity reference table for `humanize`
90
+ - **`docs/DISCOVERY.md`**: added `prompts show authentic --kind humanizer` example
91
+ - **AGENTS.md / .github/copilot-instructions.md**: added layout API-only constraint notes (internal dev docs, URL retained)
92
+ - **Docs version references**: bumped `v2.0.7` → `v2.1.0` across `QUICKSTART.md`, `USAGE.md`, `FAQ.md`, `INSTALL.md`
93
+
94
+ ### Technical Details
95
+ - **New Package**: `internal/layoutcatalog` (schema.go, loader.go, renderer.go, validator.go)
96
+ - **New Files**: `internal/assets/builtin/layout/**/*.yaml` (43 module definitions), `docs/LAYOUT.md`, `docs/HUMANIZE.md`
97
+ - **New Prompt**: `internal/assets/builtin/prompts/humanizer/authentic.yaml` — standalone template rendered with only `{{CONTENT}}`, bypassing `base.yaml`
98
+ - **New Commands**: `cmd/md2wechat-new/layout.go`, `cmd/md2wechat-new/layout_test.go`, `cmd/md2wechat-new/layout_e2e_test.go`
99
+ - **New Test Data**: `internal/layoutcatalog/testdata/integration/`
100
+ - **Error Codes**: LAYOUT_MODULE_NOT_FOUND, LAYOUT_INVALID_FILTER, LAYOUT_MISSING_REQUIRED_FIELD, LAYOUT_INVALID_FIELD_VALUE, LAYOUT_VALIDATE_HAS_ERRORS, LAYOUT_VALIDATED
101
+
102
+ ### Migration Guide
103
+ No migration required. Layout commands are purely additive. Existing workflows and config files are unchanged.
104
+
105
+ ## [2.0.7] - 2026-03-30
106
+
107
+ ### Added
108
+ - Added `volcengine` / `volc` as a built-in image provider for Volcengine Ark, with support for `doubao-seedream-5-0-260128` and `doubao-seedream-5-0-lite-260128`.
109
+ - Added provider-level `supported_models` discovery to `providers list --json`, `providers show --json`, and `capabilities --json`, so agents and scripts can inspect image model catalogs before choosing `--model`.
110
+
111
+ ### Changed
112
+ - Switched `config init` and the bundled example config to a `volcengine` image setup by default, including the Ark base URL, default Seedream model, and `2K` size tier.
113
+ - Made image defaults provider-aware, so Volcengine now falls back to `2K` when `api.image_size` is omitted instead of inheriting an OpenAI-shaped square size.
114
+ - Consolidated image-provider model metadata into the shared provider registry and re-audited high-signal docs and both skill entry points to keep provider, model, and discovery guidance aligned.
115
+ - Removed the `skills/md2wechat/references/` directory and folded the remaining guidance back into the main `SKILL.md` entry point.
116
+
117
+ ### Fixed
118
+ - Fixed Volcengine `ModelNotOpen` guidance to point users to the Doubao model activation path instead of a vague Ark-console hint.
119
+ - Fixed JSON-mode CLI tests to stream captured stdout/stderr safely, preventing large discovery payloads from deadlocking the test process.
120
+
121
+ ## [2.0.6] - 2026-03-28
122
+
123
+ ### Added
124
+ - Added an npm distribution package at `@LeXiaoWen/md2wechat-new` so users can install the CLI through `npm install -g` without compiling Go locally.
125
+ - Added `scripts/install.js` and `scripts/run.js` as a thin npm wrapper layer that downloads the version-matched GitHub Release binary and verifies `checksums.txt`.
126
+ - Added `--cover-media-id` for `convert --draft` and `inspect --draft`, so article drafts can reuse an existing WeChat permanent cover asset without re-uploading a local file.
127
+
128
+ ### Changed
129
+ - Updated the release workflow so npm packaging is smoked against the same release artifact on Linux and Windows before publish, then published to npm only after the GitHub Release assets are live.
130
+ - Extended local and CI quality gates to validate npm package contents and keep `package.json`, `VERSION`, and marketplace metadata aligned.
131
+ - Updated install documentation to include the npm path while keeping Homebrew, fixed-version installers, and Go install as first-class alternatives.
132
+ - Tightened both skill entry points so `小绿书` / `图文笔记` / `newspic` requests route to `create_image_post` instead of being treated as standard article drafts.
133
+ - Narrowed the npm support contract to the actual published release matrix: macOS `amd64/arm64`, Linux `amd64/arm64`, and Windows `amd64`.
134
+
135
+ ### Fixed
136
+ - Fixed Windows npm smoke and local-bundle installs by treating Windows drive-letter paths in `MD2WECHAT_RELEASE_BASE_URL` as local filesystem paths instead of unsupported URL schemes.
137
+ - Fixed agent-facing draft guidance so README, usage docs, and both `SKILL.md` entry points consistently describe `--cover` and `--cover-media-id` as the valid draft-cover contract.
138
+ - Closed documentation drift around image-provider setup by removing stale `GOOGLE_API_KEY` guidance and keeping Gemini/Google instructions aligned on `IMAGE_API_KEY`.
139
+
140
+ ## [2.0.5] - 2026-03-26
141
+
142
+ ### Added
143
+ - Added `inspect` as a release-grade confirmation command that resolves final article metadata, readiness, and publish risks before conversion or draft creation.
144
+ - Added `preview` as a lightweight standalone HTML preview flow that writes a local preview artifact without upload or draft side effects.
145
+ - Added a typed `internal/inspect` confirmation layer so metadata sources, readiness, and checks are computed once and reused by CLI and preview flows.
146
+
147
+ ### Changed
148
+ - Updated `capabilities --json` to advertise `inspect` and `preview` as first-class commands.
149
+ - Kept the preview implementation Go-only with embedded template rendering instead of introducing a separate frontend stack or editable workbench.
150
+ - Clarified that API mode can produce exact preview HTML when conversion succeeds, while AI mode degrades honestly to a confirmation page instead of pretending to show final layout.
151
+ - Reframed installer next steps and the main README around a confirm-first flow: `inspect` -> `preview` -> `convert` / `--draft`.
152
+
153
+ ### Fixed
154
+ - Closed documentation drift around release version anchors by updating install and high-signal entry-point docs to `2.0.5`.
155
+ - Closed agent drift by updating both skill entry points to describe the new confirm-first flow and AI preview degradation behavior consistently.
156
+ - Tightened `scripts/release-check.sh` so version anchors, marketplace metadata, confirm-first docs, and both skill entry points are verified together before release work is considered done.
157
+ - Fixed JSON-mode CLI behavior so `inspect --json`, `preview --json`, and related machine-readable commands no longer mix config banners into stdout.
158
+ - Fixed `convert --preview` to emit pure HTML on stdout instead of wrapped terminal markers, making redirect-to-file and agent use more reliable.
159
+ - Fixed WeChat draft error guidance so `45004` now points users and agents to digest/description limits instead of encouraging body-content guesswork.
160
+ - Re-audited README, USAGE, DISCOVERY, FAQ, and both skill entry points to keep metadata-vs-body semantics, preview behavior, and image replacement rules aligned.
161
+
162
+ ## [2.0.4] - 2026-03-25
163
+
164
+ ### Added
165
+ - **CLI flags for article metadata**: Added `--title`, `--author`, and `--digest` flags to `convert` command for explicit metadata override
166
+ - **Metadata validation**: Added length validation for title (32 chars), author (16 chars), and digest (128 chars) with clear error messages
167
+ - **Frontmatter stripping**: `convert` now properly strips frontmatter from markdown body before passing to converter, preventing metadata from appearing in generated HTML
168
+ - **ArticleDocument structure**: Introduced `ArticleDocument` to separate metadata extraction from body parsing, improving testability
169
+
170
+ ### Changed
171
+ - **background_type default**: Changed default `background_type` from `default` to `none` for cleaner output
172
+ - **Metadata priority**: Clarified metadata resolution order: CLI flags → frontmatter → first markdown heading → fallback
173
+ - **Test coverage**: Added comprehensive tests for metadata override, frontmatter stripping, and validation
174
+
175
+ ### Fixed
176
+ - Fixed metadata extraction to properly handle `digest`, `summary`, and `description` frontmatter fields with correct priority
177
+ - Fixed first-line title fallback logic to avoid treating non-heading body text as title
178
+ - Fixed outdated documentation about background_type default value
179
+
180
+ ### Technical Details
181
+ - **New Files**: None (structure changes only)
182
+ - **Modified Files**:
183
+ - `cmd/md2wechat-new/convert.go` - Added CLI flags, validation, and document parsing
184
+ - `cmd/md2wechat-new/convert_test.go` - Added 4 new test cases
185
+ - `internal/converter/metadata.go` - Added `ArticleDocument` and `ParseArticleDocument`
186
+ - `internal/converter/converter.go` - Added `normalizeRequest` to handle metadata merging
187
+ - `internal/converter/ai.go` - Updated to use stripped body and resolved metadata
188
+ - `internal/config/config.go` - Changed default background_type to "none"
189
+ - Documentation updates across README, docs/, and SKILL.md files
190
+
191
+ ### Migration Guide
192
+ No breaking changes. The new CLI flags are optional. If you relied on the previous `background_type: "default"` behavior, explicitly pass `--background-type default` or set it in your config file.
193
+
194
+ ## [2.0.3] - 2026-03-21
195
+
196
+ ### Added
197
+ - Added Homebrew-friendly multi-platform release archives for `darwin/linux` and `amd64/arm64`, so the project now publishes tarballs that formula-based installs can consume directly.
198
+ - Added automatic tap update support in the release workflow, including generated `Formula/md2wechat-new.rb` output and a release-time push path to `geekjourneyx/homebrew-tap`.
199
+
200
+ ### Changed
201
+ - Upgraded the OpenClaw skill metadata to `metadata.clawdbot` with explicit `brew` and `go install` entries, and rewrote the skill body around discovery-first usage instead of installer instructions.
202
+ - Promoted `brew install lexiaowenn/tap/md2wechat-new` as a first-class installation path in user-facing docs while keeping the fixed-version release installer path for checksum-verified installs.
203
+ - Standardized version injection around `main.Version` so local builds, release builds, formula tests, and `version --json` verification all resolve the same symbol.
204
+
205
+ ### Fixed
206
+ - Fixed Homebrew tap CI so it installs `lexiaowenn/tap/md2wechat-new` through the tap workflow managed by `setup-homebrew`, avoiding local formula rejection, remote mismatch handling, and post-job cleanup failures.
207
+ - Re-audited README, INSTALL, QUICKSTART, FAQ, OPENCLAW, plugin marketplace metadata, and both skill entry points to keep release references aligned at `2.0.3`.
208
+
209
+ ## [2.0.2] - 2026-03-21
210
+
211
+ ### Added
212
+ - Added a dedicated `install-openclaw.ps1` so Windows OpenClaw installation now has a fixed-version installer that provisions both the skill shell and the CLI instead of relying on the generic CLI-only PowerShell installer.
213
+ - Added more agent-friendly installer output for shell and PowerShell flows, including immediate next-step verification commands, PATH repair hints, and explicit `config init` / `capabilities` guidance.
214
+
215
+ ### Changed
216
+ - Reworked both Coding Agent and OpenClaw paths so the skill layer is now knowledge-and-workflow only; both paths assume an already-installed `md2wechat` CLI on a formal user-level install path rather than wrapper-managed runtime bootstrapping.
217
+ - Standardized the recommended installation path around fixed-version installers and direct copy-paste commands for agents, without requiring `MD2WECHAT_RELEASE_BASE_URL` exports or recommending `go install` as an end-user path.
218
+ - Simplified OpenClaw installation so the shell installer provisions the skill shell to `~/.openclaw/skills/md2wechat/` and installs the CLI to the user-level executable path instead of an OpenClaw-private runtime directory.
219
+ - Refreshed README, FAQ, INSTALL, QUICKSTART, and OPENCLAW onboarding so “send this to your agent” scripts consistently export PATH before validating `md2wechat`, reducing first-run failures in fresh shells.
220
+ - Updated release automation and release checks to match the new OpenClaw contract: no OpenClaw wrapper script, new `install-openclaw.ps1`, and smoke verification against an installed CLI on the environment path.
221
+
222
+ ### Removed
223
+ - Removed `skills/md2wechat/scripts/run.sh`; the coding-agent skill no longer acts as a runtime provisioner or wrapper and now documents direct `md2wechat` usage only.
224
+ - Removed `platforms/openclaw/md2wechat/scripts/run.sh`; the OpenClaw skill no longer ships a runtime wrapper and instead assumes the CLI has been installed by the fixed-version installer.
225
+ - Removed `platforms/openclaw/md2wechat/references/runtime.md`; OpenClaw runtime expectations were folded back into `platforms/openclaw/md2wechat/SKILL.md`.
226
+
227
+ ### Fixed
228
+ - Removed coding-agent runtime auto-download during normal execution; the Coding Agent path now rejects missing or mismatched CLIs instead of fetching a remote binary from GitHub Releases at execution time.
229
+ - Fixed OpenClaw packaging drift on Windows by pointing skill install metadata to the dedicated OpenClaw PowerShell installer instead of the generic CLI installer.
230
+ - Fixed high-signal onboarding drift where README / FAQ / OPENCLAW scripts could validate `md2wechat` before repairing `PATH`, which caused avoidable failures in fresh shells.
231
+ - Tightened installer output and OpenClaw guidance so CLI paths, expected skill directory layout, and fixed-version installation flow are described consistently across docs and release metadata.
232
+ - Re-audited README, FAQ, INSTALL, QUICKSTART, OPENCLAW, both `SKILL.md` files, installer comments, and release metadata to keep version anchors aligned at `2.0.2`.
233
+
234
+ ## [2.0.1] - 2026-03-20
235
+
236
+ ### Fixed
237
+ - Fixed the release workflow so PowerShell installer smoke now runs on `windows-latest` instead of Ubuntu, and PowerShell version smoke parses CLI JSON output correctly.
238
+ - Fixed the release workflow binary smoke so release version injection is validated against the actual bundled artifact path.
239
+ - Tightened OpenClaw installation guidance to reflect current ClawHub behavior: `clawhub install md2wechat` installs the skill shell only and does not guarantee runtime provisioning.
240
+ - Added OpenClaw runtime version checks so the OpenClaw wrapper rejects mismatched runtimes instead of silently executing them.
241
+ - Added coding-agent runtime version checks so `skills/md2wechat/scripts/run.sh` only accepts PATH-discovered runtimes when the version matches the current skill version.
242
+ - Improved coding-agent runtime fallback behavior so GitHub Releases download failures no longer produce misleading missing-temp-file errors.
243
+
244
+ ## [2.0.0] - 2026-03-20
245
+
246
+ ### Added
247
+ - Added a typed publish pipeline with shared article, asset, and action models across `convert`, image generation, draft creation, and image-post flows.
248
+ - Added built-in prompt catalog and discovery commands: `capabilities`, `providers`, `themes`, and `prompts`.
249
+ - Added built-in image prompt presets with explicit use-case metadata, including cover, infographic, banner, ticket, sketchnote, Apple-keynote, and Victorian engraving variants.
250
+ - Added higher-level image generation commands `generate_cover` and `generate_infographic`, plus `generate_image --preset` support.
251
+ - Added per-command image model override via `--model` for image generation commands.
252
+ - Added dedicated onboarding and operator docs, including configuration, discovery, WeChat credential/IP whitelist, smoke verification, and image provider guides.
253
+
254
+ ### Changed
255
+ - Reworked the CLI around a stable machine-readable contract with consistent `success/code/message/schema_version/status/data/error` JSON envelopes.
256
+ - Split skill packaging into a coding-agent path (`skills/md2wechat/`) and an OpenClaw path (`platforms/openclaw/md2wechat/`), with platform-specific installation and runtime guidance.
257
+ - Promoted built-in embedded assets for default themes, writer styles, and prompt resources so the CLI no longer depends on repo-relative files to function.
258
+ - Hardened release engineering with a single `VERSION` source, `release-check`, CI/release gates, checksum-verified assets, and installer smoke tests.
259
+ - Standardized discovery-first documentation so README, docs, and both skills point users and agents to CLI capabilities instead of hand-maintained lists.
260
+ - Updated default image provider models to match current provider guidance, including `gpt-image-1.5` for OpenAI and newer Gemini defaults.
261
+
262
+ ### Fixed
263
+ - Fixed frontmatter title fallback so Markdown titles are resolved correctly when frontmatter omits `title`, including CRLF input handling.
264
+ - Fixed remote download and image handling boundaries, including stronger SSRF protection and consistent remote/local image resolution.
265
+ - Fixed `convert --json --output` so requested HTML artifacts are written before returning JSON success payloads.
266
+ - Fixed `create_image_post --from-markdown` so resolved local and remote image paths work correctly outside the article directory.
267
+ - Fixed version-pinned installer behavior so release installers no longer silently drift to newer assets.
268
+ - Fixed Gemini image sizing so aspect ratio and image size are forwarded to the official API config, and documented provider-specific size behavior such as ModelScope's `WIDTHxHEIGHT` requirement.
269
+
270
+ ## [1.11.1] - 2026-03-19
271
+
272
+ ### Changed
273
+ - Tightened the Markdown-to-WeChat pipeline around shared metadata parsing, image placeholder回填, and remote image download boundaries.
274
+ - Expanded command-level and module-level tests across `cmd/md2wechat-new`, `internal/converter`, `internal/draft`, `internal/humanizer`, `internal/wechat`, and `internal/writer`.
275
+ - Promoted checksum-verified, version-pinned release assets and installer scripts as the primary install path.
276
+ - Moved the OpenClaw installer to the same version-pinned release + checksum flow as the main CLI installer.
277
+ - Added build-once, smoke-same-artifact, release-same-artifact flow to the release workflow.
278
+ - Hardened installation and execution docs so fixed-version release assets are the primary install path.
279
+ - Added repository execution guidance in `docs/AGENTS.md` for development, validation, and release discipline.
280
+
281
+ ## [1.11.0] - 2026-03-12
282
+
283
+ ### Fixed
284
+ - **IsAIRequest 函数修复**: 修复了 `IsAIRequest` 始终返回 `false` 的 bug
285
+ - 原代码使用魔法数字 `14` 进行字符串切片比较,但前缀 `"AI_MODE_REQUEST:"` 实际长度为 16,导致比较永远不匹配
286
+ - `ExtractAIRequest` 同样因切片偏移错误 (`[14:]`) 会在结果中保留 `"T:"` 残留前缀
287
+ - 改用 `strings.HasPrefix` / `strings.TrimPrefix`,与 `generator.go` 中的现有模式保持一致
288
+
289
+ ### Changed
290
+ - **aiModePrefix 常量**: 引入包级常量 `aiModePrefix = "AI_MODE_REQUEST:"` 消除魔法数字,所有引用统一使用该常量
291
+
292
+ ### Technical Details
293
+ - **Modified Files**: `internal/converter/ai.go`
294
+
295
+ ### Migration Guide
296
+ No migration required.
297
+
298
+ ## [1.10.0] - 2025-02-10
299
+
300
+ ### Added
301
+ - **Image Post (小绿书/Newspic)**: Create WeChat image-only posts with up to 20 images
302
+ - New `create_image_post` command for 小绿书 creation
303
+ - Support comma-separated image paths: `--images photo1.jpg,photo2.jpg`
304
+ - Extract images from Markdown files: `--from-markdown article.md`
305
+ - Comment settings: `--open-comment`, `--fans-only`
306
+ - Preview mode: `--dry-run` for testing without upload
307
+ - Stdin support for description content
308
+ - **WeChat API Documentation**: Updated `references/wechat-api.md` with complete draft/add API documentation
309
+ - Added `article_type` field (`news`/`newspic`)
310
+ - Added comment settings fields
311
+ - Added image_info structure for newspic
312
+ - Added cover cropping fields
313
+ - **v2 API Themes (38 total)**: Massive theme expansion with new series system
314
+ - **Minimal Series (8)**: minimal-gold, minimal-green, minimal-blue, minimal-orange, minimal-red, minimal-navy, minimal-gray, minimal-sky
315
+ - **Focus Series (8)**: focus-gold, focus-green, focus-blue, focus-orange, focus-red, focus-navy, focus-gray, focus-sky
316
+ - **Elegant Series (8)**: elegant-gold, elegant-green, elegant-blue, elegant-orange, elegant-red, elegant-navy, elegant-gray, elegant-sky
317
+ - **Bold Series (8)**: bold-gold, bold-green, bold-blue, bold-orange, bold-red, bold-navy, bold-gray, bold-sky
318
+ - Theme version tracking: v1.0 (6 basic) vs v2.0 (32 new)
319
+ - Theme preview gallery: https://md2wechat-new.app/theme-gallery
320
+ - **Background Type Control**: New `--background-type` parameter for API mode
321
+ - Options: `default` (default background), `grid` (grid texture), `none` (transparent)
322
+ - Configuration file support: `api.background_type`
323
+ - Environment variable: `DEFAULT_BACKGROUND_TYPE`
324
+ - **Google Gemini Image Provider**: Native Google SDK integration
325
+ - Official `google.golang.org/genai` SDK
326
+ - Direct API calls without third-party wrappers
327
+ - Supports official Gemini image models: gemini-3-pro-image-preview, gemini-2.0-flash-exp-image-generation
328
+ - Full aspect ratio support with official size mappings
329
+ - **OpenRouter Image Provider**: Multi-model provider access
330
+ - Support for various AI models through OpenRouter API
331
+ - OpenRouter format with image_size and aspect_ratio parameters
332
+ - Configuration: `image_provider: openrouter`
333
+
334
+ ### Changed
335
+ - **Article Structure**: Extended with newspic support fields (backward compatible with `omitempty`)
336
+ - `article_type`: news (default) or newspic
337
+ - `need_open_comment`: comment settings
338
+ - `only_fans_can_comment`: fan-only comment settings
339
+ - `image_info`: image list for newspic
340
+ - **API Base URL Configuration**: New `md2wechat_base_url` parameter
341
+ - Support for v2 API endpoint: https://md2wechat-new.app (internal testing)
342
+ - Configuration file: `api.md2wechat_base_url`
343
+ - Environment variable: `MD2WECHAT_BASE_URL`
344
+ - **Theme File Structure**: Reorganized with version tracking
345
+ - v1.0 themes: 6 basic themes (default, bytedance, apple, sports, chinese, cyber)
346
+ - v2.0 themes: 32 new series themes (minimal/focus/elegant/bold series)
347
+ - New `themes/api.yaml`: Complete theme catalog for reference
348
+
349
+ ### Technical Details
350
+ - **New Files**:
351
+ - `cmd/md2wechat-new/create_image_post.go` - CLI command implementation
352
+ - `internal/image/gemini.go` - Google Gemini provider with official SDK
353
+ - `internal/image/gemini_test.go` - Gemini provider tests
354
+ - `internal/image/openrouter.go` - OpenRouter provider implementation
355
+ - `internal/image/openrouter_test.go` - OpenRouter provider tests
356
+ - `themes/api.yaml` - Complete v2 theme catalog
357
+ - `themes/elegant-gold.yaml`, `themes/focus-green.yaml`, `themes/minimal-blue.yaml`, `themes/bold-red.yaml` - Series examples
358
+ - **Modified Files**:
359
+ - `internal/draft/service.go` - Added `CreateImagePost`, `GetImagePostPreview`, `extractImagesFromMarkdown`
360
+ - `internal/wechat/service.go` - Added `CreateNewspicDraft` for direct API call
361
+ - `cmd/md2wechat-new/main.go` - Registered `createImagePostCmd`
362
+ - `cmd/md2wechat-new/convert.go` - Added background_type flag, updated help text
363
+ - `internal/config/config.go` - Added DefaultBackgroundType, MD2WechatBaseURL fields
364
+ - `internal/converter/api.go` - Added BackgroundType to APIRequest, added base URL support
365
+ - `internal/converter/converter.go` - Added BackgroundType to ConvertRequest
366
+ - `internal/image/provider.go` - Added gemini, openrouter providers
367
+ - `skills/md2wechat/references/themes.md` - Updated with v2 themes and background type
368
+ - `themes/*.yaml` - Reorganized with version markers (v1.0 vs v2.0)
369
+ - `docs/CONFIG.md` - Added md2wechat_base_url, background_type documentation
370
+ - `docs/IMAGE_PROVISIONERS.md` - Added Gemini and OpenRouter provider guides
371
+ - `README.md` - Updated with v2 API themes, background type, upgraded API announcement
372
+
373
+ ### Migration Guide
374
+ No migration required. All new features are additive:
375
+ - `create_image_post` is a new command
376
+ - New v2.0 themes are opt-in via `--theme` parameter
377
+ - `background_type` changed to default to "none" (was "default" in v2.0.3)
378
+ - Image providers are configurable, no breaking changes
379
+
380
+ ### Technical Details
381
+ - **New Files**:
382
+ - `cmd/md2wechat-new/create_image_post.go` - CLI command implementation
383
+ - **Modified Files**:
384
+ - `internal/draft/service.go` - Added `CreateImagePost`, `GetImagePostPreview`, `extractImagesFromMarkdown`
385
+ - `internal/wechat/service.go` - Added `CreateNewspicDraft` for direct API call (SDK doesn't support newspic)
386
+ - `cmd/md2wechat-new/main.go` - Registered `createImagePostCmd`
387
+ - `skills/md2wechat/SKILL.md` - Added image post documentation
388
+ - `skills/md2wechat/references/wechat-api.md` - Complete draft API documentation
389
+
390
+ ### Migration Guide
391
+ No migration required. The `create_image_post` command is a new feature and doesn't affect existing functionality.
392
+
393
+ ---
394
+
395
+ ## [1.8.0] - 2025-02-05
396
+
397
+ ### Added
398
+ - **OpenClaw Platform Support**: Full compatibility with OpenClaw AI Agent platform
399
+ - ClawHub installation: `clawhub install md2wechat`
400
+ - One-click install script: `scripts/install-openclaw.sh`
401
+ - OpenClaw configuration guide: `docs/OPENCLAW.md`
402
+ - SKILL.md metadata for OpenClaw compatibility
403
+ - **OpenClaw Badge**: Added to README.md header
404
+
405
+ ### Changed
406
+ - **Directory Structure Simplification**:
407
+ - Renamed `skill/` to `skills/` (unified naming)
408
+ - Removed redundant `plugins/` directory
409
+ - Removed `plugin.json` (keeping only `marketplace.json`)
410
+ - Removed `manifest.json` (version hardcoded in `run.sh`)
411
+ - **Binary Provisioner Refactoring** (`run.sh`):
412
+ - Reduced from 375 lines to 154 lines (-59%)
413
+ - Changed cache directory from `~/.cache/claude/` to `~/.cache/md2wechat-new/`
414
+ - Simplified version management (plain text file instead of JSON)
415
+ - Removed invalid jsDelivr mirror (binaries are in GitHub Releases, not in repo)
416
+ - Improved error messages with cleaner formatting
417
+ - **Documentation Updates**:
418
+ - Updated README.md with OpenClaw support section
419
+ - Fixed project structure diagram
420
+ - Added OpenClaw vs Claude Code comparison table
421
+
422
+ ### Removed
423
+ - `plugins/` directory (redundant copy of skills)
424
+ - `.claude-plugin/plugin.json` (replaced by marketplace.json)
425
+ - `skill/md2wechat-new/manifest.json` (version now in run.sh)
426
+ - `scripts/sync.sh` (no longer needed without plugins/)
427
+
428
+ ### Technical Details
429
+ - **New Files**:
430
+ - `docs/OPENCLAW.md` - OpenClaw installation guide
431
+ - `scripts/install-openclaw.sh` - OpenClaw installer script
432
+ - **Modified Files**:
433
+ - `.claude-plugin/marketplace.json` - source changed to `"."`
434
+ - `skills/md2wechat/SKILL.md` - added `metadata.openclaw` for compatibility
435
+ - `skills/md2wechat/scripts/run.sh` - complete refactoring
436
+
437
+ ### Migration Guide
438
+ No migration required for existing Claude Code users. The skill continues to work the same way.
439
+
440
+ For OpenClaw users:
441
+ 1. Install via ClawHub: `clawhub install md2wechat`
442
+ 2. Configure in `~/.openclaw/openclaw.json`
443
+ 3. See `docs/OPENCLAW.md` for detailed instructions
444
+
445
+ ---
446
+
447
+ ## [1.7.0] - 2025-01-25
448
+
449
+ ### Added
450
+ - **ModelScope Image Provider**: Native integration with Alibaba ModelScope image generation service
451
+ - Async API support with task-based polling mechanism (task_id + status check)
452
+ - Configurable polling interval (default 5s) and max polling time (default 120s)
453
+ - Model: `Tongyi-MAI/Z-Image-Turbo` with support for custom image sizes
454
+ - Free tier available for testing
455
+ - **Write Command Stdin Support**: Pipe input support for non-interactive usage
456
+ - `echo "content" | md2wechat write --style dan-koe`
457
+ - Heredoc support for multi-line content input
458
+ - **Image Size Parameter**: ModelScope provider supports separate `width` and `height` parameters
459
+ - Default size: 1024x1024
460
+ - Configurable via `IMAGE_SIZE` or `image_size` in config
461
+ - **Documentation Updates**:
462
+ - ModelScope configuration guide in README.md
463
+ - New FAQ entries for content size limit, ModelScope setup, and stdin usage
464
+ - Updated `docs/IMAGE_PROVISIONERS.md` with ModelScope documentation
465
+
466
+ ### Changed
467
+ - `internal/image/provider.go`: Added ModelScope (`modelscope`, `ms`) provider to factory
468
+ - `internal/image/provider.go`: Updated error hints to include ModelScope in supported providers list
469
+ - `cmd/md2wechat-new/write.go`: Added `readStdin()` function for pipe/redirection detection
470
+ - `cmd/md2wechat-new/write.go`: Added `io` import for stdin reading functionality
471
+ - `internal/wechat/service.go`: Fixed `maskMediaID()` to handle empty strings safely
472
+ - `skills/md2wechat/SKILL.md`: Added stdin/heredoc usage examples
473
+ - `skills/md2wechat/references/writing-guide.md`: Added non-interactive input methods section
474
+
475
+ ### Technical Details
476
+ - **New Files**:
477
+ - `internal/image/modelscope.go` - ModelScope provider implementation (372 lines)
478
+ - `ModelScopeProvider` struct with async polling support
479
+ - `parseSize()` function for WIDTHxHEIGHT format parsing
480
+ - `createTask()` for async job creation
481
+ - `pollTaskStatus()` for status polling with timeout
482
+ - `getTaskStatus()` for task status retrieval
483
+ - `handleErrorResponse()` for comprehensive error handling
484
+ - `internal/image/modelscope_test.go` - Unit tests (9 test cases, all passing)
485
+
486
+ ### Configuration
487
+ ```yaml
488
+ # ModelScope Configuration Example
489
+ api:
490
+ image_provider: modelscope
491
+ image_key: ms-your-token-here
492
+ image_base_url: https://api-inference.modelscope.cn
493
+ image_model: Tongyi-MAI/Z-Image-Turbo
494
+ image_size: 1024x1024
495
+ ```
496
+
497
+ ### Migration Guide
498
+ No migration required. ModelScope is a new optional image provider. To use it:
499
+
500
+ 1. Get API Key from [modelscope.cn](https://modelscope.cn/my/myaccesstoken)
501
+ 2. Set `IMAGE_PROVIDER=modelscope`
502
+ 3. Set `IMAGE_API_KEY=ms-your-token-here`
503
+ 4. Run: `md2wechat generate_image "A golden cat"`
504
+
505
+ ---
506
+
507
+ ## [1.6.0] - 2025-01-19
508
+
509
+ ### Added
510
+ - **AI Writing Trace Removal (Humanizer)**: Remove AI-generated text patterns to make content sound more natural
511
+ - New `humanize` command for standalone AI trace removal
512
+ - Support for 24 AI writing pattern types based on humanizer-zh method
513
+ - Three intensity levels: `gentle`, `medium` (default), `aggressive`
514
+ - Quality scoring system with 5 dimensions (directness, rhythm, trust, authenticity, conciseness)
515
+ - Style priority principle: preserves writing style characteristics when combined with creator styles
516
+ - **Write + Humanize Integration**: Combine writing style generation with AI trace removal
517
+ - New `--humanize` flag for `write` command
518
+ - New `--humanize-intensity` flag to control processing intensity
519
+ - `--show-changes` flag to view modification details and quality scores
520
+ - `-o, --output` flag for `humanize` command to save results to file
521
+ - **Pattern Detection Categories**:
522
+ - Content patterns: overemphasis, promotional language, vague attribution
523
+ - Language patterns: AI vocabulary, negative parallelism, three-part formula
524
+ - Style patterns: dash overuse, bold abuse, emoji decoration
525
+ - Filler avoidance: padding phrases, over-qualification, generic conclusions
526
+ - Collaboration traces: conversational filler, knowledge cutoff disclaimers
527
+ - **Documentation**:
528
+ - New `references/humanizer.md` with complete AI trace removal guide
529
+ - Updated SKILL.md with humanizer natural language examples
530
+ - Updated manifest.json version to 1.6.0
531
+
532
+ ### Changed
533
+ - `cmd/md2wechat-new/main.go`: Added `humanizeCmd` to root command registration
534
+ - `cmd/md2wechat-new/humanize.go`: Implemented complete humanize command with flags
535
+ - `cmd/md2wechat-new/write.go`: Added humanizer integration flags and output handling
536
+
537
+ ### Technical Details
538
+ - **New Files**:
539
+ - `internal/humanizer/` - AI writing trace removal module
540
+ - `result.go` - Core data structures (HumanizeRequest, HumanizeResult, Score, Change)
541
+ - `prompt.go` - Humanizer-zh prompt builder with 24 pattern types
542
+ - `humanizer.go` - Core processing logic and response parsing
543
+ - `cmd/md2wechat-new/humanize.go` - Humanize command implementation
544
+ - `skills/md2wechat/references/humanizer.md` - Humanizer documentation
545
+
546
+ ### Breaking Changes
547
+ - None
548
+
549
+ ### Migration Guide
550
+ No migration required. The humanize command is a new feature and doesn't affect existing functionality.
551
+
552
+ ---
553
+
554
+ ## [1.5.0] - 2025-01-17
555
+
556
+ ### Added
557
+ - **Writer Style Assistant**: AI-powered writing assistance with customizable creator styles
558
+ - New `write` command for assisted article generation
559
+ - Support for multiple input types: idea, fragment, outline, title
560
+ - Automatic cover prompt generation matching writing style
561
+ - **Dan Koe Style**: First built-in creator writing style
562
+ - Profound, sharp, grounded tone for personal growth and opinion pieces
563
+ - Complete writing framework with hooks, structures, and quote extraction
564
+ - Victorian Woodcut/Etching style cover generation
565
+ - **Custom Style System**: YAML-based style definitions in `writers/` directory
566
+ - Easy to add custom creator styles
567
+ - Configurable writing prompts and cover styles
568
+ - **Image Size Control**: New `--size` parameter for `generate_image` command
569
+ - Support for 16:9 ratio (2560x1440) for WeChat cover images
570
+ - Multiple preset sizes: 2048x2048, 1920x1920, 2560x1440, 1440x2560, etc.
571
+ - **Documentation**:
572
+ - New `writers/README.md` with custom style guide
573
+ - New `docs/WRITING_FAQ.md` for writing beginners
574
+ - New `references/writing-guide.md` with complete write command reference
575
+ - Updated `references/image-syntax.md` with size parameter documentation
576
+ - Enhanced README.md with write command workflows and diagrams
577
+ - Enhanced SKILL.md with writing assistance natural language examples
578
+
579
+ ### Changed
580
+ - README: Added API service notice at top with md2wechat.cn contact information
581
+ - README: Updated author section with donation information and QR codes
582
+ - README: Added writer style comparison table and workflow diagrams
583
+ - SKILL.md: Improved LLM instruction following with explicit trigger conditions
584
+ - Sync script: Added `writing-guide.md` to file synchronization list
585
+
586
+ ### Technical Details
587
+ - **New Files**:
588
+ - `internal/writer/` - Writer style assistant module
589
+ - `types.go` - Core data structures
590
+ - `style.go` - Style management system
591
+ - `generator.go` - Article generation logic
592
+ - `assistant.go` - High-level assistant API
593
+ - `cover_generator.go` - Cover prompt generation
594
+ - `cmd/md2wechat-new/write.go` - Write command implementation
595
+ - `writers/dan-koe.yaml` - Dan Koe style configuration
596
+ - `writers/README.md` - Custom style guide
597
+ - `docs/WRITING_FAQ.md` - Writing functionality FAQ
598
+ - `skills/md2wechat/references/writing-guide.md` - Writing command reference
599
+
600
+ ### Breaking Changes
601
+ - None
602
+
603
+ ### Migration Guide
604
+ No migration required. The write command is a new feature and doesn't affect existing functionality.
605
+
606
+ ---
607
+
608
+ ## [1.4.0] - 2025-01-14
609
+
610
+ ### Added
611
+ - **Provider Pattern**: Extensible image generation service architecture
612
+ - **TuZi Integration**: Support for TuZi (tu-zi.com) image generation service
613
+ - Models: `doubao-seedream-4-5-251128` (default), `gemini-3-pro-image-preview`
614
+ - Sizes: 2048x2048 (default), 1920x1920, 2560x1440, 1440x2560, 3072x2048, 2048x3072, 3840x2160, 2160x3840
615
+ - **Natural Language Image Generation**: Generate images via conversational interface
616
+ - Method 1: Insert into article at specific position
617
+ - Method 2: Standalone image generation
618
+ - Method 3: Manual Markdown syntax `![alt](__generate:prompt__)`
619
+ - **Configuration Fields**: `image_provider`, `image_api_base`, `image_model`, `image_size`
620
+ - **Documentation**: New `docs/IMAGE_PROVISIONERS.md` with complete provider configuration guide
621
+ - **Sync Script**: `scripts/sync.sh` to keep `skill/` and `plugins/` directories synchronized
622
+ - **Makefile Target**: `make sync` for easy directory synchronization
623
+
624
+ ### Changed
625
+ - README: Enhanced platform-specific download instructions (Mac Intel vs Apple Silicon)
626
+ - README: Added AI image generation section with natural language examples
627
+ - `scripts/install.sh`: Added Linux ARM64 detection and support
628
+ - Default TuZi image size: `1024x1024` → `2048x2048` (TuZi requires minimum 3.7M pixels)
629
+
630
+ ### Fixed
631
+ - URL download with query parameters: Fixed file name too long error when downloading generated images
632
+ - Platform detection in install script for ARM64 systems
633
+ - API base URL documentation: Updated to correct `https://api.tu-zi.com/v1`
634
+
635
+ ### Technical Details
636
+ - **New Files**:
637
+ - `internal/image/provider.go` - Provider interface and factory
638
+ - `internal/image/openai.go` - OpenAI DALL-E provider
639
+ - `internal/image/tuzi.go` - TuZi image generation provider
640
+ - `docs/IMAGE_PROVISIONERS.md` - Provider configuration guide
641
+ - `scripts/sync.sh` - Directory synchronization script
642
+
643
+ ---
644
+
645
+ ## [1.3.1] - 2025-01-12
646
+
647
+ ### Added
648
+ - Auto-download binary from GitHub releases on first run
649
+ - User-friendly error messages with actionable guidance
650
+ - System dependencies declaration in `manifest.json`
651
+ - XDG-compliant cache directory (`~/.cache/claude/`) for binary storage
652
+ - Fallback to local `bin/` directory for development/offline usage
653
+ - Automatic version checking and update prompt when binary is outdated
654
+
655
+ ### Changed
656
+ - Binary naming format now uses hyphens (`md2wechat-linux-amd64`) to match GitHub releases
657
+ - Error messages now show human-readable platform names (e.g., "macOS (Apple Silicon)")
658
+ - Download progress displays concise status information
659
+
660
+ ### Fixed
661
+ - Binary name mismatch between workflow and run.sh that caused download failures
662
+
663
+ ---
664
+
665
+ ## [1.3.0] - 2025-01-11
666
+
667
+ ### Added
668
+ - Plugin Marketplace support with `.claude-plugin/marketplace.json`
669
+ - One-command Claude Code installation via `/plugin marketplace add`
670
+ - Prominent Claude Code installation section at top of README
671
+ - Claude Code badge for quick identification
672
+ - Detailed binary installation instructions with location guidance
673
+ - Installation steps for Windows, Mac, and Linux users
674
+
675
+ ### Changed
676
+ - Updated docs/QUICKSTART.md with Claude Code section at the beginning
677
+ - Enhanced docs/USAGE.md with Claude Code integration guide
678
+ - Improved download table with installation locations
679
+ - Added collapsible installation steps for each platform
680
+
681
+ ### Installation
682
+ ```bash
683
+ # Claude Code users (simplest)
684
+ /plugin marketplace add LeXiaoWen/md2wechat-new
685
+ /plugin install md2wechat@lexiaowenn-md2wechat-new
686
+ ```
687
+
688
+ ---
689
+
690
+ ## [1.2.0] - 2025-01-11
691
+
692
+ ### Added
693
+ - Claude Code Skill support with `.claude-plugin/plugin.json`
694
+ - Claude Code Skill in `skills/md2wechat/` directory for distribution
695
+ - New API themes: `bytedance`, `apple`, `sports`, `chinese`, `cyber`
696
+ - Comprehensive troubleshooting guide in SKILL.md
697
+ - API theme selection section in README.md
698
+ - CHANGELOG.md with version history and upgrade guide
699
+
700
+ ### Changed
701
+ - Updated themes.md with complete API and AI theme documentation
702
+ - Enhanced HTML guide with AI theme specific requirements
703
+ - Improved SKILL.md with detailed error handling and FAQ
704
+ - Updated command help text to reflect all available themes
705
+ - Enhanced FAQ.md with IP whitelist configuration guide
706
+
707
+ ### Removed
708
+ - `leo` theme (deprecated)
709
+
710
+ ---
711
+
712
+ ## [1.1.0] - 2025-01-11
713
+
714
+ ### Added
715
+ - YAML-based theme system for AI mode
716
+ - AI themes: `autumn-warm`, `spring-fresh`, `ocean-calm`
717
+ - Custom theme support with `custom.yaml`
718
+ - Theme configuration with color schemes and style info
719
+ - Reference documentation for themes, HTML guide, image syntax, and WeChat API
720
+
721
+ ### Changed
722
+ - Refactored theme system to use YAML files instead of hardcoded prompts
723
+ - Updated SKILL.md with new AI theme workflow
724
+ - Enhanced themes.md with detailed style specifications
725
+
726
+ ---
727
+
728
+ ## [1.0.1] - 2025-01-11
729
+
730
+ ### Fixed
731
+ - Mermaid diagrams rendering for GitHub documentation
732
+
733
+ ---
734
+
735
+ ## [1.0.0] - 2025-01-11
736
+
737
+ ### Added
738
+ - Initial release of md2wechat
739
+ - API mode conversion using md2wechat.cn API
740
+ - AI mode conversion with Claude AI
741
+ - WeChat draft upload functionality
742
+ - Image upload to WeChat material library
743
+ - Configuration management with YAML support
744
+ - Command-line interface with cobra
745
+ - Multi-platform binary support (Windows, macOS, Linux)
746
+ - Comprehensive documentation (README, FAQ, USAGE)
747
+ - Test draft command for HTML validation
748
+
749
+ ### Features
750
+ - Convert Markdown to WeChat Official Account formatted HTML
751
+ - Support for local images, online images, and AI-generated images
752
+ - Automatic image compression and optimization
753
+ - Draft creation with cover image support
754
+ - Environment variable and config file support
755
+ - Claude Code Skill integration
756
+
757
+ ---
758
+
759
+ ## Version History Summary
760
+
761
+ | Version | Date | Description |
762
+ |---------|------|-------------|
763
+ | [1.9.0] | 2025-02-06 | Image Post (小绿书/newspic) support |
764
+ | [1.8.0] | 2025-02-05 | OpenClaw support, directory simplification, run.sh refactoring |
765
+ | [1.7.0] | 2025-01-25 | ModelScope image provider, write command stdin support |
766
+ | [1.6.0] | 2025-01-19 | AI writing trace removal (Humanizer), write + humanize integration |
767
+ | [1.5.0] | 2025-01-17 | Writer style assistant, Dan Koe style, image size control |
768
+ | [1.4.0] | 2025-01-14 | TuZi image provider, natural language image generation |
769
+ | [1.3.1] | 2025-01-12 | Auto binary download, user-friendly errors, system dependencies |
770
+ | [1.3.0] | 2025-01-11 | Plugin Marketplace support, enhanced installation docs |
771
+ | [1.2.0] | 2025-01-11 | Claude Code plugin support, new API themes |
772
+ | [1.1.0] | 2025-01-11 | YAML theme system, AI themes (autumn-warm, spring-fresh, ocean-calm) |
773
+ | [1.0.1] | 2025-01-11 | Fixed Mermaid diagrams for GitHub rendering |
774
+ | [1.0.0] | 2025-01-11 | Initial release with full md2wechat functionality |
775
+
776
+ ---
777
+
778
+ ## Upgrade Guide
779
+
780
+ ### From v1.1.0 to Unreleased
781
+
782
+ **New API Themes Available:**
783
+ ```bash
784
+ # New themes available
785
+ md2wechat convert article.md --theme bytedance
786
+ md2wechat convert article.md --theme apple
787
+ md2wechat convert article.md --theme sports
788
+ md2wechat convert article.md --theme chinese
789
+ md2wechat convert article.md --theme cyber
790
+ ```
791
+
792
+ **Claude Code Skill Integration:**
793
+ ```bash
794
+ # Install as Claude Code Skill
795
+ cp -r skills/md2wechat ~/.claude/skills/
796
+ ```
797
+
798
+ ### From v1.0.0 to v1.1.0
799
+
800
+ **Theme System Migration:**
801
+ - Old theme names have been updated
802
+ - AI themes now use YAML configuration files
803
+ - Update your commands to use new theme names:
804
+ - `autumn-warm` instead of `elegant`
805
+ - `spring-fresh` instead of `minimal`
806
+ - `ocean-calm` instead of `tech`
807
+
808
+ ---
809
+
810
+ ## Links
811
+
812
+ - [GitHub Repository](https://github.com/LeXiaoWen/md2wechat-new)
813
+ - [Documentation](README.md)
814
+ - [Issues](https://github.com/LeXiaoWen/md2wechat-new/issues)