agentleFS
maroffomaroffo/claude-forge/skills/blog-writer/SKILL.md

blog-writer

Skill17 starsChanged 52 days agoMITView on GitHub

Write blog posts from Second Brain content, IDEAS.md, or free prompts. Use when user says write blog post, blog post, vault to blog, scrivi un post, blog ideas, what should I write about. Discovers topics from vault signals, drafts in Max's style, humanizes, generates cover. Not for processing content INTO the vault (use process-clippings, newsletter-digest).

32 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use aminer-data-search, auto-target-tracker and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • dav-niu474Skill

    aminer-data-search

    使用 AMiner 开放平台 API 进行学术数据查询与分析。当用户需要查询学者信息、论文详情、机构数据、期刊内容或专利信息时使用此 skill。 触发场景:提到 AMiner、学术数据查询、查论文/学者/机构/期刊/专利、学术问答搜索、引用分析、科研机构分析、学者画像、论文引用链、期刊投稿分析等。 支持 6 大组合工作流(学者全景分析、论文深度挖掘、机构研究力分析、期刊论文监控、学术智能问答、专利链分析)以及 28 个独立 API 的直接调用。 即使用户只说"帮我查一下 XXX 学者"或"找找关于 XXX 的论文",也应主动使用此 skill。

    Also in 4 projects that use this

  • dav-niu474Skill

    auto-target-tracker

    自动目标进度追踪器。在对话中检测到目标相关图片(笔记、进度、截图、记录)时,自动调用 VLM 识别关键信息并记录到目标日记。适用于学习管理、健身追踪、工作进度、习惯养成、创作记录等所有目标管理场景。

    Also in 4 projects that use this

  • Liang-MHSkill

    stock_analysis

    获取 A 股、基金和港股的实时行情和技术分析数据

    Also in 4 projects that use this

  • +9 more from dav-niu474

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. 0 are common, 7 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 30 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write blog posts for Max's Hugo blog (PaperMod theme).

    line 13
  2. Distinctive:

    Do not skip the humanizer pass.

    line 21
  3. Distinctive:

    Do not skip outline approval.

    line 22
  4. Very specific:

    Discovery note: always read maroffo-blog/Blog Discovery - <latest>.md before scanning the full vault.

    line 46
  5. Distinctive:

    Read relevant Second Brain notes

    line 92
  6. Very specific:

    Read project logs/solutions if applicable (obsidian search query="..." path="Projects")

    line 93
  7. Distinctive:

    Read related published posts (for series linking)

    line 94
  8. Very specific:

    If external research needed, use WebSearch / WebFetch for data, studies, citations

    line 95
  9. Distinctive:

    Wait for approval. Do NOT proceed without it.

    line 121
  10. Very specific:

    Write the full post applying Max's style (see references/style-guide.md).

    line 125
  11. Distinctive:

    Use today's date. Slug: lowercase, hyphens, descriptive (match existing convention).

    line 131
  12. Very specific:

    Run /second-opinion on the draft.

    line 135
  13. Very specific:

    Run the humanizer skill on the draft (see ../humanizer/SKILL.md), re-running after second-opinion edits.

    line 147

“Common” is measured: kept by at least 6 in 10 of the 30 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

ABOUTME: Write blog posts from Second Brain, IDEAS.md, or free prompts with vault-backed research

ABOUTME: Discovers topics, drafts in Max's style, humanizes AI patterns, generates cover image

Blog Writer

Write blog posts for Max's Hugo blog (PaperMod theme). Four entry points: discover topics, expand a vault note, develop an IDEAS.md idea, or write from a free prompt.

Obsidian CLI: See ../_OBSIDIAN.md | Second Brain: See ../_SECOND_BRAIN.md

Quality Notes

  • A blog post is public, permanent content.
  • Quality over speed. Better to write 2500 sharp words than 4000 padded ones.
  • Do not skip the humanizer pass. Max's voice is direct, opinionated, evidence-backed.
  • Do not skip outline approval. The structure determines the post's quality.

Blog Structure

/Users/maroffo/Development/private/blog/
├── content/posts/YYYY-MM-DD-slug-title.md   ← posts go here
├── static/images/                            ← cover images
├── IDEAS.md                                  ← structured idea backlog
└── hugo.toml                                 ← site config

Vault Folder

Blog artifacts live in maroffo-blog/ in the Obsidian vault (NOT Mauro-Blog/, that's a different person's blog).

maroffo-blog/
├── Blog Discovery - YYYY-MM.md   ← topic discovery results, updated incrementally
└── (future: drafts, outlines)

Discovery note: always read maroffo-blog/Blog Discovery - <latest>.md before scanning the full vault. If it exists and is <30 days old, only scan Timeline entries after the last scan date.

Front Matter and Tags

Hugo front matter template and the Second Brain -> Blog tag mapping live in references/front-matter.md. Apply them when writing the draft.


Entry Points

Mode 1: Discover (no input)

Triggered when the user invokes without a specific topic ("what should I write about?", "blog ideas"). Scan the vault for signals (cached discovery note first, then full scan), cross-check IDEAS.md and published posts, then present 3-5 ranked ideas via AskUserQuestion. Full step-by-step procedure in references/discovery.md.


Mode 2: From Vault Note

User provides a specific vault note path or topic.

obsidian read path="Second Brain/Second Brain - <Topic>.md"

Extract the relevant section, identify what's worth expanding into a post.

Mode 3: From IDEAS.md

User references an idea by number or title. Read IDEAS.md, extract the structured idea (proposed angle, gap, unique value).

Mode 4: Free Prompt

User describes the topic. Search vault for related content:

obsidian search query="<keywords>" path="Second Brain"
obsidian search query="<keywords>" path="Projects"

Writing Workflow (all modes converge here)

Step 1: Gather Context

Based on the chosen topic:

  1. Read relevant Second Brain notes
  2. Read project logs/solutions if applicable (obsidian search query="..." path="Projects")
  3. Read related published posts (for series linking)
  4. If external research needed, use WebSearch / WebFetch for data, studies, citations

Step 2: Outline (requires approval)

Present the outline to Max:

## Proposed Outline

**Title**: "..."
**Angle**: [what makes this post different from existing content]
**Target length**: ~XXXX words
**Language**: English (or Italian if requested)
**Tags**: [proposed tags]

### Sections
1. [Hook/opener] - personal anecdote or observation
2. [Problem statement] - why this matters
3. [Section N] - ...
4. [Practical examples] - code, metrics, real data
5. [Reflection] - what was learned, what's next
6. [Methodology note / acknowledgments] - only when they apply (see style guide, Endings)

**Series context**: [links to previous posts if part of a thread]

Wait for approval. Do NOT proceed without it.

Step 3: Write Draft

Write the full post applying Max's style (see references/style-guide.md). Save to:

/Users/maroffo/Development/private/blog/content/posts/YYYY-MM-DD-<slug>.md

Use today's date. Slug: lowercase, hyphens, descriptive (match existing convention).

Step 4: Second Opinion (mandatory)

Run /second-opinion on the draft. Ask the reviewers to check:

  • Factual accuracy of cited studies
  • Argument coherence and logical gaps
  • Tone consistency (personal narrative vs literature review)
  • Differentiation from previous posts
  • Missing angles and counterarguments
  • AI writing artifacts that survived the humanizer

Apply the synthesized feedback before proceeding.

Step 5: Humanize

Run the humanizer skill on the draft (see ../humanizer/SKILL.md), re-running after second-opinion edits. Keep Max's voice: direct, opinionated, self-ironic, evidence-backed. Read the draft back, fix issues in-place with Edit.

Step 6: Cover Image

Generate the cover via the cover-image skill (see ../cover-image/SKILL.md); output to /Users/maroffo/Development/private/blog/static/images/cover-<slug>.png.

Step 7: Report

Post written:
  File: content/posts/YYYY-MM-DD-<slug>.md
  Title: "..."
  Words: ~XXXX
  Tags: [...]
  Cover: static/images/cover-<slug>.png
  Status: draft: true
  Series: [links to related posts, if any]

Style Guide and Common Issues

Max's voice (structure, tone, endings, length, language) and the troubleshooting table live in references/style-guide.md. Read it during Step 3 (Write Draft) and when debugging output.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.