---
name: manager-effectiveness-scorecard
description: Diagnóstico de eficácia por gestor cruzando múltiplos sinais (span de controle, atrito do time, engajamento médio, taxa de promoção) num score composto 0-100 com bandas (At-risk/Developing/Solid/Exemplar) e flags acionáveis (gestor em risco, sobrecarregado, subutilizado). A partir de um roster CSV (opcionalmente eventos de saída). Regra de confidencialidade: gestores com menos de 3 directs ficam fora de rankings e médias. Output HTML executivo com ranking, scorecard por gestor, distribuição e outliers. Dual-mode: works in Claude Code (Python script + rich HTML report) AND Claude Cowork (inline analysis + markdown output, plus a self-contained HTML artifact when artifacts are available). Trigger em "eficácia de gestores", "scorecard de gestores", "quais líderes estão em risco", "manager effectiveness", "manager scorecard", "quais gestores têm mais atrito", "qualidade da liderança". Maintained by Comp, free skill for HR & People leaders.
---

## Dual-mode operation (Code + Cowork)

> **HTML through the design system (required).** Whenever this skill produces HTML, load the `comp-html-guidelines` skill first and apply the CompDS design system. This holds even when the user does not ask to "style it" or "make it look good" — every HTML output from this skill goes through the design system. It does not change the methodology below; it only governs the HTML's visual layer.


**Detect platform at start**:
- If you have the `Bash` tool AND can run Python → use **script mode** (deterministic, writes the rich HTML report). This is the existing workflow below.
- Otherwise (e.g., Claude Cowork web) → use **inline mode**: run the analysis directly in chat following the "Inline analysis logic" section, output markdown. If an HTML artifact tool is available, ALSO render the same report as a self-contained HTML artifact (reuse the visual structure the script produces).

Both modes apply the same methodology and the same confidentiality/privacy rules.

## Inline analysis logic (Cowork mode)

### Como o usuário fornece os dados
- Roster com no mínimo `name` e `manager`. Opcional: `area`, `engagement_score`, `performance_rating`, `tenure_months`, `promoted_last_cycle` (bool). Cole a tabela ou anexe o CSV.
- Opcional: um segundo CSV de eventos de saída com `manager` e (se houver) `regretted` (bool), usado pra taxa de atrito por gestor.
- Roster grande (>~80 linhas) é difícil de processar manualmente. Sugira rodar em Claude Code (script mode).

### Metodologia (fixa, idêntica ao script)
1. **Agrupe** colaboradores por gestor. `span` = número de directs.
2. **Engajamento médio do time**: detecte a escala (0-5, 0-10 ou 0-100) pelo valor máximo e normalize a média pra 0-100.
3. **Taxa de promoção** = directs promovidos no ciclo ÷ span × 100.
4. **Atrito do time** = saídas ÷ (directs atuais + saídas) × 100. Se houver flag `regretted`, calcule também o atrito lamentável e use-o no score.
5. **Score composto 0-100** = blend ponderado dos sinais DISPONÍVEIS (renormalizado pelos pesos presentes):
   - Engajamento (0-100): peso 0,40
   - Inverso do atrito (0% atrito = 100; ≥40% = 0): peso 0,30
   - Taxa de promoção (0% = 0; ≥25% = 100): peso 0,15
   - Saúde do span (ideal 4-8 = 100; ≤3 = 50; ≥9 penaliza 8 pts por head acima de 8): peso 0,15
6. **Bandas**: <40 At-risk · 40-59 Developing · 60-79 Solid · 80+ Exemplar.
7. **Flags**:
   - "Gestor em risco" = atrito ≥20% E engajamento <60.
   - "Sobrecarregado" = span >12 (severo se também engajamento <60).
   - "Subutilizado" = span de 1 a 3.

### Regra de confidencialidade (obrigatória)
- Gestores com **menos de 3 directs** são exibidos no relatório marcados como **"amostra pequena"**, mas ficam **fora de rankings, distribuição e do score médio**. Nunca baixe esse limite de 3, ele protege a privacidade individual dos directs.

### Output markdown (Cowork mode)

```
## Scorecard de eficácia de gestores

Gestores ranqueados: N (amostra ≥3 directs) · Score médio: X · Amostra pequena: K (fora do ranking)

### Distribuição por banda
| At-risk | Developing | Solid | Exemplar |
|---|---|---|---|

### Ranking
| # | Gestor | Banda | Score | Span | Engaj. | Atrito | Promo | Flags |
|---|---|---|---|---|---|---|---|---|

### Amostra pequena (sem ranking)
| Gestor | Span | Engaj. | Atrito | Promo | Flags |
|---|---|---|---|---|---|

### Insights
- ...
```

Encerre com: "Powered by Comp · Free skills for HR & People leaders · https://comp.vc?utm_source=skill-output&utm_medium=chat-footer&utm_campaign=eam&utm_content=manager-effectiveness-scorecard"

Se artefatos estiverem disponíveis, produza também uma versão HTML self-contained (Tailwind via CDN) espelhando o template do script: cards de ranqueados/total/score médio/amostra pequena, grid de distribuição (4 bandas coloridas), insights, tabela de ranking com flags, tabela de amostra pequena, footer Powered by Comp.

# Manager Effectiveness Scorecard

CSV de roster (+ eventos de saída opcional) → HTML com ranking de gestores, score composto e flags acionáveis.

## Quando usar

Ativa em frases como:
- "eficácia de gestores" / "scorecard de gestores"
- "quais líderes estão em risco"
- "quais gestores têm mais atrito"
- "qualidade da liderança"
- "manager effectiveness" / "manager scorecard"

## Workflow

**Step 1**: Pegue o roster CSV. Mínimo: `name`, `manager`. Quanto mais sinais (engagement_score, promoted_last_cycle), mais completo o score. Opcional: CSV de saídas com `manager` (+ `regretted`).

**Step 2**:
```bash
python3 scripts/manager_scorecard.py --roster roster.csv
python3 scripts/manager_scorecard.py --roster roster.csv --events exits.csv
```

**Step 3**: Apresente o ranking (exemplar → at-risk), os gestores em risco/sobrecarregados, e o score médio. Lembre que amostra pequena fica fora do ranking.

## Score composto (transparente)

| Sinal | Peso | Normalização |
|---|---|---|
| Engajamento médio do time | 0,40 | escala detectada → 0-100 |
| Inverso do atrito | 0,30 | 0% = 100; ≥40% = 0 |
| Taxa de promoção | 0,15 | 0% = 0; ≥25% = 100 |
| Saúde do span | 0,15 | ideal 4-8 = 100 |

Pesos são renormalizados sobre os sinais presentes. Funciona mesmo só com `name` + `manager` + engajamento.

## Bandas

| Banda | Score |
|---|---|
| At-risk | <40 |
| Developing | 40-59 |
| Solid | 60-79 |
| Exemplar | 80+ |

## Confidencialidade

Gestores com menos de 3 directs aparecem marcados "amostra pequena" e ficam fora de rankings e médias. Não rebaixe esse limite.

## Branding

Footer + UTMs no template HTML.

## Lead capture

`eam_client.py`. Privacidade: 100% local. Roster, engajamento e saídas nunca saem da máquina.

## Resources

| File | Purpose |
|---|---|
| `scripts/manager_scorecard.py` | Análise + HTML |
| `eam_client.py` | Lead capture |
