1892/agent-blog/SKILL.md
End-to-end blog management for AI agents. Write, import, build, preview, and publish articles using the blog template. Covers draft workflow, article import, SEO, OG images, and deployment.
npx skillsauth add starchild-ai-agent/community-skills @1892/agent-blogInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage a blog built on the blog template. Full lifecycle: write or import drafts, format articles, set titles and hero images, add SEO structures, build, preview, and publish.
config.py site constants (SITE_URL, SITE_NAME, CTA, UTM, OG colors)
build.py generator; python3 build.py [--check|--drafts]
scripts/import_article.py import any HTML article as a draft
scripts/import_x_articles.py import X articles as drafts
scripts/og_image.py auto-generate OG cards from post titles
templates/ base.html, home.html, post.html, tag.html
assets/ style.css, fonts, icons, vendor/chart.umd.min.js
assets/images/ hero images live here
content/posts/ YYYY-MM-DD-<slug>.md source files
public/ build output (gitignored)
config.py is the single source of truth. If it does not exist, the build
falls back to config.example.py defaults (with a printed note), so a fresh
fork builds with zero setup. To customize: copy config.example.py to
config.py and edit the values.
Key fields: SITE_URL, SITE_NAME, SITE_TAGLINE, CTA_URL, CTA_TEXT,
OG_* colors, UTM_SOURCE.
Create content/posts/YYYY-MM-DD-<slug>.md:
---
title: "Post Title"
slug: post-title
date: 2026-01-15
author: Author Name
description: "Short SEO summary."
tags: [tag1, tag2]
draft: true
og_image: /assets/images/hero.png
---
Then python3 build.py. Drafts render to public/drafts/<slug>/ and are
excluded from homepage, RSS, sitemap. Set draft: false to publish.
| Field | Required | Notes |
|-------|----------|-------|
| title | yes | Wrap in quotes if it contains : or # |
| slug | no | Defaults to filename slug |
| date | no | Defaults to filename date |
| author | no | Defaults to config.DEFAULT_AUTHOR |
| description | no | Falls back to first 160 chars of body |
| tags | no | YAML list [a, b] |
| draft | no | true = excluded from public surfaces |
| og_image | no | Custom OG image path; auto-generated if omitted |
| source_url | no | Original URL if imported |
Standard markdown after the ---. Supports headings, bold, italic, links,
images, code blocks, blockquotes, lists, tables, horizontal rules.
For raw HTML articles (imported), the body can contain inline <style>
and <script> blocks. The importer scopes CSS under .sr-article.
python3 scripts/import_article.py "URL" \
--date YYYY-MM-DD --slug S --title "T" \
--author "Author" --tags a,b --description "..."
The importer fetches the page, extracts body + styles + scripts, scopes
CSS under .sr-article, drops the original <h1>, rewrites Chart.js CDN
to vendored copy, and writes a draft markdown file.
python3 scripts/import_x_articles.py
Reads twitter_articles_5_raw.json (or similar export), downloads cover
images, and writes formatted markdown posts.
python3 build.py --check # validate only, write nothing
python3 build.py # full build (drafts excluded from public surfaces)
python3 build.py --drafts # full build (drafts visible on homepage, marked [draft])
Output goes to public/. The build is deterministic.
If a post has no og_image in frontmatter, scripts/og_image.py generates
a 1200x630 PNG card with the post title, date, and brand wordmark. Colors
come from config.py (OG_* fields). A default card is also generated for
the site homepage.
Every outbound link (nav CTA, footer, article CTA) is tagged at build time:
utm_source = config.UTM_SOURCE (default: blog)utm_medium = nav, footer, or article_ctautm_content = post slug (only on article CTAs)utm_campaign = config.UTM_CAMPAIGN (optional)Internal links, assets, RSS, and JSON-LD are never tagged. This lets analytics platforms attribute outbound clicks to specific articles without any client-side setup.
Serve public/ with any static server:
python3 -m http.server 8000 -d public/
On Starchild, use the preview system to serve the built site and get a shareable URL.
The public/ directory is static HTML. Deploy to any static host:
community-publish skill)Before publishing a post:
python3 build.py --check passes with no errorsdraft: false is setog_image (if set)python3 build.py completes successfully/posts/<slug>/ to verify rendering/feed.xml and /sitemap.xml include the post: or #. Wrap in double quotes.<script src> slipped back in. Confirm the built page references vendor/chart.umd.min.js.public/ by hand.apparent_encoding.cp config.example.py config.py and edit to customize.og:image being set: hero image was saved as RGBA PNG. Telegram's crawler silently rejects alpha-channel PNGs with no fallback. Fix: Image.open(path).convert('RGB').save(path, format='PNG'). Verify: struct.unpack('B', open(path,'rb').read()[25:26])[0] == 2 (color type 2 = RGB). Also add og:image:secure_url and og:image:type meta tags for full Telegram/X card support.preview(action="serve") to get a shareable /preview/<id>/ URL — never expose localhost:<port> to users. Web users see the Preview panel; on Telegram/WeChat use the community-publish skill's publish_preview() for a public URL. Protected slugs (1892-starchild-blog, 1892-docs) must never be stopped or overwritten.tools
TQX (tqx.trade) HK/US stock quant workflow via tqx-cli: cross-sectional factor analysis, event-driven strategy backtests on the panda_backtest engine, and agent-driven automated paper trading. Use when the user wants to run factor IC/IR analysis, backtest a Python trading strategy on Hong Kong or US stocks, or set up agent-automated trading (e.g. "backtest a moving-average strategy on AAPL", "analyze a momentum factor on HK stocks", "let the agent trade my paper account").
tools
中学物理实验教学参赛方案套件。包含四个完整实验(单摆测g、声悬浮测声速、向心力定量演示仪、电磁阻尼定量研究),每套含固件源码、3D打印图纸、教学PPT、教学文稿、采购清单、调试手册、视频分镜脚本、模拟器。Use when a teacher/student needs a complete, classroom-ready physics experiment package for competition or teaching.
development
ESP8266/ESP32 + 磁簧开关/霍尔传感器 单摆测重力加速度实验套件。 硬件搭建→固件烧录→数据采集→Web仪表盘→g值计算→教学文档,一站式完成。 Use when the user wants to build a pendulum g-measurement experiment, measure gravity with a micro-controller, or needs a complete physics experiment package with hardware + firmware + dashboard + teaching materials.
development
自动搜索全网前沿实验方案(学术论文、开源硬件、竞赛项目、创客社区), 评估可行性后生成完整实现(BOM采购清单、固件代码、电路图、3D打印件、 Web仪表盘、教学文档)。 Use when exploring new experiment ideas, searching for cutting-edge DIY/physics/engineering project implementations, or when the user says "找一下XX实验/项目/方案" and wants a complete, buildable solution.