Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
artwist-polyakov avatar

Github Pages Publisher

  • 16 installs
  • 177 repo stars
  • Updated May 10, 2026
  • artwist-polyakov/polyakov-claude-skills

github-pages-publisher is a Claude skill that publishes prebuilt static page artifacts to a GitHub Pages repository under a dated slug layout and returns the public URL.

About

This skill publishes an already-built static page artifact to a GitHub Pages repository using a fine-grained token and returns the final public URL. A developer uses it as the deployment layer after another skill has produced a static page. It enforces a year/year-month/page-slug directory layout, optionally optimizes oversized images, runs pre-publish validation, then commits and pushes to the Pages repo.

  • Publishes prebuilt static artifacts to a GitHub Pages repo and returns the public URL
  • Enforces a strict year/year-month/page-slug directory layout
  • Optimizes oversized raster images and validates the artifact before pushing

Github Pages Publisher by the numbers

  • 16 all-time installs (skills.sh)
  • Ranked #943 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

github-pages-publisher capabilities & compatibility

Requires a fine-grained GitHub token; GitHub Pages hosting itself is free

Works with
github
Use cases
ci cd · devops
Pricing
Free
From the docs

What github-pages-publisher says it does

This skill is the **deployment/output layer** for page artifacts created by other skills.
SKILL.md
Every published artifact must go into this path shape inside the target repo:
SKILL.md
npx skills add https://github.com/artwist-polyakov/polyakov-claude-skills --skill github-pages-publisher

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs16
repo stars177
Last updatedMay 10, 2026
Repositoryartwist-polyakov/polyakov-claude-skills

What it does

Publish a prebuilt static page artifact to a GitHub Pages repo under a dated slug layout and return its public URL.

Who is it for?

Developers deploying already-built static page artifacts to GitHub Pages

Skip if: Doing major frontend design work; it packages and publishes what already exists

When should I use this skill?

A React or static page artifact is prepared and needs to be published to a GitHub Pages repo with a public URL returned

What you get

A committed and pushed static artifact live on GitHub Pages with its final public directory URL returned.

  • published GitHub Pages artifact
  • final public URL

By the numbers

  • default image target 500KB per raster image
  • year/year-month/page-slug 3-level path layout

Files

SKILL.mdMarkdownGitHub ↗

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

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.

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:

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

Related skills

FAQ

What directory layout does it enforce?

Every artifact goes into year/year-month/page-slug, never flat at the repo root and never skipping the nesting.

Does it do frontend design?

No. It is the deployment/output layer and packages and publishes an artifact that already exists.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.