@codemieai/code 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -7
- package/dist/agents/core/session/ensure-session.d.ts.map +1 -1
- package/dist/agents/core/session/ensure-session.js +14 -11
- package/dist/agents/core/session/ensure-session.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/{codemie-statusline.mjs → session-status.mjs} +1 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/SKILL.md +641 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/references/leaderboard-dashboard-report.md +225 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/references/people-spending-dashboard-report.md +746 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/references/people-spending-dashboard-template.html +3270 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/scripts/analytics-cli.js +893 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-analytics/scripts/inspect-schema.js +211 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/README.md +39 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/SKILL.md +117 -26
- package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/scripts/inject-css.js +40 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/scripts/inject-data.js +68 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-html-report/style-guide/css/bundle.css +1 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/SKILL.md +240 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/assistants.md +256 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/categories.md +101 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/datasources.md +401 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/integrations.md +242 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/skills.md +191 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/users.md +38 -0
- package/dist/agents/plugins/claude/plugin/skills/codemie-sdk/examples/workflows.md +151 -0
- package/dist/agents/plugins/claude/plugin/skills/msgraph/scripts/msgraph.js +12 -2
- package/dist/agents/plugins/claude/plugin/statusline.mjs +216 -0
- package/dist/agents/plugins/claude/statusline-installer.d.ts +8 -0
- package/dist/agents/plugins/claude/statusline-installer.d.ts.map +1 -0
- package/dist/agents/plugins/claude/statusline-installer.js +127 -0
- package/dist/agents/plugins/claude/statusline-installer.js.map +1 -0
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +5 -0
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/cli/commands/assistants/chat/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/chat/index.js +8 -2
- package/dist/cli/commands/assistants/chat/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts +3 -2
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +5 -4
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +3 -2
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +8 -6
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.d.ts +3 -2
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.js +3 -2
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/index.js +7 -13
- package/dist/cli/commands/assistants/setup/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/summary/index.d.ts +3 -3
- package/dist/cli/commands/assistants/setup/summary/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/summary/index.js +5 -5
- package/dist/cli/commands/assistants/setup/summary/index.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +40 -0
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/profile/display.d.ts.map +1 -1
- package/dist/cli/commands/profile/display.js +1 -0
- package/dist/cli/commands/profile/display.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop-managed-mcp-servers.json +0 -6
- package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.js +20 -10
- package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
- package/dist/cli/commands/sdk/assistants.d.ts +3 -0
- package/dist/cli/commands/sdk/assistants.d.ts.map +1 -0
- package/dist/cli/commands/sdk/assistants.js +211 -0
- package/dist/cli/commands/sdk/assistants.js.map +1 -0
- package/dist/cli/commands/sdk/categories.d.ts +3 -0
- package/dist/cli/commands/sdk/categories.d.ts.map +1 -0
- package/dist/cli/commands/sdk/categories.js +186 -0
- package/dist/cli/commands/sdk/categories.js.map +1 -0
- package/dist/cli/commands/sdk/datasources.d.ts +3 -0
- package/dist/cli/commands/sdk/datasources.d.ts.map +1 -0
- package/dist/cli/commands/sdk/datasources.js +276 -0
- package/dist/cli/commands/sdk/datasources.js.map +1 -0
- package/dist/cli/commands/sdk/index.d.ts +3 -0
- package/dist/cli/commands/sdk/index.d.ts.map +1 -0
- package/dist/cli/commands/sdk/index.js +23 -0
- package/dist/cli/commands/sdk/index.js.map +1 -0
- package/dist/cli/commands/sdk/integrations.d.ts +3 -0
- package/dist/cli/commands/sdk/integrations.d.ts.map +1 -0
- package/dist/cli/commands/sdk/integrations.js +220 -0
- package/dist/cli/commands/sdk/integrations.js.map +1 -0
- package/dist/cli/commands/sdk/llm.d.ts +3 -0
- package/dist/cli/commands/sdk/llm.d.ts.map +1 -0
- package/dist/cli/commands/sdk/llm.js +48 -0
- package/dist/cli/commands/sdk/llm.js.map +1 -0
- package/dist/cli/commands/sdk/services/assistants.d.ts +13 -0
- package/dist/cli/commands/sdk/services/assistants.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/assistants.js +60 -0
- package/dist/cli/commands/sdk/services/assistants.js.map +1 -0
- package/dist/cli/commands/sdk/services/categories.d.ts +8 -0
- package/dist/cli/commands/sdk/services/categories.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/categories.js +19 -0
- package/dist/cli/commands/sdk/services/categories.js.map +1 -0
- package/dist/cli/commands/sdk/services/datasources.d.ts +33 -0
- package/dist/cli/commands/sdk/services/datasources.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/datasources.js +268 -0
- package/dist/cli/commands/sdk/services/datasources.js.map +1 -0
- package/dist/cli/commands/sdk/services/index.d.ts +6 -0
- package/dist/cli/commands/sdk/services/index.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/index.js +6 -0
- package/dist/cli/commands/sdk/services/index.js.map +1 -0
- package/dist/cli/commands/sdk/services/integrations.d.ts +27 -0
- package/dist/cli/commands/sdk/services/integrations.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/integrations.js +59 -0
- package/dist/cli/commands/sdk/services/integrations.js.map +1 -0
- package/dist/cli/commands/sdk/services/llm.d.ts +4 -0
- package/dist/cli/commands/sdk/services/llm.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/llm.js +7 -0
- package/dist/cli/commands/sdk/services/llm.js.map +1 -0
- package/dist/cli/commands/sdk/services/skills.d.ts +23 -0
- package/dist/cli/commands/sdk/services/skills.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/skills.js +69 -0
- package/dist/cli/commands/sdk/services/skills.js.map +1 -0
- package/dist/cli/commands/sdk/services/users.d.ts +4 -0
- package/dist/cli/commands/sdk/services/users.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/users.js +7 -0
- package/dist/cli/commands/sdk/services/users.js.map +1 -0
- package/dist/cli/commands/sdk/services/workflows.d.ts +7 -0
- package/dist/cli/commands/sdk/services/workflows.d.ts.map +1 -0
- package/dist/cli/commands/sdk/services/workflows.js +34 -0
- package/dist/cli/commands/sdk/services/workflows.js.map +1 -0
- package/dist/cli/commands/sdk/skills.d.ts +3 -0
- package/dist/cli/commands/sdk/skills.d.ts.map +1 -0
- package/dist/cli/commands/sdk/skills.js +492 -0
- package/dist/cli/commands/sdk/skills.js.map +1 -0
- package/dist/cli/commands/sdk/users.d.ts +3 -0
- package/dist/cli/commands/sdk/users.d.ts.map +1 -0
- package/dist/cli/commands/sdk/users.js +81 -0
- package/dist/cli/commands/sdk/users.js.map +1 -0
- package/dist/cli/commands/sdk/utils/cli-utils.d.ts +35 -0
- package/dist/cli/commands/sdk/utils/cli-utils.d.ts.map +1 -0
- package/dist/cli/commands/sdk/utils/cli-utils.js +110 -0
- package/dist/cli/commands/sdk/utils/cli-utils.js.map +1 -0
- package/dist/cli/commands/sdk/utils/datasource-types.d.ts +9 -0
- package/dist/cli/commands/sdk/utils/datasource-types.d.ts.map +1 -0
- package/dist/cli/commands/sdk/utils/datasource-types.js +61 -0
- package/dist/cli/commands/sdk/utils/datasource-types.js.map +1 -0
- package/dist/cli/commands/sdk/utils/file-utils.d.ts +8 -0
- package/dist/cli/commands/sdk/utils/file-utils.d.ts.map +1 -0
- package/dist/cli/commands/sdk/utils/file-utils.js +21 -0
- package/dist/cli/commands/sdk/utils/file-utils.js.map +1 -0
- package/dist/cli/commands/sdk/utils/render.d.ts +82 -0
- package/dist/cli/commands/sdk/utils/render.d.ts.map +1 -0
- package/dist/cli/commands/sdk/utils/render.js +149 -0
- package/dist/cli/commands/sdk/utils/render.js.map +1 -0
- package/dist/cli/commands/sdk/workflows.d.ts +3 -0
- package/dist/cli/commands/sdk/workflows.d.ts.map +1 -0
- package/dist/cli/commands/sdk/workflows.js +170 -0
- package/dist/cli/commands/sdk/workflows.js.map +1 -0
- package/dist/cli/commands/setup.js +4 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts +2 -1
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -1
- package/dist/cli/commands/shared/prompts/storage-scope.js +4 -3
- package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -1
- package/dist/cli/commands/skills/add.d.ts.map +1 -1
- package/dist/cli/commands/skills/add.js +28 -9
- package/dist/cli/commands/skills/add.js.map +1 -1
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts +5 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts.map +1 -1
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.js +22 -4
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.js.map +1 -1
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts +3 -2
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js +29 -14
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.d.ts +3 -2
- package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.js +6 -8
- package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
- package/dist/cli/commands/skills/setup/index.js +8 -16
- package/dist/cli/commands/skills/setup/index.js.map +1 -1
- package/dist/cli/commands/skills/setup/sync.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/sync.js +6 -5
- package/dist/cli/commands/skills/setup/sync.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +17 -0
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +11 -4
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js +5 -0
- package/dist/env/types.js.map +1 -1
- package/dist/migrations/004-skills-assistants-top-level.migration.d.ts +10 -0
- package/dist/migrations/004-skills-assistants-top-level.migration.d.ts.map +1 -0
- package/dist/migrations/004-skills-assistants-top-level.migration.js +65 -0
- package/dist/migrations/004-skills-assistants-top-level.migration.js.map +1 -0
- package/dist/migrations/005-skill-slug-format.migration.d.ts +10 -0
- package/dist/migrations/005-skill-slug-format.migration.d.ts.map +1 -0
- package/dist/migrations/005-skill-slug-format.migration.js +82 -0
- package/dist/migrations/005-skill-slug-format.migration.js.map +1 -0
- package/dist/migrations/index.d.ts +2 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +2 -2
- package/dist/migrations/index.js.map +1 -1
- package/dist/providers/core/codemie-auth-helpers.d.ts +4 -1
- package/dist/providers/core/codemie-auth-helpers.d.ts.map +1 -1
- package/dist/providers/core/codemie-auth-helpers.js +21 -18
- package/dist/providers/core/codemie-auth-helpers.js.map +1 -1
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.setup-steps.d.ts.map +1 -1
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.setup-steps.js +4 -2
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.setup-steps.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/endpoint-blocker.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/endpoint-blocker.plugin.js +14 -6
- package/dist/providers/plugins/sso/proxy/plugins/endpoint-blocker.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.d.ts +9 -0
- package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.js +23 -0
- package/dist/providers/plugins/sso/proxy/plugins/session-expiry-handler.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/proxy-errors.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-errors.js +1 -2
- package/dist/providers/plugins/sso/proxy/proxy-errors.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts +10 -0
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +77 -2
- package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js +2 -2
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
- package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.auth.js +10 -2
- package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js +3 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
- package/dist/utils/config.d.ts +16 -11
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +87 -82
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/paths.d.ts +5 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +14 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/profile.d.ts +0 -2
- package/dist/utils/profile.d.ts.map +1 -1
- package/dist/utils/profile.js +0 -5
- package/dist/utils/profile.js.map +1 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +18 -8
- package/dist/utils/security.js.map +1 -1
- package/dist/utils/slug.d.ts +2 -0
- package/dist/utils/slug.d.ts.map +1 -0
- package/dist/utils/slug.js +6 -0
- package/dist/utils/slug.js.map +1 -0
- package/package.json +4 -2
- package/scripts/postinstall.mjs +52 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# Leaderboard Dashboard HTML Report — Reference
|
|
2
|
+
|
|
3
|
+
> **Purpose**: This document describes the canonical leaderboard HTML report built for
|
|
4
|
+
> CodeMie AI/Run analytics. Use it as a template spec when generating new leaderboard
|
|
5
|
+
> dashboards so all reports are consistent in structure, components, and UX.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
The leaderboard report is a **self-contained single-file HTML dashboard** that combines
|
|
12
|
+
leaderboard ranking data (from the analytics API) with EPAM profile data (from OneHub).
|
|
13
|
+
It is dark-themed by default, uses the CodeMie design system (inlined CSS), and Chart.js
|
|
14
|
+
for all visualisations.
|
|
15
|
+
|
|
16
|
+
**Key properties:**
|
|
17
|
+
- No external CSS dependencies (all 8 CodeMie CSS files inlined in `<style>`)
|
|
18
|
+
- Google Fonts (`Inter`, `JetBrains Mono`) loaded via `@import`
|
|
19
|
+
- Chart.js 4.4.0 loaded via CDN (`https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js`)
|
|
20
|
+
- All data stored in a `PEOPLE` JavaScript array — no runtime API calls
|
|
21
|
+
- Fully portable: open directly in any browser
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Data Sources
|
|
26
|
+
|
|
27
|
+
| Source | How fetched | What it provides |
|
|
28
|
+
|--------|------------|------------------|
|
|
29
|
+
| Analytics API | `leaderboard-top <N> --pretty` via `analytics-cli.js` | Rank, score, tier, D1–D6 dimension scores |
|
|
30
|
+
| Analytics API | `leaderboard-summary --pretty` | KPI totals (champion count, top score, tier breakdown) |
|
|
31
|
+
| EPAM OneHub | `epam-peopleassignments-finder` agent (parallel batches of 5) | Job title, department, location, active projects, skills |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Page Structure
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
<header> — Dashboard title + tier summary badges
|
|
39
|
+
<info-bar> — Alert banner explaining the scoring model
|
|
40
|
+
<stat-grid> — 5 KPI cards (champions tracked, top score, avg score, countries, avg D5)
|
|
41
|
+
<card> — Leaderboard Rankings card
|
|
42
|
+
<tabs> — Rankings Table / Score Chart / Dimension Analysis / Geography
|
|
43
|
+
[Tab 1] Rankings Table — sortable table with inline dimension bars + EPAM data
|
|
44
|
+
[Tab 2] Score Chart — horizontal bar chart of all 15 scores
|
|
45
|
+
[Tab 3] Dimension Analysis — radar chart (group avg) + dimension summary bars
|
|
46
|
+
[Tab 4] Geography — location pie chart + primary skill pie chart + geo list
|
|
47
|
+
<section> — Talent Distribution (location pie + skill pie side by side)
|
|
48
|
+
<modal> — User detail modal (opens on row click)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Components Used (CodeMie Design System)
|
|
54
|
+
|
|
55
|
+
| Component | Class(es) | Usage |
|
|
56
|
+
|-----------|-----------|-------|
|
|
57
|
+
| Stat cards | `.stat-grid` / `.stat-card` | KPI tiles at the top |
|
|
58
|
+
| Card | `.card` / `.card-header` / `.card-body` | Main leaderboard container |
|
|
59
|
+
| Tabs | `.tabs` / `.tabs-list` / `.tab-item` / `.tabs-panel` | Four views inside the card |
|
|
60
|
+
| Table | `.table` | Rankings table |
|
|
61
|
+
| Badges (tier) | `.tier-pioneer` / `.tier-expert` | Tier labels (custom classes, styled inline) |
|
|
62
|
+
| Rank badge | `.rank-badge .rank-1/2/3/rank-other` | Numbered rank circles |
|
|
63
|
+
| Avatar | `.avatar .avatar-color-N` | User initials, 21 colour variants |
|
|
64
|
+
| Tags | `.tag` / `.tag-sm` / `.tag-blue` | Project codes and skill labels |
|
|
65
|
+
| Alert | `.alert .alert-info` | Scoring model info banner |
|
|
66
|
+
| Modal overlay | `.modal-overlay` | Backdrop for user detail modal |
|
|
67
|
+
| Pagination | `.pagination` / `.page-btn` | (added if list > one page) |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Charts
|
|
72
|
+
|
|
73
|
+
### 1. Score Bar Chart (Tab 2 — "Score Chart")
|
|
74
|
+
- **Type**: Horizontal bar (`Chart.js` — `bar`, `indexAxis: 'y'`)
|
|
75
|
+
- **Data**: Each person's `score` value (0–100)
|
|
76
|
+
- **Colours**: Pioneer bars use purple (`#C084FC`); Expert bars use blue (`#2297F6`)
|
|
77
|
+
- **Canvas**: `id="scoreBarChart"`
|
|
78
|
+
- **Lazy init**: Initialised only when the tab is first activated (`window._scoreChartInit` flag)
|
|
79
|
+
|
|
80
|
+
### 2. Radar Chart — Group Averages (Tab 3 — "Dimension Analysis")
|
|
81
|
+
- **Type**: Radar (`Chart.js` — `radar`)
|
|
82
|
+
- **Data**: Average D1–D6 scores across all 15 people
|
|
83
|
+
- **Labels**: `D1 Platform Use`, `D2 Platform Create`, `D3 Workflow Use`, `D4 Workflow Create`, `D5 CLI & Agentic`, `D6 Impact`
|
|
84
|
+
- **Canvas**: `id="radarChart"`
|
|
85
|
+
- **Lazy init**: `window._radarInit` flag
|
|
86
|
+
|
|
87
|
+
### 3. Location Pie Chart (Tab 4 + Talent Distribution section)
|
|
88
|
+
- **Type**: Doughnut (`Chart.js` — `doughnut`)
|
|
89
|
+
- **Data**: Grouped count of people per location country
|
|
90
|
+
- **Canvas**: `id="locationPieChart"`
|
|
91
|
+
- **Legend**: Custom HTML legend `id="location-legend"` rendered beside the chart
|
|
92
|
+
- **Lazy init**: `window._locationPieInit` flag
|
|
93
|
+
|
|
94
|
+
### 4. Primary Skill Pie Chart (Tab 4 + Talent Distribution section)
|
|
95
|
+
- **Type**: Doughnut (`Chart.js` — `doughnut`)
|
|
96
|
+
- **Data**: First skill of each person, normalised via `primarySkill()`:
|
|
97
|
+
- `SET.Java` → `Java`
|
|
98
|
+
- `Python.Core` → `Python`
|
|
99
|
+
- `Support.Users` → `User Support`
|
|
100
|
+
- `Software Development Management` → `Mgmt`
|
|
101
|
+
- **Canvas**: `id="skillPieChart"`
|
|
102
|
+
- **Legend**: Custom HTML legend `id="skill-legend"`
|
|
103
|
+
- **Lazy init**: `window._skillPieInit` flag
|
|
104
|
+
|
|
105
|
+
### 5. Modal Radar Chart (User detail modal)
|
|
106
|
+
- **Type**: Radar (`Chart.js` — `radar`)
|
|
107
|
+
- **Data**: Individual person's D1–D6 scores vs group average (two datasets)
|
|
108
|
+
- **Canvas**: `id="modal-radar-canvas"`
|
|
109
|
+
- **Lifecycle**: Destroyed on modal close (`_modalRadar.destroy()`), recreated on each open to avoid canvas reuse errors
|
|
110
|
+
- **Colours**: Pioneer → `#C084FC` (purple), Expert → `#2297F6` (blue)
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## User Detail Modal
|
|
115
|
+
|
|
116
|
+
Opens when any table row is clicked. Closes on Escape, close button click, or overlay click.
|
|
117
|
+
|
|
118
|
+
**Layout:**
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
[modal-hero] — Gradient header (purple tint = pioneer, blue tint = expert)
|
|
122
|
+
[avatar 88px] — Initials, colour from PEOPLE.color index
|
|
123
|
+
[name + title] — Full name, job title, rank badge, tier badge
|
|
124
|
+
[score block] — Champion score in large numerals (glassmorphism card)
|
|
125
|
+
[close btn] — Absolute top-right, frosted glass style
|
|
126
|
+
|
|
127
|
+
[info-tiles] — 3-column grid: Location · Department · Active Projects
|
|
128
|
+
|
|
129
|
+
[modal-body two-col]
|
|
130
|
+
Left column:
|
|
131
|
+
[Dimension Breakdown] — 6 rows, each: colour dot · label · weight% · bar · pct%
|
|
132
|
+
CSS grid: 14px 1fr 36px 1fr 44px
|
|
133
|
+
Right column:
|
|
134
|
+
[Performance Radar] — 240px canvas, person vs group avg
|
|
135
|
+
[Skills] — tag chips for all skills
|
|
136
|
+
[EPAM Projects] — blue tag chips for project codes
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Key element IDs:**
|
|
140
|
+
|
|
141
|
+
| ID | Content |
|
|
142
|
+
|----|---------|
|
|
143
|
+
| `modal-hero-bg` | Hero div — background gradient set by JS |
|
|
144
|
+
| `modal-avatar` | Avatar div — initials + inline background colour |
|
|
145
|
+
| `modal-name` | Person's full name |
|
|
146
|
+
| `modal-subtitle` | Job title |
|
|
147
|
+
| `modal-rank-badge` | Rank badge HTML |
|
|
148
|
+
| `modal-tier-badge` | Tier badge HTML |
|
|
149
|
+
| `modal-score-val` | Score number (`color` set by tier) |
|
|
150
|
+
| `modal-location` | Location tag chip |
|
|
151
|
+
| `modal-dept` | Department text |
|
|
152
|
+
| `modal-projects-tile` | First 2 project chips in info tile |
|
|
153
|
+
| `modal-dim-bars` | Dimension breakdown rows (injected by JS) |
|
|
154
|
+
| `modal-radar-canvas` | Radar chart canvas |
|
|
155
|
+
| `modal-skills` | Skill tags |
|
|
156
|
+
| `modal-projects` | Full project tag list |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## PEOPLE Data Array
|
|
161
|
+
|
|
162
|
+
Each entry in the `PEOPLE` array merges leaderboard + EPAM data:
|
|
163
|
+
|
|
164
|
+
```javascript
|
|
165
|
+
{
|
|
166
|
+
rank: Number, // 1–N
|
|
167
|
+
name: String, // Full display name
|
|
168
|
+
initials: String, // 2-letter initials for avatar
|
|
169
|
+
color: Number, // 0–20, maps to avatar colour palette
|
|
170
|
+
score: Number, // Total champion score (e.g. 81.22)
|
|
171
|
+
tier: String, // "pioneer" | "expert" | "advanced" | "practitioner" | "newcomer"
|
|
172
|
+
d1: Number, // Core Platform Usage score (0–1)
|
|
173
|
+
d2: Number, // Core Platform Creation score (0–1)
|
|
174
|
+
d3: Number, // Workflow Usage score (0–1)
|
|
175
|
+
d4: Number, // Workflow Creation score (0–1)
|
|
176
|
+
d5: Number, // CLI & Agentic Engineering score (0–1)
|
|
177
|
+
d6: Number, // Impact & Knowledge score (0–1)
|
|
178
|
+
title: String, // EPAM job title
|
|
179
|
+
dept: String, // EPAM department / unit name
|
|
180
|
+
location: String, // Country from EPAM profile
|
|
181
|
+
projects: String[], // EPAM active project codes
|
|
182
|
+
skills: String[] // EPAM primary skills list
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Scoring Dimensions Reference
|
|
189
|
+
|
|
190
|
+
| ID | Label | Weight | Description |
|
|
191
|
+
|----|-------|--------|-------------|
|
|
192
|
+
| D1 | Core Platform Usage | 20% | Conversations, assistant interactions |
|
|
193
|
+
| D2 | Core Platform Creation | 20% | Assistants, datasources created |
|
|
194
|
+
| D3 | Workflow Usage | 10% | Workflow executions |
|
|
195
|
+
| D4 | Workflow Creation | 10% | Workflows authored |
|
|
196
|
+
| D5 | CLI & Agentic Engineering | 30% | Coding agent sessions, tokens, repos |
|
|
197
|
+
| D6 | Impact & Knowledge | 10% | Marketplace publishing, knowledge sharing |
|
|
198
|
+
|
|
199
|
+
**Tier thresholds:** Pioneer ≥ 80 · Expert ≥ 65 · Advanced ≥ 45 · Practitioner ≥ 25 · Newcomer < 25
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Replication Checklist
|
|
204
|
+
|
|
205
|
+
When building a new leaderboard dashboard for a different user or time period:
|
|
206
|
+
|
|
207
|
+
1. Run `leaderboard-top <N>` + `leaderboard-summary` + `leaderboard-tiers` + `leaderboard-dimensions`
|
|
208
|
+
2. For each person, call `epam-peopleassignments-finder` in parallel batches of 5
|
|
209
|
+
3. Merge leaderboard scores with EPAM profile data into `PEOPLE` array
|
|
210
|
+
4. Inline all 8 CodeMie CSS files (or link `style-guide.css` if available)
|
|
211
|
+
5. Include Chart.js 4.4.0 CDN script
|
|
212
|
+
6. Build tabs: Rankings Table · Score Chart · Dimension Analysis · Geography
|
|
213
|
+
7. Add user-detail modal with hero header + info tiles + dim bars + radar + skills
|
|
214
|
+
8. Save to `reports/<descriptive-name>.html`
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## File Location Convention
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
reports/
|
|
222
|
+
├── leaderboard-top15-<date>.html ← top-N snapshot
|
|
223
|
+
├── leaderboard-<season>.html ← e.g. leaderboard-2026-Q1.html
|
|
224
|
+
└── leaderboard-monthly-<YYYY-MM>.html
|
|
225
|
+
```
|