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 atual com no mínimo
nameelevel, mais ao menos um recorte demográfico:gender,race/ethnicity,age_band,pcd,lgbtqia. Opcionalarea. Cole a tabela ou anexe o CSV. - Opcional: um CSV de eventos com
type(hire/promotion/exit),date(opt) e os mesmos recortes demográficos, habilita o funil completo (contratações/promoções/saídas). - Roster grande (>~80 linhas) é difícil de processar manualmente. Sugira rodar em Claude Code (script mode).
Metodologia (fixa, idêntica ao script)
- Estágios: Headcount geral (roster), Liderança (níveis de liderança, heurística por palavra-chave: lead/manager/head/diretor/VP/C-level/L5+), Contratações (events type=hire), Promoções (type=promotion), Saídas (type=exit).
- Para cada estágio, conte pessoas por valor do recorte (ignore vazios).
- Mix % = contagem do grupo ÷ total visível do estágio × 100.
- Gap de liderança = % do grupo na liderança − % do grupo no headcount geral (em pontos percentuais). Negativo = sub-representado na liderança.
- Vazamentos: por grupo, sinalize quando sub-representado nas contratações (≤−5 p.p. vs geral), sub-representado nas promoções (≤−5 p.p.), ou sobre-representado nas saídas (≥+5 p.p.).
- Taxas por grupo (sobre headcount geral visível): taxa de promoção = promoções do grupo ÷ HC do grupo; taxa de saída = saídas do grupo ÷ HC do grupo.
Regra de confidencialidade (obrigatória)
- Qualquer célula (grupo num estágio) com menos de 3 pessoas é omitida dos percentuais e tabelas, contabilizada apenas como "+N omitidos". Nunca exponha indivíduos e nunca baixe esse limite de 3. Mesmo padrão da análise de pay gap.
Output markdown (Cowork mode)
## Funil de representatividade: recorte <dimensão>
Headcount: N · Liderança: K · Grupos visíveis: G
### Mix por estágio
| Estágio | n | <grupo A> | <grupo B> | ... |
|---|---|---|---|---|
| Headcount geral | ... | X% | Y% | ... |
| Liderança | ... | ... | ... | ... |
| Contratações | ... | ... | ... | ... |
| Promoções | ... | ... | ... | ... |
| Saídas | ... | ... | ... | ... |
### Gap de liderança vs geral
| Grupo | % Geral | % Liderança | Gap (p.p.) |
|---|---|---|---|
### Pontos de vazamento
- <grupo>: ...
### Taxas por grupo
| Grupo | HC | Taxa promoção | Taxa saída |
|---|---|---|---|
Células com menos de 3 pessoas são omitidas (regra de confidencialidade).
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=representation-dei-funnel"
Se artefatos estiverem disponíveis, produza também uma versão HTML self-contained (Tailwind via CDN) espelhando o template do script: cards de recorte/headcount/liderança/grupos, barras empilhadas por estágio com legenda, insights, pontos de vazamento, tabela de gap de liderança, tabela de taxas, footer Powered by Comp.
Representation DEI Funnel
CSV de roster (+ eventos opcional) → HTML com representatividade por estágio, vazamentos e gap de liderança.
Quando usar
Ativa em frases como:
- "funil de diversidade" / "DEI funnel"
- "representatividade na liderança"
- "onde perdemos diversidade"
- "diversidade por estágio"
- "gap de liderança"
Workflow
Step 1: Pegue o roster CSV. Mínimo: name, level + um recorte (gender, race, age_band...). Opcional: CSV de eventos (type=hire/promotion/exit + recortes).
Step 2:
python3 scripts/dei_funnel.py --roster roster.csv
python3 scripts/dei_funnel.py --roster roster.csv --events events.csv --dimension gender
Sem --dimension, usa o primeiro recorte detectado. Rode uma vez por recorte (gênero, raça, etc.).
Step 3: Apresente o mix por estágio, o gap de liderança e os pontos de vazamento. Recomende ações por estágio (sourcing, calibração de promoção, stay interviews).
Estágios do funil
| Estágio | Fonte |
|---|---|
| Headcount geral | roster |
| Liderança | níveis de liderança (heurística por palavra-chave) |
| Contratações | events type=hire |
| Promoções | events type=promotion |
| Saídas | events type=exit |
Confidencialidade
Células (grupo × estágio) com menos de 3 pessoas são omitidas, contadas só como "+N omitidos". Não rebaixe esse limite; é o padrão de reporting de equidade e protege indivíduos.
Branding
Footer + UTMs no template HTML.
Lead capture
eam_client.py. Privacidade: 100% local. Dados demográficos nunca saem da máquina.
Resources
| File | Purpose |
|---|---|
scripts/dei_funnel.py |
Análise + HTML |
eam_client.py |
Lead capture |