agentleFS
sitetillersitetiller/ai-visibility-skills/skills/ghost-publish/SKILL.md

ghost-publish

Skill0 starsChanged 2 days agoMITView on GitHub

Create and manage new posts or pages on a Ghost site through the Admin API with a custom integration key, with full SEO fields (meta title, meta description, canonical URL, Open Graph, head code injection for JSON-LD or robots), drafts by default, an internal #sitetiller tag, and a local ownership ledger that refuses to edit anything the tool did not create. Use when the user runs Ghost or Ghost(Pro) and asks 'publish to Ghost', 'Ghost Admin API', 'create Ghost post by API', 'set canonical in Ghost', or 'unpublish what SiteTiller made'. Uses sitetiller ghost.

  • Reads credentials

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Put the key in an environment variable on their machine: GHOST_ADMIN_API_KEY.

    line 15
  2. Very specific:

    Use the admin URL over https (Ghost(Pro): https://<name>.ghost.io).

    line 16
  3. Very specific:

    Write the page as HTML (page.html), with a head snippet if needed (head.html, for JSON-LD from npx sitetiller schema-gen article ...).

    line 19
  4. Very specific:

    Add --type pages for a page instead of a post.

    line 25

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Ghost publishing

Goal: add new pages to a Ghost site with every SEO field set, without any way to change the owner's existing posts.

Setup (the user does this)

  1. Ghost Admin > Settings > Integrations > Add custom integration. Copy the Admin API key (<id>:<secret>) and the API URL.
  2. Put the key in an environment variable on their machine: GHOST_ADMIN_API_KEY. Never paste it into chat.
  3. Use the admin URL over https (Ghost(Pro): https://<name>.ghost.io).

Steps

  1. Write the page as HTML (page.html), with a head snippet if needed (head.html, for JSON-LD from npx sitetiller schema-gen article ...).
  2. Create a draft:
    npx sitetiller ghost create https://example.ghost.io --title "Title" --html-file page.html \
      --meta-title "Title tag" --meta-description "150 characters..." --slug my-page --head-file head.html --json
    Add --type pages for a page instead of a post. Output: id, url, status (draft), owned: true. The post carries the internal tag #sitetiller and is recorded in .sitetiller/owned.json.
  3. Review in Ghost Admin, then publish:
    npx sitetiller ghost update https://example.ghost.io --id <id> --status published --json
    Updates read the post first and send its updated_at, which Ghost requires to prevent overwriting newer edits.
  4. Snapshot the live URL for measurement: npx sitetiller version snapshot <url> --label "v1".
  5. To roll back: npx sitetiller ghost unpublish https://example.ghost.io --id <id> (back to draft).

Writable fields: title, html, slug, status, custom_excerpt, meta_title, meta_description, canonical_url, og_image, og_title, og_description, feature_image, codeinjection_head. Anything else (authors, tags, visibility) is ignored.

Guardrails

  • The tool refuses ids not in the ledger: "Existing pages are never edited." Do not work around it by editing the ledger.
  • New content starts as a draft; publishing is a separate, explicit step the user approves.
  • Ghost has no noindex field; if a page must not be indexed, put <meta name="robots" content="noindex"> in codeinjection_head and say so.
  • Members-only or paid visibility is not changed by this tool.

References

  • references/sources.md: Ghost Admin API docs, checked 2026-11-13.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.