.agents/skills/blog-post/SKILL.md
Blog post workflow — research topic, create content brief, write article, SEO optimize, quality review with feedback loop. Orchestrates product-manager, content-writer, and seo-engineer roles for public blog content creation and updates.
npx skillsauth add avav25/ai-assets blog-postInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
End-to-end workflow for creating and updating blog posts. Orchestrates multi-role collaboration: Agent(product-manager) (research, brief, quality gate), Agent(content-writer) (authoring), Agent(seo-engineer) (optimization). Includes a review loop until the post meets quality standards.
Read AGENTS.md at the project root to identify:
If marketing/MARKETING.md exists, read it for positioning and content strategy.
Ask the user (or extract from context):
If updating an existing post — read it first, note what needs to change.
Apply Agent(product-manager).
Conduct research before writing:
Produce a brief using the Blog Content Brief Template from content-creation skill (content-tools-guide.md → Content Research Workflows section). The brief must include at minimum:
Present the brief to the user. Wait for user approval before proceeding. Adjust outline based on feedback.
Apply Agent(content-writer). Use content-creation skill — Blog Post pattern from page-content-patterns.md.
AGENTS.md — get blog file conventions (directory, frontmatter format, naming)kebab-case.md naming, ask the user about frontmatter formatFollow the approved outline. For each section:
For each visual need identified in the brief:
Apply geo-writer skill. This step is mandatory for all blog content.
marketing/MARKETING.md)Article + Person + FAQPage JSON-LD (covered in Step 5 SEO pass)The geo-content rule enforces this for all public-facing text intended to be cited by AI engines.
Apply humanizer skill. This step is mandatory for all blog content.
humanizer skill pattern catalog)GEO and humanizer are complementary: GEO optimizes structure for extraction, humanizer optimizes voice. Run GEO first, humanizer second. The humanize-content rule enforces the humanizer pass for all public-facing text.
Apply Agent(seo-engineer).
Run an SEO pass on the draft:
| Element | Check | |---|---| | Title tag | Primary keyword, compelling, 50-60 characters | | Meta description | Unique, includes keyword, 120-160 characters | | H1 | Matches title, one per page | | Heading hierarchy | Logical H1→H2→H3, secondary keywords in H2s naturally | | URL / slug | Short, descriptive, hyphenated, includes keyword | | First paragraph | Contains primary keyword naturally | | Image alt text | Descriptive, keyword where natural |
Article or BlogPosting JSON-LD + Person for author (with sameAs links) + OrganizationFAQPage JSON-LD if the post contains a FAQ block (questions must match body phrasing verbatim, no duplicate marketing prose)HowTo JSON-LD for tutorials with 3-8 stepsheadline, author.sameAs, datePublished, dateModified, description, imagerobots.txt does not block the blog pathllms.txt if the project maintains one — add the new post entryApply Agent(product-manager).
Review the complete post against the original brief:
<review_checklist>
| Result | Action | |---|---| | All checks pass | Proceed to Step 7 | | Content issues (gaps, accuracy, tone) | Route to Step 3 with specific feedback | | Structure issues (buried lede, walls of text, missing answer-first sections) | Route to Step 4 (GEO pass) | | AI-sounding text detected | Route to Step 4.5 (humanizer) with specific patterns to fix | | SEO / schema issues (meta, links, structured data) | Route to Step 5 with specific feedback | | Brief was wrong (topic shifted, audience changed) | Route to Step 2 to revise brief |
Present review findings to the user. If issues found — list them explicitly with the routing decision. Repeat the loop until the review passes.
Based on user intent:
| Intent | Action | |---|---| | Publish now | Set frontmatter status to published, set publish date to today | | Schedule for later | Set status to draft, note the target publish date | | Part of a series | Set status to draft, add series metadata, link to previous/next parts |
llms.txt updated (if maintained)noindex on the new page## Blog Post Summary
- **Title**: [post title]
- **File**: [file path]
- **Status**: [published / draft / scheduled for DATE]
- **Topic**: [one-sentence summary]
- **Target keyword**: [primary keyword]
- **Word count**: [count]
- **Roles applied**: Agent(product-manager) → Agent(content-writer) → geo-writer → humanizer → Agent(seo-engineer) → Agent(product-manager)
- **Review rounds**: [number of iterations]
- **Cross-links added**: [count — list of linked posts]
- **Discovery assets**: [llms.txt updated: yes/no, sitemap: auto/manual]
- **Follow-ups**: [if any — e.g., create cover image, schedule social media]
When creating a multi-part series:
Agent(product-manager) (research, brief, review), Agent(content-writer) (authoring), Agent(seo-engineer) (optimization)content-creation skill (Blog Post pattern, AI generation tools, content brief template), geo-writer skill (GEO/AEO structure pass — step 4), humanizer skill (AI voice pattern removal — step 4.5)geo-content (auto-enforces GEO structure and schema on public-facing text), humanize-content (auto-enforces humanizer pass)/seo-review (deep SEO audit if needed), /pre-commit, /create-pr/docs (technical documentation), /ui-ux-design (visual design for blog assets)development
Use this skill when running the recurring (daily) knowledge-base rescan for a repo that already has knowledge/.knowledge-sync.yml — the main-thread dispatcher that reads the config, computes the git delta since last_scanned_sha, maps changed paths to affected doc areas, early-exits cheaply when nothing changed, then fans out one Agent(content-writer) per affected area, applies the propose/direct update policy, advances the baseline only on success, and writes an L4 run log — all with the G1 untrusted-content choke-point, secret-scan, deny-list, and budget controls woven in. For first-time setup use /knowledge-sync-init.
development
Use this skill when bootstrapping scheduled knowledge-base sync for a repo that has no knowledge/.knowledge-sync.yml yet — to run one-time setup that detects the knowledge_root from CLAUDE.md/AGENTS.md, maps doc areas to source globs, records opt-in external sources (Linear/Notion/WebFetch, all disabled by default), captures a baseline last_scanned_sha, sets the per-area update policy, generates or seeds knowledge/CONVENTIONS.md, provisions the L4 memory dir, and offers to register the daily routine. Routes ongoing recurring sync operations to /knowledge-sync.
tools
Use this skill when bootstrapping a target repository to be ai-skills-aware — on the first run of any ai-skills workflow in a fresh repo, when adopting the ai-skills plugin in an existing repo, or after upgrading to a plugin version that adds new memory paths or templates, including when the user does not say "init" but asks to "set up" or "onboard" the repo — to detect codebase type, create CLAUDE.md + AGENTS.md scaffolding, initialize the .ai-skills-memory/ directory tree from L1 templates, and configure .gitignore. Idempotent — safe to re-run. Accepts `--codebase-type <type>` and `--overwrite`. Not for re-initializing only memory — use `/memory-init` instead.
tools
Use this skill when extending, repairing, or improving plugin assets, when ingesting a `/feedback` report as a fix-cycle backlog, or when you do not remember which lower-level command is right for the job — the umbrella workflow for ai-skills plugin-asset authoring and maintenance: creating, auditing, fixing, improving, refactoring, and migrating skills, agents, rules, hooks, prompts, schemas, and rubrics inside the plugin. Auto-classifies the request, loads the right knowledge skills (`@prompt-engineering`, `@context-engineering`, `@team-protocols`), and spawns the right subagents (`prompt-engineer`, `system-architect`, `python-engineer`, `software-engineer`, `qa-engineer`, `eval-judge`) via the `Agent` tool.