# lhr-gzh-workflow **Repository Path**: aecru/lhr-gzh-workflow ## Basic Information - **Project Name**: lhr-gzh-workflow - **Description**: 面向 Codex、Claude Code 等 Agent 的证据型微信公众号创作工作流,支持真实取证、第三方生图 API、微信排版与发布前检查。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-17 - **Last Updated**: 2026-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LHR GZH Workflow 一套面向微信公众号的证据型文章工作流。它把选题、事实核验、网页与 GitHub 取证、截图/录屏、写作、去机械感、公众号排版、封面生成和发布前检查组织成可复用的 Agent Skills。 项目最初服务于“香蕉学java”,但工作流本身可以迁移到其他技术类公众号。它不负责自动登录或发布;默认交付可编辑 Markdown、证据清单、公众号 HTML 预览和发布前检查结果。 ## 核心能力 - 先建立“主张—证据”表,再写文章,避免先下结论后找截图。 - 区分原始证据与可发布素材,记录来源、许可、脱敏与用途。 - 支持 Codex 内置生图,也支持用户提供官方接口文档后接入第三方图片 API。 - 第一次使用生图时必须明确选择来源,不默认调用,也不在失败后静默切换。 - 第三方 Key 只从本机环境变量读取,不进入仓库、配置、日志或文章 manifest。 - 默认输出 1 份锁定正文和 3 套标题/摘要/封面发布候选,用户选择后才进入最终发布验收。 ## 运行环境 - 支持能读取项目级 `SKILL.md` 的 Agent 环境,例如 Codex、Claude Code。 - Python 3.10+,仅用于本项目自带的校验、排版和第三方图片 API 运行脚本。 - 公众号排版可选安装第三方 `gzh-design` Skill;它不随本 Apache-2.0 仓库分发,完整来源和许可证见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。 ## 快速开始 1. 克隆仓库后,让 Agent 先读取 `AGENTS.md`。Claude Code 会通过根目录 `CLAUDE.md` 转入同一套规则。 2. 提出文章任务,例如:“为这个 AI 工具做一次可复核的公众号实测文章。” 3. 工作流需要生成插图、文章地图或封面时,首次会询问: - 当前 Agent 自带生图; - 第三方图片 API。 4. 选择 Codex 内置生图时,Agent 会记录本地选择并使用当前环境的 ImageGen。其他 Agent 没有内置生图工具时会明确阻断,不会假装支持。 5. 选择第三方时,提供官方 API 文档 URL、本地文档或 OpenAPI 文件。Agent 会读取契约、生成本地声明式配置、离线校验,再等待 Key 与可能计费的真实探测确认。 本地选择与 provider 配置保存在 `.lhr-gzh/image-provider.local.json`,该目录已被 Git 忽略。 ## 可选安装:公众号排版 `gzh-design` 使用 AGPL-3.0-or-later,不随本仓库分发。需要公众号 HTML 排版时,请自行从其上游仓库安装或复制到 `.agents/skills/gzh-design/`,并遵守上游许可证: ```powershell npx skills add https://github.com/isjiamu/gzh-design-skill --skill gzh-design ``` ## 第三方图片 API 第三方接入由 `lhr-image-provider` 负责。当前声明式运行器覆盖: - OpenAI Images 兼容接口; - 同步 JSON + Base64 图片; - 同步 JSON + 公网 HTTPS 图片 URL; - 直接二进制图片响应; - 提交任务后通过 GET 轮询的异步 JSON 接口。 提供文档后,Agent 会提取 endpoint、鉴权 Header、模型、请求字段、响应路径、尺寸、格式、异步状态和限制。文档缺少关键字段时会提问,不会猜测。HMAC、OAuth、专有 SDK、复杂上传或 WebSocket 不在通用声明式范围内;这类接口需要新增受限 adapter 和离线测试后才能调用。 示例配置位于 `.agents/skills/lhr-image-provider/assets/provider.example.json`。真实配置只写环境变量名: ```json { "api_key_env": "EXAMPLE_IMAGE_API_KEY" } ``` 不要把真实 Key 写进 JSON 或命令。用户应在 Agent 外部设置环境变量。任何可能计费的真实调用都需要本次明确确认,并传入 `--confirm-billable`。 离线验证: ```powershell python .agents/skills/lhr-image-provider/scripts/image_provider.py validate --config .lhr-gzh/image-provider.local.json python .agents/skills/lhr-image-provider/scripts/image_provider.py dry-run --config .lhr-gzh/image-provider.local.json --prompt "测试" --width 1024 --height 1024 --count 1 ``` ## 项目结构 ```text .agents/skills/ ├─ lhr-gzh-article-workflow/ # 文章总工作流 ├─ lhr-image-provider/ # 内置/第三方生图路由与适配 ├─ lhr-gzh-publish-check/ # 发布前静态检查 ├─ lhr-ai-flavor-editor/ # 保真去机械感编辑 ├─ lhr-ai-writing-fingerprint-audit/ # AI 写作特征审计 └─ 其他目录 # 第三方 Skills,见归属声明 articles/ # 本地文章工作区,默认不进入开源分发 AGENTS.md # 项目真源规则 CLAUDE.md # Claude Code 薄桥接 ``` 命名约定:`lhr-` 前缀表示本项目自有 Skill;其他 Skill 均按第三方组件处理。这个约定不替代许可证,具体上游、作者、版本状态与再分发边界以 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) 和 `third-party-skills.json` 为准。 ## 验证 ```powershell $env:PYTHONDONTWRITEBYTECODE='1' python -B -m unittest discover -s .agents/skills/lhr-image-provider/tests -v python -B -m unittest discover -s .agents/skills/lhr-gzh-publish-check/tests -v python -B -m unittest discover -s scripts/tests -v python -B scripts/verify_open_source.py . ``` 安装了 Codex `skill-creator` 的环境还应运行其 `quick_validate.py` 校验 `.agents/skills/lhr-image-provider`;其他环境至少检查 `SKILL.md` 的 YAML frontmatter 只包含 `name` 与 `description`。 ## 隐私与发布边界 - `.env*`、`.lhr-gzh/`、原始录屏、原始证据、日志和本地 provider 配置不会进入仓库。 - 不要在 Issue、截图或示例配置中提交 Key、Cookie、账号后台、邮箱、手机号、二维码或私有素材。 - 未经明确授权,工作流不登录公众号后台、不修改账号资料、不自动发布。 - 第三方图片 API 会接收 Prompt、参数以及用户主动提供的参考图;真实调用前必须确认外发范围和费用。 安全问题请按 [SECURITY.md](SECURITY.md) 报告。 ## 第三方 Skills 本仓库包含多个独立的第三方 Agent Skills。版权归原作者,按各自许可证授权;本仓库的总许可证不替代各第三方目录的许可证。 `de-AI-writing` 上游当前未声明许可证。它可以继续存在于个人本地环境,但已被 `.gitignore` 排除,不属于本开源分发。需要该 Skill 的用户应自行从上游获取,并遵守作者后续公布的许可。 ## 许可证 本项目自有内容采用 Apache License 2.0。再分发或修改时必须保留 `LICENSE`、`NOTICE`、版权和适用的归属声明;第三方组件仍遵循各自许可证,详见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。