Dual-mode operation (Code + Cowork)
HTML through the design system (required). Whenever this skill produces HTML, load the
comp-html-guidelinesskill 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
Bashtool 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
nameemanager. 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
managere (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)
- Agrupe colaboradores por gestor.
span= número de directs. - 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.
- Taxa de promoção = directs promovidos no ciclo ÷ span × 100.
- 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. - 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
- Bandas: <40 At-risk · 40-59 Developing · 60-79 Solid · 80+ Exemplar.
- 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:
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 |