{"generatedAt":"2026-09-03T15:20:26.267Z","hub":"https://blog.onecontext.me/skills","skills":[{"key":"blog-agent","kind":"skill","version":6,"name":"blog-agent","description":"Set up blog\" for any agent connected to Context + the Context Blog MCP: detect an existing tenant epic and reuse it (redo = re-interview + updated brand guides), or interview the owner (grill-me / wayfinder), fetch the facts, chart a tenant epic with brand, audience and design documents, one parent issue per channel with every piece as its child, one Backlog, the standing issues, then install and verify the routines on this machine (daily brief first) and raise one combined map + spec review. Blog · site · Instagram, once or recurring, Artifact · Review · Hosted.","depends":["rules-blog","rules","setup-context","wayfinder","grill-me","daily-brief","blog-drafter","blog-checker","blog-publisher","instagram-drafter","instagram-publisher","site-builder","blog-assessment"],"url":"https://blog.onecontext.me/skills/blog-agent.md","folder":"https://blog.onecontext.me/skills/blog-agent"},{"key":"blog-assessment","kind":"skill","version":1,"name":"blog-assessment","description":"Weekly assessment for a Context Blog tenant: read the stats the Blog MCP holds (traffic, AI-referral share, Search Console, indexing), run the agent-side AI-visibility probe with the host's keys (OpenRouter, optional Perplexity / SerpApi — by NAME, cost-capped), ingest the results, and post one report sub-issue under the tenant's Performance Report lane with citations found / missing and topic actions for the Topic Lane.","depends":["rules-blog","rules"],"url":"https://blog.onecontext.me/skills/blog-assessment.md","folder":"https://blog.onecontext.me/skills/blog-assessment"},{"key":"blog-checker","kind":"skill","version":3,"name":"blog-checker","description":"Independent quality gate between the maker and the human for Context Blog content: run the MACHINE checks through the Blog MCP (content_lint, preview_render), do the JUDGEMENT checks and the fact-check yourself, record a pass / bounce / escalate verdict on the Context issue (review doc + rendered preview + models), and raise the reviewRequest only on pass.","depends":["rules-blog","rules"],"url":"https://blog.onecontext.me/skills/blog-checker.md","folder":"https://blog.onecontext.me/skills/blog-checker"},{"key":"blog-drafter","kind":"skill","version":5,"name":"blog-drafter","description":"Nightly maker for Context Blog: keep the tenant's draft buffer at or above the floor, take the next hub-bound topic from the slotted publish issues under the tenant's `Blog` parent or graduate one from the `Backlog`, research it with cited sources, draft through the Blog MCP `article_upsert` (lint-gated, fix and retry, two bounces then escalate), hand the draft to `blog-checker` in a separate call, spawn the locale variants as linked issues, and leave the publish issue carrying draft + verdict + preview + models behind one blocking reviewRequest. Never publishes.","depends":["rules-blog","rules","blog-checker"],"url":"https://blog.onecontext.me/skills/blog-drafter.md","folder":"https://blog.onecontext.me/skills/blog-drafter"},{"key":"blog-publisher","kind":"skill","version":2,"name":"blog-publisher","description":"Every 3 hours, publish exactly the Context Blog pieces the owner approved: Context issue `done`, `due` ≤ now < `due` + 3 h, no live link yet — through the Blog MCP (`article_set_status` forward, then `publish {assert_context_done: true, context_issue_id}`), post the live link on the issue, cascade to the checked locale variants, re-slot missed windows, and stay idempotent. Refuses anything that is not `done`.","depends":["rules-blog","rules"],"url":"https://blog.onecontext.me/skills/blog-publisher.md","folder":"https://blog.onecontext.me/skills/blog-publisher"},{"key":"daily-brief","kind":"skill","version":2,"name":"daily-brief","description":"Daily heartbeat for any recurring agent workflow tracked in Context: once a day, post one comment on the workflow's designated Daily Brief issue saying what published, what awaits approval, what failed and what is next, and rebuild the epic's `## Runs` block (schedule · next slots · routine health · last 7 briefs) so the owner sees it on the epic. A missing brief is the outage alert.","depends":["rules"],"url":"https://blog.onecontext.me/skills/daily-brief.md","folder":"https://blog.onecontext.me/skills/daily-brief"},{"key":"grill-me","kind":"skill","version":1,"name":"grill-me","description":"Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.","depends":[],"url":"https://blog.onecontext.me/skills/grill-me.md","folder":"https://blog.onecontext.me/skills/grill-me"},{"key":"instagram-drafter","kind":"skill","version":2,"name":"instagram-drafter","description":"Maker for Context Blog Instagram carousels and posters: take the next `channel:instagram` publish issue of the tenant epic, write the caption and the slide copy from its linked blog topic in the tenant's voice, render the slides from the paper-cards template with headless Chrome, upload them as tenant assets, `instagram_post_upsert`, attach slides + caption + models to the Context issue, hand it to `blog-checker`, and leave one blocking reviewRequest. Degrades to copy-only when the host has no renderer. Never publishes, never schedules.","depends":["rules-blog","rules","blog-checker"],"url":"https://blog.onecontext.me/skills/instagram-drafter.md","folder":"https://blog.onecontext.me/skills/instagram-drafter"},{"key":"instagram-publisher","kind":"skill","version":2,"name":"instagram-publisher","description":"Every 3 hours, post exactly the Instagram carousels the owner approved: Context issue `done`, `due` ≤ now < `due` + 3 h, no live link yet — upload the slides to Postiz with `POSTIZ_API_KEY` (by name, host only), schedule the post on the tenant's Instagram channel found by name, `publish` the instagram_post on the Blog MCP, and post the Postiz id, then the permalink, on the issue. Dedupe guard before any call; idempotent; refuses anything that is not `done`; degrades to owner self-publish without a key.","depends":["rules-blog","rules"],"url":"https://blog.onecontext.me/skills/instagram-publisher.md","folder":"https://blog.onecontext.me/skills/instagram-publisher"},{"key":"rules","kind":"rules","version":1,"name":"rules","description":"The Context harness — the execution discipline any agent follows when a task needs a plan and runs through Context. Load first; every other Context skill inherits these rules.","depends":[],"url":"https://blog.onecontext.me/skills/rules.md","folder":"https://blog.onecontext.me/skills/rules"},{"key":"rules-blog","kind":"rules","version":3,"name":"rules-blog","description":"Rules for every Context Blog workflow, layered on the Context harness: the three forks (what · how often · output tier), the label vocabulary, the checker and publish gates, key names only, daily brief first, and which server does what. Every blog, site and Instagram skill inherits this.","depends":["rules"],"url":"https://blog.onecontext.me/skills/rules-blog.md","folder":"https://blog.onecontext.me/skills/rules-blog"},{"key":"setup-context","kind":"skill","version":1,"name":"setup-context","description":"Chart a piece of work as a Context map (an epic plus linked tickets) on Context, then work it to done with review gates. Use when the user asks to get started, to plan or track work in Context, or when a task needs a plan.","depends":["rules","wayfinder","grill-me"],"url":"https://blog.onecontext.me/skills/setup-context.md","folder":"https://blog.onecontext.me/skills/setup-context"},{"key":"site-builder","kind":"skill","version":1,"name":"site-builder","description":"One-time site / landing page for a Context Blog tenant: fix the page goal, audience, sections (hero, how it works, tiers, proof, CTA) and design tokens in a short interview, draft straight into the Blog MCP page shape, `page_upsert` honouring the lint (dry run first), `preview_render`, hand the draft to `blog-checker` in a separate call, leave the Context issue behind one `gate:artifact` review, and `publish` only after the owner approved it there. Never publishes unapproved; never a second CTA.","depends":["rules-blog","rules","blog-checker","grill-me"],"url":"https://blog.onecontext.me/skills/site-builder.md","folder":"https://blog.onecontext.me/skills/site-builder"},{"key":"wayfinder","kind":"skill","version":1,"name":"wayfinder","description":"Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.","depends":[],"url":"https://blog.onecontext.me/skills/wayfinder.md","folder":"https://blog.onecontext.me/skills/wayfinder"}]}