feat: refactor 30+ skills to Anthropic progressive disclosure pattern

- All SKILL.md files now <500 lines (avg reduction 69%)
- Detailed content extracted to references/ subdirectories
- Frontmatter standardised: only name + description (Anthropic standard)
- New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator
- Design skills: anti-slop guidelines, premium-proposals reference
- Removed non-standard frontmatter fields (triggers, version, author, category)

Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao,
core-tools, negocio, perfex-dev, wordpress, design-media

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 15:05:03 +00:00
parent 9404af7ac9
commit 6b3a6f2698
397 changed files with 67154 additions and 17257 deletions

View File

@@ -0,0 +1,144 @@
# Implementacao Tecnica - SEO Report
## Workflow Tecnico
```mermaid
graph LR
A[Input: URL] --> B{Site em GSC?}
B -->|Sim| C[Recolher dados GSC]
B -->|Nao| D[Skip GSC, aviso]
C --> E[Lighthouse Desktop]
D --> E
E --> F[Lighthouse Mobile]
F --> G[Core Web Vitals]
G --> H[SEO Tools API]
H --> I{Ahrefs habilitado?}
I -->|Sim| J[Recolher DR/UR]
I -->|Nao| K[Skip Ahrefs]
J --> L[Processar dados]
K --> L
L --> M[Gerar relatorio Markdown]
M --> N[Criar Google Doc]
N --> O[Partilhar com email]
O --> P[Retornar link]
```
## Implementacao
```javascript
async function generateSEOReport(url, options = {}) {
const {
email = 'emanuelalmeidaa@gmail.com',
competitors = [],
includeAhrefs = true
} = options;
// 1. Validar URL
if (!isValidURL(url)) {
throw new Error('URL invalido');
}
// 2. Recolher dados em paralelo (melhor performance)
const [
lighthouseDesktop,
lighthouseMobile,
coreWebVitals,
seoToolsData,
gscData,
ahrefsData
] = await Promise.allSettled([
mcp__lighthouse__run_audit(url, 'desktop'),
mcp__lighthouse__run_audit(url, 'mobile'),
mcp__lighthouse__get_core_web_vitals(url),
fetch(`http://localhost:3000/seo-audit?url=${url}`).then(r => r.json()),
getGSCData(url),
includeAhrefs ? getAhrefsData(url) : null
]);
// 3. Processar e formatar
const reportData = {
url,
date: new Date().toISOString().split('T')[0],
scores: extractScores(lighthouseDesktop, lighthouseMobile),
cwv: processCoreWebVitals(coreWebVitals),
gsc: processGSCData(gscData),
onPage: processOnPageData(seoToolsData),
backlinks: processBacklinks(ahrefsData),
recommendations: generateRecommendations(/* all data */)
};
// 4. Gerar documento Markdown
const markdown = generateReportMarkdown(reportData);
// 5. Criar Google Doc
const docResult = await mcp__google-workspace__create_doc({
title: `Relatorio SEO - ${extractDomain(url)} - ${reportData.date}`,
body_content: markdown,
user_google_email: email
});
// 6. Retornar link
return {
success: true,
doc_url: docResult.url,
summary: reportData.recommendations.slice(0, 5)
};
}
```
## Propriedades GSC Disponiveis
```javascript
const GSC_PROPERTIES = [
'sc-domain:descomplicar.pt',
'https://emanuelalmeida.pt/',
'https://carstuff.pt/',
'https://solarfvengenharia.com/',
'https://aquisevende.pt/',
'https://alojadamaria.com/',
'https://e-commerce.descomplicar.pt/'
];
async function getGSCData(url) {
const domain = extractDomain(url);
const property = GSC_PROPERTIES.find(p => p.includes(domain));
if (!property) {
console.warn(`Site ${domain} nao esta no GSC. Dados GSC nao disponiveis.`);
return null;
}
const analytics = await mcp__gsc__get_search_analytics({
site_url: property,
start_date: daysAgo(90),
end_date: 'today',
dimensions: ['query'],
row_limit: 100
});
return analytics;
}
```
## Notas Tecnicas
### Requisitos
- SEO Tools API a correr: `~/mcp-servers/seo-tools-api/start.sh`
- Google Workspace MCP configurado
- GSC authentication (OAuth primeira vez)
### Performance
- Execucao paralela de tools (1m40s total)
- Cache Lighthouse results (5 min TTL)
- Rate limiting Ahrefs API (100 req/day free)
### Erros Comuns
- **Site nao em GSC:** Relatorio gerado sem dados GSC
- **Lighthouse timeout:** Retry automatico (3x)
- **Ahrefs rate limit:** Skip backlinks, aviso no relatorio