一键导入
generate-custom-qr-code
Generates a QR code from any URL, and optionally overlays a custom image in the center
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generates a QR code from any URL, and optionally overlays a custom image in the center
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
A Zo Computer skill for adding Humation avatars to agent products. It covers installing Humation npm packages into target projects, React integration, Core SVG rendering, static SVG generation, browser ESM usage in zo.space page routes, and legacy Humation SVG API compatibility.
Bootstraps the Clarion Intelligence System on Zo Computer. Run this once after installing — clones the source repo, installs the ai_buffett_zo Python library, creates the workspace data tree under /home/workspace/clarion/ (auto-detected on Zo), auto-installs all nine sibling clarion-* skills (regime-check, sec-research, single-stock-eval, expected-return-calc, value-screener, thesis-write, thesis-monitor, watchlist-update, living-letter-update) under /home/workspace/Skills/, and registers the sec-indexer background service. Idempotent (safe to re-run). The only manual step is one batched human checkpoint near the end (SEC EDGAR name + email, and creating the ZO_API_KEY secret). Persona routing for Clarion is opt-in via a separate prompt after install ("install Clarion personas and routing rules"). Use when the user asks to "set up Clarion" or "install Clarion".
Monitor the health of every active thesis in ~/clarion/theses/. For each one — refresh price, recompute Risk Environment from the current regime, check kill conditions (read from the file's status column), aggregate to an Overall score, recommend an action (EXIT / REDUCE / HOLD / ADD), and write the updated scores + history back to the thesis file. Produces a dashboard surfacing what needs attention. Use when the user asks "monitor my theses", "thesis health check", "any kill conditions triggered?", "what's the action on <TICKER>", or as part of a daily / weekly review. Requires clarion-setup to have been run.
Scaffold a new thesis document for a ticker in the canonical Clarion thesis format. Pre-fills the YAML metadata block, opens the History with an OPENED entry, and (when filings are indexed) seeds the "Why I Believe It" evidence section with draft citations from the Buffett-lens search. The user fills in the actual prose. Outputs a markdown file at ~/clarion/theses/{TICKER}.md. Use when the user says "write a thesis on <TICKER>", "scaffold a thesis for <TICKER>", "draft a thesis for <TICKER>", or after clarion-single-stock-eval returns an Add verdict and the user wants to formalize the position. Requires clarion-setup to have been run.
Compute the equity-vs-T-bill allocation for the Value bucket (50% of portfolio). Implements the Expected-Return Framework — looks up the historical 10-year forward return from the S&P 500 Shiller CAPE, computes the regime-adjusted hurdle (rf + regime premium), and produces a 5-tier verdict (STRONG EQUITY / LEAN EQUITY / NEUTRAL / LEAN T-BILLS / MAXIMUM T-BILLS) with recommended Value-bucket equity/T-bill split. Use when the user asks "should I be in stocks or bonds right now?", "what's the equity hurdle?", "is the market overvalued?", "what's the right Value bucket allocation?", or before adding any new equity to the Value bucket. Requires clarion-setup to have been run.
Update the annual investor letter at ~/clarion/letters/{YEAR}-letter.md with a new quarterly section, or finalize it at year-end. Auto-fills the system-deterministic parts (regime snapshot, thesis health table, portfolio bucket positions from active theses); marks the narrative-heavy parts (What We Did, What We Learned, Year in Context, Mistakes & Lessons, Looking Ahead) as [TODO] for the user to write with chat assistance. Append-only — refuses to overwrite an already-populated quarter without --force. Use when the user asks "update the letter", "quarterly letter update", "finalize the letter", or "write the {Q1/Q2/Q3/Q4} entry". Requires clarion-setup to have been run.
| name | generate-custom-qr-code |
| description | Generates a QR code from any URL, and optionally overlays a custom image in the center |
| metadata | {"author":"hatsunemiku.zo.computer","category":"Community","display-name":"Generate QR code with optional image","emoji":"📱"} |
Generate a QR code from a URL. Optionally overlay a custom logo/image on the center with a white background.
url (string, required): The URL to encode in the QR codeimage_path (string, optional): Path to custom image to overlay (PNG, JPG, etc.)output_path (string, optional): Where to save the QR code. Defaults to file Images/qr_code.pngoverlay_size_percent (int, optional): Overlay size as percentage of QR code (default: 25)Basic QR code (no image):
url: https://zo.computer
With custom logo:
url: https://zo.computer
image_path: /home/workspace/Images/logo.png
output_path: /home/workspace/Images/zo_qr_with_logo.png
overlay_size_percent: 25
First, ensure dependencies are installed:
pip install qrcode[pil] pillow -q
Then generate the QR code:
import qrcode
from PIL import Image
from pathlib import Path
url = "https://zo.computer"
image_path = None # Set to image path if using overlay
output_path = "/home/workspace/Images/qr_code.png"
overlay_size_percent = 25
output_path = Path(output_path)
output_path.parent.mkdir(parents=True, exist_ok=True)
# Use HIGH error correction if we're adding an overlay
error_correction = qrcode.constants.ERROR_CORRECT_H if image_path else qrcode.constants.ERROR_CORRECT_L
qr = qrcode.QRCode(
version=1,
error_correction=error_correction,
box_size=10,
border=4,
)
qr.add_data(url)
qr.make(fit=True)
qr_img = qr.make_image(fill_color="black", back_color="white").convert('RGB')
# If custom image provided, overlay it
if image_path and Path(image_path).exists():
custom_img = Image.open(image_path).convert('RGBA')
qr_width, qr_height = qr_img.size
# Calculate overlay size
overlay_size = int(qr_width * (overlay_size_percent / 100))
custom_img = custom_img.resize((overlay_size, overlay_size), Image.Resampling.LANCZOS)
# Create white background for overlay
white_bg = Image.new('RGB', (overlay_size, overlay_size), 'white')
# Paste custom image on white background (handles transparency)
if custom_img.mode == 'RGBA':
white_bg.paste(custom_img, (0, 0), custom_img)
else:
white_bg.paste(custom_img, (0, 0))
# Composite onto center of QR code
offset = (qr_width - overlay_size) // 2
qr_img.paste(white_bg, (offset, offset))
qr_img.save(output_path)
print(f"QR code saved to {output_path}")