Agent skill

GitHub Pages Publisher

by artwist-polyakov in artwist-polyakov/polyakov-claude-skills

Publishes already-built static pages to a GitHub Pages repo under a year, year-month and slug folder layout, optimizes large images and returns the public URL.

MITAuto-check passedDevOps & Cloud

Install GitHub Pages Publisher

skills CLI
$ npx skills add artwist-polyakov/polyakov-claude-skills --skill github-pages-publisher -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install artwist-polyakov/polyakov-claude-skills github-pages-publisher --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/github-pages-publisher/skills/github-pages-publisher .claude/skills/github-pages-publisher && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
github-pages-publisher
GitHub stars
206
Token cost
~1.2k tokens
SKILL.md length
553 words
Files
7 (incl. scripts, references)
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Publishes already-built static pages to a GitHub Pages repo under a year, year-month and slug folder layout, optimizes large images and returns the public URL.

  • Works in 8 steps: Determine the publish date bucket → Create or update target directory → Copy artifact files into that directory → …
  • Publishing a finished landing page to a GitHub Pages repository
  • SKILL.md covers Required repository layout, What this skill expects, Default publishing rules and URL contract, plus 8 more sections
  • Runs Python scripts from its folder; calls python3 and uv

What it does

This is the output stage for page artifacts made by other skills, not a design tool. It takes a built static folder, a single HTML file with local assets, or a small static site and places it at year/year-month/page-slug inside the Pages repository, never at the repo root and never skipping the date folders. It prefers index.html as the entry, keeps relative asset paths, and updates the folder deliberately when the same slug is republished.

scripts/publish_static.py does the work: it copies the artifact, shrinks oversized jpg, jpeg, png and webp files (with an image-max-kb option, 500 in the example), commits, pushes with a configured fine-grained token and prints the final public URL, which is the Pages base URL plus the dated path. scripts/optimize_images.py covers the image step, references/publish-checklist.md lists pre-publish validation, and original-size sharing can be chosen on purpose.

When your agent uses it

  • Publishing a finished landing page to a GitHub Pages repository
  • Pushing a small static site into a dated slug folder
  • Compressing oversized images before publishing a page
  • Getting the final public URL for a published artifact

Example prompts

  • “Publish the folder ./dist/pricing-page to our Pages repo with the slug pricing-page.”
  • “Republish the launch-notes slug with the updated HTML and keep the original-size images.”
  • “Optimize the images in this page and push it, then give me the public URL.”

Requirements

  • Python 3 for scripts/publish_static.py
  • A fine-grained GitHub token with access to the Pages repository
  • A built static artifact with an index.html

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Determine the publish date bucket
  2. Create or update target directory
  3. Copy artifact files into that directory
  4. Optimize oversized raster images when practical, unless original-size sharing is intentional
  5. Verify there is an entrypoint (index.html normally)
  6. Run pre-publish validation (see section above)
  7. Commit and push to the Pages repo using the configured fine-grained token workflow
  8. Return the final public URL

What it can do on your machine

Read from SKILL.md and the folder at commit b86e36d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

GitHub Pages Publisher loads about 1.2k tokens when it runs, and up to ~1.3k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 553 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~107
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from artwist-polyakov/polyakov-claude-skills at commit b86e36d, republished under its MIT licence (© artwist-polyakov). 553 words, ~1,195 tokens.

Download SKILL.mdSave it as .claude/skills/github-pages-publisher/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
github-pages-publisher
description
Publish static page artifacts from the publisher workspace to a GitHub Pages repository using a fine-grained token, with advisory image optimization and an original-image path. Use when a React/static page artifact is already prepared and needs to be copied into the Pages repo under a strict year/year-month/page-slug directory layout, then committed and pushed, with a final public artifact URL returned.

GitHub Pages Publisher

Publish already-built static artifacts to a GitHub Pages repository.

This skill is the deployment/output layer for page artifacts created by other skills.

Required repository layout

Every published artifact must go into this path shape inside the target repo:

<year>/<year>-<month>/<page-slug>/

Example:

  • 2026/2026-03/my-landing-page/

Never publish flat at repo root. Never skip the year or year-month nesting.

What this skill expects

Input should already exist as one of these:

  • a folder of built static files
  • a single HTML artifact plus local assets
  • a small static site ready to serve from a subdirectory

This skill should not do major frontend design work. It should package and publish what already exists.

Default publishing rules

  • preserve relative asset paths when possible
  • prefer index.html as entrypoint inside the target page directory
  • keep the output self-contained inside the page folder
  • avoid breaking existing published pages
  • if the same slug is republished, update the existing folder contents deliberately

URL contract

Always return the final public URL of the artifact.

Assume GitHub Pages serves from the repo's configured Pages base URL. The final URL should be:

<pages-base-url>/<year>/<year>-<month>/<page-slug>/

or, if needed explicitly:

.../<page-slug>/index.html

Prefer the clean directory URL when it resolves correctly.

Workflow

  1. Determine the publish date bucket:
    • year = YYYY
    • year-month = YYYY-MM
  2. Create or update target directory:
    • <year>/<year-month>/<page-slug>/
  3. Copy artifact files into that directory
  4. Optimize oversized raster images when practical, unless original-size sharing is intentional
  5. Verify there is an entrypoint (index.html normally)
  6. Run pre-publish validation (see section above)
  7. Commit and push to the Pages repo using the configured fine-grained token workflow
  8. Return the final public URL

Publishing command

bash
python3 scripts/publish_static.py --source <dir-or-html> --slug <name> [--date YYYY-MM-DD] [--image-max-kb 500]

The script copies the artifact into YYYY/YYYY-MM/slug/, optimizes oversized .jpg, .jpeg, .png, and .webp images, commits, pushes, and prints the final public URL.

Show full SKILL.md (262 more words)Show less

Image optimization

Image optimization is a recommendation, not a hard requirement. By default, the publishing script tries to keep each raster image under 500KB by stripping metadata, recompressing, and resizing long edges when needed.

Use --image-max-kb <kb> for a different target. Use --keep-large-images or --image-max-kb 0 when the user explicitly needs original-size images (for example, a full-resolution infographic, map, or downloadable media asset).

The original --source artifact is not changed. Optimization happens only after files are copied into the publish repo target directory. If Pillow/uv is unavailable or optimization fails, continue publishing originals and mention the warning.

Manual console run for a prepared artifact:

bash
uv run --with pillow python3 scripts/optimize_images.py <artifact-dir> --max-kb 500

Slug rules

  • use lowercase letters, digits, and hyphens
  • keep it short and descriptive
  • avoid spaces, underscores, Cyrillic, timestamps unless needed for uniqueness
  • if the title is user-facing, the slug can still be normalized separately

Pre-publish validation

Before pushing, the agent must verify:

  • artifact has index.html entrypoint
  • oversized raster images are optimized when practical, unless original-size sharing is intentional
  • no absolute local paths in HTML/CSS
  • no secrets in files
  • all local assets reachable from the target folder
  • page renders correctly (if browser tools are available, check at desktop 1440px and mobile 375px)

Safety rules

  • do not delete unrelated directories in the Pages repo
  • only replace contents of the target page directory being published
  • if overwriting, say so in the result
  • do not expose the token in output, logs, or committed files
  • do not push artifacts that fail local viewport validation

Config

Read config/README.md for required environment variables and URL derivation.

References

Read if needed:

  • references/publish-checklist.md — operational checklist before pushing

© artwist-polyakov, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references) in plugins/github-pages-publisher/skills/github-pages-publisher of artwist-polyakov/polyakov-claude-skills.

  • SKILL.md
  • .gitignore
  • config/.env.example
  • config/README.md
  • references/publish-checklist.md
  • scripts/optimize_images.py
  • scripts/publish_static.py

Open the folder on GitHubat commit b86e36d

Compare with similar skills

GitHub Pages Publisher next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

GitHub Pages Publisher compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
GitHub Pages Publisher this skillartwist-polyakov/polyakov-claude-skills206—~1.2kAutomated safety check: PassMIT
Cloudflare Pagessickn33/agentic-awesome-skills47k2 repos~2.4kAutomated safety check: PassMIT
Great Docspymc-labs/pathmc132—~2.7kAutomated safety check: PassMIT
EverOS Release WorkflowEverMind-AI/EverOS13k—~1.3kAutomated safety check: PassApache-2.0
Quartz Wikiliangdabiao/llm-wiki156—~861Automated safety check: PassNone
Static Deploynexu-io/nexu3.3k—~989Automated safety check: PassMIT

Similar skills

  • Cloudflare Pages

    sickn33/agentic-awesome-skills

    Deploy static sites and full-stack apps on Cloudflare Pages with previews, functions, and custom domains.

    47k GitHub starsUsed in 2 repos~2.4k tokens
    DevOps & CloudAuto-check passed
  • Great Docs

    pymc-labs/pathmc

    Generate documentation sites for Python packages with Great Docs.

    132 GitHub stars~2.7k tokensUpdated 6 days ago
    Frontend & DesignAuto-check passed
  • EverOS Release Workflow

    EverMind-AI/EverOS

    Walks through cutting a versioned everos release: bump the version, update the changelog, tag it, and review the drafted GitHub Release page before publishing.

    13k GitHub stars~1.3k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Quartz Wiki

    liangdabiao/llm-wiki

    Set up and deploy Quartz v4 static site for markdown wikis. An agent skill from liangdabiao/llm-wiki.

    156 GitHub stars~861 tokensUpdated 5 mo ago
    Knowledge ManagementAuto-check passed
  • Static Deploy

    nexu-io/nexu

    Deploy static pages to nexu.space. An agent skill from nexu-io/nexu.

    3.3k GitHub stars~989 tokensUpdated 5 mo ago
    Frontend & DesignAuto-check passed
  • Release

    hyhmrright/brooks-lint

    Cut a brooks-lint release: set the version in package.json, propagate it across all four plugin manifests and every version-bearing text file (README badges, docs site metadata), write the CHANGELOG…

    1.5k GitHub stars~1.2k tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from artwist-polyakov/polyakov-claude-skills

All 21 skills in this repo
  • Agent Deck Sessions

    artwist-polyakov/polyakov-claude-skills

    Launches, monitors and collects results from child AI agent sessions with the agent-deck terminal session manager.

    206 GitHub stars~965 tokensUpdated 15 days ago
    Auto-check passed
  • Crawl4AI SEO Site Crawler

    artwist-polyakov/polyakov-claude-skills

    Crawls a site with Crawl4AI to audit titles, meta tags, H1s, canonicals, navigation and internal links, and to compare landing pages and competitor sites.

    206 GitHub stars~1.7k tokensUpdated 15 days ago
    Auto-check passed
  • Perplexity Search and Research

    artwist-polyakov/polyakov-claude-skills

    Shell scripts for web search and research through the Perplexity API: raw results, cited answers, background deep research and page fetching, with results cached on disk.

    206 GitHub stars~2.5k tokensUpdated 15 days ago
    Auto-check: notes
  • Sourcecraft Publisher

    artwist-polyakov/polyakov-claude-skills

    Publish static page artifacts to SourceCraft Sites (Yandex infrastructure, works in Russia), with advisory image optimization and an original-image path.

    206 GitHub stars~990 tokensUpdated 15 days ago
    Auto-check: notes
  • X/Twitter Research via Grok

    artwist-polyakov/polyakov-claude-skills

    Searches X/Twitter through the xAI Grok API to build digests, trend reports and thread analysis, meant to surface post ideas for a Telegram channel.

    206 GitHub stars~1.8k tokensUpdated 15 days ago
    Auto-check: notes
  • Yandex Metrika

    artwist-polyakov/polyakov-claude-skills

    Яндекс Метрика: детализация трафика по источникам и UTM-меткам, отчёты по конверсиям и поисковым системам, API-сегменты и доступы к счётчикам.

    206 GitHub stars~2.1k tokensUpdated 15 days ago
    Auto-check: notes

Works with

Questions about GitHub Pages Publisher

What does GitHub Pages Publisher do?

Publishes already-built static pages to a GitHub Pages repo under a year, year-month and slug folder layout, optimizes large images and returns the public URL. This is the output stage for page artifacts made by other skills, not a design tool. It takes a built static folder, a single HTML file with local assets, or a small static site and places it at year/year-month/page-slug inside the Pages repository, never at the repo root and never skipping the date folders.

When should I use GitHub Pages Publisher?

GitHub Pages Publisher fits situations like: publishing a finished landing page to a GitHub Pages repository; pushing a small static site into a dated slug folder; compressing oversized images before publishing a page; getting the final public URL for a published artifact.

How do I install GitHub Pages Publisher in Claude Code?

Run `npx skills add artwist-polyakov/polyakov-claude-skills --skill github-pages-publisher -a claude-code`. Or copy the skill folder (plugins/github-pages-publisher/skills/github-pages-publisher in artwist-polyakov/polyakov-claude-skills) into .claude/skills/github-pages-publisher in your project. Claude Code loads it when a task matches its description.

How do I install GitHub Pages Publisher in Codex?

Run `npx skills add artwist-polyakov/polyakov-claude-skills --skill github-pages-publisher -a codex`. Or copy the skill folder (plugins/github-pages-publisher/skills/github-pages-publisher in artwist-polyakov/polyakov-claude-skills) into .agents/skills/github-pages-publisher in your project. Codex loads it when a task matches its description.

Can I use GitHub Pages Publisher in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add artwist-polyakov/polyakov-claude-skills --skill github-pages-publisher -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/github-pages-publisher, .gemini/skills/github-pages-publisher, .github/skills/github-pages-publisher and .opencode/skills/github-pages-publisher in your project.

What does GitHub Pages Publisher need to run?

Going by SKILL.md and its folder, GitHub Pages Publisher needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and uv). Our summary lists: Python 3 for scripts/publish_static.py; A fine-grained GitHub token with access to the Pages repository; A built static artifact with an index.html.

Does GitHub Pages Publisher access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is GitHub Pages Publisher safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does GitHub Pages Publisher use?

GitHub Pages Publisher is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does GitHub Pages Publisher use?

About 1.2k tokens (SKILL.md is roughly 4.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 86 tokens, read only when the agent opens those files.

What are the alternatives to GitHub Pages Publisher?

Skills that share tags, products or a category with GitHub Pages Publisher: Cloudflare Pages (sickn33/agentic-awesome-skills, 47k stars), Great Docs (pymc-labs/pathmc, 132 stars), EverOS Release Workflow (EverMind-AI/EverOS, 13k stars) and Quartz Wiki (liangdabiao/llm-wiki, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains GitHub Pages Publisher?

artwist-polyakov (a GitHub user) maintains it in artwist-polyakov/polyakov-claude-skills, which has 206 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on September 23, 2026.

Source: artwist-polyakov/polyakov-claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.