Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Draft

ASecurity

This skill should be used when the user asks to write a blog post, draft a post, start a new post, or wants help writing content. Trigger phrases: "draftloom draft", "write a blog post", "start a new post", "I want to write a post", "help me write a blog post", "draft a blog post", "/draftloom:draft". Use this skill whenever the user wants to draft a blog post, article, or long-form post — even if they don't use the exact phrase "blog post".

2 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentsgogitbackend

Works with

mcp

Security Analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned 9/19/2026

$npx -y skills add neotherapper/claude-plugins --skill draft --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Draft?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Draft
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/neotherapper-draft/badge)](https://www.skillsdirectory.com/skills/neotherapper-draft)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: draft
description: >
  This skill should be used when the user asks to write a blog post, draft a
  post, start a new post, or wants help writing content. Trigger phrases:
  "draftloom draft", "write a blog post", "start a new post", "I want to write
  a post", "help me write a blog post", "draft a blog post", "/draftloom:draft".
  Use this skill whenever the user wants to draft a blog post, article, or
  long-form post — even if they don't use the exact phrase "blog post".
license: MIT
metadata:
  version: "0.1.0"
  author: Georgios Pilitsoglou
---

# Draftloom Draft Skill

Orchestrates the full blog post workflow: profile selection → brief interview → wireframe → eval loop → distribution.

A complete draft run moves through: session recovery check → profile selection → brief interview (4 mandatory + 3 optional questions) → wireframe layout with parse-able edits → orchestrator-driven eval loop (writer + 4 eval agents in parallel, up to 3 iterations) → distribution copy generation. All inter-step state is written to `posts/{slug}/` so sessions can be recovered after interruption.

## Entry point: session recovery check

Before anything else, check for existing `session.json` files in `posts/*/session.json` where `draft_status` is not `published` or `abandoned`.

If an incomplete session is found:
- Show: "Found incomplete draft: '{title}' (checkpoint: {checkpoint}). Resume? (y/n)"
- If yes: load `state.json` and `session.json`, skip to the appropriate checkpoint step below
- If no: proceed with a new draft

---

## Step 1: Profile selection

Check `.draftloom/profiles/` (and `~/.draftloom/profiles/` if `config.json` has `storage_mode: "global"`).

**No profiles found:**
Show: "No profiles found. Run `/draftloom:setup` to create your first writing profile." Stop.

**One profile found:**
Show profile name and confirm: "Using profile '{name}'. Continue? (y/n)"

**Multiple profiles found:**
Show a tiered list. Recent profiles (used in last 30 days) appear first with their last-used date and draft count. All others listed below. User types a number or search string to select.

Write selected `profile_id` to `session.json` → checkpoint: `profile_selected`.

---

## Step 2: Brief interview

Load `references/brief-questions.md` for the exact question wording and validation rules.

Ask the 4 mandatory questions **one at a time**. Wait for each answer before asking the next. After the 4 mandatory questions, offer: "Would you like to add SEO targeting, competitor reference URLs, or a publish date? (y/n)"

If yes, ask the 3 optional questions from brief-questions.md.

Generate a slug from the post topic (lowercase, hyphens, max 50 chars). Check if `posts/{slug}/` already exists. If it does, append a short suffix (e.g. `-2`).

Create workspace directory `posts/{slug}/`. Load `references/workspace-schema.md` for the complete file contract — every file created must be documented there.

Write `brief.md` with all answers. Write `meta.json` with title (derived from topic), slug, profile_id, `draft_status: "drafting"`, and timestamps.

Write `session.json` → checkpoint: `brief_complete`, `brief_answered: true`.

Set `state.json` → `current_iteration: 0`, `locked_brief: true`.

---

## Step 3: Wireframe layout

Load `references/layout-templates.md` for section templates and word-count ranges.

Propose a numbered section outline based on the brief topic, core insight, and target length. Display in this format:

```
① Hook           ~120w  — bold claim + surprising stat
② Problem setup  ~200w  — agitate the pain
③ Core insight   ~350w  — the non-obvious perspective
④ Evidence       ~250w  — stories, data, code
⑤ CTA            ~80w   — one clear ask

Total: ~1000w (matches your medium preference)
Tweaks? (e.g. "change 3 to 500w", "add backstory between 1 and 2: 150w", "remove 4")
```

Accept parse-able edit commands. Apply each edit, recompute total word count, show updated wireframe. Validate total against profile `typical_length` (short: 300–700w, medium: 700–1500w, long: 1500–3000w). Warn if significantly over or under.

Ask: "Looks good?" When confirmed, append wireframe as a Sections block to `brief.md`.

Write `session.json` → checkpoint: `wireframe_approved`, `wireframe_approved: true`.

---

## Step 4: Delegate to orchestrator

Dispatch the `draftloom:orchestrator` agent with context:
- Path to `posts/{slug}/`
- Profile JSON path
- Mode: `"full_draft"` (writer runs first, then eval loop)

The orchestrator owns all further steps — scoring, patching, iteration decisions. This skill waits for the orchestrator to signal completion.

Load `references/scoring-rubric.md` if the orchestrator surfaces a routing decision that requires user input (escalation when a dimension scores < 50, or max iterations reached).

---

## Step 5: Post-completion output

When orchestrator signals `loop_end`, display:

```
✓ Draft complete: posts/{slug}/
  draft.md          — your post
  distribution.json — X hook · LinkedIn opener · email subject · newsletter blurb
  scores.json       — final eval scores
```

Load `references/distribution-guide.md` to format the distribution copy display correctly (respecting character limits per platform).

If Turso is enabled in `.draftloom/config.json`, load `references/turso-setup.md` to confirm the post was synced.

---

## Halt detection

If the user types "finalize", "publish now", "skip iterations", "good enough", or "ship it" at any point after the wireframe is approved, relay the halt signal to the orchestrator immediately. The orchestrator will dispatch the distribution agent with the current draft.

---

## Reference files

Load these files at the step indicated — do not preload all at once:

- **`references/brief-questions.md`** — exact wording for all 7 brief questions (4 mandatory, 3 optional), validation rules, and the brief.md output format (load at Step 2)
- **`references/workspace-schema.md`** ★ — source of truth for all 13 workspace files, ownership, schemas, and the atomic write protocol (load at Step 2 before creating any workspace file)
- **`references/layout-templates.md`** — 8 section types, 3 default wireframes by length, parse-able edit commands, word count validation (load at Step 3)
- **`references/scoring-rubric.md`** — routing table, pass threshold (≥ 75 per dimension), escalation questions, halt phrases, per-dimension rubrics (load when orchestrator surfaces a routing decision)
- **`references/eval-output-spec.md`** — the eval agents' output contract (the JSON each eval agent emits); not read directly by this skill — it is consumed by the eval agents and surfaced via the orchestrator at Step 4
- **`references/distribution-guide.md`** — platform character limits, X/LinkedIn/email/newsletter copy templates, enforcement rules (load at Step 5)
- **`references/turso-setup.md`** — optional Turso MCP analytics backend, setup steps, schema, failure handling (load only if `turso_enabled: true` in config.json)

Attribution

neotherapperneotherapper
View sourceSee grades on GitHubMore from neotherapper →
SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1087401 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

697551 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →