From dev-team-kit-fv
Generates original blog posts in HTML from text/URL/topic, adds images via Fal.ai or Playwright screenshots, commits to a GitHub Pages repo, and returns the public URL.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-team-kit-fv:41-blog-publisher [assunto ou texto do post][assunto ou texto do post]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Compositora AUTORAL.** Recebe input (link/texto/assunto), pesquisa contexto adicional, produz post 100% original em PT-BR por default, publica no GitHub Pages, retorna URL.
Compositora AUTORAL. Recebe input (link/texto/assunto), pesquisa contexto adicional, produz post 100% original em PT-BR por default, publica no GitHub Pages, retorna URL.
Esta skill nunca copia, traduz nem se apresenta como adaptação de uma fonte. O post soa como se o dono do blog tivesse escrito do zero. Fluxo:
Para regras detalhadas de abstração de fonte, consulte docs/skill-guides/blog-publisher.md.
Anti-padrão: creditar a fonte, copiar verbatim, ou deixar qualquer pista de adaptação.
Segue GLOBAL.md, policies/anti-ai-writing.md, policies/handoffs.md e policies/tool-safety.md. Composta sobre skills 13, 17, 26 e 42.
{blog_repo_path}/posts/YYYY-MM-DD-{slug}.html com HTML válido{blog_repo_path}/assets/images/index.html e README.md atualizados via update-index.mjsIdentificar: tipo de input (texto vs assunto curto), idioma, tom, se há URL navegável para screenshot, e slug (kebab-case, max 50 chars, sem acentos).
Se config ~/.dev-team-kit/blog-config.json não existe, pausar e instruir o usuário a rodar scripts/init-blog-repo.mjs. Ver detalhes em docs/skill-guides/blog-publisher.md.
Para assunto curto: invocar skill 13 para voz/tom, escrever seguindo estrutura hook → contexto → ponto principal → exemplo → CTA, aplicar policies/anti-ai-writing.md.
Para texto pronto: converter para HTML semântico, aplicar policy anti-ai-writing como sweep (não reescrever).
Em ambos os casos: zero atribuição de fonte, zero "Fonte original", zero "segundo {autor da fonte}".
Salvar em {blog_repo_path}/.tmp-body-{slug}.html.
flux-2-flash (default text-to-image)assets/images/{slug}-cover.{png|jpg}Para matriz completa de modelos e custos, ver docs/skill-guides/blog-publisher.md.
Gerar dois textos antes de invocar o scaffold:
--share-hook: 1-2 frases com tom de mistério/curiosidade, sem entregar a resposta--linkedin: texto pronto para colar, com hook + aprendizados + CTA + 3-5 hashtagsAmbos em PT-BR (ou língua do post). Aplicar anti-ai-writing. Ver exemplos em docs/skill-guides/blog-publisher.md.
cd {blog_repo_path} && node scripts/new-post.mjs \
--slug={slug} \
--title="{title}" \
--lang={lang} \
--excerpt="{excerpt}" \
--cover=assets/images/{slug}-cover.png \
--share-hook="{hook}" \
--linkedin="{texto linkedin}" \
--body=.tmp-body-{slug}.html
cd {blog_repo_path} && rm .tmp-body-{slug}.html
git add -A && git commit -m "post: {title}" && git push origin main
Aguardar ~30s antes de retornar URL.
Post publicado: {pages_url}/posts/YYYY-MM-DD-{slug}.html
Index: {pages_url}/
| Anti-padrão | Por que evitar |
|---|---|
| Reescrever texto pronto sem permissão | User passou texto = quer publicar aquele texto |
| Gerar 10+ imagens | Distrai leitor e gera custo desnecessário |
| Postar sem cover image | OG sharing fica feio sem cover |
| Hardcode de paths absolutos no HTML | Quebra Pages. Sempre paths relativos |
| Commit sem rodar update-index.mjs | README e index.html ficam desatualizados |
| Creditar a fonte / footer "Fonte original" | Quebra o princípio AUTORAL |
| Publicar sem bloco LinkedIn | Perde o gancho de distribuição |
posts/YYYY-MM-DD-{slug}.html existe e é HTML válidoassets/images/{slug}-cover.* existegrep -iE "fonte original|adaptaç" {post} retorna vazio.share-block com hook e texto copiável)index.html e README.md listam o post novogit status limpo após commit+pushApós retornar URL, sugerir: compartilhar no LinkedIn (passar a URL), importar para Medium via medium.com/p/import, cross-postar para Dev.to/Hashnode.
npx claudepluginhub felvieira/claude-skills-fv --plugin dev-team-kit-fvAccepts PRs, git refs, marketing briefs, or freeform text as input and generates a structured, SEO-optimized blog post with discovery, research, and outline phases.
Manages full-lifecycle blog content with 30 sub-skills for writing, rewriting, analysis, SEO, schema, images, repurposing, and multilingual publishing. Optimized for Google rankings and AI citations.