chekk 0.2.5 → 0.4.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/bin/chekk.js +1 -1
- package/package.json +1 -1
- package/src/display.js +443 -163
- package/src/index.js +101 -10
- package/src/insights.js +503 -0
- package/src/scorer.js +55 -26
package/src/scorer.js
CHANGED
|
@@ -9,19 +9,14 @@
|
|
|
9
9
|
// ── Tier thresholds (match GitHub analysis) ──
|
|
10
10
|
|
|
11
11
|
const TIERS = [
|
|
12
|
-
{ name: 'LEGENDARY', min: 85, badge: '
|
|
13
|
-
{ name: 'ULTRA RARE', min: 73, badge: '
|
|
14
|
-
{ name: 'RARE', min: 60, badge: '
|
|
15
|
-
{ name: 'UNCOMMON', min: 47, badge: '
|
|
16
|
-
{ name: 'COMMON', min: 0, badge: '
|
|
12
|
+
{ name: 'LEGENDARY', min: 85, badge: '\uD83C\uDF1F\uD83C\uDF1F\uD83C\uDF1F', percentile: 'Top 1%' },
|
|
13
|
+
{ name: 'ULTRA RARE', min: 73, badge: '\uD83C\uDF1F\uD83C\uDF1F', percentile: 'Top 5%' },
|
|
14
|
+
{ name: 'RARE', min: 60, badge: '\u2B50', percentile: 'Top 15%' },
|
|
15
|
+
{ name: 'UNCOMMON', min: 47, badge: '\u25C6', percentile: 'Top 30%' },
|
|
16
|
+
{ name: 'COMMON', min: 0, badge: '\u25CF', percentile: 'Top 50%' },
|
|
17
17
|
];
|
|
18
18
|
|
|
19
19
|
// ── Archetype definitions ──
|
|
20
|
-
// Each archetype has a match function based on the 4 CLI dimension scores:
|
|
21
|
-
// decomposition (thinking), debugCycles (debugging),
|
|
22
|
-
// aiLeverage (AI leverage), sessionStructure (workflow)
|
|
23
|
-
//
|
|
24
|
-
// Tier-restricted: archetypes only match within their allowed tier range.
|
|
25
20
|
|
|
26
21
|
const ARCHETYPES = [
|
|
27
22
|
// ── LEGENDARY (85+) ──
|
|
@@ -29,8 +24,11 @@ const ARCHETYPES = [
|
|
|
29
24
|
id: 'THE_10X_ENGINEER',
|
|
30
25
|
name: 'THE 10X ENGINEER',
|
|
31
26
|
tierRange: ['LEGENDARY'],
|
|
32
|
-
match: (s) => true,
|
|
27
|
+
match: (s) => true,
|
|
33
28
|
priority: 1,
|
|
29
|
+
distribution: '< 1%',
|
|
30
|
+
description: 'Engineers classified as 10x demonstrate exceptional capability across all dimensions. They decompose complex systems methodically, debug with surgical precision, leverage AI as a strategic partner, and maintain disciplined workflows. This classification indicates mastery-level AI-augmented engineering.',
|
|
31
|
+
bestFor: 'CTO, founding engineer, or principal engineer roles requiring full-stack autonomy.',
|
|
34
32
|
},
|
|
35
33
|
|
|
36
34
|
// ── ULTRA RARE (73-84) ──
|
|
@@ -38,17 +36,21 @@ const ARCHETYPES = [
|
|
|
38
36
|
id: 'THE_ARCHITECT',
|
|
39
37
|
name: 'THE ARCHITECT',
|
|
40
38
|
tierRange: ['ULTRA RARE'],
|
|
41
|
-
// High decomposition + structured workflow + strong leverage
|
|
42
39
|
match: (s) => s.decomposition >= 70 && s.sessionStructure >= 65,
|
|
43
40
|
priority: 2,
|
|
41
|
+
distribution: '3%',
|
|
42
|
+
description: 'Architects demonstrate exceptional problem decomposition paired with disciplined session structure. They think in systems, set context deliberately, and use AI for design-level decisions rather than line-level coding. Their sessions show a plan-first, build-second pattern.',
|
|
43
|
+
bestFor: 'Staff engineer, technical lead, or systems architect roles.',
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
id: 'THE_PROFESSOR',
|
|
47
47
|
name: 'THE PROFESSOR',
|
|
48
48
|
tierRange: ['ULTRA RARE'],
|
|
49
|
-
// Exceptional at explaining: high decomposition, detailed prompts, strong context-setting
|
|
50
49
|
match: (s) => s.decomposition >= 65 && s.sessionStructure >= 70,
|
|
51
50
|
priority: 3,
|
|
51
|
+
distribution: '2%',
|
|
52
|
+
description: 'Professors combine deep analytical thinking with structured, pedagogical workflows. Their prompts read like detailed specifications. They set context meticulously and review output critically, treating AI as a collaborator that needs clear direction.',
|
|
53
|
+
bestFor: 'Technical leadership, developer education, or architecture review roles.',
|
|
52
54
|
},
|
|
53
55
|
|
|
54
56
|
// ── RARE (60-72) ──
|
|
@@ -56,25 +58,31 @@ const ARCHETYPES = [
|
|
|
56
58
|
id: 'THE_SPECIALIST',
|
|
57
59
|
name: 'THE SPECIALIST',
|
|
58
60
|
tierRange: ['RARE'],
|
|
59
|
-
// Deep focused work: high debug efficiency + high leverage in specific domain
|
|
60
61
|
match: (s) => s.debugCycles >= 70 && s.aiLeverage >= 65,
|
|
61
62
|
priority: 4,
|
|
63
|
+
distribution: '6%',
|
|
64
|
+
description: 'Specialists demonstrate deep expertise in targeted domains with precise, efficient debugging patterns and strategic AI tool usage. They favor depth over breadth and tend toward long, focused sessions on complex problems.',
|
|
65
|
+
bestFor: 'Senior engineer roles requiring deep domain expertise and autonomous execution.',
|
|
62
66
|
},
|
|
63
67
|
{
|
|
64
68
|
id: 'THE_SYSTEMS_THINKER',
|
|
65
69
|
name: 'THE SYSTEMS THINKER',
|
|
66
70
|
tierRange: ['RARE'],
|
|
67
|
-
// Strong decomposition + structured approach to complex problems
|
|
68
71
|
match: (s) => s.decomposition >= 65 && s.sessionStructure >= 60,
|
|
69
72
|
priority: 5,
|
|
73
|
+
distribution: '5%',
|
|
74
|
+
description: 'Systems Thinkers break complex problems into well-structured components with deliberate context-setting. Their prompt patterns show they understand how parts connect to wholes, making them effective at designing and maintaining large systems.',
|
|
75
|
+
bestFor: 'Platform engineering, infrastructure, or technical architecture roles.',
|
|
70
76
|
},
|
|
71
77
|
{
|
|
72
78
|
id: 'THE_MAINTAINER',
|
|
73
79
|
name: 'THE MAINTAINER',
|
|
74
80
|
tierRange: ['RARE'],
|
|
75
|
-
// Reliable workflow + solid debugging: keeps things running
|
|
76
81
|
match: (s) => s.sessionStructure >= 60 && s.debugCycles >= 60,
|
|
77
82
|
priority: 6,
|
|
83
|
+
distribution: '4%',
|
|
84
|
+
description: 'Maintainers combine reliable workflow discipline with solid debugging efficiency. They review before shipping, set context for each task, and resolve issues methodically. Their consistency makes them the backbone of production systems.',
|
|
85
|
+
bestFor: 'Senior engineer or tech lead roles where reliability and code quality are paramount.',
|
|
78
86
|
},
|
|
79
87
|
|
|
80
88
|
// ── UNCOMMON (47-59) ──
|
|
@@ -82,44 +90,54 @@ const ARCHETYPES = [
|
|
|
82
90
|
id: 'THE_CRAFTSPERSON',
|
|
83
91
|
name: 'THE CRAFTSPERSON',
|
|
84
92
|
tierRange: ['UNCOMMON'],
|
|
85
|
-
// Quality obsession: high debug precision + structured sessions
|
|
86
93
|
match: (s) => s.debugCycles >= 60 && s.sessionStructure >= 55,
|
|
87
94
|
priority: 7,
|
|
95
|
+
distribution: '8%',
|
|
96
|
+
description: 'Craftspeople show attention to quality through precise debugging and structured sessions. They may not yet operate at the architectural level, but their care for correctness and process indicates strong engineering foundations.',
|
|
97
|
+
bestFor: 'Mid-to-senior engineer roles focused on quality and reliability.',
|
|
88
98
|
},
|
|
89
99
|
{
|
|
90
100
|
id: 'THE_BUILDER',
|
|
91
101
|
name: 'THE BUILDER',
|
|
92
102
|
tierRange: ['UNCOMMON'],
|
|
93
|
-
// Well-rounded: decent across all dimensions
|
|
94
103
|
match: (s) => {
|
|
95
104
|
const min = Math.min(s.decomposition, s.debugCycles, s.aiLeverage, s.sessionStructure);
|
|
96
105
|
return min >= 45;
|
|
97
106
|
},
|
|
98
107
|
priority: 8,
|
|
108
|
+
distribution: '10%',
|
|
109
|
+
description: 'Builders are well-rounded engineers with competence across all dimensions. No major weaknesses, no extreme spikes. They get things done consistently and adapt to different types of problems without over-specializing.',
|
|
110
|
+
bestFor: 'Full-stack or generalist engineer roles requiring versatility.',
|
|
99
111
|
},
|
|
100
112
|
{
|
|
101
113
|
id: 'THE_CONTRIBUTOR',
|
|
102
114
|
name: 'THE CONTRIBUTOR',
|
|
103
115
|
tierRange: ['UNCOMMON'],
|
|
104
|
-
// Strong AI leverage + decent decomposition: collaborates well with AI
|
|
105
116
|
match: (s) => s.aiLeverage >= 55 && s.decomposition >= 50,
|
|
106
117
|
priority: 9,
|
|
118
|
+
distribution: '7%',
|
|
119
|
+
description: 'Contributors show strong AI collaboration skills with good problem decomposition. They leverage AI effectively as a coding partner and break work into manageable pieces, though workflow discipline and debugging precision have room to grow.',
|
|
120
|
+
bestFor: 'Engineer roles in AI-forward teams with collaborative development practices.',
|
|
107
121
|
},
|
|
108
122
|
{
|
|
109
123
|
id: 'THE_HIDDEN_GEM',
|
|
110
124
|
name: 'THE HIDDEN GEM',
|
|
111
125
|
tierRange: ['UNCOMMON'],
|
|
112
|
-
// Strong skills but unstructured: high debug or leverage but low structure
|
|
113
126
|
match: (s) => (s.debugCycles >= 55 || s.aiLeverage >= 55) && s.sessionStructure < 50,
|
|
114
127
|
priority: 10,
|
|
128
|
+
distribution: '6%',
|
|
129
|
+
description: 'Hidden Gems demonstrate strong technical skills in debugging or AI leverage but lack workflow structure. They likely produce good output in bursts but could dramatically improve by adding session discipline. High ceiling, underdeveloped process.',
|
|
130
|
+
bestFor: 'Fast-moving startup roles where output matters more than process.',
|
|
115
131
|
},
|
|
116
132
|
{
|
|
117
133
|
id: 'THE_EXPLORER',
|
|
118
134
|
name: 'THE EXPLORER',
|
|
119
135
|
tierRange: ['UNCOMMON'],
|
|
120
|
-
// High leverage + curiosity-driven: research-heavy prompting
|
|
121
136
|
match: (s) => s.aiLeverage >= 50,
|
|
122
137
|
priority: 11,
|
|
138
|
+
distribution: '9%',
|
|
139
|
+
description: 'Explorers are curiosity-driven engineers who use AI heavily for research, investigation, and learning. Their exploratory prompting shows intellectual breadth, though they may benefit from more structured approaches to execution.',
|
|
140
|
+
bestFor: 'R&D, prototyping, or innovation-focused engineer roles.',
|
|
123
141
|
},
|
|
124
142
|
|
|
125
143
|
// ── COMMON (0-46) ──
|
|
@@ -127,33 +145,41 @@ const ARCHETYPES = [
|
|
|
127
145
|
id: 'THE_TINKERER',
|
|
128
146
|
name: 'THE TINKERER',
|
|
129
147
|
tierRange: ['COMMON'],
|
|
130
|
-
// Practical problem-solving: decent debug + some leverage
|
|
131
148
|
match: (s) => s.debugCycles >= 40 && s.aiLeverage >= 35,
|
|
132
149
|
priority: 12,
|
|
150
|
+
distribution: '12%',
|
|
151
|
+
description: 'Tinkerers show practical problem-solving instincts with emerging AI skills. They debug adequately and are beginning to use AI beyond basic code generation, but all dimensions have significant room for growth.',
|
|
152
|
+
bestFor: 'Junior-to-mid engineer roles with growth opportunities.',
|
|
133
153
|
},
|
|
134
154
|
{
|
|
135
155
|
id: 'THE_GRINDER',
|
|
136
156
|
name: 'THE GRINDER',
|
|
137
157
|
tierRange: ['COMMON'],
|
|
138
|
-
// High volume, iterative: lots of exchanges, keeps going
|
|
139
158
|
match: (s) => s.decomposition >= 35,
|
|
140
159
|
priority: 13,
|
|
160
|
+
distribution: '11%',
|
|
161
|
+
description: 'Grinders are high-volume, iterative engineers. They keep going through problems with persistence. The volume of work is there but the approach could benefit from more strategic thinking and structured workflows.',
|
|
162
|
+
bestFor: 'Environments where persistence and volume are valued.',
|
|
141
163
|
},
|
|
142
164
|
{
|
|
143
165
|
id: 'THE_HOBBYIST',
|
|
144
166
|
name: 'THE HOBBYIST',
|
|
145
167
|
tierRange: ['COMMON'],
|
|
146
|
-
// Active but early: some leverage or debugging skill
|
|
147
168
|
match: (s) => s.aiLeverage >= 30 || s.debugCycles >= 30,
|
|
148
169
|
priority: 14,
|
|
170
|
+
distribution: '10%',
|
|
171
|
+
description: 'Hobbyists are active but early in their AI-augmented engineering journey. They show some skill in debugging or AI usage but haven\'t yet developed consistent patterns across dimensions.',
|
|
172
|
+
bestFor: 'Early-career roles with mentorship and structured onboarding.',
|
|
149
173
|
},
|
|
150
174
|
{
|
|
151
175
|
id: 'THE_APPRENTICE',
|
|
152
176
|
name: 'THE APPRENTICE',
|
|
153
177
|
tierRange: ['COMMON'],
|
|
154
|
-
// Default fallback for COMMON tier
|
|
155
178
|
match: () => true,
|
|
156
179
|
priority: 99,
|
|
180
|
+
distribution: '7%',
|
|
181
|
+
description: 'Apprentices are at the beginning of their AI-augmented engineering practice. Their prompt patterns suggest they\'re still learning how to effectively collaborate with AI tools. Significant growth potential across all dimensions.',
|
|
182
|
+
bestFor: 'Entry-level roles with training programs and mentorship.',
|
|
157
183
|
},
|
|
158
184
|
];
|
|
159
185
|
|
|
@@ -183,7 +209,7 @@ export function computeOverallScore(metrics) {
|
|
|
183
209
|
|
|
184
210
|
const archetype = tierArchetypes.find(a => a.match(scores))
|
|
185
211
|
|| tierArchetypes[tierArchetypes.length - 1]
|
|
186
|
-
||
|
|
212
|
+
|| ARCHETYPES[ARCHETYPES.length - 1];
|
|
187
213
|
|
|
188
214
|
return {
|
|
189
215
|
overall,
|
|
@@ -191,6 +217,9 @@ export function computeOverallScore(metrics) {
|
|
|
191
217
|
archetype: {
|
|
192
218
|
id: archetype.id,
|
|
193
219
|
name: archetype.name,
|
|
220
|
+
description: archetype.description,
|
|
221
|
+
distribution: archetype.distribution,
|
|
222
|
+
bestFor: archetype.bestFor,
|
|
194
223
|
},
|
|
195
224
|
tier: tier.name,
|
|
196
225
|
tierBadge: tier.badge,
|