The file

---
section: blog            # or: press
slug: my-post
description: one-liner for <meta> + the index
date: 2026-06-28
lang: en
---

# Headline

Body in Markdown…

section: blog publishes under /blog; section: press under /press.

Publish

export KOVANEX_ADDR=127.0.0.1:9090
export SITE_REPO=/path/to/site-repo            # has tools/site + projects/<project>/
export DEPLOY_CMD='tar czf - -C projects/myproj/site/dist . | ssh host "tar xzf - -C /var/www/site"'

bash publish.sh <project> <slug> "<Title>" article.md

It upserts the KB note site_<project>_<slug>, registers it in site.json, runs tools/site fetch + build, and deploys. Re-running the same slug updates the post — the note id is stable.

Get it

Download kovasite.tar.gz

Unpack into your agent's skills folder: tar xzf kovasite.tar.gz -C ~/.claude/skills/ — needs kovanex-ctl, go, python3 on PATH.

Source →  skills/kovasite/ in the public mirror (SKILL.md · publish.sh · README.md)