agentleFS
JinukMoonJinukMoon/agent-skills/skills/life/qr-code/SKILL.md

qr-code

Skill4 starsChanged 3 months agoMITView on GitHub

Generate QR code PNG images from a URL, link, phone number, or short text — in a fixed print/slide-ready house style (version 5, high error correction, 20 px modules, black frame; 860×860 px) — and verify each one by decoding it back. Use this whenever the user asks for a QR code in any phrasing — "QR 만들어줘", "QR 코드", "큐알", "make a QR for this link", "링크를 QR로", "발표자료에 넣을 QR", "명함/포스터용 QR", "전화번호 QR" — including when they hand over one or several links and want images for a slide, poster, README, or business card. Do not use for reading/scanning an existing QR image (that is decoding, not generation) unless the user also wants a new one made.

  • Installs packages

6 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use calculate-hash, interactive-map and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • google-ai-edgeSkill

    calculate-hash

    Calculate the hash of a given text.

    Also in 3 projects that use this

  • google-ai-edgeSkill

    interactive-map

    Show an interactive map view for the given location.

    Also in 3 projects that use this

  • MicrosoftSkill

    send-email

    Send HTML email notifications via Azure Logic App. Use when (1) sending formatted emails to recipients, (2) delivering reports or summaries via email, (3) triggering email notifications from workflows. Triggers on requests like "send email", "email this", "send via email", "mail to".

    Also in 3 projects that use this

  • +7 more from google-ai-edge

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Ask once which Python interpreter to use (any env with qrcode[pil].

    line 14
  2. Very specific:

    Run the script; save into the project's asset folder (e.g.

    line 62
  3. Distinctive:

    If several QRs go on one slide, a caption under each (site name / repo name) is worth more than the URL text — people scan the one they …

    line 66

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

QR code generation

Bundled script: scripts/make_qr.py. It produces one consistent style so every QR in a deck, poster, or README looks the same, and it decodes every output back to catch broken codes before they land on a slide.

First-run setup

Ask once which Python interpreter to use (any env with qrcode[pil]; pyzbar or opencv-python optional for verification). Remember it as {PY} below.

pip install "qrcode[pil]" pyzbar     # or: pip install "qrcode[pil]" opencv-python

Run

PY={PY}
S=~/.claude/skills/qr-code/scripts/make_qr.py

$PY $S "https://catbench.org/"                          # -> ./qr_catbench_org.png
$PY $S "https://github.com/JinukMoon/CatBench" -o qr_catbench_github.png
$PY $S "tel:01012345678" -o qr_phone.png                 # phone numbers use tel:
$PY $S --batch links.txt -d assets/qr/                   # many at once

links.txt for batch mode — one per line, optional name<TAB>url (name becomes the filename):

qr_leaderboard	https://catbench.org/
qr_catbench_github	https://github.com/JinukMoon/CatBench
https://github.com/JinukMoon/oh-my-mlip

Options: --box N (module px, default 20 → 860 px image; use 10 for ~430 px), --no-frame (drop the black border), -d DIR (output folder).

Why these choices (so you can deviate sensibly)

  • version 5 + ERROR_CORRECT_H: H-level correction survives partial occlusion (logo overlays, glare on a projector, a phone camera at an angle) — the situation a conference QR actually lives in. Version 5 comfortably holds any URL up to ~80 chars at H.
  • box 20 + black frame: the frame gives a clean quiet-zone boundary on white slides and posters. Keep it unless the user asks for a borderless one.
  • Decode verification: the script re-reads each PNG (pyzbar or OpenCV, whichever is installed) and exits non-zero on mismatch. Report the [OK verified] line to the user; if it prints no decoder installed, say so — don't claim verification you didn't get.

Workflow

  1. Confirm the exact target strings. URLs: include the scheme (https://); phone: tel: + digits, no hyphens; plain text is fine too. If a URL is ambiguous (repo vs. website), ask once — a QR to the wrong page is worse than no QR.
  2. Pick filenames that say what they point to (qr_leaderboard.png, not qr1.png) — decks accumulate many QRs and nobody can tell them apart visually.
  3. Run the script; save into the project's asset folder (e.g. assets/qr/), not /tmp.
  4. Paste the verification lines back to the user. If the QR is going on a slide, mention the size: 860 px renders crisp at 1.2–1.5 in; below ~1 in the modules get too fine for phones across a room.
  5. If several QRs go on one slide, a caption under each (site name / repo name) is worth more than the URL text — people scan the one they want.

Dependencies

qrcode[pil] (required). Decoding uses pyzbar or opencv-python if present; absence only disables verification, not generation.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.