Tashan-TopicLab: Skill for Codex

.codex/skills/wechat-group-qr-updater/SKILL.md

wechat-group-qr-updater is a skill for Codex from TashanGKD/Tashan-TopicLab. It costs 58 tokens per session (534 once invoked), scanned A, original, MIT.

A tool for replacing TopicLab's WeChat group QR image in the website footer without releasing the frontend. It converts a supplied QR screenshot or photo and updates the database record used by the site's stable image endpoint.

In plain words
What is it for?
Use it with a new QR image to update the WeChat group asset, optionally set an expiration time, and keep the footer displaying the current code.
Why use it?
It avoids rebuilding and redeploying the frontend for a QR code change, while keeping the existing URL used by the site.

Skill for Codex

Written for Codex: agents/openai.yaml present. Also seen: mentions Codex.

This is TashanGKD/Tashan-TopicLab's own configuration. It tells Codex how to work on Tashan-TopicLab itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything Tashan-TopicLab configures →

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is uv run python ../.codex/skills/wechat-group-qr-updater/scripts/update_wechat_group_qr.py \.

Reuse

Borrowing it

Nothing to install: this file belongs to TashanGKD/Tashan-TopicLab. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/TashanGKD/Tashan-TopicLab/main/.codex/skills/wechat-group-qr-updater/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/TashanGKD/Tashan-TopicLab

Made for: Codex.

Wrote 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.

agentmods badge for wechat-group-qr-updater

README.md
[![agentmods](https://agentmods.dev/badge/skills/tashangkd/tashan-topiclab/wechat-group-qr-updater/github.svg)](https://agentmods.dev/skills/tashangkd/tashan-topiclab/wechat-group-qr-updater)
Your own site
<a href="https://agentmods.dev/skills/tashangkd/tashan-topiclab/wechat-group-qr-updater"><img src="https://agentmods.dev/badge/skills/tashangkd/tashan-topiclab/wechat-group-qr-updater/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.

agentmods 80×15 button for wechat-group-qr-updater

Your own site · 80×15
<a href="https://agentmods.dev/skills/tashangkd/tashan-topiclab/wechat-group-qr-updater"><img src="https://agentmods.dev/badge/skills/tashangkd/tashan-topiclab/wechat-group-qr-updater.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 58 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 534 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00058 $0.00534
Opus 5 $0.00029 $0.00267
Sonnet 5 $0.00012 $0.00107
Haiku 4.5 $0.00006 $0.00053

Measured 11d ago against content hash 3e9566c3650b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

wechat-group-qr-updater scanned grade A with 1 finding 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 11d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/update_wechat_group_qr.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -I "$TOPICLAB_BASE_URL/api/v1/site/wechat-group-qr.webp"
.codex/skills/wechat-group-qr-updater/SKILL.md · 57 lines

What it actually says

WeChat Group QR Updater

Use this skill when the user provides a new "他山世界交流群" WeChat QR image and wants the website Footer QR code updated without rebuilding or redeploying the frontend.

What This Updates

  • Database table: site_assets
  • Asset key: wechat-group-qr
  • Public endpoint: /api/v1/site/wechat-group-qr.webp
  • Frontend consumer: frontend/src/components/Footer.tsx

The frontend URL is stable. Updating the database row is enough once the backend schema/API has been deployed.

Inputs

Required:

  • A local image path for the new WeChat group QR screenshot/photo.

Optional:

  • --expires-at as an ISO timestamp, for example 2026-05-26T00:00:00+08:00.
  • --database-url if DATABASE_URL is not already set in the shell or repo .env.

Procedure

  1. Confirm the image exists and is the intended current WeChat group QR.
  2. Run the bundled updater through the backend uv environment so Pillow and SQLAlchemy are available:
cd topiclab-backend
uv run python ../.codex/skills/wechat-group-qr-updater/scripts/update_wechat_group_qr.py \
  --image /absolute/path/to/new-wechat-qr.jpg \
  --expires-at 2026-05-26T00:00:00+08:00
  1. The script converts the source image to WebP, upserts site_assets.key='wechat-group-qr', and prints a compact JSON result.
  2. Verify the public endpoint on the target environment:
curl -I "$TOPICLAB_BASE_URL/api/v1/site/wechat-group-qr.webp"

Expected:

  • HTTP 200
  • content-type: image/webp
  • cache-control: public, max-age=60

Notes

  • Do not commit a new QR image for regular weekly updates; use this skill to write the database asset.
  • If updating a local dev database, set DATABASE_URL to the local SQLite/Postgres database before running.
  • If updating production, load the production .env or pass --database-url explicitly.
Files

What ships with it

2 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.

Changes

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.

  1. 11d ago First seen · 57 lines · 58 tokens per session scan A 3e9566c3650b

Subscribe to this mod's changes

wechat-group-qr-updater is a skill published in the GitHub repository TashanGKD/Tashan-TopicLab (5 stars, last pushed 17d ago), licensed MIT. It adds 58 tokens to every session and 534 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

agent-harness-fault-injection

Use when an agent workflow needs deterministic recovery evidence for sandbox, MCP/tool, worker, checkpoint, memory, or orchestration failures.

sickn33/agentic-awesome-skills · 34 tokens

sector-rotation

An analysis framework for comparing industries in the Chinese A-share stock market, using business conditions, price momentum, valuation, and money flows. It produces rankings and higher- or lower-allocation suggestions.

HKUDS/Vibe-Trading · 39 tokens

foundry-config-setup

Resolve missing setup caused by a hardcoded Foundry project endpoint or model in a sample. Use when a sample fails because it uses a placeholder/hardcoded projectendpoint (for example "https://your-project.services.ai.azure.com") or a hardcoded model instead of reading them from the environment.

microsoft/agent-framework · 65 tokens

oma-scholar

Scholarly research companion using Knows sidecar spec (.knows.yaml). Generates, validates, reviews, queries, and compares structured research-paper sidecars, and fetches them from knows.academy. Use for academic literature search, survey synthesis, paper authoring assistance, and peer review with token-efficient…

first-fluke/oh-my-agent · 73 tokens

oma-hwp

Convert HWP / HWPX / HWPML files to Markdown using kordoc. Extracts text, headings, tables, lists, images, footnotes, and hyperlinks. Use for Korean word processor files (Hangul), government documents, and AI-ready data preparation.

first-fluke/oh-my-agent · 59 tokens

browser_cdp

A health check for Python code that produces a score, letter grade, and measures of issues such as complexity, duplication, dead code, dependencies, and architecture.

mateaix/mateclaw · 44 tokens