Production source for akholod.vercel.app: a Russian-language Astro site, a guarded local publishing CLI, and a Hermes skill scoped to the author’s Telegram identity.
- Editorial public site with home, archive, category, tag, book, about, article, RSS, sitemap, and 404 routes.
- Recovered Proza.ru catalogue entries link to their official full texts.
- New canonical articles live in
src/content/posts/<slug>/index.mdand render in the same archive and full-text routes. bin/akholod-writeringests public Evernote shares or local Markdown, manages drafts and media, validates, previews, and publishes only an explicitly approved revision.- Offline Proza.ru preparation normalizes paragraphs, checks Windows-1251 compatibility, validates the single-image constraint, and binds a separate approval. Network submission remains disabled until a dedicated human-reviewed transport is approved.
- Optional Resend publication receipts are server-side and idempotent; no secret is stored in the repository.
pnpm install
pnpm dev
pnpm type-check
pnpm exec astro check
pnpm test:publisher
pnpm buildpnpm writer -- doctor --json
bin/akholod-writer ingest --source /path/to/story.md --json
bin/akholod-writer draft --import <IMPORT_ID> --title "Название" --json
bin/akholod-writer validate --slug <SLUG> --json
bin/akholod-writer preview --slug <SLUG> --json
bin/akholod-writer stage --slug <SLUG> --revision <SHA256> --json
bin/akholod-writer publish --slug <SLUG> --revision <SHA256> --confirm <TOKEN> --deploy --jsonSee tools/publisher/README.md for the full command contract, identity boundary, audit chain, Evernote policy, email configuration, and Proza.ru preparation flow.
The skill is in .hermes/skills/writer. It is designed for Telegram user @akholod12 and also checks the stable numeric Telegram identity before any disk or network operation. A local shell remains available to the operator.
Expose the repository skill directory through Hermes skills.external_dirs, or symlink .hermes/skills/writer into $HERMES_HOME/skills/writer. Do not copy credentials into the skill or repository.
Configure only in the server/operator environment:
RESEND_API_KEY
AKHOLOD_NOTIFICATION_TO
AKHOLOD_NOTIFICATION_FROM
AKHOLOD_SITE_URL=https://akholod.vercel.app
Then preview or send a receipt for an already-published article:
bin/akholod-writer notify preview --slug <SLUG> --json
bin/akholod-writer notify send --slug <SLUG> --json- Repository secrets and
.akholod-writer/state are ignored. - Publish approvals are revision-bound, short-lived, and single-use.
- Audit receipts form an append-only SHA-256 chain.
- Proza.ru credentials, cookies, and dynamic form tokens are never stored here.
- Website publication, deployment, email notification, and Proza.ru submission are distinct actions.