Growth Lab is an open-source growth system that uses coding agents to understand a product, research markets, execute growth activities, and learn from the results. It is designed for teams that want to manage growth work across channels such as SEO and Xiaohongshu through natural-language collaboration, persistent product context, and recorded outcomes. Catalogue add-ons define parts of its product models, research methods, execution workflows, and agent operation.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add tsingyuai/growth-lab --skill wechat-mp-publishgit clone --depth 1 https://github.com/tsingyuai/growth-labWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tsingyuai/growth-lab/wechat-mp-publish)<a href="https://agentmods.dev/skills/tsingyuai/growth-lab/wechat-mp-publish"><img src="https://agentmods.dev/badge/skills/tsingyuai/growth-lab/wechat-mp-publish/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tsingyuai/growth-lab/wechat-mp-publish"><img src="https://agentmods.dev/badge/skills/tsingyuai/growth-lab/wechat-mp-publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00091 | $0.01438 |
| Opus 5.5 | $0.00036 | $0.00575 |
| Sonnet 5.5 | $0.00018 | $0.00288 |
| Haiku 4.5 | $0.00009 | $0.00144 |
Grade A, and why
wechat-mp-publish scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 18d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.
微信公众号草稿与受控发布
scripts/ 是仓库自带的零依赖 Python Client(仅用标准库),只调用微信官方接口,见 api.md。输入是 wechat-article-compose 产出的生产单元:
<post-dir>/
├── article.md # 必需
├── wechat.yml # 必需
├── cover.png # 创建草稿时必需(cover 字段可改名)
└── assets/ # 正文图片,可选
渲染器支持 wechat.yml 的 theme(主题名,或 base 加 accent / text / background / link / ink / tint / muted / line / generic 颜色覆盖,值可写 #RRGGBB)以及正文排版块 ::: card / steps / stats / bars / figure,语法见 wechat-article-compose。内置主题:default、white-accent(白底、中性灰,只用强调色点缀)。品牌色写成覆盖项:
theme:
base: white-accent
accent: "#2C3E8C"
link: "#2C3E8C"
运行后在同一目录写入 preview.html、article.html、payload.json、publish-state.json。
前置
依赖缺失时触发统一的 onboard-growth-lab,本 Skill 不自行维护配置流程。
- 本机直连:
WECHAT_MP_APP_ID/WECHAT_MP_APP_SECRET,且本机公网出口 IP 已加入公众号后台 API IP 白名单。 - 远程服务(推荐团队使用):本机只配
WECHAT_PUBLISH_SERVICE_URL/WECHAT_PUBLISH_SERVICE_TOKEN;AppSecret 只放在固定 IP 服务器上,部署见 remote-service.md。 - 账号主体必须具备草稿与发布接口权限:个人主体、未认证企业主体等账号的发布接口可能已被回收,报
api unauthorized时说明无法自动化,改为人类协作发布。
凭据只从进程环境或根目录 .env.local / .env 读取;不得回显、写入产物或 Memory。
1. 预览(每次都做)
make wechat-preview POST=<post-dir> # 生成并打开 preview.html
make wechat-render POST=<post-dir> # article.html + dry-run payload.json
用真实浏览器检查 preview.html:标题、作者、摘要、首屏卡片、小标题节奏、图片居中与清晰度、CTA 链接。发现问题回到 article.md 修改后重新渲染。article.html 是草稿与预览共用的唯一正文,修改 article.md 后必须重新 render。
2. 创建草稿(默认终点)
make wechat-draft POST=<post-dir> # 本机直连
make wechat-remote-draft POST=<post-dir> # 远程服务
两者都先跑 check-wechat-compliance.py,未通过即阻断。流程:上传封面为永久素材 → 上传正文本地图片并替换为微信图片 URL → 新建草稿 → 写 publish-state.json 的 draft_media_id。正文外链图片会被拒绝,改用 assets/ 本地图片;正文仍含 ::: figure 配图位时同样拒绝,先换成真实图片再 render。
创建成功后请用户在公众号后台预览草稿;这是人工把关点,不跳过。
3. 受控发布(仅在用户明确要求时)
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- agents/openai.yaml 275 B
- deploy/docker-compose.yml 785 B
- deploy/Dockerfile 1.0 KB
- deploy/server.env.example 1.7 KB
- references/api.md 2.9 KB
- references/remote-service.md 2.1 KB
- scripts/cli.py 11 KB runs code
- scripts/client.py 9.3 KB runs code
- scripts/payload_builder.py 28 KB runs code
- scripts/remote_client.py 7.5 KB runs code
- scripts/server.py 14 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 18d ago First seen · 96 lines · 91 tokens per session scan A 099265ad19af
wechat-mp-publish is a skill published in the GitHub repository tsingyuai/growth-lab (1,992 stars, last pushed 19d ago), licensed Apache-2.0. It adds 91 tokens to every session and 1,438 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-29.
Other skills, from other repositories
viral-marketing-playbook
Design viral loops into your product — referral programs, invite systems, and share mechanics that drive exponential growth. Includes K-factor calculations and real examples from Dropbox, Slack, and Notion. By @WeiYipei.
synthesis-explore
Synthesis EXPLORE stage for the Diffmode growth-tactics pipeline (fuses the blind-combination draw + emergent-mechanism derivation — formerly two separate synthesis steps — into ONE structural-check-only stage). Reads the per-run growth-factors.json (LIGHT vector DB) + synthesis-constraints.json + founder-input +…
diagnostics-intake
Fast founder-input capture for the Diffmode growth-tactics pipeline (the diagnostics stage). Produces WS/01-diagnostics/founder-input.md in the exact schema the enrichment + synthesis stages read. Two modes — (A) URL mode researches a product's website (homepage/pricing/about) plus a web-research pass to prefill the…
growth-factors-mining
Builds a per-run LIGHT growth-vector database for the Diffmode growth-tactics pipeline by mining public growth case studies fresh, every run, and distilling each into atomic "growth factors" (transferable mechanisms). Clean-room — NEVER reads the proprietary tacticsDB. Outputs growth-factors.json (20-40 vectors spread…
lite-constraints
Generates synthesis-constraints.json for the Diffmode growth-tactics pipeline by reasoning in-context over the per-run growth-factors.json (LIGHT vector DB) + founder context — the clean-room, no-Python replacement for the proprietary Python constraints generator. Emits the white-space pairs, mandatory…
cro-optimization
Run conversion rate optimization through hypothesis-driven testing including audit, hypothesis generation, test design, statistical analysis, and rollout decisions. Use this skill whenever the user wants to optimize conversion, run A/B tests, audit a funnel, generate test hypotheses, design experiments, or analyze…