@michaelmusyoka/eng-os-kit 1.0.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 +104 -0
- package/bin/eng-os.mjs +222 -0
- package/lib/targets.mjs +49 -0
- package/package.json +14 -0
- package/rules/engineering-contract.md +51 -0
- package/scripts/capture-evidence.sh +38 -0
- package/scripts/placeholder-audit.sh +51 -0
- package/scripts/validate-registry.mjs +71 -0
- package/skills/api-database-contract/SKILL.md +38 -0
- package/skills/code-review/SKILL.md +39 -0
- package/skills/engineering-contract/SKILL.md +40 -0
- package/skills/engineering-contract/references/definition-of-done.md +47 -0
- package/skills/implementation-prompt/SKILL.md +38 -0
- package/skills/incident-response/SKILL.md +34 -0
- package/skills/release-gate/SKILL.md +30 -0
- package/skills/repo-inspection/SKILL.md +41 -0
- package/skills/security-review/SKILL.md +43 -0
- package/skills/security-review/references/prompt-injection.md +18 -0
- package/skills/signature-dark-ui/SKILL.md +72 -0
- package/skills/signature-dark-ui/references/components.md +449 -0
- package/skills/signature-dark-ui/references/layout-and-motion.md +1246 -0
- package/skills/test-strategy/SKILL.md +36 -0
- package/skills/traceability-audit/SKILL.md +46 -0
- package/skills/verification-evidence/SKILL.md +30 -0
- package/state/decision-log.md +6 -0
- package/state/feature-registry.json +18 -0
- package/state/feature-registry.schema.json +29 -0
- package/state/known-issues.md +6 -0
- package/templates/adr.md +19 -0
- package/templates/feature-record.md +40 -0
- package/templates/implementation-prompt.md +49 -0
- package/templates/incident-report.md +29 -0
- package/templates/verification-record.md +45 -0
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
# Components reference
|
|
2
|
+
|
|
3
|
+
Contents: cards and hover, shadows, glassmorphism, navigation, primary and secondary buttons, inputs, badges, data visualization, progress bars, tables, modals, empty states, loading states, iconography, micro-interactions.
|
|
4
|
+
|
|
5
|
+
# 14. CARDS
|
|
6
|
+
|
|
7
|
+
Cards are a major part of the visual system.
|
|
8
|
+
|
|
9
|
+
Default:
|
|
10
|
+
|
|
11
|
+
```css
|
|
12
|
+
background: var(--bg-card);
|
|
13
|
+
border: 1px solid var(--border);
|
|
14
|
+
border-radius: var(--radius);
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Large cards may use:
|
|
18
|
+
|
|
19
|
+
```css
|
|
20
|
+
border-radius: var(--radius-lg);
|
|
21
|
+
padding: 24px–32px;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Reference cards use dark elevated surfaces, subtle borders, controlled radius, and soft shadows.
|
|
25
|
+
|
|
26
|
+
### Card hierarchy
|
|
27
|
+
|
|
28
|
+
Not every card should look identical.
|
|
29
|
+
|
|
30
|
+
Use:
|
|
31
|
+
|
|
32
|
+
### Level 1
|
|
33
|
+
Flat surface.
|
|
34
|
+
|
|
35
|
+
### Level 2
|
|
36
|
+
Surface + border.
|
|
37
|
+
|
|
38
|
+
### Level 3
|
|
39
|
+
Surface + border + shadow.
|
|
40
|
+
|
|
41
|
+
### Level 4
|
|
42
|
+
Featured surface + accent edge/glow.
|
|
43
|
+
|
|
44
|
+
Most components should remain Level 1 or Level 2.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
# 15. CARD HOVER
|
|
49
|
+
|
|
50
|
+
Hover should be subtle.
|
|
51
|
+
|
|
52
|
+
Preferred:
|
|
53
|
+
|
|
54
|
+
```css
|
|
55
|
+
transform: translateY(-2px);
|
|
56
|
+
border-color: var(--border-bright);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Optionally:
|
|
60
|
+
|
|
61
|
+
```css
|
|
62
|
+
box-shadow: var(--shadow-glow);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Do not make cards jump 10–20px.
|
|
66
|
+
|
|
67
|
+
Do not rotate cards.
|
|
68
|
+
|
|
69
|
+
Do not add huge glow effects.
|
|
70
|
+
|
|
71
|
+
The reference uses approximately 2px elevation on interactive cards.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
# 16. SHADOWS
|
|
76
|
+
|
|
77
|
+
Use soft, deep shadows.
|
|
78
|
+
|
|
79
|
+
Reference:
|
|
80
|
+
|
|
81
|
+
```css
|
|
82
|
+
--shadow-card: 0 4px 32px rgba(0,0,0,0.45);
|
|
83
|
+
--shadow-glow: 0 0 32px rgba(59,130,246,0.25);
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
Shadows should establish depth.
|
|
89
|
+
|
|
90
|
+
They should not make every element look like it is floating.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
# 17. GLASSMORPHISM
|
|
95
|
+
|
|
96
|
+
Use sparingly.
|
|
97
|
+
|
|
98
|
+
Acceptable:
|
|
99
|
+
|
|
100
|
+
- sticky navigation
|
|
101
|
+
- modal overlays
|
|
102
|
+
- floating contextual UI
|
|
103
|
+
- occasional hero decoration
|
|
104
|
+
|
|
105
|
+
Example:
|
|
106
|
+
|
|
107
|
+
```css
|
|
108
|
+
background: rgba(6,9,20,0.85);
|
|
109
|
+
backdrop-filter: blur(20px);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The reference uses this treatment on its sticky navigation.
|
|
113
|
+
|
|
114
|
+
Do not build the entire site from translucent glass cards.
|
|
115
|
+
|
|
116
|
+
That is one of the fastest ways to make the site look like a generic AI-generated interface.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
# 18. NAVIGATION
|
|
121
|
+
|
|
122
|
+
Desktop navigation:
|
|
123
|
+
|
|
124
|
+
- compact
|
|
125
|
+
- horizontal
|
|
126
|
+
- centered within max-width container
|
|
127
|
+
- sticky when useful
|
|
128
|
+
- translucent/dark
|
|
129
|
+
- subtle bottom border
|
|
130
|
+
|
|
131
|
+
Navigation links should be quiet.
|
|
132
|
+
|
|
133
|
+
Inactive:
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
muted slate
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Hover:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
primary text
|
|
143
|
+
subtle translucent background
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Active:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
blue-bright
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Reference navigation follows this exact hierarchy.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
# 19. PRIMARY BUTTONS
|
|
157
|
+
|
|
158
|
+
Primary buttons should feel tactile and important.
|
|
159
|
+
|
|
160
|
+
Use:
|
|
161
|
+
|
|
162
|
+
- blue gradient
|
|
163
|
+
- white text
|
|
164
|
+
- 8–14px radius
|
|
165
|
+
- moderate padding
|
|
166
|
+
- subtle glow
|
|
167
|
+
- small hover elevation
|
|
168
|
+
|
|
169
|
+
Example behavior:
|
|
170
|
+
|
|
171
|
+
```css
|
|
172
|
+
transition: all 220ms cubic-bezier(0.4,0,0.2,1);
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Hover:
|
|
176
|
+
|
|
177
|
+
```css
|
|
178
|
+
transform: translateY(-2px);
|
|
179
|
+
box-shadow: 0 8px 32px var(--blue-glow);
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
The reference uses this interaction pattern.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
# 20. SECONDARY BUTTONS
|
|
187
|
+
|
|
188
|
+
Secondary actions should not compete with primary actions.
|
|
189
|
+
|
|
190
|
+
Use:
|
|
191
|
+
|
|
192
|
+
```css
|
|
193
|
+
background: rgba(255,255,255,0.04–0.06);
|
|
194
|
+
border: 1px solid var(--border-bright);
|
|
195
|
+
color: var(--text-primary);
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Hover:
|
|
199
|
+
|
|
200
|
+
```css
|
|
201
|
+
background: rgba(255,255,255,0.08–0.10);
|
|
202
|
+
transform: translateY(-1px or -2px);
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
# 21. INPUTS
|
|
208
|
+
|
|
209
|
+
Inputs should feel integrated into the interface.
|
|
210
|
+
|
|
211
|
+
Use:
|
|
212
|
+
|
|
213
|
+
```css
|
|
214
|
+
background: var(--bg-surface);
|
|
215
|
+
border: 1px solid var(--border);
|
|
216
|
+
border-radius: 8px;
|
|
217
|
+
color: var(--text-primary);
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Focus:
|
|
221
|
+
|
|
222
|
+
```css
|
|
223
|
+
border-color: var(--blue-bright);
|
|
224
|
+
box-shadow: 0 0 0 3px rgba(59,130,246,0.15);
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
The reference uses this exact focus philosophy.
|
|
228
|
+
|
|
229
|
+
Never use browser-default inputs.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
# 22. BADGES
|
|
234
|
+
|
|
235
|
+
Badges should be compact.
|
|
236
|
+
|
|
237
|
+
Use:
|
|
238
|
+
|
|
239
|
+
```text
|
|
240
|
+
small font
|
|
241
|
+
semi-bold
|
|
242
|
+
pill radius
|
|
243
|
+
low-opacity colored background
|
|
244
|
+
colored text
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Examples:
|
|
248
|
+
|
|
249
|
+
```text
|
|
250
|
+
SUCCESS
|
|
251
|
+
PENDING
|
|
252
|
+
PROCESSING
|
|
253
|
+
ACTIVE
|
|
254
|
+
NEW
|
|
255
|
+
POPULAR
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Semantic colors:
|
|
259
|
+
|
|
260
|
+
```text
|
|
261
|
+
success → green
|
|
262
|
+
warning → amber
|
|
263
|
+
danger → red
|
|
264
|
+
info → blue
|
|
265
|
+
special → purple/cyan
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Keep the background translucent.
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
# 23. DATA VISUALIZATION
|
|
273
|
+
|
|
274
|
+
For dashboards:
|
|
275
|
+
|
|
276
|
+
Charts should feel like part of the same interface.
|
|
277
|
+
|
|
278
|
+
Use:
|
|
279
|
+
|
|
280
|
+
- dark chart surfaces
|
|
281
|
+
- muted grid lines
|
|
282
|
+
- luminous data lines
|
|
283
|
+
- blue/cyan primary series
|
|
284
|
+
- green for positive metrics
|
|
285
|
+
- amber for warnings
|
|
286
|
+
- purple for secondary categories
|
|
287
|
+
|
|
288
|
+
The reference uses blue, cyan, purple, amber, and green as its primary chart vocabulary.
|
|
289
|
+
|
|
290
|
+
Do not use random chart palettes.
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
# 24. PROGRESS BARS
|
|
295
|
+
|
|
296
|
+
Progress bars should be:
|
|
297
|
+
|
|
298
|
+
- thin
|
|
299
|
+
- rounded
|
|
300
|
+
- dark track
|
|
301
|
+
- bright fill
|
|
302
|
+
- animated when data loads
|
|
303
|
+
|
|
304
|
+
Typical:
|
|
305
|
+
|
|
306
|
+
```text
|
|
307
|
+
track: 6–8px
|
|
308
|
+
radius: full
|
|
309
|
+
fill: accent
|
|
310
|
+
transition: 600ms ease
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
The reference uses approximately 6px conversion bars with animated width transitions.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
# 41. TABLES
|
|
318
|
+
|
|
319
|
+
Tables should feel integrated rather than like HTML defaults.
|
|
320
|
+
|
|
321
|
+
Use:
|
|
322
|
+
|
|
323
|
+
- compact row heights
|
|
324
|
+
- muted headers
|
|
325
|
+
- thin dividers
|
|
326
|
+
- subtle hover
|
|
327
|
+
- semantic badges
|
|
328
|
+
- aligned numerical values
|
|
329
|
+
- horizontal scrolling on mobile
|
|
330
|
+
|
|
331
|
+
Reference behavior includes muted table headers, subtle row borders, and extremely low-opacity hover states.
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
# 42. MODALS
|
|
336
|
+
|
|
337
|
+
Modal:
|
|
338
|
+
|
|
339
|
+
- dark card
|
|
340
|
+
- 20px radius
|
|
341
|
+
- subtle bright border
|
|
342
|
+
- blurred overlay
|
|
343
|
+
- controlled entrance animation
|
|
344
|
+
|
|
345
|
+
Reference modal behavior uses a dark elevated card, brightened border, blurred overlay, and a small translate/scale entrance.
|
|
346
|
+
|
|
347
|
+
Preferred entrance:
|
|
348
|
+
|
|
349
|
+
```text
|
|
350
|
+
opacity: 0 → 1
|
|
351
|
+
translateY: 20px → 0
|
|
352
|
+
scale: .97 → 1
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
# 43. EMPTY STATES
|
|
358
|
+
|
|
359
|
+
Never leave an empty area blank.
|
|
360
|
+
|
|
361
|
+
Use:
|
|
362
|
+
|
|
363
|
+
- Signature Signal
|
|
364
|
+
- small icon
|
|
365
|
+
- concise explanation
|
|
366
|
+
- optional action
|
|
367
|
+
|
|
368
|
+
Example:
|
|
369
|
+
|
|
370
|
+
```text
|
|
371
|
+
[Signature Signal]
|
|
372
|
+
|
|
373
|
+
No activity yet
|
|
374
|
+
|
|
375
|
+
Your recent activity will appear here.
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
Keep it understated.
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
# 44. LOADING STATES
|
|
383
|
+
|
|
384
|
+
Prefer skeletons or restrained shimmer.
|
|
385
|
+
|
|
386
|
+
Skeleton colors:
|
|
387
|
+
|
|
388
|
+
```text
|
|
389
|
+
background: rgba(255,255,255,.04)
|
|
390
|
+
highlight: rgba(255,255,255,.07)
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
Do not create enormous animated loading screens unless necessary.
|
|
394
|
+
|
|
395
|
+
The Signature Signal may be used as a subtle loading indicator.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
# 48. ICONOGRAPHY
|
|
400
|
+
|
|
401
|
+
Prefer:
|
|
402
|
+
|
|
403
|
+
- Lucide-style icons
|
|
404
|
+
- clean SVG icons
|
|
405
|
+
- consistent stroke width
|
|
406
|
+
- 16–20px typical size
|
|
407
|
+
|
|
408
|
+
Use icons as information enhancers.
|
|
409
|
+
|
|
410
|
+
Do not use emojis as the primary icon system.
|
|
411
|
+
|
|
412
|
+
Emojis may occasionally appear in dashboards or marketing copy where they make sense, but the core interface should use a coherent icon family.
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
# 49. MICRO-INTERACTIONS
|
|
417
|
+
|
|
418
|
+
Every interactive element should communicate its state.
|
|
419
|
+
|
|
420
|
+
Examples:
|
|
421
|
+
|
|
422
|
+
### Button
|
|
423
|
+
|
|
424
|
+
Rest → hover → pressed → disabled
|
|
425
|
+
|
|
426
|
+
### Navigation
|
|
427
|
+
|
|
428
|
+
Inactive → hover → active
|
|
429
|
+
|
|
430
|
+
### Input
|
|
431
|
+
|
|
432
|
+
Rest → focus → error → success
|
|
433
|
+
|
|
434
|
+
### Card
|
|
435
|
+
|
|
436
|
+
Rest → hover → selected
|
|
437
|
+
|
|
438
|
+
### Dropdown
|
|
439
|
+
|
|
440
|
+
Closed → opening → open
|
|
441
|
+
|
|
442
|
+
### Modal
|
|
443
|
+
|
|
444
|
+
Hidden → entering → active → exiting
|
|
445
|
+
|
|
446
|
+
Animations should be fast enough to feel responsive.
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|