{"id":"a0fbfe36-b714-4265-9155-5f447d7ccd83","entityType":"agent","slug":"clawhub-jasonleezy-session2blog","name":"Session2blog Clawhub","canonicalUrl":"https://www.xpersona.co/agent/clawhub-jasonleezy-session2blog","canonicalPath":"/agent/clawhub-jasonleezy-session2blog","generatedAt":"2026-10-10T10:43:54.505Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T07:59:44.675Z","emptyReason":null},"description":"把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。 Skill: Session2blog Clawhub Owner: jasonleezy Summary: 把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。 Tags: blogging:1.1.2, latest:1.1.10, openclaw:1.1.2, productivity:1.1.2 Version history: v1.1.10 | 2026-07-14T14:41:15.771Z | user 协作溯源定位升级：新增 --with-collab 参数与 include_collab_trace 配置，文末追加「协作过程与关键决策点」区块（中英文适配）；删除「完全闭环」旧雷，明确信任边界（免费本地/Pro可选远程）；修复 s2b.sh 既有 bug（PUBLISH","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1785kpqz2crevq0261dn5tcqd8ab8xt:session2blog","sourceUrl":"https://clawhub.ai/jasonleezy/session2blog","homepage":"https://clawhub.ai/jasonleezy/skills/session2blog","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/jasonleezy/session2blog","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/jasonleezy/skills/session2blog","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。 Skill: Session2blog Clawhub Owner: jasonleezy Summary: 把 OpenC"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:59:44.675Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:59:44.675Z","emptyReason":null},"stars":null,"forks":null,"downloads":1575,"packageName":null,"latestVersion":"1.1.10","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:59:44.675Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T07:59:44.675Z","lastCrawledAt":"2026-10-10T07:59:44.675Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T07:59:44.675Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.10","createdAt":"2026-07-14T14:41:15.771Z","changelog":"协作溯源定位升级：新增 --with-collab 参数与 include_collab_trace 配置，文末追加「协作过程与关键决策点」区块（中英文适配）；删除「完全闭环」旧雷，明确信任边界（免费本地/Pro可选远程）；修复 s2b.sh 既有 bug（PUBLISH未定义/files未初始化/lang自动检测）","fileCount":6,"zipByteSize":23098},{"version":"1.1.9","createdAt":"2026-07-12T07:23:12.123Z","changelog":"安全审计整改: 彻底移除免费版发布代码(纯本地生成器); SKILL加permissions声明; 开头加会话写盘警告; 写作指令加提示注入缓解(忽略对话内指令); 文档不误指免费版能发","fileCount":6,"zipByteSize":20595},{"version":"1.1.8","createdAt":"2026-07-12T06:58:29.146Z","changelog":"Trigger改回合理区间(明确意图触发,排除模糊闲聊); 免费版文档剔除发布/cookie/ollama残留; 新增--help完整使用说明; 文档末尾加GitHub点星引导","fileCount":6,"zipByteSize":22300},{"version":"1.1.7","createdAt":"2026-07-12T06:20:19.244Z","changelog":"修复1.1.5遗留4个中风险: README敏感数据警告; Trigger仅显式/s2b命令(去宽匹配); stdout不再回显完整对话(改脱敏截断摘要); 权限声明收敛","fileCount":6,"zipByteSize":23205},{"version":"1.1.6","createdAt":"2026-07-12T06:16:29.686Z","changelog":"中英双语生成(--lang zh|en, 默认按对话语言自动识别); 各平台去AI味仿人写作指令; 英文平台 devto/hashnode/medium/hn; 文档新增生成质量与人工复核说明","fileCount":6,"zipByteSize":22798},{"version":"1.1.5","createdAt":"2026-07-11T18:56:23.632Z","changelog":"彻底剔除发布/ollama/cookie 代码(免费版纯本地); SKILL.md 加权限声明+数据边界; install.sh 去掉 Cookie 占位; 移除 Pro 营销文案; skill-card 诚实披露风险","fileCount":6,"zipByteSize":15673},{"version":"1.1.4","createdAt":"2026-07-11T18:40:51.739Z","changelog":"同步稳定性改进; 收紧双轨边界(免费版零发布/ollama/cookie代码); skill-card 版本号与风险描述对齐免费版本地闭环","fileCount":7,"zipByteSize":18302},{"version":"1.1.3","createdAt":"2026-07-11T18:39:45.441Z","changelog":"同步会话列表/脱敏稳定性改进; 收紧双轨边界(免费版彻底剔除发布/ollama/cookie 代码); 文档明确免费版本地闭环, 掘金发布仅Pro版(Gumroad $5)","fileCount":7,"zipByteSize":18185}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1785kpqz2crevq0261dn5tcqd8ab8xt:session2blog","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T10:43:54.503Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jasonleezy-session2blog/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T07:59:44.675Z","emptyReason":null},"readme":"Skill: Session2blog Clawhub\n\nOwner: jasonleezy\n\nSummary: 把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\n\nTags: blogging:1.1.2, latest:1.1.10, openclaw:1.1.2, productivity:1.1.2\n\nVersion history:\n\nv1.1.10 | 2026-07-14T14:41:15.771Z | user\n\n协作溯源定位升级：新增 --with-collab 参数与 include_collab_trace 配置，文末追加「协作过程与关键决策点」区块（中英文适配）；删除「完全闭环」旧雷，明确信任边界（免费本地/Pro可选远程）；修复 s2b.sh 既有 bug（PUBLISH未定义/files未初始化/lang自动检测）\n\nv1.1.9 | 2026-07-12T07:23:12.123Z | user\n\n安全审计整改: 彻底移除免费版发布代码(纯本地生成器); SKILL加permissions声明; 开头加会话写盘警告; 写作指令加提示注入缓解(忽略对话内指令); 文档不误指免费版能发\n\nv1.1.8 | 2026-07-12T06:58:29.146Z | user\n\nTrigger改回合理区间(明确意图触发,排除模糊闲聊); 免费版文档剔除发布/cookie/ollama残留; 新增--help完整使用说明; 文档末尾加GitHub点星引导\n\nv1.1.7 | 2026-07-12T06:20:19.244Z | user\n\n修复1.1.5遗留4个中风险: README敏感数据警告; Trigger仅显式/s2b命令(去宽匹配); stdout不再回显完整对话(改脱敏截断摘要); 权限声明收敛\n\nv1.1.6 | 2026-07-12T06:16:29.686Z | user\n\n中英双语生成(--lang zh|en, 默认按对话语言自动识别); 各平台去AI味仿人写作指令; 英文平台 devto/hashnode/medium/hn; 文档新增生成质量与人工复核说明\n\nv1.1.5 | 2026-07-11T18:56:23.632Z | user\n\n彻底剔除发布/ollama/cookie 代码(免费版纯本地); SKILL.md 加权限声明+数据边界; install.sh 去掉 Cookie 占位; 移除 Pro 营销文案; skill-card 诚实披露风险\n\nv1.1.4 | 2026-07-11T18:40:51.739Z | user\n\n同步稳定性改进; 收紧双轨边界(免费版零发布/ollama/cookie代码); skill-card 版本号与风险描述对齐免费版本地闭环\n\nv1.1.3 | 2026-07-11T18:39:45.441Z | user\n\n同步会话列表/脱敏稳定性改进; 收紧双轨边界(免费版彻底剔除发布/ollama/cookie 代码); 文档明确免费版本地闭环, 掘金发布仅Pro版(Gumroad $5)\n\nv1.1.2 | 2026-07-11T17:00:22.617Z | user\n\nv1.1.2: 明确数据流向信任边界(免费版本地/Pro版可选远程发掘金), 修复 ClawHub 安全审核 Review 指出的误导问题\n\nv1.1.1 | 2026-07-11T16:22:18.830Z | user\n\nv1.1.1: 修正 config 路径文档(config.yaml 统一), 安装脚本自动生成配置文件含 juejin_cookie 占位与抓取说明\n\nv1.1.0 | 2026-07-11T15:28:50.449Z | user\n\nv1.1: 新增 --platform 平台爆款文风格输出(微信/掘金/CSDN/知乎)\n\nArchive index:\n\nArchive v1.1.10: 6 files, 23098 bytes\n\nFiles: _meta.json (132b), install.sh (1940b), README.md (8803b), s2b.sh (24588b), skill-card.md (2329b), SKILL.md (11733b)\n\nFile v1.1.10:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": {\n          \"bins\": [\"python3\"],\n          \"permissions\": {\n            \"filesystem\": {\n              \"read\": [\"~/.openclaw/session2blog/\", \"~/.openclaw/agents/\", \"~/.openclaw/sessions/\"],\n              \"write\": [\"~/.openclaw/session2blog/articles/\"]\n            },\n            \"process\": { \"execute\": [\"python3\"] }\n          }\n        },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n> ⚠️ **本工具会读取并处理您的完整会话历史，并写入本地 Markdown 文件。** 会话可能包含 API Key、Token、私人路径、邮箱等敏感信息。工具会做最佳努力脱敏（非 100% 保证），**运行前请确认会话不含机密**，发布/外发前请人工复核。\n\n把当前或指定的 OpenClaw 会话中**你与 AI 协作解决问题、创作、决策的过程**，按模板整理成一篇带真人决策链的结构化博文，保存为 Markdown 文件到本地。\n\n**它不是 AI 替你写文章，而是把你们真实的协作痕迹沉淀成可读的内容**——平台抵制的是无脑 AIGC 注水，而这里的每个观点都来自真人在 loop 里的判断与拍板。\n\n## Trigger\n\n当用户**明确想要把当前/指定会话整理成博文**时触发：\n- 斜杠命令：`/s2b` 或 `/session2blog`\n- 明确的自然语言意图，例如：\"把这个会话整理成博文\"\"帮我导出成博客\"\"写篇技术复盘/学习笔记/排障记录\"\n\n> 限定范围：仅在用户意图清晰时触发。**不响应模糊闲聊**（如单说\"博客\"\"整理一下\"等可能在日常对话里随机命中的表述），避免误把普通会话写盘。\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：中文 wechat|juejin|csdn|zhihu；英文 devto|hashnode|medium|hn|generic；none(默认) | all(按语言出全平台各一版)\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --platform all --template tech-review             # 中文: 一次生成微信+掘金+CSDN+知乎 4 版\n/s2b --lang en --platform all --template tech-review    # 英文: 一次生成 Dev.to+Hashnode+Medium+HN 4 版\n/s2b --with-collab            # 文末追加「协作过程与关键决策点」区块(协作溯源, 显式真人决策)\n```\n\n## 发布（Pro 版功能）\n\n免费版只生成本地 Markdown 文件，**不发布**到任何平台。一键发布（掘金/微信/CSDN/知乎）为 Pro 版功能，配置与用法见文末「升级到 Pro 版」。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值（中文）：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎)\n`--platform` 可选值（英文）：`devto` | `hashnode` | `medium` | `hn`(Hacker News 风格) | `generic`(通用英文)\n通用：`none`(默认，通用风格) | `all`(按 `--lang` 出对应语言的全平台版本)\n`--lang` 可选值：`zh`(中文，默认) | `en`(English)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n\n**英文平台风格（需 `--lang en`）**：\n- **Dev.to (devto)** — 实用、友好、代码导向；标题直给结果，正文短章节+可运行代码，结尾「你学到了什么」\n- **Hashnode (hashnode)** — 精致、个人品牌向；标题抛读者收益，强开头钩子，结构化小标题，结尾给 takeaway\n- **Medium (medium)** — 叙事、思辨、长文；标题是承诺或温和反共识，靠例子推进论点，代码服务于故事\n- **Hacker News (hn)** — 极简、重实质、无营销；标题是事实陈述或问句，正文密集直接，讲清是什么/为什么/权衡\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则按 `--lang` 生成对应语言的全平台文件（中文: wechat/juejin/csdn/zhihu；英文: devto/hashnode/medium/hn），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 协作溯源：是否在博文末尾追加「协作过程与关键决策点」区块（默认 false 不加）\n# 也可在命令里用 /s2b --with-collab 临时开启，无需改配置\ninclude_collab_trace: false\n\n# 配置项（本地可选）\n# 免费版仅需 articles_dir；发布相关配置为 Pro 版功能，此处不展开。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 生成博文：默认使用 OpenClaw 会话自带模型（零额外依赖）；本地 `ollama` 为可选，用于脚本自动写文（未安装则走会话模型写文路径）\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 工具只负责按平台风格整理结构，文风与准确性由实际写文模型决定。\n- **发布前请人工复核：** 技术细节、代码、数据，以及脱敏是否彻底。\n- 已内置「去 AI 味·仿人写作」要求，但模型遵循程度不一，以人工检查为准。\n\n## 支持这个项目\n\n如果免费版帮到了你，欢迎到 GitHub 点个 ⭐：\n\n👉 https://github.com/jasonleezy/session2blog\n\n你的 star 是对开源创作者最好的鼓励。\n\nFile v1.1.10:README.md\n\n# Session2Blog 📝\n\n> ⚠️ **敏感数据提醒**：本工具会把 OpenClaw 会话历史提取并写入本地文件。对话中可能包含 API Key、Token、私人路径、邮箱或用户名等敏感信息。工具会做**最佳努力脱敏**（非 100% 保证），**发布前请人工复核**是否仍有遗漏。不要在含机密信息的会话上直接运行。\n\n把 OpenClaw **你与 AI 真正协作解决问题的过程**，沉淀成带真人决策链的结构化博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 为什么是它，而不是又一个 AI 写作工具\n\n各大平台抵制的，从来不是「AI 参与创作」，而是**无脑 AIGC 的注水低质货**——没有观点、没有判断、没有真人在 loop 里拍板。\n\nSession2Blog 解决的正是这个问题：它生成的不是 AI 替你写的文章，而是**你和 AI 对话协作的痕迹**。每一个关键决策、每一次纠错、每一句「我觉得应该这样」都来自真人。AI 只负责把这段协作过程整理、润色成可读的博文。\n\n> 平台反感的是「没有人的内容」。**你的内容里，每一个观点都站着一个人。**\n\n**协作溯源**是核心差异点：文章的可信度不靠一句「这是人写的」空话，而来自可见的对话轨迹与决策节点。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活、把问题聊透了，输一句 `/s2b`，它就把**这段真实协作过程**整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置（免费版）**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的——**免费版 100% 本地处理，不出本机**。\n\n> 📌 **信任边界**：免费版完全本地。Pro 版的一键发布为**可选功能**，需你主动配置平台凭证（如掘金 Cookie）才会发生远程调用，非默认行为，且默认只发到草稿箱、由你复核后再公开。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 中文: 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --lang en --platform all    # 英文: 一次生成 Dev.to/Hashnode/Medium/HN 4 版\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台(中文) | 一次生成上述 4 个平台版本 | — |\n| **英文平台** | | |\n| `devto` Dev.to | 实用、友好、代码导向 | \"How I cut build time by 60% with X\" |\n| `hashnode` Hashnode | 精致、个人品牌向、结构化 | \"The Complete Guide to X for Beginners\" |\n| `medium` Medium | 叙事、思辨、长文 | \"Stop Using X — Here is What I Do Instead\" |\n| `hn` Hacker News | 极简、重实质、无营销 | \"Show HN: X does Y in 10 lines\" |\n| `all` 全平台(英文) | 一次生成 Dev.to/Hashnode/Medium/HN 4 版 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | devto | hashnode | medium | hn | generic | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 协作溯源：是否在博文末尾追加「协作过程与关键决策点」区块（默认 false 不加）\n# 也可临时用 /s2b --with-collab 开启，无需改配置\ninclude_collab_trace: false\n\n> 📌 **发布为 Pro 版功能**：免费版仅生成本地 Markdown。一键发布（掘金/微信/CSDN/知乎）的配置与用法见文末「升级到 Pro 版」及 Pro 版文档。\n\n## 目录结构\n\n```\nsession2blog/\n├── SKILL.md          # Skill 定义（/s2b 命令行为）\n├── s2b.sh            # 内部实现：读 session JSONL → 脱敏 → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/）\n├── README.md         # 本文件\n└── gumroad-product-copy.md  # 产品页文案\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 本地可选配置（免费版仅需 articles_dir）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 定价: $5 一次购买，终身更新\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 本工具负责把对话整理成结构化的平台风格草稿，但文风、准确性、深度取决于实际写文的模型（OpenClaw 会话模型或本地 ollama）。\n- **建议人工复核后再发布。** 尤其是技术细节、代码片段、数据准确性，以及自动脱敏是否遗漏了敏感信息。\n- 工具已内置「去 AI 味·仿人写作」指令，但不同模型遵循程度不一，最终可读性以人工检查为准。\n\n## 支持这个项目\n\n如果这个工具帮到了你，欢迎到 GitHub 点个 ⭐，让更多人发现：\n\n👉 https://github.com/jasonleezy/session2blog\n\n你的 star 是对开源创作者最好的鼓励。\n\nFile v1.1.10:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.10\",\n  \"publishedAt\": 1784040075771\n}\n\nFile v1.1.10:skill-card.md\n\n## Description:\n\nSession2Blog turns OpenClaw collaboration sessions into structured Markdown blog drafts for technical retrospectives, learning notes, and troubleshooting records.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[jasonleezy](https://clawhub.ai/user/jasonleezy)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nOpenClaw users and developers use this skill to turn local agent conversations into publishable Markdown drafts with platform-specific style guidance. It is aimed at documenting real debugging, learning, and technical decision workflows while keeping a human review step before publication.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill processes full local OpenClaw session history, which may include secrets, private conversations, or identifying details.\n\nMitigation: Run it only on sessions suitable for draft content and manually review generated Markdown before sharing or publishing.\n\nRisk: The server security summary reports that the session selector can read unintended local JSONL files outside the declared session area.\n\nMitigation: Prefer a version that validates --session as a simple session ID and confirms the resolved file remains inside the OpenClaw session directory.\n\nRisk: Automatic redaction is described as best effort and may miss sensitive information.\n\nMitigation: Inspect output for credentials, personal identifiers, and full local paths before publication.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog)\n- [Publisher profile](https://clawhub.ai/user/jasonleezy)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown blog drafts plus command output, session summaries, and writing instructions]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create one or more local Markdown files under the configured articles directory.]\n\n## Skill Version(s):\n\n1.1.10 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.9: 6 files, 20595 bytes\n\nFiles: _meta.json (131b), install.sh (1940b), README.md (7424b), s2b.sh (21313b), skill-card.md (2204b), SKILL.md (11051b)\n\nFile v1.1.9:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": {\n          \"bins\": [\"python3\"],\n          \"permissions\": {\n            \"filesystem\": {\n              \"read\": [\"~/.openclaw/session2blog/\", \"~/.openclaw/agents/\", \"~/.openclaw/sessions/\"],\n              \"write\": [\"~/.openclaw/session2blog/articles/\"]\n            },\n            \"process\": { \"execute\": [\"python3\"] }\n          }\n        },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n> ⚠️ **本工具会读取并处理您的完整会话历史，并写入本地 Markdown 文件。** 会话可能包含 API Key、Token、私人路径、邮箱等敏感信息。工具会做最佳努力脱敏（非 100% 保证），**运行前请确认会话不含机密**，发布/外发前请人工复核。\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n当用户**明确想要把当前/指定会话整理成博文**时触发：\n- 斜杠命令：`/s2b` 或 `/session2blog`\n- 明确的自然语言意图，例如：\"把这个会话整理成博文\"\"帮我导出成博客\"\"写篇技术复盘/学习笔记/排障记录\"\n\n> 限定范围：仅在用户意图清晰时触发。**不响应模糊闲聊**（如单说\"博客\"\"整理一下\"等可能在日常对话里随机命中的表述），避免误把普通会话写盘。\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：中文 wechat|juejin|csdn|zhihu；英文 devto|hashnode|medium|hn|generic；none(默认) | all(按语言出全平台各一版)\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --platform all --template tech-review             # 中文: 一次生成微信+掘金+CSDN+知乎 4 版\n/s2b --lang en --platform all --template tech-review    # 英文: 一次生成 Dev.to+Hashnode+Medium+HN 4 版\n```\n\n## 发布（Pro 版功能）\n\n免费版只生成本地 Markdown 文件，**不发布**到任何平台。一键发布（掘金/微信/CSDN/知乎）为 Pro 版功能，配置与用法见文末「升级到 Pro 版」。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值（中文）：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎)\n`--platform` 可选值（英文）：`devto` | `hashnode` | `medium` | `hn`(Hacker News 风格) | `generic`(通用英文)\n通用：`none`(默认，通用风格) | `all`(按 `--lang` 出对应语言的全平台版本)\n`--lang` 可选值：`zh`(中文，默认) | `en`(English)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n\n**英文平台风格（需 `--lang en`）**：\n- **Dev.to (devto)** — 实用、友好、代码导向；标题直给结果，正文短章节+可运行代码，结尾「你学到了什么」\n- **Hashnode (hashnode)** — 精致、个人品牌向；标题抛读者收益，强开头钩子，结构化小标题，结尾给 takeaway\n- **Medium (medium)** — 叙事、思辨、长文；标题是承诺或温和反共识，靠例子推进论点，代码服务于故事\n- **Hacker News (hn)** — 极简、重实质、无营销；标题是事实陈述或问句，正文密集直接，讲清是什么/为什么/权衡\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则按 `--lang` 生成对应语言的全平台文件（中文: wechat/juejin/csdn/zhihu；英文: devto/hashnode/medium/hn），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 配置项（本地可选）\n# 免费版仅需 articles_dir；发布相关配置为 Pro 版功能，此处不展开。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 生成博文：默认使用 OpenClaw 会话自带模型（零额外依赖）；本地 `ollama` 为可选，用于脚本自动写文（未安装则走会话模型写文路径）\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 工具只负责按平台风格整理结构，文风与准确性由实际写文模型决定。\n- **发布前请人工复核：** 技术细节、代码、数据，以及脱敏是否彻底。\n- 已内置「去 AI 味·仿人写作」要求，但模型遵循程度不一，以人工检查为准。\n\n## 支持这个项目\n\n如果免费版帮到了你，欢迎到 GitHub 点个 ⭐：\n\n👉 https://github.com/jasonleezy/session2blog\n\n你的 star 是对开源创作者最好的鼓励。\n\nFile v1.1.9:README.md\n\n# Session2Blog 📝\n\n> ⚠️ **敏感数据提醒**：本工具会把 OpenClaw 会话历史提取并写入本地文件。对话中可能包含 API Key、Token、私人路径、邮箱或用户名等敏感信息。工具会做**最佳努力脱敏**（非 100% 保证），**发布前请人工复核**是否仍有遗漏。不要在含机密信息的会话上直接运行。\n\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 中文: 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --lang en --platform all    # 英文: 一次生成 Dev.to/Hashnode/Medium/HN 4 版\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台(中文) | 一次生成上述 4 个平台版本 | — |\n| **英文平台** | | |\n| `devto` Dev.to | 实用、友好、代码导向 | \"How I cut build time by 60% with X\" |\n| `hashnode` Hashnode | 精致、个人品牌向、结构化 | \"The Complete Guide to X for Beginners\" |\n| `medium` Medium | 叙事、思辨、长文 | \"Stop Using X — Here is What I Do Instead\" |\n| `hn` Hacker News | 极简、重实质、无营销 | \"Show HN: X does Y in 10 lines\" |\n| `all` 全平台(英文) | 一次生成 Dev.to/Hashnode/Medium/HN 4 版 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | devto | hashnode | medium | hn | generic | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n\n> 📌 **发布为 Pro 版功能**：免费版仅生成本地 Markdown。一键发布（掘金/微信/CSDN/知乎）的配置与用法见文末「升级到 Pro 版」及 Pro 版文档。\n\n## 目录结构\n\n```\nsession2blog/\n├── SKILL.md          # Skill 定义（/s2b 命令行为）\n├── s2b.sh            # 内部实现：读 session JSONL → 脱敏 → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/）\n├── README.md         # 本文件\n└── gumroad-product-copy.md  # 产品页文案\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 本地可选配置（免费版仅需 articles_dir）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 定价: $5 一次购买，终身更新\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 本工具负责把对话整理成结构化的平台风格草稿，但文风、准确性、深度取决于实际写文的模型（OpenClaw 会话模型或本地 ollama）。\n- **建议人工复核后再发布。** 尤其是技术细节、代码片段、数据准确性，以及自动脱敏是否遗漏了敏感信息。\n- 工具已内置「去 AI 味·仿人写作」指令，但不同模型遵循程度不一，最终可读性以人工检查为准。\n\n## 支持这个项目\n\n如果这个工具帮到了你，欢迎到 GitHub 点个 ⭐，让更多人发现：\n\n👉 https://github.com/jasonleezy/session2blog\n\n你的 star 是对开源创作者最好的鼓励。\n\nFile v1.1.9:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.9\",\n  \"publishedAt\": 1783840992123\n}\n\nFile v1.1.9:skill-card.md\n\n## Description: <br>\nSession2blog turns OpenClaw session history into structured Markdown blog drafts for technical retrospectives, learning notes, and troubleshooting write-ups. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nOpenClaw users and developers use this skill to convert local agent session history into publishable Markdown drafts tailored for technical reviews, learning notes, troubleshooting records, and platform-specific blog styles. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: OpenClaw session history can contain credentials, customer data, private logs, paths, or other sensitive troubleshooting details. <br>\nMitigation: Run the skill only on conversations suitable for local processing, keep redaction placeholders intact, and manually review generated Markdown before publishing, committing, or syncing it. <br>\nRisk: Generated blog drafts may contain inaccurate technical details or incomplete sensitive-data redaction. <br>\nMitigation: Review claims, code snippets, data, and redaction results before sharing the output outside the local environment. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n- [Session2Blog GitHub project](https://github.com/jasonleezy/session2blog) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown drafts and text instructions with shell command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Writes local Markdown article files under the configured OpenClaw session2blog articles directory.] <br>\n\n## Skill Version(s): <br>\n1.1.9 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.8: 6 files, 22300 bytes\n\nFiles: _meta.json (131b), install.sh (1940b), README.md (7424b), s2b.sh (26481b), skill-card.md (2302b), SKILL.md (10426b)\n\nFile v1.1.8:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"python3\"] },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n当用户**明确想要把当前/指定会话整理成博文**时触发：\n- 斜杠命令：`/s2b` 或 `/session2blog`\n- 明确的自然语言意图，例如：\"把这个会话整理成博文\"\"帮我导出成博客\"\"写篇技术复盘/学习笔记/排障记录\"\n\n> 限定范围：仅在用户意图清晰时触发。**不响应模糊闲聊**（如单说\"博客\"\"整理一下\"等可能在日常对话里随机命中的表述），避免误把普通会话写盘。\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：中文 wechat|juejin|csdn|zhihu；英文 devto|hashnode|medium|hn|generic；none(默认) | all(按语言出全平台各一版)\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --platform all --template tech-review             # 中文: 一次生成微信+掘金+CSDN+知乎 4 版\n/s2b --lang en --platform all --template tech-review    # 英文: 一次生成 Dev.to+Hashnode+Medium+HN 4 版\n```\n\n## 发布（Pro 版功能）\n\n免费版只生成本地 Markdown 文件，**不发布**到任何平台。一键发布（掘金/微信/CSDN/知乎）为 Pro 版功能，配置与用法见文末「升级到 Pro 版」。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值（中文）：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎)\n`--platform` 可选值（英文）：`devto` | `hashnode` | `medium` | `hn`(Hacker News 风格) | `generic`(通用英文)\n通用：`none`(默认，通用风格) | `all`(按 `--lang` 出对应语言的全平台版本)\n`--lang` 可选值：`zh`(中文，默认) | `en`(English)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n\n**英文平台风格（需 `--lang en`）**：\n- **Dev.to (devto)** — 实用、友好、代码导向；标题直给结果，正文短章节+可运行代码，结尾「你学到了什么」\n- **Hashnode (hashnode)** — 精致、个人品牌向；标题抛读者收益，强开头钩子，结构化小标题，结尾给 takeaway\n- **Medium (medium)** — 叙事、思辨、长文；标题是承诺或温和反共识，靠例子推进论点，代码服务于故事\n- **Hacker News (hn)** — 极简、重实质、无营销；标题是事实陈述或问句，正文密集直接，讲清是什么/为什么/权衡\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则按 `--lang` 生成对应语言的全平台文件（中文: wechat/juejin/csdn/zhihu；英文: devto/hashnode/medium/hn），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 配置项（本地可选）\n# 免费版仅需 articles_dir；发布相关配置为 Pro 版功能，此处不展开。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 生成博文：默认使用 OpenClaw 会话自带模型（零额外依赖）；本地 `ollama` 为可选，用于脚本自动写文（未安装则走会话模型写文路径）\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 工具只负责按平台风格整理结构，文风与准确性由实际写文模型决定。\n- **发布前请人工复核：** 技术细节、代码、数据，以及脱敏是否彻底。\n- 已内置「去 AI 味·仿人写作」要求，但模型遵循程度不一，以人工检查为准。\n\n## 支持这个项目\n\n如果免费版帮到了你，欢迎到 GitHub 点个 ⭐：\n\n👉 https://github.com/jasonleezy/session2blog\n\n你的 star 是对开源创作者最好的鼓励。\n\nFile v1.1.8:README.md\n\n# Session2Blog 📝\n\n> ⚠️ **敏感数据提醒**：本工具会把 OpenClaw 会话历史提取并写入本地文件。对话中可能包含 API Key、Token、私人路径、邮箱或用户名等敏感信息。工具会做**最佳努力脱敏**（非 100% 保证），**发布前请人工复核**是否仍有遗漏。不要在含机密信息的会话上直接运行。\n\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 中文: 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --lang en --platform all    # 英文: 一次生成 Dev.to/Hashnode/Medium/HN 4 版\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台(中文) | 一次生成上述 4 个平台版本 | — |\n| **英文平台** | | |\n| `devto` Dev.to | 实用、友好、代码导向 | \"How I cut build time by 60% with X\" |\n| `hashnode` Hashnode | 精致、个人品牌向、结构化 | \"The Complete Guide to X for Beginners\" |\n| `medium` Medium | 叙事、思辨、长文 | \"Stop Using X — Here is What I Do Instead\" |\n| `hn` Hacker News | 极简、重实质、无营销 | \"Show HN: X does Y in 10 lines\" |\n| `all` 全平台(英文) | 一次生成 Dev.to/Hashnode/Medium/HN 4 版 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | devto | hashnode | medium | hn | generic | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n\n> 📌 **发布为 Pro 版功能**：免费版仅生成本地 Markdown。一键发布（掘金/微信/CSDN/知乎）的配置与用法见文末「升级到 Pro 版」及 Pro 版文档。\n\n## 目录结构\n\n```\nsession2blog/\n├── SKILL.md          # Skill 定义（/s2b 命令行为）\n├── s2b.sh            # 内部实现：读 session JSONL → 脱敏 → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/）\n├── README.md         # 本文件\n└── gumroad-product-copy.md  # 产品页文案\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 本地可选配置（免费版仅需 articles_dir）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 定价: $5 一次购买，终身更新\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 本工具负责把对话整理成结构化的平台风格草稿，但文风、准确性、深度取决于实际写文的模型（OpenClaw 会话模型或本地 ollama）。\n- **建议人工复核后再发布。** 尤其是技术细节、代码片段、数据准确性，以及自动脱敏是否遗漏了敏感信息。\n- 工具已内置「去 AI 味·仿人写作」指令，但不同模型遵循程度不一，最终可读性以人工检查为准。\n\n## 支持这个项目\n\n如果这个工具帮到了你，欢迎到 GitHub 点个 ⭐，让更多人发现：\n\n👉 https://github.com/jasonleezy/session2blog\n\n你的 star 是对开源创作者最好的鼓励。\n\nFile v1.1.8:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.8\",\n  \"publishedAt\": 1783839509146\n}\n\nFile v1.1.8:skill-card.md\n\n## Description: <br>\nTurns OpenClaw session history into structured Markdown blog drafts for technical retrospectives, learning notes, or troubleshooting write-ups. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and OpenClaw users use this skill to convert current or selected local OpenClaw conversations into publishable Markdown drafts, with templates for technical retrospectives, learning notes, and troubleshooting records. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Generated drafts may contain private details from local OpenClaw session history. <br>\nMitigation: Review generated Markdown for secrets, personal data, and private paths before sharing or publishing. <br>\nRisk: Automatic redaction is best-effort and may miss sensitive information. <br>\nMitigation: Avoid running the skill on highly sensitive sessions and perform a manual secret scan before release. <br>\nRisk: The optional publish path can create a remote Juejin draft using a local account cookie. <br>\nMitigation: Configure platform cookies and use --publish only when remote draft creation is intended. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n- [Session2Blog GitHub Project](https://github.com/jasonleezy/session2blog) <br>\n- [Session2Blog Pro Page](https://jasonlizy.gumroad.com/l/session2blog-pro) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Shell commands, Guidance, Files] <br>\n**Output Format:** [Markdown drafts and shell output with writing instructions] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Generated drafts are saved under the configured local articles directory; platform-specific variants can be requested.] <br>\n\n## Skill Version(s): <br>\n1.1.8 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.7: 6 files, 23205 bytes\n\nFiles: _meta.json (131b), install.sh (1940b), README.md (8873b), s2b.sh (25067b), skill-card.md (2620b), SKILL.md (11853b)\n\nFile v1.1.7:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"python3\"] },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n**仅当用户显式输入以下命令时触发，不匹配普通聊天内容（避免误激活处理会话历史）：**\n- `/s2b`\n- `/session2blog`\n\n> 注意：不响应任何自然语言表述（如\"把刚才的对话整理成博文\"\"帮我写篇复盘\"\"导出成博客\"等），必须由用户主动输入斜杠命令才触发，防止误把普通对话写盘。\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：中文 wechat|juejin|csdn|zhihu；英文 devto|hashnode|medium|hn|generic；none(默认) | all(按语言出全平台各一版)\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --platform all --template tech-review             # 中文: 一次生成微信+掘金+CSDN+知乎 4 版\n/s2b --lang en --platform all --template tech-review    # 英文: 一次生成 Dev.to+Hashnode+Medium+HN 4 版\ns2b --platform juejin --publish                 # 一键生成并发布到掘金草稿(写文由助手完成, 零本地依赖)\ns2b --platform juejin --publish --file <md>     # 已有 md, 只发布(两步法)\n```\n\n## 发布（一键流程，Pro 版）\n\n当用户带 `--publish` 触发时，**写文这一步由助手（会话模型）直接完成，不依赖本地 ollama 或任何外部 LLM**。流程：\n\n1. 助手提取目标会话对话（按 Step 1 调 `s2b.sh` 不带 `--publish`，拿到对话文本）\n2. 助手按 `--platform` 风格**自己写出完整 Markdown 博文**，用 `write` 落盘到 `~/openclaw/session2blog/articles/`（文件名规则见 Step 2）\n3. 助手立即调用发布脚本，**把刚写的 md 传进去**：\n   ```bash\n   bash <skill_dir>/s2b.sh --platform juejin --publish --file <刚写的 md 路径>\n   ```\n4. 脚本只负责读 md + 发掘金草稿（已验证）。发布默认是草稿，不公开。\n\n> 这样 `/s2b --platform juejin --publish` 对买家是**真·一键**：无需 ollama、无需 API key，助手写+发全自动。\n> 若买家本机有 ollama 且想用脚本自动写文，也可用两步法手动 `--file`；但 skill 默认走助手写文路径。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值（中文）：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎)\n`--platform` 可选值（英文）：`devto` | `hashnode` | `medium` | `hn`(Hacker News 风格) | `generic`(通用英文)\n通用：`none`(默认，通用风格) | `all`(按 `--lang` 出对应语言的全平台版本)\n`--lang` 可选值：`zh`(中文，默认) | `en`(English)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n\n**英文平台风格（需 `--lang en`）**：\n- **Dev.to (devto)** — 实用、友好、代码导向；标题直给结果，正文短章节+可运行代码，结尾「你学到了什么」\n- **Hashnode (hashnode)** — 精致、个人品牌向；标题抛读者收益，强开头钩子，结构化小标题，结尾给 takeaway\n- **Medium (medium)** — 叙事、思辨、长文；标题是承诺或温和反共识，靠例子推进论点，代码服务于故事\n- **Hacker News (hn)** — 极简、重实质、无营销；标题是事实陈述或问句，正文密集直接，讲清是什么/为什么/权衡\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则按 `--lang` 生成对应语言的全平台文件（中文: wechat/juejin/csdn/zhihu；英文: devto/hashnode/medium/hn），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 发布平台 Cookie（Pro 版，仅本地，不随包发出）\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\njuejin_cookie:\n```\n\n> ⚠️ Cookie 等同登录态，勿分享、勿入仓库。本 skill 只在本机读取并仅发往对应平台 API。\n>\n> **发布两种用法**：\n> - **两步法（零依赖，推荐）**：`/s2b --platform juejin` 由会话模型生成 md → `s2b.sh --platform juejin --publish --file <md路径>` 发布。无需本地 ollama。\n> - **一步法（需本地 ollama）**：`/s2b --platform juejin --publish` 脚本自动调本地 `ollama qwen3:14b` 写文并发布。未装 ollama 时脚本会提示改用两步法。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 生成博文：默认使用 OpenClaw 会话自带模型（零额外依赖）；脚本也支持调用本地 `ollama qwen3:14b` 做一步法自动写文（可选，未安装则走两步法）\n- 发布（Pro）：本机 `python3` + 对应平台 Cookie；无任何外部 API Key 依赖\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 工具只负责按平台风格整理结构，文风与准确性由实际写文模型决定。\n- **发布前请人工复核：** 技术细节、代码、数据，以及脱敏是否彻底。\n- 已内置「去 AI 味·仿人写作」要求，但模型遵循程度不一，以人工检查为准。\n\nFile v1.1.7:README.md\n\n# Session2Blog 📝\n\n> ⚠️ **敏感数据提醒**：本工具会把 OpenClaw 会话历史提取并写入本地文件。对话中可能包含 API Key、Token、私人路径、邮箱或用户名等敏感信息。工具会做**最佳努力脱敏**（非 100% 保证），**发布前请人工复核**是否仍有遗漏。不要在含机密信息的会话上直接运行。\n\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 中文: 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --lang en --platform all    # 英文: 一次生成 Dev.to/Hashnode/Medium/HN 4 版\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台(中文) | 一次生成上述 4 个平台版本 | — |\n| **英文平台** | | |\n| `devto` Dev.to | 实用、友好、代码导向 | \"How I cut build time by 60% with X\" |\n| `hashnode` Hashnode | 精致、个人品牌向、结构化 | \"The Complete Guide to X for Beginners\" |\n| `medium` Medium | 叙事、思辨、长文 | \"Stop Using X — Here is What I Do Instead\" |\n| `hn` Hacker News | 极简、重实质、无营销 | \"Show HN: X does Y in 10 lines\" |\n| `all` 全平台(英文) | 一次生成 Dev.to/Hashnode/Medium/HN 4 版 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | devto | hashnode | medium | hn | generic | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n\n# === 发布平台 Cookie（Pro 版）===\n# 仅本地保存，不会随 skill 包发出。\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n# 当前已实现: juejin (发草稿)。微信/CSDN/知乎待后续更新。\njuejin_cookie:\n```\n\n### 怎么填掘金 Cookie（Pro 版发布用）\n\n1. 浏览器（Safari/Chrome）登录 [juejin.cn](https://juejin.cn)\n2. 打开开发者工具（Safari: 设置→高级→勾选\"开发\"菜单 → 开发→显示 Web 检查器；Chrome: F12）\n3. 到 **Network（网络）** 标签 → 在掘金随便点个动作触发请求 → 点任意 `juejin.cn` 请求 → **Headers → Request Headers** → 找 `Cookie:` 那一行，复制整串\n4. 粘贴进 config：\n   ```bash\n   # 用任意编辑器打开\n   nano ~/.openclaw/session2blog/config.yaml\n   # 改成:  juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n   ```\n5. 保存。Cookie 有时效（几天到几周），过期重新抓一次即可。\n\n> ⚠️ Cookie 等同账号登录态，请勿分享、勿贴进聊天/代码仓库。本 skill 只在本机读取并仅发往掘金 API。\n\n### 发布用法（两种方式）\n\n**方式 A：两步法（零依赖，推荐）**\n\n```bash\n# 1) 先生成 md（写文由 OpenClaw 会话模型完成，无需本地 ollama）\n/s2b --platform juejin\n# 2) 再发布该 md 到掘金草稿\nbash ~/.openclaw/skills/session2blog/s2b.sh --platform juejin --publish --file <上一步生成的 .md 路径>\n```\n\n**方式 B：一步法（需本地 ollama）**\n\n```bash\n# 脚本自动调本地 ollama qwen3:14b 写文并发布\n/s2b --platform juejin --publish\n```\n\n> 没装 ollama？脚本会提示改用方式 A。方式 A 对任意买家零门槛。\n\n> 发布默认发**草稿**，不会公开；请到掘金后台确认内容后手动发布。\n\n## 目录结构\n\n```\nsession2blog/\n├── SKILL.md          # Skill 定义（/s2b 命令行为）\n├── s2b.sh            # 内部实现：读 session JSONL → 脱敏 → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/）\n├── README.md         # 本文件\n└── gumroad-product-copy.md  # 产品页文案\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 配置文件（含 juejin_cookie 等，权限 600）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 定价: $5 一次购买，终身更新\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 本工具负责把对话整理成结构化的平台风格草稿，但文风、准确性、深度取决于实际写文的模型（OpenClaw 会话模型或本地 ollama）。\n- **建议人工复核后再发布。** 尤其是技术细节、代码片段、数据准确性，以及自动脱敏是否遗漏了敏感信息。\n- 工具已内置「去 AI 味·仿人写作」指令，但不同模型遵循程度不一，最终可读性以人工检查为准。\n\nFile v1.1.7:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.7\",\n  \"publishedAt\": 1783837219244\n}\n\nFile v1.1.7:skill-card.md\n\n## Description: <br>\nConverts OpenClaw session histories into structured blog drafts for technical retrospectives, learning notes, and troubleshooting records, saving the result as Markdown. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and OpenClaw users use this skill to turn local session conversations into reusable Markdown blog drafts tailored for technical review, learning-note, or troubleshooting formats. It also supports platform-specific writing styles and an optional Juejin draft-publishing flow. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Session histories can contain secrets, personal data, private paths, or other sensitive material that may be included in generated drafts. <br>\nMitigation: Use the skill only on conversations suitable for draft creation, keep redactions in place, and manually review Markdown before sharing or publishing. <br>\nRisk: The optional publishing mode uses a user-provided Juejin cookie that acts as an account login session. <br>\nMitigation: Store the cookie only in the local configuration, do not paste it into conversations or repositories, and enable publishing only for accounts where draft creation is acceptable. <br>\nRisk: Generated technical articles can contain inaccurate code, commands, or conclusions because output quality depends on the writing model and source conversation. <br>\nMitigation: Review technical details, commands, data, and claims before publishing or reusing the generated article. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n- [Juejin](https://juejin.cn) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown drafts with terminal guidance, inline shell commands, and configuration snippets] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Generated drafts are saved locally; optional publishing creates a Juejin draft using a user-provided cookie.] <br>\n\n## Skill Version(s): <br>\n1.1.7 (source: server release evidence and artifact metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.6: 6 files, 22798 bytes\n\nFiles: _meta.json (131b), install.sh (1940b), README.md (8520b), s2b.sh (24784b), skill-card.md (2689b), SKILL.md (11693b)\n\nFile v1.1.6:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"python3\"] },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n用户在会话中说以下任一情况时触发本 skill：\n- `/s2b` 或 `/session2blog`\n- \"把刚才的对话整理成博文\"\n- \"帮我写篇复盘/笔记/排障文章\"\n- \"把这个会话导出成博客\"\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：中文 wechat|juejin|csdn|zhihu；英文 devto|hashnode|medium|hn|generic；none(默认) | all(按语言出全平台各一版)\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --platform all --template tech-review             # 中文: 一次生成微信+掘金+CSDN+知乎 4 版\n/s2b --lang en --platform all --template tech-review    # 英文: 一次生成 Dev.to+Hashnode+Medium+HN 4 版\ns2b --platform juejin --publish                 # 一键生成并发布到掘金草稿(写文由助手完成, 零本地依赖)\ns2b --platform juejin --publish --file <md>     # 已有 md, 只发布(两步法)\n```\n\n## 发布（一键流程，Pro 版）\n\n当用户带 `--publish` 触发时，**写文这一步由助手（会话模型）直接完成，不依赖本地 ollama 或任何外部 LLM**。流程：\n\n1. 助手提取目标会话对话（按 Step 1 调 `s2b.sh` 不带 `--publish`，拿到对话文本）\n2. 助手按 `--platform` 风格**自己写出完整 Markdown 博文**，用 `write` 落盘到 `~/openclaw/session2blog/articles/`（文件名规则见 Step 2）\n3. 助手立即调用发布脚本，**把刚写的 md 传进去**：\n   ```bash\n   bash <skill_dir>/s2b.sh --platform juejin --publish --file <刚写的 md 路径>\n   ```\n4. 脚本只负责读 md + 发掘金草稿（已验证）。发布默认是草稿，不公开。\n\n> 这样 `/s2b --platform juejin --publish` 对买家是**真·一键**：无需 ollama、无需 API key，助手写+发全自动。\n> 若买家本机有 ollama 且想用脚本自动写文，也可用两步法手动 `--file`；但 skill 默认走助手写文路径。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值（中文）：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎)\n`--platform` 可选值（英文）：`devto` | `hashnode` | `medium` | `hn`(Hacker News 风格) | `generic`(通用英文)\n通用：`none`(默认，通用风格) | `all`(按 `--lang` 出对应语言的全平台版本)\n`--lang` 可选值：`zh`(中文，默认) | `en`(English)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n\n**英文平台风格（需 `--lang en`）**：\n- **Dev.to (devto)** — 实用、友好、代码导向；标题直给结果，正文短章节+可运行代码，结尾「你学到了什么」\n- **Hashnode (hashnode)** — 精致、个人品牌向；标题抛读者收益，强开头钩子，结构化小标题，结尾给 takeaway\n- **Medium (medium)** — 叙事、思辨、长文；标题是承诺或温和反共识，靠例子推进论点，代码服务于故事\n- **Hacker News (hn)** — 极简、重实质、无营销；标题是事实陈述或问句，正文密集直接，讲清是什么/为什么/权衡\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则按 `--lang` 生成对应语言的全平台文件（中文: wechat/juejin/csdn/zhihu；英文: devto/hashnode/medium/hn），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 发布平台 Cookie（Pro 版，仅本地，不随包发出）\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\njuejin_cookie:\n```\n\n> ⚠️ Cookie 等同登录态，勿分享、勿入仓库。本 skill 只在本机读取并仅发往对应平台 API。\n>\n> **发布两种用法**：\n> - **两步法（零依赖，推荐）**：`/s2b --platform juejin` 由会话模型生成 md → `s2b.sh --platform juejin --publish --file <md路径>` 发布。无需本地 ollama。\n> - **一步法（需本地 ollama）**：`/s2b --platform juejin --publish` 脚本自动调本地 `ollama qwen3:14b` 写文并发布。未装 ollama 时脚本会提示改用两步法。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 生成博文：默认使用 OpenClaw 会话自带模型（零额外依赖）；脚本也支持调用本地 `ollama qwen3:14b` 做一步法自动写文（可选，未安装则走两步法）\n- 发布（Pro）：本机 `python3` + 对应平台 Cookie；无任何外部 API Key 依赖\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 工具只负责按平台风格整理结构，文风与准确性由实际写文模型决定。\n- **发布前请人工复核：** 技术细节、代码、数据，以及脱敏是否彻底。\n- 已内置「去 AI 味·仿人写作」要求，但模型遵循程度不一，以人工检查为准。\n\nFile v1.1.6:README.md\n\n# Session2Blog 📝\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 中文: 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --lang en --platform all    # 英文: 一次生成 Dev.to/Hashnode/Medium/HN 4 版\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台(中文) | 一次生成上述 4 个平台版本 | — |\n| **英文平台** | | |\n| `devto` Dev.to | 实用、友好、代码导向 | \"How I cut build time by 60% with X\" |\n| `hashnode` Hashnode | 精致、个人品牌向、结构化 | \"The Complete Guide to X for Beginners\" |\n| `medium` Medium | 叙事、思辨、长文 | \"Stop Using X — Here is What I Do Instead\" |\n| `hn` Hacker News | 极简、重实质、无营销 | \"Show HN: X does Y in 10 lines\" |\n| `all` 全平台(英文) | 一次生成 Dev.to/Hashnode/Medium/HN 4 版 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | devto | hashnode | medium | hn | generic | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n\n# === 发布平台 Cookie（Pro 版）===\n# 仅本地保存，不会随 skill 包发出。\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n# 当前已实现: juejin (发草稿)。微信/CSDN/知乎待后续更新。\njuejin_cookie:\n```\n\n### 怎么填掘金 Cookie（Pro 版发布用）\n\n1. 浏览器（Safari/Chrome）登录 [juejin.cn](https://juejin.cn)\n2. 打开开发者工具（Safari: 设置→高级→勾选\"开发\"菜单 → 开发→显示 Web 检查器；Chrome: F12）\n3. 到 **Network（网络）** 标签 → 在掘金随便点个动作触发请求 → 点任意 `juejin.cn` 请求 → **Headers → Request Headers** → 找 `Cookie:` 那一行，复制整串\n4. 粘贴进 config：\n   ```bash\n   # 用任意编辑器打开\n   nano ~/.openclaw/session2blog/config.yaml\n   # 改成:  juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n   ```\n5. 保存。Cookie 有时效（几天到几周），过期重新抓一次即可。\n\n> ⚠️ Cookie 等同账号登录态，请勿分享、勿贴进聊天/代码仓库。本 skill 只在本机读取并仅发往掘金 API。\n\n### 发布用法（两种方式）\n\n**方式 A：两步法（零依赖，推荐）**\n\n```bash\n# 1) 先生成 md（写文由 OpenClaw 会话模型完成，无需本地 ollama）\n/s2b --platform juejin\n# 2) 再发布该 md 到掘金草稿\nbash ~/.openclaw/skills/session2blog/s2b.sh --platform juejin --publish --file <上一步生成的 .md 路径>\n```\n\n**方式 B：一步法（需本地 ollama）**\n\n```bash\n# 脚本自动调本地 ollama qwen3:14b 写文并发布\n/s2b --platform juejin --publish\n```\n\n> 没装 ollama？脚本会提示改用方式 A。方式 A 对任意买家零门槛。\n\n> 发布默认发**草稿**，不会公开；请到掘金后台确认内容后手动发布。\n\n## 目录结构\n\n```\nsession2blog/\n├── SKILL.md          # Skill 定义（/s2b 命令行为）\n├── s2b.sh            # 内部实现：读 session JSONL → 脱敏 → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/）\n├── README.md         # 本文件\n└── gumroad-product-copy.md  # 产品页文案\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 配置文件（含 juejin_cookie 等，权限 600）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 定价: $5 一次购买，终身更新\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 本工具负责把对话整理成结构化的平台风格草稿，但文风、准确性、深度取决于实际写文的模型（OpenClaw 会话模型或本地 ollama）。\n- **建议人工复核后再发布。** 尤其是技术细节、代码片段、数据准确性，以及自动脱敏是否遗漏了敏感信息。\n- 工具已内置「去 AI 味·仿人写作」指令，但不同模型遵循程度不一，最终可读性以人工检查为准。\n\nFile v1.1.6:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.6\",\n  \"publishedAt\": 1783836989686\n}\n\nFile v1.1.6:skill-card.md\n\n## Description: <br>\nSession2blog Clawhub turns OpenClaw session history into structured Markdown blog drafts for technical retrospectives, learning notes, and troubleshooting write-ups. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal OpenClaw users and developers use this skill to convert local agent conversation history into platform-specific blog drafts, including retrospectives, learning notes, and troubleshooting records. It can also guide optional draft publishing to Juejin when the user intentionally configures a local cookie and invokes publishing. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill reads local OpenClaw session history, which may include secrets, personal data, or private project context. <br>\nMitigation: Use explicit /s2b commands only for sessions you are comfortable turning into article drafts, and review generated Markdown for secrets or personal data before sharing. <br>\nRisk: Optional publishing can send generated content to Juejin as a draft when a local cookie is configured and publishing is invoked. <br>\nMitigation: Configure a Juejin cookie and use --publish only when you intentionally want a draft created, then review the draft before public release. <br>\nRisk: Generated blog drafts may contain inaccurate technical details or incomplete redaction. <br>\nMitigation: Manually check technical claims, code snippets, data, and redaction before publishing. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n- [Project repository listed in artifact documentation](https://github.com/jasonleezy/session2blog) <br>\n- [Juejin publishing target](https://juejin.cn) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown blog drafts, local Markdown files, and concise shell-command guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May generate one or multiple platform-specific article files; optional Juejin draft publishing uses local cookie configuration.] <br>\n\n## Skill Version(s): <br>\n1.1.6 (source: server release metadata and artifact _meta.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.5: 6 files, 15673 bytes\n\nFiles: _meta.json (131b), install.sh (1664b), README.md (5296b), s2b.sh (14641b), skill-card.md (2206b), SKILL.md (9068b)\n\nFile v1.1.5:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史（含列出/选择历史会话、提取对话、自动脱敏）按模板润色成博文，保存为本地 Markdown 文件。在会话中输入 /s2b 即可触发。免费版完全本地运行，不发起任何网络请求、不处理任何平台 Cookie。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\":\n          {\n            \"bins\": [\"python3\"],\n            \"permissions\":\n              [\n                \"filesystem:read ~/.openclaw/sessions/**\",\n                \"filesystem:write ~/.openclaw/session2blog/articles/**\",\n                \"session:list\",\n                \"session:read\",\n              ],\n          },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n> **权限与数据边界（免费版）**：本 skill 仅做本地读写——读取 OpenClaw 会话文件、在本地 `~/.openclaw/session2blog/articles/` 写出 Markdown、列出/选择会话。\n> **不**发起任何网络请求，**不**读取或要求任何平台 Cookie（掘金发布等远程能力仅 Pro 版提供，且需用户主动配置 Cookie 才会发生）。\n> 生成内容默认经最佳努力脱敏（API Key / JWT / 路径），发布前请人工复核。\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n用户在会话中说以下任一情况时触发本 skill：\n- `/s2b` 或 `/session2blog`\n- \"把刚才的对话整理成博文\"\n- \"帮我写篇复盘/笔记/排障文章\"\n- \"把这个会话导出成博客\"\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：wechat | juejin | csdn | zhihu | none(默认) | all(全平台各一版)\n/s2b --platform all --template tech-review   # 一次生成微信公众号+掘金+CSDN+知乎 4 个版本\n```\n\n## 工作流程\n\n当用户触发时，按以下步骤执行：\n\n### Step 1: 调用内部脚本提取对话\n\n运行附带脚本 `s2b.sh` 提取对话文本并打印到会话中：\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎) | `none`(默认，通用风格)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则生成 4 个文件（wechat/juejin/csdn/zhihu 各一），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n```\n\n> 免费版无需任何 Cookie 或 API Key，完全本地闭环。掘金一键发布等增值能力见 Pro 版（Gumroad $5）。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 不需要 API Key —— 直接使用 OpenClaw 会话自带的模型\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\nFile v1.1.5:README.md\n\n# Session2Blog 📝\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台 | 一次生成上述 4 个平台版本 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n```\n\n> 免费版无需任何 Cookie 或 API Key。写文由 OpenClaw 会话模型完成，完全本地闭环。\n> 掘金一键发布等增值能力见 Pro 版（Gumroad $5）。\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 配置文件（权限 600）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 版本: 免费版（ClawHub）。掘金一键发布等增值能力见 Pro 版（Gumroad $5 一次购买，终身更新）\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\nFile v1.1.5:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.5\",\n  \"publishedAt\": 1783796183632\n}\n\nFile v1.1.5:skill-card.md\n\n## Description: <br>\n把 OpenClaw 会话历史（含列出/选择历史会话、提取对话、自动脱敏）按模板润色成博文，保存为本地 Markdown 文件。在会话中输入 /s2b 即可触发。免费版完全本地运行，不发起任何网络请求、不处理任何平台 Cookie。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nOpenClaw users use this skill to turn selected local conversation histories into structured Chinese Markdown blog drafts for technical retrospectives, learning notes, or troubleshooting posts. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill reads selected OpenClaw conversations and can process content that includes secrets, personal data, internal paths, or project details. <br>\nMitigation: Install only if local conversation access is acceptable, and review generated Markdown before sharing or publishing. <br>\nRisk: Redaction is best-effort, so generated blog drafts may still contain sensitive details from the source conversation. <br>\nMitigation: Keep redaction placeholders intact and manually check drafts for credentials, personal data, internal paths, and project-specific details before use. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown drafts and local file paths with supporting shell command output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Generated drafts are saved locally under the configured Session2Blog articles directory.] <br>\n\n## Skill Version(s): <br>\n1.1.5 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.4: 7 files, 18302 bytes\n\nFiles: _meta.json (131b), gumroad-product-copy.md (4862b), install.sh (1940b), README.md (5296b), s2b.sh (14880b), skill-card.md (2562b), SKILL.md (8188b)\n\nFile v1.1.4:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"python3\"] },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n用户在会话中说以下任一情况时触发本 skill：\n- `/s2b` 或 `/session2blog`\n- \"把刚才的对话整理成博文\"\n- \"帮我写篇复盘/笔记/排障文章\"\n- \"把这个会话导出成博客\"\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：wechat | juejin | csdn | zhihu | none(默认) | all(全平台各一版)\n/s2b --platform all --template tech-review   # 一次生成微信公众号+掘金+CSDN+知乎 4 个版本\n```\n\n## 工作流程\n\n当用户触发时，按以下步骤执行：\n\n### Step 1: 调用内部脚本提取对话\n\n运行附带脚本 `s2b.sh` 提取对话文本并打印到会话中：\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎) | `none`(默认，通用风格)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则生成 4 个文件（wechat/juejin/csdn/zhihu 各一），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n```\n\n> 免费版无需任何 Cookie 或 API Key，完全本地闭环。掘金一键发布等增值能力见 Pro 版（Gumroad $5）。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 不需要 API Key —— 直接使用 OpenClaw 会话自带的模型\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\nFile v1.1.4:README.md\n\n# Session2Blog 📝\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台 | 一次生成上述 4 个平台版本 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n```\n\n> 免费版无需任何 Cookie 或 API Key。写文由 OpenClaw 会话模型完成，完全本地闭环。\n> 掘金一键发布等增值能力见 Pro 版（Gumroad $5）。\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 配置文件（权限 600）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 版本: 免费版（ClawHub）。掘金一键发布等增值能力见 Pro 版（Gumroad $5 一次购买，终身更新）\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\nFile v1.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.4\",\n  \"publishedAt\": 1783795251739\n}\n\nFile v1.1.4:gumroad-product-copy.md\n\n# Session2Blog Pro — Gumroad 产品页文案\n\n> Pro 版（$5）。免费版已在 ClawHub 发布（基础生成 + 平台风格输出），本页是升级版。\n> 文案严格对照已实现功能，不做虚标。\n\n## 标题\nSession2Blog Pro — Chats to Juejin Drafts, One Command\n\n## 副标题\nYour OpenClaw sessions → polished, platform-ready blog posts → one-click sent to Juejin drafts. $5, lifetime updates.\n\n## 产品描述（英文）\n\n**What It Is**\n\nSession2Blog Pro is the full version of the Session2Blog OpenClaw Skill. It turns your conversation history into clean, structured blog posts, then **sends them to your Juejin draft box with one command** — no copy-paste.\n\nFree version (ClawHub): generates local Markdown only, with platform-style adaptation.\nPro version (this): adds **one-click Juejin publishing (to drafts)**.\n\n**What You Get**\n\n- ✅ Everything in free version: 3 templates, auto-redaction, `/s2b` slash command, `--platform wechat|juejin|csdn|zhihu|all` style output\n- ✅ **One-click Juejin draft**: `/s2b --platform juejin --publish` (or `--publish --file <md>`) sends the post straight to your Juejin draft box\n- ✅ Two modes: (a) point at a session, local LLM (ollama) writes the post then publishes; (b) generate the .md first, then publish the file\n- ✅ Drafts only by default — you review in Juejin before making it public (safe, no accidental public posts)\n- ✅ **Priority support**\n\n**How publishing works**\n\n1. Put your Juejin cookie in `~/.openclaw/session2blog/config.yaml` (local file, 600 perms — never shipped in the package)\n2. Run `/s2b --platform juejin --publish`\n3. Post lands in your Juejin **draft box**; you click publish when ready\n\n**Privacy-First**\n\nSensitive data auto-redacted before writing: API keys → `<REDACTED>`, paths → `<USER_HOME>/...`, emails/usernames → placeholders. Your cookie stays in a local config file and is only sent to Juejin's API.\n\n**Why $5?**\n\nLess than a coffee. Saves you the rewrite AND the manual paste. Lifetime updates — more platforms added free as they land.\n\n**Roadmap (not yet included, will be free updates)**\n\n- WeChat Official Account publish (Cookie-based)\n- CSDN publish (Cookie-based)\n- Zhihu publish (Cookie-based)\n- Scheduled daily push (cron)\n\n## 产品描述（中文）\n\n**这是什么**\n\nSession2Blog Pro 是 Session2Blog 的完整版（OpenClaw Skill）。免费版（ClawHub）只生成本地 Markdown + 平台风格适配；Pro 版额外支持**一键把文章发到你的掘金草稿箱**。\n\n**你得到什么**\n\n- ✅ 免费版全部功能：3 种模板、自动脱敏、`/s2b` 命令、`--platform wechat|juejin|csdn|zhihu|all` 风格输出\n- ✅ **掘金一键发草稿**：`/s2b --platform juejin --publish`（或 `--publish --file <md>`）直接把文章送进掘金草稿箱\n- ✅ 两种模式：(a) 指定会话，本地模型（ollama）写文后直接发；(b) 先生成 .md，再发布该文件\n- ✅ 默认只发草稿——你在掘金后台审过再点公开，不会误发\n- ✅ **优先支持**\n\n**发布流程**\n\n1. 把掘金 Cookie 写进 `~/.openclaw/session2blog/config.yaml`（本地文件，权限 600，不随包发出）\n2. 运行 `/s2b --platform juejin --publish`\n3. 文章进入掘金**草稿箱**，你确认后一键公开\n\n**隐私优先**\n\n生成前自动脱敏：API Key → `<REDACTED>`，路径 → `<USER_HOME>/...`，邮箱/用户名 → 占位符。Cookie 只在本地配置，仅发往掘金 API。\n\n**适合谁**\n\n- 用 OpenClaw 干活、又想稳定输出技术内容的开发者\n- 写完文章不想手动复制粘贴到掘金的人\n\n**路线图（尚未包含，后续免费更新）**\n\n- 微信公众号发布（Cookie 方式）\n- CSDN 发布（Cookie 方式）\n- 知乎发布（Cookie 方式）\n- 定时每日推送（cron）\n\n## 安装说明（买家看）\n\n```bash\n# 下载后解压，运行安装脚本\nbash install.sh\n\n# 或手动复制\ncp -r session2blog ~/.openclaw/skills/\n\n# 重启 OpenClaw 会话，输入 /s2b 即可\n```\n\n## 定价\n\n$5 USD — 一次购买，终身更新\n\n## FAQ\n\n**Q: Pro 和免费版有什么区别？**\nA: 免费版（ClawHub）生成本地 Markdown + 平台风格适配。Pro 版多了掘金一键发草稿。\n\n**Q: 一键发布需要什么？**\nA: 你的掘金网页 Cookie（登录后从浏览器复制），写进本地 config 即可。只发草稿，安全。\n\n**Q: 是直接公开发布吗？**\nA: 不是，默认发到掘金草稿箱。你审完在掘金后台点发布才公开，避免误发。\n\n**Q: Cookie 会过期吗？**\nA: 会，通常几天到几周。过期后重新抓一次贴进 config 即可。\n\n**Q: 对话内容安全吗？**\nA: 本地处理，脱敏后只发往你指定的平台（当前为掘金）。\n\n**Q: 微信/CSDN/知乎/定时推送什么时候有？**\nA: 在路线图上，作为已购用户的免费更新陆续加入。\n\nFile v1.1.4:skill-card.md\n\n## Description: <br>\nSession2blog Clawhub turns OpenClaw session history into polished Chinese Markdown posts for technical retrospectives, learning notes, and troubleshooting records. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers using OpenClaw use this skill to turn recent or selected chat sessions into structured blog drafts for technical retrospectives, learning notes, or troubleshooting writeups. The skill extracts local session text, applies a selected writing template and platform style, and guides the agent to save Markdown article files locally. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill reads and displays full OpenClaw session transcripts, which may contain sensitive work context or personal data. <br>\nMitigation: Use it only on sessions intended for blog drafting, keep generated files local until reviewed, and remove any content that should not be published. <br>\nRisk: Cookie-based publishing setup can expose an account credential if a browser cookie is added to the local configuration. <br>\nMitigation: Do not configure a Juejin or other platform cookie unless publishing is intentional; treat any cookie like a credential and rotate it if exposed. <br>\nRisk: The scanner describes redaction as best-effort, so generated drafts may still include credentials, paths, usernames, or other identifiers. <br>\nMitigation: Manually review drafts before sharing or publishing and search for common secret, token, email, username, and absolute-path patterns. <br>\n\n\n## Reference(s): <br>\n- [Session2blog ClawHub listing](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown articles with shell-command and file-path guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Can generate one article or multiple platform-specific Markdown variants for WeChat, Juejin, CSDN, and Zhihu styles.] <br>\n\n## Skill Version(s): <br>\n1.1.4 (source: release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.3: 7 files, 18185 bytes\n\nFiles: _meta.json (131b), gumroad-product-copy.md (4862b), install.sh (1940b), README.md (5296b), s2b.sh (14880b), skill-card.md (2302b), SKILL.md (8188b)\n\nFile v1.1.3:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"python3\"] },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n用户在会话中说以下任一情况时触发本 skill：\n- `/s2b` 或 `/session2blog`\n- \"把刚才的对话整理成博文\"\n- \"帮我写篇复盘/笔记/排障文章\"\n- \"把这个会话导出成博客\"\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：wechat | juejin | csdn | zhihu | none(默认) | all(全平台各一版)\n/s2b --platform all --template tech-review   # 一次生成微信公众号+掘金+CSDN+知乎 4 个版本\n```\n\n## 工作流程\n\n当用户触发时，按以下步骤执行：\n\n### Step 1: 调用内部脚本提取对话\n\n运行附带脚本 `s2b.sh` 提取对话文本并打印到会话中：\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎) | `none`(默认，通用风格)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则生成 4 个文件（wechat/juejin/csdn/zhihu 各一），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n```\n\n> 免费版无需任何 Cookie 或 API Key，完全本地闭环。掘金一键发布等增值能力见 Pro 版（Gumroad $5）。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 不需要 API Key —— 直接使用 OpenClaw 会话自带的模型\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\nFile v1.1.3:README.md\n\n# Session2Blog 📝\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台 | 一次生成上述 4 个平台版本 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n```\n\n> 免费版无需任何 Cookie 或 API Key。写文由 OpenClaw 会话模型完成，完全本地闭环。\n> 掘金一键发布等增值能力见 Pro 版（Gumroad $5）。\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 配置文件（权限 600）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 版本: 免费版（ClawHub）。掘金一键发布等增值能力见 Pro 版（Gumroad $5 一次购买，终身更新）\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\nFile v1.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.3\",\n  \"publishedAt\": 1783795185441\n}\n\nFile v1.1.3:gumroad-product-copy.md\n\n# Session2Blog Pro — Gumroad 产品页文案\n\n> Pro 版（$5）。免费版已在 ClawHub 发布（基础生成 + 平台风格输出），本页是升级版。\n> 文案严格对照已实现功能，不做虚标。\n\n## 标题\nSession2Blog Pro — Chats to Juejin Drafts, One Command\n\n## 副标题\nYour OpenClaw sessions → polished, platform-ready blog posts → one-click sent to Juejin drafts. $5, lifetime updates.\n\n## 产品描述（英文）\n\n**What It Is**\n\nSession2Blog Pro is the full version of the Session2Blog OpenClaw Skill. It turns your conversation history into clean, structured blog posts, then **sends them to your Juejin draft box with one command** — no copy-paste.\n\nFree version (ClawHub): generates local Markdown only, with platform-style adaptation.\nPro version (this): adds **one-click Juejin publishing (to drafts)**.\n\n**What You Get**\n\n- ✅ Everything in free version: 3 templates, auto-redaction, `/s2b` slash command, `--platform wechat|juejin|csdn|zhihu|all` style output\n- ✅ **One-click Juejin draft**: `/s2b --platform juejin --publish` (or `--publish --file <md>`) sends the post straight to your Juejin draft box\n- ✅ Two modes: (a) point at a session, local LLM (ollama) writes the post then publishes; (b) generate the .md first, then publish the file\n- ✅ Drafts only by default — you review in Juejin before making it public (safe, no accidental public posts)\n- ✅ **Priority support**\n\n**How publishing works**\n\n1. Put your Juejin cookie in `~/.openclaw/session2blog/config.yaml` (local file, 600 perms — never shipped in the package)\n2. Run `/s2b --platform juejin --publish`\n3. Post lands in your Juejin **draft box**; you click publish when ready\n\n**Privacy-First**\n\nSensitive data auto-redacted before writing: API keys → `<REDACTED>`, paths → `<USER_HOME>/...`, emails/usernames → placeholders. Your cookie stays in a local config file and is only sent to Juejin's API.\n\n**Why $5?**\n\nLess than a coffee. Saves you the rewrite AND the manual paste. Lifetime updates — more platforms added free as they land.\n\n**Roadmap (not yet included, will be free updates)**\n\n- WeChat Official Account publish (Cookie-based)\n- CSDN publish (Cookie-based)\n- Zhihu publish (Cookie-based)\n- Scheduled daily push (cron)\n\n## 产品描述（中文）\n\n**这是什么**\n\nSession2Blog Pro 是 Session2Blog 的完整版（OpenClaw Skill）。免费版（ClawHub）只生成本地 Markdown + 平台风格适配；Pro 版额外支持**一键把文章发到你的掘金草稿箱**。\n\n**你得到什么**\n\n- ✅ 免费版全部功能：3 种模板、自动脱敏、`/s2b` 命令、`--platform wechat|juejin|csdn|zhihu|all` 风格输出\n- ✅ **掘金一键发草稿**：`/s2b --platform juejin --publish`（或 `--publish --file <md>`）直接把文章送进掘金草稿箱\n- ✅ 两种模式：(a) 指定会话，本地模型（ollama）写文后直接发；(b) 先生成 .md，再发布该文件\n- ✅ 默认只发草稿——你在掘金后台审过再点公开，不会误发\n- ✅ **优先支持**\n\n**发布流程**\n\n1. 把掘金 Cookie 写进 `~/.openclaw/session2blog/config.yaml`（本地文件，权限 600，不随包发出）\n2. 运行 `/s2b --platform juejin --publish`\n3. 文章进入掘金**草稿箱**，你确认后一键公开\n\n**隐私优先**\n\n生成前自动脱敏：API Key → `<REDACTED>`，路径 → `<USER_HOME>/...`，邮箱/用户名 → 占位符。Cookie 只在本地配置，仅发往掘金 API。\n\n**适合谁**\n\n- 用 OpenClaw 干活、又想稳定输出技术内容的开发者\n- 写完文章不想手动复制粘贴到掘金的人\n\n**路线图（尚未包含，后续免费更新）**\n\n- 微信公众号发布（Cookie 方式）\n- CSDN 发布（Cookie 方式）\n- 知乎发布（Cookie 方式）\n- 定时每日推送（cron）\n\n## 安装说明（买家看）\n\n```bash\n# 下载后解压，运行安装脚本\nbash install.sh\n\n# 或手动复制\ncp -r session2blog ~/.openclaw/skills/\n\n# 重启 OpenClaw 会话，输入 /s2b 即可\n```\n\n## 定价\n\n$5 USD — 一次购买，终身更新\n\n## FAQ\n\n**Q: Pro 和免费版有什么区别？**\nA: 免费版（ClawHub）生成本地 Markdown + 平台风格适配。Pro 版多了掘金一键发草稿。\n\n**Q: 一键发布需要什么？**\nA: 你的掘金网页 Cookie（登录后从浏览器复制），写进本地 config 即可。只发草稿，安全。\n\n**Q: 是直接公开发布吗？**\nA: 不是，默认发到掘金草稿箱。你审完在掘金后台点发布才公开，避免误发。\n\n**Q: Cookie 会过期吗？**\nA: 会，通常几天到几周。过期后重新抓一次贴进 config 即可。\n\n**Q: 对话内容安全吗？**\nA: 本地处理，脱敏后只发往你指定的平台（当前为掘金）。\n\n**Q: 微信/CSDN/知乎/定时推送什么时候有？**\nA: 在路线图上，作为已购用户的免费更新陆续加入。\n\nFile v1.1.3:skill-card.md\n\n## Description: <br>\nTurns OpenClaw session history into structured Chinese Markdown blog posts for technical retrospectives, learning notes, and troubleshooting write-ups. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and OpenClaw users use this skill to convert recent or selected agent conversations into polished local blog drafts. It supports technical review, learning-note, and troubleshooting structures with platform-specific writing styles. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill processes full OpenClaw session content, which may include secrets, private code, personal data, or internal paths. <br>\nMitigation: Review generated Markdown drafts before sharing and keep the built-in redaction placeholders intact. <br>\nRisk: The built-in redaction is regex-based and may miss sensitive content. <br>\nMitigation: Run an additional manual or automated secret scan on generated drafts before publication. <br>\nRisk: Cookie-based publishing is described in Pro-related documentation, and cookies are account credentials. <br>\nMitigation: Do not paste Juejin or other browser cookies into configuration for the free local workflow. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n- [Publisher profile](https://clawhub.ai/user/jasonleezy) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown blog drafts and command guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Writes generated articles to a local OpenClaw session2blog articles directory and can produce separate platform-styled drafts.] <br>\n\n## Skill Version(s): <br>\n1.1.3 (source: server release evidence and artifact _meta.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.2: 7 files, 19796 bytes\n\nFiles: _meta.json (131b), gumroad-product-copy.md (4862b), install.sh (1940b), README.md (8103b), s2b.sh (14185b), skill-card.md (2811b), SKILL.md (8392b)\n\nFile v1.1.2:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"python3\"] },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n用户在会话中说以下任一情况时触发本 skill：\n- `/s2b` 或 `/session2blog`\n- \"把刚才的对话整理成博文\"\n- \"帮我写篇复盘/笔记/排障文章\"\n- \"把这个会话导出成博客\"\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：wechat | juejin | csdn | zhihu | none(默认) | all(全平台各一版)\n/s2b --platform all --template tech-review   # 一次生成微信公众号+掘金+CSDN+知乎 4 个版本\n```\n\n## 工作流程\n\n当用户触发时，按以下步骤执行：\n\n### Step 1: 调用内部脚本提取对话\n\n运行附带脚本 `s2b.sh` 提取对话文本并打印到会话中：\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎) | `none`(默认，通用风格)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则生成 4 个文件（wechat/juejin/csdn/zhihu 各一），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 发布平台 Cookie（Pro 版，仅本地，不随包发出）\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\njuejin_cookie:\n```\n\n> ⚠️ Cookie 等同登录态，勿分享、勿入仓库。本 skill 只在本机读取并仅发往对应平台 API。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 不需要 API Key —— 直接使用 OpenClaw 会话自带的模型\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\nFile v1.1.2:README.md\n\n# Session2Blog 📝\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的。\n\n> 🔒 **数据流向说明（请看清边界）**\n> - **免费版**：100% 本地处理。对话只在你机器上读取、润色、保存为 Markdown 文件，**不出本机**。\n> - **Pro 版（可选付费升级）**：新增「掘金一键发草稿」功能。开启后，文章内容和你的掘金 Cookie **会发往掘金 API**（https://api.juejin.cn），这是该功能明确的、需你主动配置 Cookie 才会发生的远程调用，并非默认行为。\n> - 本工具绝不会在未经你显式操作的情况下，把任何内容或凭证发送到第三方。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台 | 一次生成上述 4 个平台版本 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n\n# === 发布平台 Cookie（Pro 版）===\n# 仅本地保存，不会随 skill 包发出。\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n# 当前已实现: juejin (发草稿)。微信/CSDN/知乎待后续更新。\njuejin_cookie:\n```\n\n### 怎么填掘金 Cookie（Pro 版发布用）\n\n1. 浏览器（Safari/Chrome）登录 [juejin.cn](https://juejin.cn)\n2. 打开开发者工具（Safari: 设置→高级→勾选\"开发\"菜单 → 开发→显示 Web 检查器；Chrome: F12）\n3. 到 **Network（网络）** 标签 → 在掘金随便点个动作触发请求 → 点任意 `juejin.cn` 请求 → **Headers → Request Headers** → 找 `Cookie:` 那一行，复制整串\n4. 粘贴进 config：\n   ```bash\n   # 用任意编辑器打开\n   nano ~/.openclaw/session2blog/config.yaml\n   # 改成:  juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n   ```\n5. 保存。Cookie 有时效（几天到几周），过期重新抓一次即可。\n\n> ⚠️ Cookie 等同账号登录态，请勿分享、勿贴进聊天/代码仓库。Pro 版的发布功能仅在本机读取 Cookie，并**仅在您主动执行 `--publish` 时**发往掘金 API；免费版不涉及任何远程调用。\n\n## 目录结构\n\n```\nsession2blog/\n├── SKILL.md          # Skill 定义（/s2b 命令行为）\n├── s2b.sh            # 内部实现：读 session JSONL → 脱敏 → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/）\n├── README.md         # 本文件\n└── gumroad-product-copy.md  # 产品页文案\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 配置文件（含 juejin_cookie 等，权限 600）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 定价: 免费（MIT 开源）\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\n---\n\n## 🚀 Pro 版（付费，一次性 $5，终身更新）\n\n免费版只生成本地 Markdown + 平台风格适配。**Pro 版额外支持：**\n\n- ✅ **掘金一键发草稿**：`/s2b --platform juejin --publish` 直接把文章送进你的掘金草稿箱（默认草稿，您审过后再手动公开）\n- ✅ 两种模式：本地模型写文后发 / 先生成 .md 再发\n- ✅ 优先支持\n\n**获取 Pro：** https://jasonlizy.gumroad.com/l/session2blog-pro\n\n> 路线图（已购用户免费更新）：微信公众号 / CSDN / 知乎发布、定时推送。\n\n## 💬 支持 / 反馈\n\n- **买了 Pro 有问题**：回复你的 Gumroad 收据邮件，或开 GitHub Issue（**请勿公开粘贴 Cookie / 账号凭证**）\n- **功能建议 / Bug**：[GitHub Issues](https://github.com/jasonleezy/session2blog/issues)\n- **免费版问题**：同上，欢迎提 Issue\n\nFile v1.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.2\",\n  \"publishedAt\": 1783789222617\n}\n\nFile v1.1.2:gumroad-product-copy.md\n\n# Session2Blog Pro — Gumroad 产品页文案\n\n> Pro 版（$5）。免费版已在 ClawHub 发布（基础生成 + 平台风格输出），本页是升级版。\n> 文案严格对照已实现功能，不做虚标。\n\n## 标题\nSession2Blog Pro — Chats to Juejin Drafts, One Command\n\n## 副标题\nYour OpenClaw sessions → polished, platform-ready blog posts → one-click sent to Juejin drafts. $5, lifetime updates.\n\n## 产品描述（英文）\n\n**What It Is**\n\nSession2Blog Pro is the full version of the Session2Blog OpenClaw Skill. It turns your conversation history into clean, structured blog posts, then **sends them to your Juejin draft box with one command** — no copy-paste.\n\nFree version (ClawHub): generates local Markdown only, with platform-style adaptation.\nPro version (this): adds **one-click Juejin publishing (to drafts)**.\n\n**What You Get**\n\n- ✅ Everything in free version: 3 templates, auto-redaction, `/s2b` slash command, `--platform wechat|juejin|csdn|zhihu|all` style output\n- ✅ **One-click Juejin draft**: `/s2b --platform juejin --publish` (or `--publish --file <md>`) sends the post straight to your Juejin draft box\n- ✅ Two modes: (a) point at a session, local LLM (ollama) writes the post then publishes; (b) generate the .md first, then publish the file\n- ✅ Drafts only by default — you review in Juejin before making it public (safe, no accidental public posts)\n- ✅ **Priority support**\n\n**How publishing works**\n\n1. Put your Juejin cookie in `~/.openclaw/session2blog/config.yaml` (local file, 600 perms — never shipped in the package)\n2. Run `/s2b --platform juejin --publish`\n3. Post lands in your Juejin **draft box**; you click publish when ready\n\n**Privacy-First**\n\nSensitive data auto-redacted before writing: API keys → `<REDACTED>`, paths → `<USER_HOME>/...`, emails/usernames → placeholders. Your cookie stays in a local config file and is only sent to Juejin's API.\n\n**Why $5?**\n\nLess than a coffee. Saves you the rewrite AND the manual paste. Lifetime updates — more platforms added free as they land.\n\n**Roadmap (not yet included, will be free updates)**\n\n- WeChat Official Account publish (Cookie-based)\n- CSDN publish (Cookie-based)\n- Zhihu publish (Cookie-based)\n- Scheduled daily push (cron)\n\n## 产品描述（中文）\n\n**这是什么**\n\nSession2Blog Pro 是 Session2Blog 的完整版（OpenClaw Skill）。免费版（ClawHub）只生成本地 Markdown + 平台风格适配；Pro 版额外支持**一键把文章发到你的掘金草稿箱**。\n\n**你得到什么**\n\n- ✅ 免费版全部功能：3 种模板、自动脱敏、`/s2b` 命令、`--platform wechat|juejin|csdn|zhihu|all` 风格输出\n- ✅ **掘金一键发草稿**：`/s2b --platform juejin --publish`（或 `--publish --file <md>`）直接把文章送进掘金草稿箱\n- ✅ 两种模式：(a) 指定会话，本地模型（ollama）写文后直接发；(b) 先生成 .md，再发布该文件\n- ✅ 默认只发草稿——你在掘金后台审过再点公开，不会误发\n- ✅ **优先支持**\n\n**发布流程**\n\n1. 把掘金 Cookie 写进 `~/.openclaw/session2blog/config.yaml`（本地文件，权限 600，不随包发出）\n2. 运行 `/s2b --platform juejin --publish`\n3. 文章进入掘金**草稿箱**，你确认后一键公开\n\n**隐私优先**\n\n生成前自动脱敏：API Key → `<REDACTED>`，路径 → `<USER_HOME>/...`，邮箱/用户名 → 占位符。Cookie 只在本地配置，仅发往掘金 API。\n\n**适合谁**\n\n- 用 OpenClaw 干活、又想稳定输出技术内容的开发者\n- 写完文章不想手动复制粘贴到掘金的人\n\n**路线图（尚未包含，后续免费更新）**\n\n- 微信公众号发布（Cookie 方式）\n- CSDN 发布（Cookie 方式）\n- 知乎发布（Cookie 方式）\n- 定时每日推送（cron）\n\n## 安装说明（买家看）\n\n```bash\n# 下载后解压，运行安装脚本\nbash install.sh\n\n# 或手动复制\ncp -r session2blog ~/.openclaw/skills/\n\n# 重启 OpenClaw 会话，输入 /s2b 即可\n```\n\n## 定价\n\n$5 USD — 一次购买，终身更新\n\n## FAQ\n\n**Q: Pro 和免费版有什么区别？**\nA: 免费版（ClawHub）生成本地 Markdown + 平台风格适配。Pro 版多了掘金一键发草稿。\n\n**Q: 一键发布需要什么？**\nA: 你的掘金网页 Cookie（登录后从浏览器复制），写进本地 config 即可。只发草稿，安全。\n\n**Q: 是直接公开发布吗？**\nA: 不是，默认发到掘金草稿箱。你审完在掘金后台点发布才公开，避免误发。\n\n**Q: Cookie 会过期吗？**\nA: 会，通常几天到几周。过期后重新抓一次贴进 config 即可。\n\n**Q: 对话内容安全吗？**\nA: 本地处理，脱敏后只发往你指定的平台（当前为掘金）。\n\n**Q: 微信/CSDN/知乎/定时推送什么时候有？**\nA: 在路线图上，作为已购用户的免费更新陆续加入。\n\nFile v1.1.2:skill-card.md\n\n## Description: <br>\nSession2Blog turns OpenClaw session history into polished Chinese Markdown blog posts for technical retrospectives, learning notes, and troubleshooting records. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nOpenClaw users and developers use Session2Blog to convert local work sessions into structured blog drafts, with optional platform-specific styles for WeChat, Juejin, CSDN, and Zhihu. The free release focuses on local Markdown generation; optional Pro publishing requires explicit user configuration. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill reads OpenClaw session history and generated drafts may contain sensitive conversation details. <br>\nMitigation: Install only if comfortable with local session-history processing, keep generated Markdown reviewed before sharing, and preserve redaction of secrets, paths, and account details. <br>\nRisk: Optional Pro publishing can send article content and a Juejin cookie to Juejin when the user configures and invokes that workflow. <br>\nMitigation: Do not add a Juejin cookie unless intentionally using publishing, treat the cookie like an account password, and review drafts in Juejin before making them public. <br>\nRisk: Generated posts can be incomplete, misleading, or unsuitable for the target audience without human review. <br>\nMitigation: Review and edit generated Markdown for accuracy, tone, and disclosure needs before relying on or publishing it. <br>\n\n\n## Reference(s): <br>\n- [ClawHub listing](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n- [Session2Blog GitHub link](https://github.com/jasonleezy/session2blog) <br>\n- [Session2Blog Pro page](https://jasonlizy.gumroad.com/l/session2blog-pro) <br>\n- [Juejin](https://juejin.cn) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown files with concise status text and command snippets] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires python3; reads local OpenClaw session history; saves generated articles to the configured local articles directory; optional Pro publishing uses user-provided Juejin credentials only when explicitly configured and invoked.] <br>\n\n## Skill Version(s): <br>\n1.1.2 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.1.1: 7 files, 18881 bytes\n\nFiles: gumroad-product-copy.md (4862b), install.sh (1940b), README.md (6595b), s2b.sh (14185b), skill-card.md (2366b), SKILL.md (8392b), _meta.json (131b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: session2blog\ndescription: \"把 OpenClaw 会话历史一键润色成博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"python3\"] },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n把当前或指定的 OpenClaw 会话对话历史，按模板润色成一篇结构化博文，保存为 Markdown 文件到本地。\n\n## Trigger\n\n用户在会话中说以下任一情况时触发本 skill：\n- `/s2b` 或 `/session2blog`\n- \"把刚才的对话整理成博文\"\n- \"帮我写篇复盘/笔记/排障文章\"\n- \"把这个会话导出成博客\"\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：wechat | juejin | csdn | zhihu | none(默认) | all(全平台各一版)\n/s2b --platform all --template tech-review   # 一次生成微信公众号+掘金+CSDN+知乎 4 个版本\n```\n\n## 工作流程\n\n当用户触发时，按以下步骤执行：\n\n### Step 1: 调用内部脚本提取对话\n\n运行附带脚本 `s2b.sh` 提取对话文本并打印到会话中：\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎) | `none`(默认，通用风格)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术总结 + 延伸思考\n- **特征**：专业术语直接用，读者是资深开发者\n\n**CSDN (csdn)** — 实用主义、问题导向、步骤化\n- **标题**：问题+解决方案。例：「XX报错怎么办？【已解决】」「手把手教你XX」\n- **开头**：直接说问题现象\n- **正文**：步骤1/2/3，完整可复制代码，注意事项单列\n- **结尾**：验证结果 + 常见坑提示\n- **特征**：搜索友好，解决具体问题，不要铺垫\n\n**知乎 (zhihu)** — 观点感、深度、辩证\n- **标题**：问答/观点句式。例：「如何评价XX？」「做XX是一种什么体验？」\n- **开头**：先亮核心观点（我的看法是…）\n- **正文**：分层论证，引案例/数据/他人观点，承认局限性，辩证看待\n- **结尾**：收敛结论 + 开放讨论引导\n- **特征**：有个人见解，不是纯教程，要体现思考深度\n\n**通用 (none/默认)** — 平衡风格，适合先生成再手动改\n- 标题：`[模板类型] <核心问题>` 结构\n- 正文：结构清晰，代码适量，专业但不堆砌\n\n**模板结构（内容骨架，不随平台变）：**\n\n- **技术复盘** `[复盘] <核心问题>`\n  1. 背景 — 当时在做什么\n  2. 踩坑过程 — 遇到了什么问题\n  3. 关键决策 — 怎么分析的，权衡了什么\n  4. 最终方案 — 怎么解决的，代码/配置要点\n  5. 总结与教训 — 学到了什么\n\n- **学习笔记** `[笔记] <主题>`\n  1. 学习动机 — 为什么学\n  2. 核心概念 — 用自己的话解释\n  3. 实践过程 — 踩过的坑、跑过的代码\n  4. 心得体会 — 真正理解了什么\n\n- **排障记录** `[排障] <问题现象>`\n  1. 问题现象 — 具体表现\n  2. 排查过程 — 怎么查的，用了什么工具\n  3. 根因分析 — 根本原因\n  4. 解决方案 — 具体怎么修的\n  5. 预防措施 — 下次怎么避免\n\n**写作要求：**\n- 语言：中文\n- 语气：按平台风格调整（微信口语 / 掘金硬核 / CSDN 实用 / 知乎辩证）\n- 不要出现【AI生成】类标签\n- 该贴代码就贴代码，该贴配置就贴配置（微信平台可减少代码密度）\n- 标题从对话内容中提炼，不要用占位符，且必须符合指定平台的标题调性\n- **敏感信息保护（强制）**：\n  - 博文中**禁止出现**任何 API Key、Access Token、Secret、appkey 等凭证\n  - **禁止出现**真实用户名、邮箱、手机号、真实全文件路径（如 `/Users/xxx/...`）\n  - 如果对话中涉及上述内容，`s2b.sh` 已自动脱敏为 `<REDACTED>` / `<USER_HOME>/...` 等占位符，请**保持脱敏状态**，不要还原\n  - 如需引用路径，用模糊化写法（如 `~/.openclaw/...` 或 `<项目目录>/...`）\n  - 发布前自查：grep 一遍生成的 .md，确认无 `sk-`、无 `eyJ`、无真实 `@用户名`、无 `/Users/` 绝对路径\n\n### Step 3: 保存文件\n\n保存到 `~/openclaw/session2blog/articles/`（或 config 指定的路径），文件名规则：\n\n```\nYYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md\n```\n\n例如：`2026-07-11-tech-review-wechat-session2blog-pivot.md`\n\n同时支持一次生成多平台版本：若用户指定 `--platform all`，则生成 4 个文件（wechat/juejin/csdn/zhihu 各一），共用同一对话内容但风格不同。\n\n用 `write` 工具直接写出文件，并在会话里告知用户文件路径。\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 发布平台 Cookie（Pro 版，仅本地，不随包发出）\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\njuejin_cookie:\n```\n\n> ⚠️ Cookie 等同登录态，勿分享、勿入仓库。本 skill 只在本机读取并仅发往对应平台 API。\n\n## 文件结构\n\n```\nsession2blog/\n├── SKILL.md          # 本文件\n├── s2b.sh            # 内部实现：读 session JSONL → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/ 或 ~/.local/bin）\n├── README.md         # 用户文档\n└── gumroad-product-copy.md  # 产品页文案\n```\n\n## 依赖\n\n- `python3`（macOS 自带）\n- 不需要 API Key —— 直接使用 OpenClaw 会话自带的模型\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\nFile v1.1.1:README.md\n\n# Session2Blog 📝\n\n把 OpenClaw 会话历史一键润色成博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活，输一句 `/s2b`，它就把刚才的对话整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的，完全闭环。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台 | 一次生成上述 4 个平台版本 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product.md`\n\n生成的博文**自动脱敏**，不会泄露：\n- API Key / Access Token / Secret（自动替换为 `<REDACTED>`）\n- 真实用户名、邮箱、手机号（替换为占位符）\n- 绝对文件路径（如 `/Users/jasonlee/...` 替换为 `<USER_HOME>/...`）\n\n发布前可自查：`grep -rn \"sk-\\|eyJ\\|/Users/\" ~/.openclaw/session2blog/articles/`\n\n## 模板说明\n\n### 技术复盘 (tech-review)\n```\n标题: [复盘] <核心问题描述>\n\n1. 背景 — 当时在做什么\n2. 踩坑过程 — 遇到了什么\n3. 关键决策 — 怎么分析的\n4. 最终方案 — 怎么解决的\n5. 总结与教训 — 学到了什么\n```\n\n### 学习笔记 (learning-notes)\n```\n标题: [笔记] <主题>\n\n1. 学习动机 — 为什么学\n2. 核心概念 — 用自己的话解释\n3. 实践过程 — 踩过的坑、跑过的代码\n4. 心得体会 — 真正理解了什么\n```\n\n### 排障记录 (troubleshooting)\n```\n标题: [排障] <问题现象>\n\n1. 问题现象 — 具体表现\n2. 排查过程 — 怎么查的，用了什么工具\n3. 根因分析 — 根本原因\n4. 解决方案 — 具体怎么修的\n5. 预防措施 — 下次怎么避免\n```\n\n## 配置\n\n配置文件：`~/.openclaw/session2blog/config.yaml`（安装时自动生成，权限 600）\n\n```yaml\ndefault_template: auto      # auto | tech-review | learning-notes | troubleshooting\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\nlanguage: zh-CN\nauthor: \"\"\narticles_dir: ~/.openclaw/session2blog/articles\n\n# === 发布平台 Cookie（Pro 版）===\n# 仅本地保存，不会随 skill 包发出。\n# 获取: 浏览器登录平台 → 开发者工具 → 复制 Cookie 整串\n# 例: juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n# 当前已实现: juejin (发草稿)。微信/CSDN/知乎待后续更新。\njuejin_cookie:\n```\n\n### 怎么填掘金 Cookie（Pro 版发布用）\n\n1. 浏览器（Safari/Chrome）登录 [juejin.cn](https://juejin.cn)\n2. 打开开发者工具（Safari: 设置→高级→勾选\"开发\"菜单 → 开发→显示 Web 检查器；Chrome: F12）\n3. 到 **Network（网络）** 标签 → 在掘金随便点个动作触发请求 → 点任意 `juejin.cn` 请求 → **Headers → Request Headers** → 找 `Cookie:` 那一行，复制整串\n4. 粘贴进 config：\n   ```bash\n   # 用任意编辑器打开\n   nano ~/.openclaw/session2blog/config.yaml\n   # 改成:  juejin_cookie: \"sessionid=xxx; sid_tt=yyy; ...\"\n   ```\n5. 保存。Cookie 有时效（几天到几周），过期重新抓一次即可。\n\n> ⚠️ Cookie 等同账号登录态，请勿分享、勿贴进聊天/代码仓库。本 skill 只在本机读取并仅发往掘金 API。\n\n## 目录结构\n\n```\nsession2blog/\n├── SKILL.md          # Skill 定义（/s2b 命令行为）\n├── s2b.sh            # 内部实现：读 session JSONL → 脱敏 → 提取对话 → 输出\n├── install.sh        # 安装脚本（复制到 ~/.openclaw/skills/）\n├── README.md         # 本文件\n└── gumroad-product-copy.md  # 产品页文案\n\n~/.openclaw/session2blog/   # 运行时目录（自动创建）\n├── config.yaml        # 配置文件（含 juejin_cookie 等，权限 600）\n├── articles/          # 生成的博文\n└── logs/\n```\n\n## 产品信息\n\n- 定价: $5 一次购买，终身更新\n- 许可证: MIT\n- 平台: OpenClaw Skill（需要 OpenClaw 环境）\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1783786938830\n}\n\nFile v1.1.1:gumroad-product-copy.md\n\n# Session2Blog Pro — Gumroad 产品页文案\n\n> Pro 版（$5）。免费版已在 ClawHub 发布（基础生成 + 平台风格输出），本页是升级版。\n> 文案严格对照已实现功能，不做虚标。\n\n## 标题\nSession2Blog Pro — Chats to Juejin Drafts, One Command\n\n## 副标题\nYour OpenClaw sessions → polished, platform-ready blog posts → one-click sent to Juejin drafts. $5, lifetime updates.\n\n## 产品描述（英文）\n\n**What It Is**\n\nSession2Blog Pro is the full version of the Session2Blog OpenClaw Skill. It turns your conversation history into clean, structured blog posts, then **sends them to your Juejin draft box with one command** — no copy-paste.\n\nFree version (ClawHub): generates local Markdown only, with platform-style adaptation.\nPro version (this): adds **one-click Juejin publishing (to drafts)**.\n\n**What You Get**\n\n- ✅ Everything in free version: 3 templates, auto-redaction, `/s2b` slash command, `--platform wechat|juejin|csdn|zhihu|all` style output\n- ✅ **One-click Juejin draft**: `/s2b --platform juejin --publish` (or `--publish --file <md>`) sends the post straight to your Juejin draft box\n- ✅ Two modes: (a) point at a session, local LLM (ollama) writes the post then publishes; (b) generate the .md first, then publish the file\n- ✅ Drafts only by default — you review in Juejin before making it public (safe, no accidental public posts)\n- ✅ **Priority support**\n\n**How publishing works**\n\n1. Put your Juejin cookie in `~/.openclaw/session2blog/config.yaml` (local file, 600 perms — never shipped in the package)\n2. Run `/s2b --platform juejin --publish`\n3. Post lands in your Juejin **draft box**; you click publish when ready\n\n**Privacy-First**\n\nSensitive data auto-redacted before writing: API keys → `<REDACTED>`, paths → `<USER_HOME>/...`, emails/usernames → placeholders. Your cookie stays in a local config file and is only sent to Juejin's API.\n\n**Why $5?**\n\nLess than a coffee. Saves you the rewrite AND the manual paste. Lifetime updates — more platforms added free as they land.\n\n**Roadmap (not yet included, will be free updates)**\n\n- WeChat Official Account publish (Cookie-based)\n- CSDN publish (Cookie-based)\n- Zhihu publish (Cookie-based)\n- Scheduled daily push (cron)\n\n## 产品描述（中文）\n\n**这是什么**\n\nSession2Blog Pro 是 Session2Blog 的完整版（OpenClaw Skill）。免费版（ClawHub）只生成本地 Markdown + 平台风格适配；Pro 版额外支持**一键把文章发到你的掘金草稿箱**。\n\n**你得到什么**\n\n- ✅ 免费版全部功能：3 种模板、自动脱敏、`/s2b` 命令、`--platform wechat|juejin|csdn|zhihu|all` 风格输出\n- ✅ **掘金一键发草稿**：`/s2b --platform juejin --publish`（或 `--publish --file <md>`）直接把文章送进掘金草稿箱\n- ✅ 两种模式：(a) 指定会话，本地模型（ollama）写文后直接发；(b) 先生成 .md，再发布该文件\n- ✅ 默认只发草稿——你在掘金后台审过再点公开，不会误发\n- ✅ **优先支持**\n\n**发布流程**\n\n1. 把掘金 Cookie 写进 `~/.openclaw/session2blog/config.yaml`（本地文件，权限 600，不随包发出）\n2. 运行 `/s2b --platform juejin --publish`\n3. 文章进入掘金**草稿箱**，你确认后一键公开\n\n**隐私优先**\n\n生成前自动脱敏：API Key → `<REDACTED>`，路径 → `<USER_HOME>/...`，邮箱/用户名 → 占位符。Cookie 只在本地配置，仅发往掘金 API。\n\n**适合谁**\n\n- 用 OpenClaw 干活、又想稳定输出技术内容的开发者\n- 写完文章不想手动复制粘贴到掘金的人\n\n**路线图（尚未包含，后续免费更新）**\n\n- 微信公众号发布（Cookie 方式）\n- CSDN 发布（Cookie 方式）\n- 知乎发布（Cookie 方式）\n- 定时每日推送（cron）\n\n## 安装说明（买家看）\n\n```bash\n# 下载后解压，运行安装脚本\nbash install.sh\n\n# 或手动复制\ncp -r session2blog ~/.openclaw/skills/\n\n# 重启 OpenClaw 会话，输入 /s2b 即可\n```\n\n## 定价\n\n$5 USD — 一次购买，终身更新\n\n## FAQ\n\n**Q: Pro 和免费版有什么区别？**\nA: 免费版（ClawHub）生成本地 Markdown + 平台风格适配。Pro 版多了掘金一键发草稿。\n\n**Q: 一键发布需要什么？**\nA: 你的掘金网页 Cookie（登录后从浏览器复制），写进本地 config 即可。只发草稿，安全。\n\n**Q: 是直接公开发布吗？**\nA: 不是，默认发到掘金草稿箱。你审完在掘金后台点发布才公开，避免误发。\n\n**Q: Cookie 会过期吗？**\nA: 会，通常几天到几周。过期后重新抓一次贴进 config 即可。\n\n**Q: 对话内容安全吗？**\nA: 本地处理，脱敏后只发往你指定的平台（当前为掘金）。\n\n**Q: 微信/CSDN/知乎/定时推送什么时候有？**\nA: 在路线图上，作为已购用户的免费更新陆续加入。\n\nFile v1.1.1:skill-card.md\n\n## Description: <br>\nSession2Blog turns OpenClaw session history into structured Chinese Markdown blog posts for technical reviews, learning notes, and troubleshooting writeups. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jasonleezy](https://clawhub.ai/user/jasonleezy) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and OpenClaw users use this skill to convert recent or selected session transcripts into reusable Chinese blog posts, technical retrospectives, learning notes, and troubleshooting records, with optional platform-specific style guidance. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill reads selected local OpenClaw session transcripts, which may contain sensitive content. <br>\nMitigation: Review selected sessions and generated Markdown before sharing, and keep automatic redactions intact. <br>\nRisk: Cookie-backed publishing can expose or misuse an account session if a Juejin cookie is mishandled. <br>\nMitigation: Treat publishing cookies like passwords, store them only in the local config with restrictive permissions, and remove or rotate them when no longer needed. <br>\nRisk: Remote publishing can send generated content outside the local environment. <br>\nMitigation: Use publishing only after confirming exactly what content will be sent, and review drafts in the target platform before public release. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown articles and in-chat guidance with shell command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Generated articles are saved locally under the configured Session2Blog articles directory; platform style can target wechat, juejin, csdn, zhihu, none, or all.] <br>\n\n## Skill Version(s): <br>\n1.1.1 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: Session2blog Clawhub Owner: jasonleezy Summary: 把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。 Tags: blogging:1.1.2, latest:1.1.10, openclaw:1.1.2, productivity:1.1.2 Version history: v1.1.10 | 2026-07-14T14:41:15.771Z | user 协作溯源定位升级：新增 --with-collab 参数与 include_collab_trace 配置，文末追加「协作过程与关键决策点」区块（中英文适配）；删除「完全闭环」旧雷，明确信任边界（免费本地/Pro可选远程）；修复 s2b.sh 既有 bug（PUBLISH","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：中文 wechat|juejin|csdn|zhihu；英文 devto|hashnode|medium|hn|generic；none(默认) | all(按语言出全平台各一版)\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --platform all --template tech-review             # 中文: 一次生成微信+掘金+CSDN+知乎 4 版\n/s2b --lang en --platform all --template tech-review    # 英文: 一次生成 Dev.to+Hashnode+Medium+HN 4 版\n/s2b --with-collab            # 文末追加「协作过程与关键决策点」区块(协作溯源, 显式真人决策)"},{"language":"bash","snippet":"bash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话"},{"language":"text","snippet":"YYYY-MM-DD-<模板名>-<平台>-<简短英文slug>.md"},{"language":"yaml","snippet":"default_template: auto\nlanguage: zh-CN\nauthor: \"\"\ndefault_platform: none      # none | wechat | juejin | csdn | zhihu | all\narticles_dir: ~/.openclaw/session2blog/articles\n\n# 协作溯源：是否在博文末尾追加「协作过程与关键决策点」区块（默认 false 不加）\n# 也可在命令里用 /s2b --with-collab 临时开启，无需改配置\ninclude_collab_trace: false\n\n# 配置项（本地可选）\n# 免费版仅需 articles_dir；发布相关配置为 Pro 版功能，此处不展开。\n\n## 文件结构"},{"language":"text","snippet":"## 依赖\n\n- `python3`（macOS 自带）\n- 生成博文：默认使用 OpenClaw 会话自带模型（零额外依赖）；本地 `ollama` 为可选，用于脚本自动写文（未安装则走会话模型写文路径）\n\n## 升级到 Pro 版（一键发布 + 定时推送）\n\n免费版生成本地 Markdown 文件。想要以下功能，升级 Pro 版（$5 一次购买，终身更新）：\n\n- **一键发布**到微信公众号 / 掘金 / CSDN / 知乎（无需手动复制）\n- **定时自动推送**：配置 cron 后每天自动检查近期对话并生成博文\n- **优先支持**\n\n👉 获取 Pro 版：https://jasonlizy.gumroad.com/l/session2blog-pro\n👉 开源免费版（GitHub）：https://github.com/jasonleezy/session2blog\n\n（Pro 版包含本免费版的全部功能，并额外支持多平台直接发布。）\n\n## 生成质量说明\n\n- **博文生成质量与您使用的大模型直接相关。** 工具只负责按平台风格整理结构，文风与准确性由实际写文模型决定。\n- **发布前请人工复核：** 技术细节、代码、数据，以及脱敏是否彻底。\n- 已内置「去 AI 味·仿人写作」要求，但模型遵循程度不一，以人工检查为准。\n\n## 支持这个项目\n\n如果免费版帮到了你，欢迎到 GitHub 点个 ⭐：\n\n👉 https://github.com/jasonleezy/session2blog\n\n你的 star 是对开源创作者最好的鼓励。\n\nFile v1.1.10:README.md\n\n# Session2Blog 📝\n\n> ⚠️ **敏感数据提醒**：本工具会把 OpenClaw 会话历史提取并写入本地文件。对话中可能包含 API Key、Token、私人路径、邮箱或用户名等敏感信息。工具会做**最佳努力脱敏**（非 100% 保证），**发布前请人工复核**是否仍有遗漏。不要在含机密信息的会话上直接运行。\n\n把 OpenClaw **你与 AI 真正协作解决问题的过程**，沉淀成带真人决策链的结构化博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 为什么是它，而不是又一个 AI 写作工具\n\n各大平台抵制的，从来不是「AI 参与创作」，而是**无脑 AIGC 的注水低质货**——没有观点、没有判断、没有真人在 loop 里拍板。\n\nSession2Blog 解决的正是这个问题：它生成的不是 AI 替你写的文章，而是**你和 AI 对话协作的痕迹**。每一个关键决策、每一次纠错、每一句「我觉得应该这样」都来自真人。AI 只负责把这段协作过程整理、润色成可读的博文。\n\n> 平台反感的是「没有人的内容」。**你的内容里，每一个观点都站着一个人。**\n\n**协作溯源**是核心差异点：文章的可信度不靠一句「这是人写的」空话，而来自可见的对话轨迹与决策节点。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活、把问题聊透了，输一句 `/s2b`，它就把**这段真实协作过程**整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置（免费版）**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的——**免费版 100% 本地处理，不出本机**。\n\n> 📌 **信任边界**：免费版完全本地。Pro 版的一键发布为**可选功能**，需你主动配置平台凭证（如掘金 Cookie）才会发生远程调用，非默认行为，且默认只发到草稿箱、由你复核后再公开。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可："},{"language":"text","snippet":"安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入："}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: session2blog\ndescription: \"把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": {\n          \"bins\": [\"python3\"],\n          \"permissions\": {\n            \"filesystem\": {\n              \"read\": [\"~/.openclaw/session2blog/\", \"~/.openclaw/agents/\", \"~/.openclaw/sessions/\"],\n              \"write\": [\"~/.openclaw/session2blog/articles/\"]\n            },\n            \"process\": { \"execute\": [\"python3\"] }\n          }\n        },\n        \"install\": [],\n      },\n  }\n---\n\n# Session2Blog (s2b)\n\n> ⚠️ **本工具会读取并处理您的完整会话历史，并写入本地 Markdown 文件。** 会话可能包含 API Key、Token、私人路径、邮箱等敏感信息。工具会做最佳努力脱敏（非 100% 保证），**运行前请确认会话不含机密**，发布/外发前请人工复核。\n\n把当前或指定的 OpenClaw 会话中**你与 AI 协作解决问题、创作、决策的过程**，按模板整理成一篇带真人决策链的结构化博文，保存为 Markdown 文件到本地。\n\n**它不是 AI 替你写文章，而是把你们真实的协作痕迹沉淀成可读的内容**——平台抵制的是无脑 AIGC 注水，而这里的每个观点都来自真人在 loop 里的判断与拍板。\n\n## Trigger\n\n当用户**明确想要把当前/指定会话整理成博文**时触发：\n- 斜杠命令：`/s2b` 或 `/session2blog`\n- 明确的自然语言意图，例如：\"把这个会话整理成博文\"\"帮我导出成博客\"\"写篇技术复盘/学习笔记/排障记录\"\n\n> 限定范围：仅在用户意图清晰时触发。**不响应模糊闲聊**（如单说\"博客\"\"整理一下\"等可能在日常对话里随机命中的表述），避免误把普通会话写盘。\n\n## 用法\n\n```\n/s2b                          # 处理当前会话（或最近一次会话），默认通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 指定平台风格：中文 wechat|juejin|csdn|zhihu；英文 devto|hashnode|medium|hn|generic；none(默认) | all(按语言出全平台各一版)\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --platform all --template tech-review             # 中文: 一次生成微信+掘金+CSDN+知乎 4 版\n/s2b --lang en --platform all --template tech-review    # 英文: 一次生成 Dev.to+Hashnode+Medium+HN 4 版\n/s2b --with-collab            # 文末追加「协作过程与关键决策点」区块(协作溯源, 显式真人决策)\n```\n\n## 发布（Pro 版功能）\n\n免费版只生成本地 Markdown 文件，**不发布**到任何平台。一键发布（掘金/微信/CSDN/知乎）为 Pro 版功能，配置与用法见文末「升级到 Pro 版」。\n\n**平台风格适配（关键）：**\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n\n```bash\nbash <skill_dir>/s2b.sh --list          # 先列出可用会话（带序号）\nbash <skill_dir>/s2b.sh -n <N> --template <T>   # 提取指定会话对话\n```\n\n脚本会输出：\n- 会话基本信息（ID / Agent / 时间 / 消息数）\n- 自动检测的模板类型\n- **完整对话文本**（已过滤工具调用等噪声）\n- 写作指令（模板结构 + 保存路径）\n\n### Step 2: AI 润色生成博文\n\n根据脚本输出的对话文本和模板结构，写一篇完整的博文（Markdown 格式）。\n\n生成博文时，必须根据用户指定的 `--platform` 参数套用对应平台的爆款文风格。\n不同平台的读者预期、标题习惯、正文结构差异很大，不能只改个标题就完事。\n\n`--platform` 可选值（中文）：`wechat`(微信公众号) | `juejin`(掘金) | `csdn`(CSDN) | `zhihu`(知乎)\n`--platform` 可选值（英文）：`devto` | `hashnode` | `medium` | `hn`(Hacker News 风格) | `generic`(通用英文)\n通用：`none`(默认，通用风格) | `all`(按 `--lang` 出对应语言的全平台版本)\n`--lang` 可选值：`zh`(中文，默认) | `en`(English)\n\n#### 各平台爆款文风格定义\n\n**微信公众号 (wechat)** — 故事感、情绪、代入感\n- **标题**：痛点/悬念/数字驱动。例：「我踩了3个坑，终于搞懂了XX」「做了5年开发，我才明白XX」\n- **开头**：场景代入，用「你有没有遇到过…」拉近距离\n- **正文**：口语化，像朋友聊天，有情绪起伏，适当加粗金句\n- **结尾**：总结一句扎心的话 + 引导「关注我，持续分享」\n- **禁忌**：不要太硬核堆代码，读者是泛技术人群\n\n**掘金 (juejin)** — 硬核、体系化、代码密集\n- **标题**：直给技术关键词 + 价值感。例：「万字长文讲透XX」「从0到1实现一个XX」\n- **开头**：前置摘要（本文讲什么、你能学到什么）\n- **正文**：分节清晰带小标题，代码块密集，步骤可复现，可用目录锚点\n- **结尾**：技术"},{"path":"README.md","content":"# Session2Blog 📝\n\n> ⚠️ **敏感数据提醒**：本工具会把 OpenClaw 会话历史提取并写入本地文件。对话中可能包含 API Key、Token、私人路径、邮箱或用户名等敏感信息。工具会做**最佳努力脱敏**（非 100% 保证），**发布前请人工复核**是否仍有遗漏。不要在含机密信息的会话上直接运行。\n\n把 OpenClaw **你与 AI 真正协作解决问题的过程**，沉淀成带真人决策链的结构化博文（技术复盘 / 学习笔记 / 排障记录）。\n\n## 为什么是它，而不是又一个 AI 写作工具\n\n各大平台抵制的，从来不是「AI 参与创作」，而是**无脑 AIGC 的注水低质货**——没有观点、没有判断、没有真人在 loop 里拍板。\n\nSession2Blog 解决的正是这个问题：它生成的不是 AI 替你写的文章，而是**你和 AI 对话协作的痕迹**。每一个关键决策、每一次纠错、每一句「我觉得应该这样」都来自真人。AI 只负责把这段协作过程整理、润色成可读的博文。\n\n> 平台反感的是「没有人的内容」。**你的内容里，每一个观点都站着一个人。**\n\n**协作溯源**是核心差异点：文章的可信度不靠一句「这是人写的」空话，而来自可见的对话轨迹与决策节点。\n\n## 一句话\n\n你在 OpenClaw 里跟 AI 干完活、把问题聊透了，输一句 `/s2b`，它就把**这段真实协作过程**整理成一篇结构化博文，直接保存为 Markdown 文件。\n\n**零配置（免费版）**：不需要 API Key，不需要装 PATH，不需要开终端。模型用 OpenClaw 会话自带的，对话读本地的——**免费版 100% 本地处理，不出本机**。\n\n> 📌 **信任边界**：免费版完全本地。Pro 版的一键发布为**可选功能**，需你主动配置平台凭证（如掘金 Cookie）才会发生远程调用，非默认行为，且默认只发到草稿箱、由你复核后再公开。\n\n## 适用场景\n\n| 场景 | 模板 | 效果 |\n|------|------|------|\n| 刚修好一个 bug | `troubleshooting` | 排障记录，下次踩坑直接翻 |\n| 刚学会一个新工具 | `learning-notes` | 学习笔记，内化成自己的 |\n| 刚做完一个技术决策 | `tech-review` | 技术复盘，沉淀团队经验 |\n\n## 安装\n\n把 `session2blog/` 目录复制到 OpenClaw 的 skills 目录下即可：\n\n```bash\n# 方式一：直接复制（推荐）\ncp -r session2blog ~/.openclaw/skills/\n\n# 方式二：用安装脚本\nbash install.sh\n```\n\n安装后重启 OpenClaw 会话（或新开一个），`/s2b` 命令即可用。\n\n## 使用\n\n在 OpenClaw 会话中直接输入：\n\n```\n/s2b                          # 处理当前会话，自动选模板，通用风格\n/s2b -n 3                     # 处理列表里第 3 个会话\n/s2b --session <id>           # 用完整 session ID 指定\n/s2b --template tech-review   # 指定模板：tech-review | learning-notes | troubleshooting | auto(默认)\n/s2b --platform wechat        # 微信公众号风格（故事感、情绪、代入感）\n/s2b --platform juejin        # 掘金风格（硬核、代码密集、体系化）\n/s2b --platform csdn          # CSDN 风格（问题导向、步骤化、实用）\n/s2b --platform zhihu         # 知乎风格（观点感、深度、辩证）\n/s2b --platform all           # 中文: 一次生成 4 个平台版本（wechat/juejin/csdn/zhihu 各一）\n/s2b --lang en --platform devto  # 生成英文 Dev.to 风格博文\n/s2b --lang en --platform all    # 英文: 一次生成 Dev.to/Hashnode/Medium/HN 4 版\n/s2b --list                   # 列出所有可用会话（带序号、Agent、日期）\n```\n\n### 示例\n\n```\n你: /s2b\n\n→ AI 提取当前会话对话\n→ 自动匹配「技术复盘」模板\n→ 生成博文并保存到 ~/.openclaw/session2blog/articles/\n→ 告诉你文件路径\n```\n\n## 平台风格适配\n\n同一段对话，可以输出不同平台的爆款文风格。指定 `--platform` 后，AI 会按对应平台的读者预期重写标题和正文结构。\n\n| 平台 | 风格特征 | 标题示例 |\n|------|----------|----------|\n| `wechat` 微信公众号 | 故事感、情绪、场景代入、口语化 | 「我做了3个月数字产品，0销量之后终于想通了一件事」 |\n| `juejin` 掘金 | 硬核、体系化、代码密集、带目录 | 「万字长文讲透 OpenClaw Skill 开发」 |\n| `csdn` CSDN | 问题导向、步骤化、搜索友好 | 「OpenClaw 会话导出失败？【已解决】」 |\n| `zhihu` 知乎 | 观点感、深度、辩证、分层论证 | 「如何评价用 AI 把对话变成博客这件事？」 |\n| `none` 通用（默认） | 平衡调性，[模板] 标题结构 | 「[复盘] 从0到1做数字产品的踩坑」 |\n| `all` 全平台(中文) | 一次生成上述 4 个平台版本 | — |\n| **英文平台** | | |\n| `devto` Dev.to | 实用、友好、代码导向 | \"How I cut build time by 60% with X\" |\n| `hashnode` Hashnode | 精致、个人品牌向、结构化 | \"The Complete Guide to X for Beginners\" |\n| `medium` Medium | 叙事、思辨、长文 | \"Stop Using X — Here is What I Do Instead\" |\n| `hn` Hacker News | 极简、重实质、无营销 | \"Show HN: X does Y in 10 lines\" |\n| `all` 全平台(英文) | 一次生成 Dev.to/Hashnode/Medium/HN 4 版 | — |\n\n文件命名规则：`YYYY-MM-DD-<模板>-<平台>-<slug>.md`\n\n例如：`2026-07-11-tech-review-wechat-openclaw-product."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70s6vqad198fgrg23adxpjh58aayg2\",\n  \"slug\": \"session2blog\",\n  \"version\": \"1.1.10\",\n  \"publishedAt\": 1784040075771\n}"},{"path":"skill-card.md","content":"## Description:\n\nSession2Blog turns OpenClaw collaboration sessions into structured Markdown blog drafts for technical retrospectives, learning notes, and troubleshooting records.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[jasonleezy](https://clawhub.ai/user/jasonleezy)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nOpenClaw users and developers use this skill to turn local agent conversations into publishable Markdown drafts with platform-specific style guidance. It is aimed at documenting real debugging, learning, and technical decision workflows while keeping a human review step before publication.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill processes full local OpenClaw session history, which may include secrets, private conversations, or identifying details.\n\nMitigation: Run it only on sessions suitable for draft content and manually review generated Markdown before sharing or publishing.\n\nRisk: The server security summary reports that the session selector can read unintended local JSONL files outside the declared session area.\n\nMitigation: Prefer a version that validates --session as a simple session ID and confirms the resolved file remains inside the OpenClaw session directory.\n\nRisk: Automatic redaction is described as best effort and may miss sensitive information.\n\nMitigation: Inspect output for credentials, personal identifiers, and full local paths before publication.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/jasonleezy/skills/session2blog)\n- [Publisher profile](https://clawhub.ai/user/jasonleezy)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown blog drafts plus command output, session summaries, and writing instructions]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create one or more local Markdown files under the configured articles directory.]\n\n## Skill Version(s):\n\n1.1.10 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。 Skill: Session2blog Clawhub Owner: jasonleezy Summary: 把 OpenClaw 里你与 AI 真实协作解决问题的过程，沉淀成带真人决策链的结构化博文（技术复盘/学习笔记/排障记录），自动保存为 Markdown 文件。在会话中输入 /s2b 即可触发。 Tags: blogging:1.1.2, latest:1.1.10, openclaw:1.1.2, productivity:1.1.2 Version history: v1.1.10 | 2026-07-14T14:41:15.771Z | user 协作溯源定位升级：新增 --with-collab 参数与 include_collab_trace 配置，文末追加「协作过程与关键决策点」区块（中英文适配）；删除「完全闭环」旧雷，明确信任边界（免费本地/Pro可选远程）；修复 s2b.sh 既有 bug（PUBLISH","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":885,"uniquenessScore":56,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T07:59:44.675Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T07:59:44.675Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:43:54.505Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}