From greenn
Reúne tudo que você já planejou em um único documento pronto pra copiar e usar — nicho, persona, método, carta, posicionamento, oferta e funil, na ordem certa. Use quando quiser: "exportar meu planejamento", "juntar tudo num documento", "gerar meu plano completo", "ver tudo em um lugar só".
How this skill is triggered — by the user, by Claude, or both
Slash command
/greenn:exportar [slug-do-projeto][slug-do-projeto]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
Utilitário de exportação. NÃO faz entrevista nem propõe conteúdo: apenas **lê** o que você já planejou e **consolida** tudo num documento único, na ordem certa — em Markdown e, se quiser, num PDF/HTML com o visual da Greenn. Se ainda faltarem passos, gera o documento com o que existe e te diz claramente o que falta — nunca quebra.
Utilitário de exportação. NÃO faz entrevista nem propõe conteúdo: apenas lê o que você já planejou e consolida tudo num documento único, na ordem certa — em Markdown e, se quiser, num PDF/HTML com o visual da Greenn. Se ainda faltarem passos, gera o documento com o que existe e te diz claramente o que falta — nunca quebra.
Antes de qualquer mensagem, carregue comportamento.md do diretório compartilhado e aplique a regra de linguagem comum (D-14) em TODAS as mensagens visíveis. (A regra de propor-pronto, BEH-01, não se aplica aqui — este comando não tem proposta a fazer.)
COMPORTAMENTO=$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")/skills/compartilhado/referencias/comportamento.md
if [ ! -f "$COMPORTAMENTO" ]; then
COMPORTAMENTO=$(find "$PWD/.claude" "$HOME/.claude" "$HOME/.claude/plugins" -name "comportamento.md" \
-path "*/compartilhado/referencias/*" 2>/dev/null | head -1)
fi
echo "$COMPORTAMENTO"
Leia o arquivo no caminho retornado e siga a regra D-14 durante todo o fluxo.
Carregue selecao-slug.md do diretório compartilhado via derivação cross-skill (D-40):
SHARED=$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")/skills/compartilhado/referencias/selecao-slug.md
if [ ! -f "$SHARED" ]; then
SHARED=$(find "$PWD/.claude" "$HOME/.claude" "$HOME/.claude/plugins" -name "selecao-slug.md" \
-path "*/compartilhado/referencias/*" 2>/dev/null | head -1)
fi
echo "$SHARED"
Leia o arquivo no caminho retornado e execute a lógica:
$ARGUMENTS for não-vazio: execute a resolução tolerante (Estágios 0–2) para derivar o <slug>.$ARGUMENTS for vazio: execute o Passo 0 (listar projetos existentes) para o produtor escolher qual projeto exportar.O exportar não cria projeto novo — ele consolida um projeto já existente. Se nenhum projeto existir, avise em linguagem comum que ainda não há nada para exportar e oriente o produtor a começar pelo primeiro passo (/greenn:nicho).
Carregue estado.md do diretório compartilhado (D-40):
ESTADO=$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")/skills/compartilhado/referencias/estado.md
if [ ! -f "$ESTADO" ]; then
ESTADO=$(find "$PWD/.claude" "$HOME/.claude" "$HOME/.claude/plugins" -name "estado.md" \
-path "*/compartilhado/referencias/*" 2>/dev/null | head -1)
fi
echo "$ESTADO"
Leia o arquivo e execute a varredura dos 7 artefatos na ORDEM CANÔNICA, com o $SLUG resolvido. Valide o slug antes de interpolar:
printf '%s' "$SLUG" | grep -Eq '^[a-z0-9_-]+$' || { echo "SLUG_INVALIDO"; exit 1; }
BASE="$HOME/greenn/projetos/$SLUG"
ARTEFATOS="nicho.md persona.md metodo.md carta.md posicionamento.md oferta.md funil.md"
PRESENTES=""
FALTANDO=""
for A in $ARTEFATOS; do
if test -f "$BASE/$A"; then
echo "$A OK"
PRESENTES="$PRESENTES $A"
else
echo "$A AUSENTE"
FALTANDO="$FALTANDO $A"
fi
done
echo "PRESENTES=$PRESENTES"
echo "FALTANDO=$FALTANDO"
A ordem canônica é fixa: nicho → persona → metodo → carta → posicionamento → oferta → funil.
Mapa de cada artefato ausente para o comando que o gera (use ao informar o que falta — sempre em linguagem comum, com título legível + comando):
| Artefato (bash) | Como chamar pro produtor | Comando |
|---|---|---|
nicho.md | seu nicho | /greenn:nicho |
persona.md | sua persona | /greenn:persona |
metodo.md | seu método | /greenn:metodo |
carta.md | sua carta de vendas | /greenn:carta |
posicionamento.md | seu posicionamento | /greenn:posicionamento |
oferta.md | sua oferta | /greenn:oferta |
funil.md | seu funil | /greenn:funil |
Se PRESENTES estiver vazio (nenhum dos 7 existe): avise em linguagem comum que ainda não há nada planejado para exportar e oriente o produtor a começar por /greenn:nicho. Não gere documento vazio.
Para cada artefato presente (na ordem canônica), leia o conteúdo com a tool Read:
$HOME/greenn/projetos/$SLUG/nicho.md
$HOME/greenn/projetos/$SLUG/persona.md
$HOME/greenn/projetos/$SLUG/metodo.md
$HOME/greenn/projetos/$SLUG/carta.md
$HOME/greenn/projetos/$SLUG/posicionamento.md
$HOME/greenn/projetos/$SLUG/oferta.md
$HOME/greenn/projetos/$SLUG/funil.md
Pegue apenas o corpo de cada arquivo (o conteúdo após o frontmatter ---), sem o cabeçalho ---...--- de metadados. Pegue também o nome_projeto do frontmatter do nicho.md (se presente) para usar no título do documento. Não altere, resuma ou reescreva o conteúdo — copie fielmente.
Capture a data atual para o documento:
date +%Y-%m-%d
Antes de montar o documento, pergunte ao produtor duas coisas (uma por vez, via AskUserQuestion, em linguagem comum).
Onde salvar: "Onde você quer salvar seu planejamento?" Opções:
~/greenn/projetos/<slug>/.Guarde o diretório escolhido em $DESTINO (padrão = $HOME/greenn/projetos/$SLUG). Garanta que a pasta existe e avise em linguagem comum se não for possível criar (nunca falhe em silêncio):
mkdir -p "$DESTINO" 2>/dev/null && echo "DESTINO_OK" || echo "SEM_PERMISSAO"
Se SEM_PERMISSAO: explique o problema e ofereça salvar na pasta do projeto (padrão) em vez disso.
Em qual formato: "Em qual formato você quer o documento?" Opções:
.md e o PDF.Guarde a escolha em $FORMATO. O Markdown é sempre montado (é a base portátil).
O PDF é gerado a partir de um HTML estilizado — o visual oficial da Greenn mora no template do Passo 3, então o documento sai sempre no mesmo padrão, e há um plano B que não exige instalar nada. Se o produtor pediu PDF (ou "os dois"), detecte um conversor de HTML→PDF, em ordem de preferência:
PDF_TOOL=""
for t in weasyprint wkhtmltopdf chromium chromium-browser google-chrome; do
command -v "$t" >/dev/null 2>&1 && { PDF_TOOL="$t"; break; }
done
echo "PDF_TOOL=${PDF_TOOL:-nenhum}"
PDF_TOOL não vazio): no Passo 3 você gera o HTML estilizado e converte pra PDF.PDF_TOOL vazio): NÃO trave. Entregue o HTML estilizado (mesmo visual) e dê o plano B universal, em linguagem comum: "Gerei seu documento com o visual pronto em planejamento-completo.html. Pra virar PDF sem instalar nada: abra esse arquivo no navegador e use Imprimir → Salvar como PDF." Opcional: mencionar que dá pra instalar um conversor (pip install weasyprint, ou wkhtmltopdf) pra gerar o PDF direto da próxima vez.Monte UM único documento Markdown com a tool Write, na ORDEM CANÔNICA, somente com as seções dos artefatos presentes. Estrutura:
nome_projeto; se ausente, use o slug) e a data.## Nicho, ## Persona, ## Método, ## Carta de vendas, ## Posicionamento, ## Oferta, ## Funil), seguido do corpo copiado do arquivo.Grave em $DESTINO/planejamento-completo.md (o $DESTINO escolhido no Passo 2.5; padrão $HOME/greenn/projetos/$SLUG). Modelo:
# Planejamento completo — <nome do projeto>
Documento gerado em <DATA>.
## Neste documento
- <lista das seções incluídas, na ordem canônica>
---
## Nicho
<corpo de nicho.md>
---
## Persona
<corpo de persona.md>
---
## Método
<corpo de metodo.md>
... (apenas as seções presentes, na ordem canônica) ...
---
## O que ainda falta
<incluir só se houver pendências>
- Sua carta de vendas — rode `/greenn:carta <slug>`
- Seu funil — rode `/greenn:funil <slug>`
Omita a seção "O que ainda falta" inteira quando os 7 estiverem presentes.
Pule se $FORMATO for só Markdown. Se incluir PDF (ou "os dois"), além do .md gere planejamento-completo.html no mesmo $DESTINO, com a tool Write. Converta o conteúdo consolidado de markdown para HTML (títulos → <h2>/<h3>, **negrito** → <strong>, listas → <ul>/<ol>, tabelas → <table>, citações → <blockquote>) e embuta VERBATIM o template de estilo abaixo no <head> — é o visual oficial da Greenn; não improvise outro tema:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Planejamento completo — <nome do projeto></title>
<style>
:root{ --verde:#1b7f4c; --verde-claro:#e9f7ef; --borda:#cfe9da; --texto:#222; --cinza:#666; }
*{ box-sizing:border-box; }
body{ font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; max-width:760px; margin:40px auto; padding:0 28px; color:var(--texto); line-height:1.6; }
h1{ color:var(--verde); font-size:2rem; border-bottom:3px solid var(--verde); padding-bottom:.3em; }
.sub{ color:var(--cinza); font-style:italic; margin-top:-.4em; }
h2{ color:var(--verde); border-bottom:1px solid var(--borda); padding-bottom:.2em; margin-top:2.2em; }
h3{ color:var(--verde); margin-top:1.4em; }
.toc{ background:var(--verde-claro); border:1px solid var(--borda); border-radius:8px; padding:16px 22px; }
.toc strong{ color:var(--verde); }
table{ border-collapse:collapse; width:100%; margin:1em 0; }
th,td{ border:1px solid #d8d8d8; padding:8px 12px; text-align:left; vertical-align:top; }
th{ background:var(--verde-claro); color:var(--verde); }
tr:last-child td{ font-weight:bold; color:var(--verde); }
blockquote{ border-left:4px solid var(--verde); background:#f6f6f6; margin:1em 0; padding:.6em 1em; font-style:italic; }
hr{ border:0; border-top:1px dashed #ccc; margin:2.2em 0; }
code{ background:#f0f0f0; padding:1px 5px; border-radius:4px; font-size:.92em; }
</style>
</head>
<body>
<h1>Planejamento completo</h1>
<p class="sub"><resumo curto do projeto, se houver> · Documento gerado em <DATA></p>
<div class="toc"><strong>Neste documento:</strong>
<ul><!-- uma <li> por seção presente, na ordem canônica --></ul></div>
<!-- seções (Nicho, Persona, …) como <h2> + conteúdo; "O que ainda falta" só se houver pendência -->
</body>
</html>
Com o $PDF_TOOL detectado no Passo 2.5, converta o HTML em PDF:
HTML="$DESTINO/planejamento-completo.html"; PDF="$DESTINO/planejamento-completo.pdf"
case "$PDF_TOOL" in
weasyprint) weasyprint "$HTML" "$PDF" 2>/dev/null ;;
wkhtmltopdf) wkhtmltopdf "$HTML" "$PDF" 2>/dev/null ;;
chromium|chromium-browser|google-chrome)
"$PDF_TOOL" --headless=new --no-sandbox --print-to-pdf="$PDF" "$HTML" 2>/dev/null ;;
esac
[ -f "$PDF" ] && echo "PDF_OK" || echo "PDF_FALHOU"
PDF_OK: entregue o .pdf (e mantenha o .html).PDF_FALHOU ou $PDF_TOOL vazio: caia no plano B — o .html já tem o visual pronto; oriente o produtor a abri-lo no navegador e usar Imprimir → Salvar como PDF (mesmo resultado, sem instalar nada).Nunca apague o .md nem o .html.
Em mensagem final, linguagem comum, sempre informe onde o documento foi salvo e quais arquivos saíram — use o $DESTINO real escolhido (não presuma a pasta do projeto). Liste só o que existe: .md (sempre), .html (se pediu PDF), .pdf (se a conversão deu PDF_OK). Se caiu no plano B (sem conversor), diga onde está o .html e como virar PDF pelo navegador (Imprimir → Salvar como PDF).
Se faltavam passos: repita claramente o que falta, com o comando de cada um. Ex.:
Juntei o que você já tem em <DESTINO>/planejamento-completo.md.
Ainda faltam: sua carta de vendas (`/greenn:carta <slug>`) e seu funil (`/greenn:funil <slug>`).
Quando terminar esses, é só rodar `/greenn:exportar <slug>` de novo pra atualizar o documento.
Se os 7 estavam presentes: confirme que o planejamento completo foi exportado. Ex.:
✓ Planejamento completo exportado.
Está tudo reunido em <DESTINO>/ — planejamento-completo.md (e .pdf, se você pediu), pronto pra usar.
(Se ficou no plano B sem conversor: "...em <DESTINO>/planejamento-completo.html. Pra gerar o PDF: abra no navegador e use Imprimir → Salvar como PDF.")
Não há "próximo comando" a indicar — exportar é o utilitário final. Se ainda houver pendências, o próximo passo é justamente completá-las.
Fim do fluxo de exportar.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub greenn-company/greenn-claude-plugin --plugin greenn