Agent skill
sourcecraft-publisher
Publish static page artifacts to SourceCraft Sites (Yandex infrastructure, works in Russia). Use when a static page/React artifact needs to be deployed to SourceCraft under YYYY/YYYY-MM/page-slug directory layout.
Install this agent skill to your Project
npx add-skill https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/sourcecraft-publisher/skills/sourcecraft-publisher
SKILL.md
SourceCraft Publisher
Publish already-built static artifacts to a SourceCraft Sites repository. Works from Russia (Yandex infrastructure).
This skill is the deployment/output layer for page artifacts created by other skills (e.g. telegram-channel-parser digest).
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/ai-digest-week/
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 does not do frontend design work. It packages and publishes what already exists.
Config
Read config/README.md for required environment variables and token setup.
cp config/.env.example config/.env
Required: SOURCECRAFT_TOKEN, SOURCECRAFT_REPO, SOURCECRAFT_SITE_URL.
Workflow
- Determine the publish date bucket:
- year =
YYYY - year-month =
YYYY-MM
- year =
- Create or update target directory:
<year>/<year-month>/<page-slug>/
- Copy artifact files into that directory
- Verify there is an entrypoint (
index.htmlnormally) - Ensure
.sourcecraft/sites.yamlexists in repo root - Commit and force-push to the SourceCraft repo
- Return the final public URL
Publishing command
python3 scripts/publish_static.py --source <dir-or-html> --slug <name> [--date YYYY-MM-DD]
The script:
- Clones the SourceCraft repo (shallow)
- Ensures
.sourcecraft/sites.yamlconfig exists - Copies artifact into
YYYY/YYYY-MM/slug/ - Commits and force-pushes
- Prints the final public URL
Slug rules
- use lowercase letters, digits, and hyphens
- keep it short and descriptive
- avoid spaces, underscores, Cyrillic
URL contract
Always return the final public URL:
<SOURCECRAFT_SITE_URL>/<year>/<year>-<month>/<page-slug>/
Pre-publish validation
Before pushing, verify:
- artifact has
index.htmlentrypoint - no absolute local paths in HTML/CSS
- no secrets in files
- all local assets reachable from the target folder
Safety rules
- do not delete unrelated directories in the repo
- only replace contents of the target page directory
- if overwriting, say so in the result
- do not expose the token in output, logs, or committed files
References
Read if needed:
references/publish-checklist.md— operational checklist before pushing
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
genome-analizer
scrapedo-web-scraper
docx-contracts
telegraph-publisher
Publish pages to Telegraph with images, YouTube embeds, and diagrams. Supports auto-split for long articles. ALWAYS read SKILL.md before first use.
ssh-remote-connection
SSH connection to remote servers. Use when you need to execute commands on a remote server, check logs, restart services, or manage Docker containers.
crawl4ai-seo
SEO-краулер сайтов на базе Crawl4AI. Полный аудит страниц: title, meta, H1, canonical, breadcrumbs, навигация, внутренние ссылки. Инвентаризация сайта, навигационный аудит, сравнение лендингов, анализ конкурентов. Работает для Google и Яндекс SEO (Cyrillic URL, коммерческие факторы, региональность). Связка с yandex-search-api, yandex-metrika, yandex-webmaster, scrapedo-web-scraper. Triggers: crawl4ai, seo crawl, site audit, page inventory, site inventory, on-page audit, internal links, internal linking audit, navigation audit, landing comparison, competitor analysis, competitor pages, orphan pages, technical seo, аудит сайта, краулер, перелинковка, навигационный аудит.
Didn't find tool you were looking for?