Content Skill
SkillProductivityLets your agent manage an editorial calendar, plan marketing, publish blog posts, and post to X, Bluesky, and Reddit.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Content Skill skill
About this skill
Content operations: editorial calendar, marketing, publishing, social media management.
What this skill tells your AI
The instructions your AI receives, as published by notque/vexjoy-agent in skills/content/content/SKILL.md and read by ahel’s review.
Six modes: Calendar (editorial pipeline), Marketing (SEO, campaigns, email, competitive), Publish (outline, pre-publish, SEO, audits, WordPress), Social-X (X/Twitter posts and threads), Social-Bluesky (public feed reading), Social-Reddit (moderation). Classify the request and follow the matching section.
Mode Selection
| Mode | Signals |
|---|---|
| Calendar | editorial calendar, content pipeline, ideas, scheduling, topics, headlines, news, series, repurpose |
| Marketing | SEO audit, campaign, email sequence, content strategy, competitive analysis, brand review, performance |
| Publish | outline post, pre-publish check, SEO optimize, batch edit, audit links, audit images, taxonomy, WordPress upload |
| Social-X | post to X, tweet, thread, X API |
| Social-Bluesky | read Bluesky, Bluesky feed, search Bluesky |
| Social-Reddit | moderate Reddit, modqueue, reports |
Calendar Mode
Manage editorial content through 6 pipeline stages: Ideas, Outlined, Drafted,
Editing, Ready, Published. All state lives in a single content-calendar.md
file.
Workflow
- READ -- Load and parse
content-calendar.md. Validate all sections exist. Do not trust memory; always re-read the actual file. - EXECUTE -- Perform the requested operation:
- View: count per stage, upcoming scheduled (14 days), in-progress, recent publications (30 days). Flag stuck content (14+ days in one stage).
- Add idea: check for duplicate titles (case-insensitive), append to Ideas.
- Move: forward only through defined sequence (Ideas -> Outlined -> Drafted -> Editing -> Ready -> Published). Record
YYYY-MM-DDtimestamp at each transition. - Schedule: set date on Ready items. Date must be today or future.
- Archive: move Published entries older than current month to Historical sections.
- WRITE -- Persist changes, re-read file to verify.
Calendar Sub-modes
| Request | Load |
|---|---|
| Topic brainstorming, idea generation | references/topic-brainstormer.md |
| Headlines, title generation | references/headlines.md |
| Series planning, multi-part content | references/series-planner.md |
| Content repurposing, platform variants | references/content-engine.md |
| News collection, item qualification | references/news-collection.md |
Marketing Mode
Seven sub-modes. Always load references/llm-marketing-failure-modes.md
alongside mode-specific references for detection heuristics against generic
copy, keyword stuffing, fabricated metrics.
| Sub-mode | Signals | Framework | Load |
|---|---|---|---|
| SEO_AUDIT | SEO audit, keywords, content gaps, technical SEO | RESEARCH -> AUDIT -> PRIORITIZE | references/seo-audit.md |
| CAMPAIGN | Campaign plan, product launch, lead gen, budget | BRIEF -> PLAN -> CALENDAR | references/campaign-planning.md |
| CONTENT | Content strategy, editorial calendar, funnel mapping | AUDIT -> PLAN -> DELIVER | references/content-strategy.md |
| Email sequence, drip campaign, nurture flow | SEQUENCE -> DRAFT -> AUTOMATE | references/email-sequences.md | |
| COMPETITIVE | Competitor research, battlecard, positioning | RESEARCH -> COMPARE -> POSITION | references/seo-audit.md + references/campaign-planning.md |
| BRAND | Brand review, voice check, messaging consistency | AUDIT -> EVALUATE -> RECOMMEND | references/content-strategy.md |
| PERFORMANCE | Marketing report, campaign results, ROI | GATHER -> ANALYZE -> REPORT | references/campaign-planning.md |
SEO Audit Quick Steps
- Gather: URL/domain, audit type, target keywords, competitors (identify 2-3 via web search if not provided).
- Keyword research: classify by intent (informational, navigational, commercial, transactional). Assess difficulty and opportunity.
- On-page audit: title tags, meta descriptions, H1/H2, keyword usage, internal linking, image alt text, URL structure.
- Technical: page speed, mobile, structured data, crawlability, HTTPS, Core Web Vitals.
- Content gaps: competitor topic coverage, freshness, thin content, funnel gaps.
- Output: executive summary, keyword table (15-25), issues table, content gap recommendations, technical checklist, competitor matrix, prioritized action plan.
Publish Mode
Eight sub-modes covering the blog publishing pipeline.
| Sub-mode | Signals | Load |
|---|---|---|
| Outline | outline post, blog structure, article outline | references/outline.md |
| Pre-publish | pre-publish check, Hugo validation, frontmatter | references/pre-publish.md |
| SEO | check SEO, optimize SEO, meta description | references/seo.md |
| Batch-edit | batch edit posts, bulk frontmatter, find/replace | references/batch-edit.md |
| Link-audit | audit links, broken links, link health | references/link-audit.md |
| Image-audit | audit images, alt text, image accessibility | references/image-audit.md |
| Taxonomy | audit taxonomy, fix tags, merge categories | references/taxonomy.md |
| WordPress | upload to WordPress, create draft, edit post | references/wordpress-upload.md |
Outline Quick Steps
- Gather: topic, target audience, desired format, word count range, SEO target keyword.
- Research: check existing coverage, identify gaps, gather supporting data.
- Structure: working title, hook, thesis, 3-7 sections with sub-points, conclusion CTA.
- Validate: logical flow, sufficient depth per section, SEO keyword placement plan.
Pre-publish Quick Steps
- Check: title, date, slug, description, tags, categories, featured image, author, draft=false.
- Content: spell check, broken internal links, image paths, code blocks render, meta descriptions.
- SEO: title tag (<60 chars), meta description (120-160 chars), keyword in H1 and first paragraph.
Social-X Mode
OAuth-authenticated X/Twitter posting via x-api-poster.py. 4-phase pipeline
with confirmation gate.
Workflow
- VALIDATE -- Check credentials:
python3 $HOME/.claude/scripts/x-api-poster.py post --dry-run --text "ping". RequiresX_API_KEY,X_API_SECRET,X_ACCESS_TOKEN,X_ACCESS_SECRET,X_BEARER_TOKEN. Read-only ops need onlyX_BEARER_TOKEN. - CONFIRM -- Show user the exact text. For threads:
python3 $HOME/.claude/scripts/x-api-poster.py thread --dry-run --texts "part 1" "part 2". Enforce 280-char limit per tweet. Wait for explicit user confirmation. - POST -- Execute with
--confirmedflag:python3 $HOME/.claude/scripts/x-api-poster.py post --confirmed --text "text". For media:--media /path/to/image.png. - VERIFY -- Report tweet URL and rate limit status.
Social-Bluesky Mode
Read public Bluesky feeds via AT Protocol. No auth required.
Commands
# Fetch recent posts
python3 ~/.claude/scripts/bluesky_reader.py feed --handle HANDLE --limit 20
# Search posts
python3 ~/.claude/scripts/bluesky_reader.py search --handle HANDLE --query "terms"
# JSON output for pipelines
python3 ~/.claude/scripts/bluesky_reader.py feed --handle HANDLE --json
Endpoint: https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed. Limit: 1-100 posts. Search is local keyword filter (all words must appear, case-insensitive).
Social-Reddit Mode
Reddit moderation via PRAW. Three modes:
| Mode | Command | Behavior |
|---|---|---|
| Interactive | invoke directly | Fetch, classify, present, confirm actions |
| Auto | /loop 10m /reddit-moderate --auto | Auto-action high-confidence, flag rest |
| Dry-run | --dry-run | Show recommendations without acting |
Workflow
- FETCH --
python3 scripts/reddit-moderate/reddit-mod.py queue --json --limit 25 | python3 scripts/reddit-moderate/reddit-mod.py classify. Loads subreddit context fromreddit-data/{subreddit}/. - CLASSIFY -- Fill
classification,confidence, andreasoningfor each item using the assembled prompt. - PRESENT -- Group by confidence tier (high/medium/low). Show: title, author, report reason, classification, action, reasoning.
- ACT -- Execute confirmed actions:
python3 scripts/reddit-moderate/reddit-mod.py action --item-id ID --action approve|remove|spam.
Deep References
Load when the task needs detailed patterns, specifications, or examples.
Calendar
| Signal | Reference |
|---|---|
| Pipeline stage definitions, transitions | references/pipeline-stages.md |
| Calendar file format, sections | references/calendar-format.md |
| Operation execution details | references/operations.md |
| Pipeline health, velocity metrics | references/metrics.md |
| Calendar error recovery | references/error-handling.md |
Marketing
| Signal | Reference |
|---|---|
| SEO audit methodology | references/seo-audit.md |
| Campaign planning, budget | references/campaign-planning.md |
| Content strategy, frameworks | references/content-strategy.md |
| Email sequences, drip campaigns | references/email-sequences.md |
| LLM marketing failure modes | references/llm-marketing-failure-modes.md |
Publish
| Signal | Reference |
|---|---|
| Blog outline methodology | references/outline.md |
| Pre-publish Hugo checklist | references/pre-publish.md |
| Post-level SEO | references/seo.md |
| Batch editing methodology | references/batch-edit.md |
| Link health scanning | references/link-audit.md |
| Image audit, alt text | references/image-audit.md |
| Taxonomy management | references/taxonomy.md |
| WordPress API upload | references/wordpress-upload.md |
Social
| Signal | Reference |
|---|---|
| X API details | references/x-api.md |
| AT Protocol endpoints | references/at-protocol-api.md |
| AT Protocol troubleshooting | references/at-protocol-preferred-patterns.md |
| Reddit classification categories | references/classification-prompt.md |
| Reddit script commands | references/script-commands.md |
Scripts
| Domain | Script | Location |
|---|---|---|
| Reddit moderation | reddit-mod.py | scripts/reddit-moderate/reddit-mod.py |
| Link scanning | link_scanner.py | scripts/publish/link_scanner.py |
| PageSpeed | pagespeed.py | scripts/publish/pagespeed.py |
| WordPress upload | wordpress-upload.py | scripts/publish/wordpress-upload.py |
| WordPress edit | wordpress-edit-post.py | scripts/publish/wordpress-edit-post.py |
| WordPress media | wordpress-media-upload.py | scripts/publish/wordpress-media-upload.py |
| X API poster | x-api-poster.py | $HOME/.claude/scripts/x-api-poster.py |
| Bluesky reader | bluesky_reader.py | $HOME/.claude/scripts/bluesky_reader.py |
Signals
- GitHub stars
- 425
- Forks
- 46
- Last commit
- Sep 2026
ahel review
K6info
bundled executables the agent is told to runK5info
obfuscation (in scripts/publish/wordpress-edit-post.py)K1binfo
installs-packages (in scripts/publish/wordpress-media-upload.py)K1binfo
installs-packages (in scripts/reddit-moderate/reddit-mod.py)K3info
injection (in scripts/reddit-moderate/reddit-mod.py)K4binfo
destructive-scoped (in references/batch-edit-safety-checklist.md)K3info
injection (in references/classification-prompt.md)K1binfo
installs-packages (in references/image-audit-alt-text-examples.md)
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Key
content-notque- Source
- github.com/notque/vexjoy-agent