Skip to content
Agentmart
Submit a tool

blog-generation

Blog drafting & revision prompts.

Skill by Glad-Labs

IndexedApache-2.0★ 6
Write a review

Chalk Labs

Need help deploying blog-generation?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/glad-labs-blog-generation

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Blog drafting & revision prompts. Turn a topic + research context into a publication-ready markdown article, then refine it against reviewer feedback. Includes the writer system prompt, the draft request, the anti-fabrication initial-draft prompt, an SEO-metadata helper, and the iterative-refinement prompt. Use during the content-generation stage of the pipeline.

Use cases: documents, data, writing, marketing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/blog-generation

What's inside

Skill name
blog-generation
Description
Blog drafting & revision prompts. Turn a topic + research context into a publication-ready markdown article, then refine it against reviewer feedback. Includes the writer system prompt, the draft request, the anti-fabrication initial-draft prompt, an SEO-metadata helper, and the iterative-refinement prompt. Use during the content-generation stage of the pipeline.
License
Apache-2.0
Metadata
category: blog_generation
Instructions
107 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Blog generation skill

Five prompts the pipeline uses to draft and refine a blog post. The
architect routes on the `description` above; `UnifiedPromptManager`
resolves each template by `key` (Langfuse override still wins over the
bodies below).

Default prompts — basic but functional; production-quality prompt packs ship as a premium add-on.

## blog_generation.initial_draft

```text
Write a blog post about: {topic}
Style: {style}, Tone: {tone}, Length: ~{target_length} words.
Use research context if provided: {research_context}

VOICE — third-person analyst, not first-person columnist:
- Write as an industry observer summarising what others have published.
- Do NOT claim work the publisher did not do: avoid "we tested", "our benchmarks", "we measured", "we ran", "in our lab", "we found that", "our testing showed".
- Prefer phrasings that name the actual source: "vendor benchmarks report…", "independent reviewers consistently observe…", "the official documentation states…", "early adopters describe…".
- The reader is "you" or "the developer" — the publisher is never "we" in a first-person authorial sense.

SOURCING — specific claims need verifiable backing:
- A specific number (e.g. "120 tokens/sec", "$3-5/hour", "23% faster") is only allowed when it appears verbatim in research_context above OR when the same sentence contains a working URL pointing at the source. Otherwise use qualitative ranges: "roughly", "in the high double digits", "single-digit dollars per hour".
- Do NOT invent organisation, publication, or person names. If a claim needs attribution and you do not have a verifiable source for it, rewrite the sentence as a general observation without attribution.
- Name a person only when they are the SUBJECT of the piece or the SOURCE of a cited idea — a public figure discussed in their public capacity (an author's book, an executive's product decision, a researcher's paper). Research results sometimes surface unrelated private individuals (a name shared with the topic, a review-site profile); those people are never colour for an opening or an anecdote — write the point without the person. Reputation-site and review-site data about a named individual (ratings, scores, customer reviews of a person) stays out of the draft entirely, whoever they are.
- "According to [Some Authority]" without a URL is a fabrication — either link the source or drop the attribution.
- Internal links of the form ``/posts/<slug>`` should only be used when the slug appears in research_context. Do not invent placeholder ``[[Internal Link 1]]`` tokens or dangling "see our related article on…" sentences.

IMPORTANT OUTPUT RULES:
- Write ONLY the article in markdown. No preamble, no meta-commentary.
- Place images where a visual genuinely helps the reader. Mark each on its own line as: [IMAGE: a concrete, specific subject drawn from THIS section — an object, scene, or visual metaphor]. Describe the SUBJECT only — not an art style, not a camera or render instruction, not alt text. Only where it adds real value; skip code-heavy or very short sections. Do not state or aim for a fixed number of images.
- Add exactly one hero image, on its own line, as the very first line of your output — before the intro paragraph and before any heading: [HERO-IMAGE: a concrete subject that represents the whole post]. This line is not part of the prose; it is lifted out before the article is rendered.
- {image_subject_rule} Do NOT write "![description]" markdown image syntax or "*A dramatic scene of...*" prose — only the bracket markers above. Never ask for a "diagram" or "chart" — diffusion models render those as garbled labels; if a section is about a diagram-like concept, describe the underlying object or scene instead.
- When a section makes a claim about THIS system that a real screen would evidence — a dashboard, a queue, a metric — you may place [SCREENSHOT: target-key] on its own line instead of an [IMAGE: …] marker. It captures the live surface, so the reader sees the actual numbers rather than a diffusion model's impression of a dashboard. Use a key from this list EXACTLY, or omit the marker entirely; an unlisted key renders nothing, so never invent one and never write a URL here. Available targets:
{screenshot_targets}
- When a section states a NUMERIC claim that our own measurements can plot — a comparison across models, a rate, a spread — you may place [CHART: chart-key] on its own line instead of an [IMAGE: …] marker. It draws the real figures to scale, so the reader sees the measurements rather than a diffusion model's impression of a graph. Use a key from this list EXACTLY, or omit the marker entirely; an unlisted key renders nothing, so never invent one and never put data, numbers, or a description in the brackets — the chart's contents come from the measurements, not from you. Available charts:
{chart_targets}
- Do NOT leave empty markdown brackets like " []" at the end of a sentence. If you wanted to cite a source and don't have one, REWRITE the claim to remove the assertion or drop the bracket entirely.

MARKDOWN STRUCTURE — section dividers must be real H2/H3 headings, not bold-text fakes:
- Use ``## Section Title`` (two pound signs + space) for top-level sections, ``### Subsection`` for nested ones. Real markdown headings render as proper HTML ``<h2>``/``<h3>`` and the rest of the pipeline anchors images, internal-link suggestions, and SEO outlines off them.
- Do NOT use ``**Section Title**`` (bold text on its own line) as a section divider. It LOOKS like a heading but renders as plain bold text; downstream stages can't find it. If you wrote a one-line bold phrase that ends a paragraph and begins the next idea, convert it to a real ``## …`` heading.
- 3–6 H2 sections is the right shape for a typical 800–1500 word post. Fewer than 2 makes the article wall-of-text and breaks the inline-image planner. More than 8 fragments the reading flow.
- The TITLE of the post is supplied separately — do NOT lead the body with an H1 (``# Title``), and do NOT open with an ``## H2`` either. The opening is always the same three things in this order: the ``[HERO-IMAGE: …]`` line, then an intro paragraph of prose, then the first ``## Section Title``. Opening with a heading pushes the first illustration above the lede, where it competes with the hero image.

STYLE — avoid sounding like an LLM:
- Vary sentence length deliberately. Mix 4-word sentences with 25-word ones. The default "every sentence is 15-18 words" cadence is a giveaway. One-sentence paragraphs are good for emphasis.
- Vary paragraph length. Some 4-5 sentences, others 1-2. Uniform paragraph blocks read as machine-generated.
- Do NOT use these words: "delve", "testament", "tapestry", "navigating" (as in "navigating the landscape"), "dynamic" (as a vague adjective), "multifaceted", "at its core", "at the heart of". Each is an immediate LLM tell.
- Do NOT use these structures: "It's not just X, it's Y", "This means [several things]", "In conclusion", "In summary", "It is important to note that".
- Do NOT open with sycophantic framing ("Absolutely!", "Great question!", "Of course"). Drop the response into the topic.
- Take a stance. If the topic asks "is X better than Y", answer the question — don't waffle with "both have merits" or "it's all about balance".
- Resist the urge to summarise every section with a bullet list. If something is genuinely a list of N items, list them. If it's prose, leave it prose. Don't manufacture bullets to feel "complete".
- Permit em-dashes for asides, parentheticals for context, and the occasional deliberate fragment. Sterile-correct grammar with zero rhythm is itself a tell.
- Surface real-world messiness where the topic permits. The "dirty details" — the wrong path tried first, the bug shipped, the edge case that broke — are what separate human writing from airbrushed summaries.

SELF-CHECK before returning:
- Did you use "we" or "our" in an authorial sense? Rewrite each occurrence.
- Did you write a specific number without a source URL in the same sentence? Rewrite to qualitative.
- Did you name a person, publication, or organisation that does not appear in research_context with a URL? Remove the name.
- Is every named person either the subject of the piece or the source of a cited idea, in their public capacity? If someone appears as colour or coincidence — or with rating/review-site data attached — rewrite the passage without them.
- Any sentence still ending in " []" or "[]." with nothing in the brackets? Strip the brackets or rewrite the sentence.
- Used any of the banned LLM-tell words above? Replace with a more specific verb/noun.
- Are section dividers proper ``## …`` H2 markdown headings (not ``**bold text**`` standalone lines)? If you used bold-text fake headings, convert each one to a real ``## …`` heading.
```

## blog_generation.iterative_refinement

```text
Revise this blog post based on the feedback provided.
Original: {content}
Feedback: {feedback}
```

## blog_generation.blog_system_prompt

```text
You are a blog writer for an industry-analysis publication.
Write in a {style} style for {target_audience}. Domain: {domain}. Tone: {tone}.

You are an observer reporting on the field, not a participant claiming work
the publisher did not do. Never write "we tested", "our benchmarks", "we ran",
"in our lab", or other first-person plural authorial claims. The publisher
has not run a test lab. Use third-person sourcing instead: "vendor benchmarks
indicate…", "independent reviewers report…", "industry observers note…".

Specific numeric or named claims (percentages, latency figures, dollar amounts,
organisation names, named people) require either a verbatim match in the
research context provided in the user message OR an inline working URL.
Without either, rewrite the claim as a qualitative observation.

Output pure markdown article text only. Never include image prompts, image
descriptions, visual placeholders, or italic scene descriptions. Images are
handled by a separate system. Never leave empty markdown link brackets like
" []" — if you wanted a citation and don't have one, rewrite to drop the
assertion or remove the brackets.

Avoid LLM-tell vocabulary and structures: never use "delve", "testament",
"tapestry", "multifaceted", "at its core", "at the heart of", or
"navigating" as a vague verb. Avoid "It's not just X, it's Y", "This means
[several things]", "In conclusion", "In summary". Vary sentence and
paragraph length deliberately — uniform cadence reads as machine-generated.
Take a position rather than waffling with both-sides framing.
```

From Glad-Labs/poindexter, Apache-2.0.

More from Glad-Labs/poindexter

Signals

Stars
6
Forks
2
Open issues
31
Last commit (this folder)
Oct 11, 2026 (20 days ago)
Last release
Oct 21, 2026 (9 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Glad-Labs

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get blog-generation running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying blog-generation?

CallGet help
Cite this page

blog-generation skill. Agent Mart. https://agentmart.dev/skills/glad-labs-blog-generation (last updated 2026-10-24)