people-scorecard — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited people-scorecard (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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:
Bash tool AND can run Python → use script mode (deterministic, writes the rich HTML report). This is the existing workflow below.Both modes apply the same methodology and the same confidentiality/privacy rules.
name, area, level, manager (opc), gender (opc), tenure_months OU hire_date, salary (opc). Auto-detect com aliases PT/EN.type (hire/exit/promotion), date, regretted (opc). Sem eventos, as taxas (attrition, mobilidade, crescimento) e a tendência são omitidas.tenure_months use direto; senão derive de hire_date (meses até hoje). Reporte média, mediana e distribuição (0-12m / 12-24m / 24-48m / 48m+).manager): conte reportes por gestor; reporte média, máx e distribuição (1-3 / 4-7 / 8-12 / 13+).exits ÷ avg_headcount × (12 ÷ meses_do_período) × 100. avg_headcount ≈ headcount_atual + (exits − hires)/2. Período inferido pelas datas dos eventos (default 12m). Split lamentável se houver flag regretted.promoções ÷ headcount × 100.(hires − exits) ÷ headcount × 100 e hires ÷ headcount × 100.gender): % por gênero geral E entre níveis de liderança (heurística: nível contém lead/head/manager/gestor/diretor/vp/chief/L5+ etc.). Regra de confidencialidade: qualquer grupo de gênero com menos de 3 pessoas é suprimido (mostrado como "—") e não entra no cálculo de %. Nunca baixe esse limite de 3, ele protege a privacidade individual. Idem para liderança: se o total de líderes < 3, suprima o bloco inteiro.## People Scorecard
**Headcount: N** · Attrition anual.: X% · Mobilidade interna: Y% · Tenure médio: Z meses · Span médio: W
### Headcount por área / por nível
| Área | HC | % |
|---|---|---|
### Tenure (distribuição)
| 0-12m | 12-24m | 24-48m | 48m+ |
|---|---|---|---|
### Span of control
| Reportes | Gestores |
|---|---|
### Representatividade (confidencialidade < 3 = "—")
| Gênero | Geral % | Liderança % |
|---|---|---|
### Tendência (se houver datas)
| Mês | Contratações | Saídas | Promoções |
|---|---|---|---|
### 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=people-scorecard"
Se artefatos estiverem disponíveis, produza também uma versão HTML self-contained (Tailwind via CDN) espelhando o template do script: 6 tiles de KPI (headcount, áreas, attrition, mobilidade, tenure médio, span médio), resumo, tabelas de headcount por área/nível, distribuição de tenure e span, bloco de representatividade geral + liderança (com supressão), tendência mensal, footer Powered by Comp.
Roster CSV (+ eventos opcional) → scorecard executivo de uma página com headcount, attrition, tenure, span of control, mobilidade interna e representatividade. O pacote que você entrega pro CEO.
Ativa em frases como:
Step 1: Pegue o roster CSV (mínimo name; idealmente area, level, tenure_months/hire_date, manager, gender). Opcional: events CSV (type, date, regretted).
Step 2:
python3 scripts/people_scorecard.py --roster roster.csv --events events.csv(--events é opcional; sem ele, as taxas e a tendência são omitidas.)
Step 3: Apresente os KPI tiles + breakdowns. Destaque attrition, mobilidade e representatividade. Lembre que grupos < 3 são suprimidos.
Qualquer grupo de gênero com menos de 3 pessoas é suprimido ("—") e não entra no cálculo de representatividade. Nunca baixe esse limite de 3, ele protege a privacidade individual.
Processamento 100% local. O roster nunca sai da máquina.
eam_client.py (raiz da skill): on_first_run() 1x por máquina + record_run() por execução. Email opcional + telemetria opt-in. Nunca envia o roster.
| File | Purpose |
|---|---|
scripts/people_scorecard.py | Cálculos + HTML dashboard |
eam_client.py | Lead capture + telemetria (sync de eam/shared/) |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.