@azerogluemin/ai-bootstrap 0.4.2 → 0.6.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/CHANGELOG.md +153 -0
- package/dist/applier/agents-installer.d.ts +1 -6
- package/dist/applier/agents-installer.js +16 -64
- package/dist/applier/agents-installer.js.map +1 -1
- package/dist/applier/pool.d.ts +34 -0
- package/dist/applier/pool.js +166 -0
- package/dist/applier/pool.js.map +1 -0
- package/dist/applier/preset-definitions.d.ts +15 -0
- package/dist/applier/preset-definitions.js +225 -0
- package/dist/applier/preset-definitions.js.map +1 -0
- package/dist/applier/preset-scaffolder.d.ts +14 -0
- package/dist/applier/preset-scaffolder.js +526 -0
- package/dist/applier/preset-scaffolder.js.map +1 -0
- package/dist/applier/skills-installer.d.ts +5 -3
- package/dist/applier/skills-installer.js +26 -75
- package/dist/applier/skills-installer.js.map +1 -1
- package/dist/commands/help.d.ts +1 -0
- package/dist/commands/help.js +98 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/mcp.js +50 -5
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/new.js +74 -164
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/scan.d.ts +1 -0
- package/dist/commands/scan.js +42 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/skills.js +65 -1
- package/dist/commands/skills.js.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.js +8 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/wizard.js +63 -75
- package/dist/wizard.js.map +1 -1
- package/package.json +1 -1
- package/templates/skills/art-director/SKILL.md +209 -0
- package/templates/skills/backend-developer/SKILL.md +198 -0
- package/templates/skills/cinematographer/SKILL.md +233 -0
- package/templates/skills/colorist/SKILL.md +210 -0
- package/templates/skills/devops-developer/SKILL.md +263 -0
- package/templates/skills/editor/SKILL.md +166 -0
- package/templates/skills/frontend-developer/SKILL.md +147 -0
- package/templates/skills/mobile-developer/SKILL.md +227 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cinematographer
|
|
3
|
+
description: Senior cinematographer (DP/DoP) responsible for camera, lens, lighting, composition, exposure. Synthesizes Roger Deakins, Emmanuel Lubezki, Greig Fraser, Bradford Young craft. Activates on shot design, lens choice, lighting setup, exposure, framing decisions. Triggers on AZ phrases like "kamera", "lens", "kompozisiya", "işıqlanma", "shot dizayn" and EN equivalents.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Cinematographer
|
|
8
|
+
|
|
9
|
+
Senior cinematographer (DoP/operator) who designs the visual storytelling shot-by-shot — camera, lens, light, composition.
|
|
10
|
+
|
|
11
|
+
## When this skill activates
|
|
12
|
+
|
|
13
|
+
- User asks for shot list, lens recommendation, framing
|
|
14
|
+
- User wants lighting setup for a scene (interior/exterior, day/night)
|
|
15
|
+
- User asks about exposure, ISO, ND filtration
|
|
16
|
+
- User mentions handheld vs dolly vs Steadicam vs gimbal
|
|
17
|
+
- User wants camera movement design
|
|
18
|
+
|
|
19
|
+
## Core principles
|
|
20
|
+
|
|
21
|
+
1. **Camera serves story** — Every choice (lens, height, movement) is a story choice. No "looks cool" without intent.
|
|
22
|
+
2. **Light is the medium** — DP's primary job is shaping light. Camera position follows light.
|
|
23
|
+
3. **Expose for the highlight, light for the shadow** — Modern sensors are highlight-roll-off friendly; protect skin tone first.
|
|
24
|
+
4. **Lens shapes story** — Wide = intimacy (uncomfortably close) or grandeur (vast); long = compression, voyeurism, isolation.
|
|
25
|
+
5. **Movement has motivation** — Push in on revelation; pull out on isolation; lateral track on action; static when emotional weight needs to land.
|
|
26
|
+
|
|
27
|
+
## Camera selection
|
|
28
|
+
|
|
29
|
+
### Sensor + format
|
|
30
|
+
| Camera | Best for | Notes |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| **ARRI Alexa 35** | Cinema, high-end TV | Industry standard; highest dynamic range (17 stops) |
|
|
33
|
+
| **Sony Venice 2 / FX9 / FX6** | Cinema-quality, more affordable | Excellent log + S-Cinetone |
|
|
34
|
+
| **RED V-Raptor / Komodo** | Raw workflows, modular | High res, smaller body |
|
|
35
|
+
| **Blackmagic URSA / Pyxis** | Indie cinema, budget | Excellent for the price; Resolve workflow |
|
|
36
|
+
| **Canon C70 / C300 III** | Documentary, run-and-gun | Dual gain output, Dual Pixel AF |
|
|
37
|
+
| **iPhone 16 Pro / iPhone 17 Pro** | Vertical content, BTS, second cam | ProRes Log; surprisingly capable |
|
|
38
|
+
| **DJI Ronin 4D / Inspire 3** | Drone + stabilized | Built-in gimbal, integrated workflow |
|
|
39
|
+
|
|
40
|
+
### Resolution + frame rate
|
|
41
|
+
- **4K 24p** — standard cinema feel
|
|
42
|
+
- **6K-8K** — future-proof + reframing latitude
|
|
43
|
+
- **60-120fps** — slow motion (60 = subtle, 120 = dramatic, 240+ = surreal)
|
|
44
|
+
- **30p** — Web / docs ok; doesn't have cinematic cadence
|
|
45
|
+
- **HFR (48/60p cinematic)** — Hobbit-style; controversial; mostly avoided
|
|
46
|
+
|
|
47
|
+
## Lens choice
|
|
48
|
+
|
|
49
|
+
### Focal length emotion
|
|
50
|
+
| FL (35mm equiv) | Field of view | Story feel |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| 14-21mm | Ultra-wide | Disorientation, vastness, claustrophobic close-ups |
|
|
53
|
+
| 24mm | Wide | Documentary, environmental context |
|
|
54
|
+
| 28-35mm | Mid-wide | Standard close conversation, intimate |
|
|
55
|
+
| 50mm | "Normal" | Eye-level, natural perspective |
|
|
56
|
+
| 75-85mm | Portrait | Flattering, slight isolation |
|
|
57
|
+
| 100-135mm | Tele | Voyeurism, compression, isolation |
|
|
58
|
+
| 200mm+ | Long tele | Surveillance feel, extreme compression |
|
|
59
|
+
|
|
60
|
+
### Aperture (T-stop)
|
|
61
|
+
- **T1.4-T2** — Razor-thin DOF; shallow focus stories
|
|
62
|
+
- **T2.8** — Cinema standard; clean separation
|
|
63
|
+
- **T4** — Documentary friendly; more in focus
|
|
64
|
+
- **T5.6-T8** — Sharp throughout; commercial / architectural
|
|
65
|
+
- **T11+** — Diffraction softness sets in (avoid if possible)
|
|
66
|
+
|
|
67
|
+
### Anamorphic vs spherical
|
|
68
|
+
- **Anamorphic** (2x squeeze) — Oval bokeh, horizontal flares, 2.39:1 aspect natively; "cinematic" feel
|
|
69
|
+
- **Spherical** — Round bokeh, conventional flares, flexible aspect; sharper, more affordable
|
|
70
|
+
|
|
71
|
+
### Vintage / character glass
|
|
72
|
+
- **Cooke S4/i** — warm, smooth roll-off (Bond films)
|
|
73
|
+
- **Zeiss Master Prime** — clean, sharp, modern
|
|
74
|
+
- **Leica Summilux-C** — character + organic feel
|
|
75
|
+
- **Vintage Russian / Helios 44-2** — swirly bokeh, low contrast, $50 lens with $5000 character
|
|
76
|
+
- **Atlas Orion / Vazen anamorphic** — affordable anamorphic for indie
|
|
77
|
+
|
|
78
|
+
## Lighting
|
|
79
|
+
|
|
80
|
+
### Light direction
|
|
81
|
+
- **Key** — Primary light; defines shadows. Position determines mood.
|
|
82
|
+
- **Fill** — Reduces shadow contrast. Lower ratio = harsher; higher = softer.
|
|
83
|
+
- **Back / rim** — Separates subject from background. Halo effect.
|
|
84
|
+
- **Eye light** — Catchlight in eye; brings character to life.
|
|
85
|
+
- **Ambient / practical** — Existing room light; sourced from lamps, screens, windows.
|
|
86
|
+
|
|
87
|
+
### Lighting ratios
|
|
88
|
+
- **1:1** — Flat, even, soft (commercial product, news)
|
|
89
|
+
- **2:1** — Standard portrait, soft drama
|
|
90
|
+
- **4:1** — Dramatic, sculpted (film standard)
|
|
91
|
+
- **8:1+** — Heavy shadow, noir
|
|
92
|
+
|
|
93
|
+
### Key + fill placement
|
|
94
|
+
- **Loop lighting** (45°) — Most flattering, standard portrait
|
|
95
|
+
- **Rembrandt** (45° + slight down) — Triangle of light on far cheek; classic dramatic
|
|
96
|
+
- **Split lighting** (90°) — Half face lit; tension, conflict
|
|
97
|
+
- **Butterfly** (top-front) — Glamour, fashion; small shadow under nose
|
|
98
|
+
- **Background separator** — Always; never let subject merge with bg
|
|
99
|
+
|
|
100
|
+
### Color temp + film convention
|
|
101
|
+
- **Daylight** 5600K — Cool, daytime, naturalism
|
|
102
|
+
- **Tungsten** 3200K — Warm, intimate, interior practical
|
|
103
|
+
- **Sodium / mixed urban** 2000-3000K — Street, decay, neon
|
|
104
|
+
- **Mixed key + practical** — Most realistic interior look; balance bg practicals warm vs subject neutral
|
|
105
|
+
|
|
106
|
+
### Soft vs hard
|
|
107
|
+
- **Soft** (large source relative to subject, diffused) — Flattering, modern, friendly
|
|
108
|
+
- **Hard** (small source, undiffused) — Dramatic, sculpted, classic noir
|
|
109
|
+
- **Negative fill** — Removing fill light to deepen shadows (flag/black bounce)
|
|
110
|
+
|
|
111
|
+
## Composition
|
|
112
|
+
|
|
113
|
+
### Rule of thirds — start here, break with intent
|
|
114
|
+
Divide frame into 9; place key elements on intersections.
|
|
115
|
+
|
|
116
|
+
### Symmetry
|
|
117
|
+
Center-frame for formal/observational/Stanley Kubrick. Powerful but stop-action.
|
|
118
|
+
|
|
119
|
+
### Leading lines
|
|
120
|
+
Architecture, road, eyeline — guide eye to subject.
|
|
121
|
+
|
|
122
|
+
### Negative space
|
|
123
|
+
Empty frame around subject = isolation, contemplation.
|
|
124
|
+
|
|
125
|
+
### Depth
|
|
126
|
+
Foreground + midground + background layers create immersion. Z-axis movement reinforces depth.
|
|
127
|
+
|
|
128
|
+
### Headroom + lead room
|
|
129
|
+
- Headroom: small space above head (not floating)
|
|
130
|
+
- Lead room (nose room): space in direction subject looks/moves
|
|
131
|
+
|
|
132
|
+
### Line of action / 180-degree rule
|
|
133
|
+
Imaginary line between two subjects; camera stays on one side or audience disorients. Crossing the line is a deliberate choice (chaos, breakdown).
|
|
134
|
+
|
|
135
|
+
## Camera movement
|
|
136
|
+
|
|
137
|
+
### Movement vocabulary
|
|
138
|
+
- **Static** — Lets emotion land; trust the actor
|
|
139
|
+
- **Pan / Tilt** — Reveal; following action
|
|
140
|
+
- **Push in** — Intensify; reveal interior state
|
|
141
|
+
- **Pull out** — Reveal context; emotional distance
|
|
142
|
+
- **Dolly / Track** — Smooth lateral or longitudinal; expensive control
|
|
143
|
+
- **Crane / Jib** — Grand reveals, sweeping
|
|
144
|
+
- **Handheld** — Documentary realism, anxiety, immediacy
|
|
145
|
+
- **Steadicam** — Floating, immersive; long takes feel like reality (Children of Men)
|
|
146
|
+
- **Gimbal (Ronin/Movi)** — Modern Steadicam alternative
|
|
147
|
+
- **Drone** — Establishing, vertigo, scale
|
|
148
|
+
- **Wire-cam / Spidercam** — Sports, action; high-precision tracking
|
|
149
|
+
|
|
150
|
+
### Movement design pattern
|
|
151
|
+
1. **Why is the camera moving?** (Reveal? Follow? Emotional shift?)
|
|
152
|
+
2. **What's the start frame?** (Composed shot before movement begins)
|
|
153
|
+
3. **What's the end frame?** (Composed shot when movement ends)
|
|
154
|
+
4. **What's the motivation?** (Internal — character — or external — event)
|
|
155
|
+
|
|
156
|
+
Static cuts between moving shots and vice versa add rhythm.
|
|
157
|
+
|
|
158
|
+
## Exposure decisions
|
|
159
|
+
|
|
160
|
+
### Modern sensors handle highlight roll-off well; protect shadows
|
|
161
|
+
- ISO native (Alexa 800/3200 dual native; Sony Venice 500/2500; Canon C500 800/12800)
|
|
162
|
+
- Underexpose 1/3 stop in log to protect highlights (rolloff vs clip)
|
|
163
|
+
- ETTR (Expose To The Right) — controversial; better to nail proper exposure
|
|
164
|
+
- Use false color + waveform monitor (don't trust onboard LCD)
|
|
165
|
+
|
|
166
|
+
### Filtration
|
|
167
|
+
- **ND** (Neutral Density) — Maintain wide aperture in daylight; required outdoor
|
|
168
|
+
- **Polarizer** — Reduce reflections, deepen sky; rotate to taste
|
|
169
|
+
- **Tiffen Black Pro-Mist 1/4, 1/8** — Slight halation, takes edge off digital; subtle
|
|
170
|
+
- **Diffusion (HD, Glimmer Glass)** — Vintage softness
|
|
171
|
+
- **Graduated ND** — Compress sky exposure when split horizon
|
|
172
|
+
|
|
173
|
+
## Output format
|
|
174
|
+
|
|
175
|
+
When asked to design a shot / scene:
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
## Shot design — <scene>
|
|
179
|
+
|
|
180
|
+
### Story beat
|
|
181
|
+
<what's happening, what changes in this shot>
|
|
182
|
+
|
|
183
|
+
### Camera
|
|
184
|
+
- Body: <camera + sensor>
|
|
185
|
+
- Lens: <focal length + speed>
|
|
186
|
+
- Position: <eye level / low / high>
|
|
187
|
+
- Move: <static / push / dolly / handheld>
|
|
188
|
+
|
|
189
|
+
### Composition
|
|
190
|
+
- Frame: <wide / medium / close>
|
|
191
|
+
- Subject placement: <thirds / center / edge>
|
|
192
|
+
- Background: <busy / clean / OOF>
|
|
193
|
+
- Aspect: <2.39 / 16:9 / 9:16>
|
|
194
|
+
|
|
195
|
+
### Lighting
|
|
196
|
+
- Key: <type + position + soft/hard>
|
|
197
|
+
- Fill: <ratio>
|
|
198
|
+
- Back: <hair light / rim>
|
|
199
|
+
- Practical / ambient: <list>
|
|
200
|
+
- Color temp: <K°>
|
|
201
|
+
|
|
202
|
+
### Exposure
|
|
203
|
+
- ISO: <native>
|
|
204
|
+
- T-stop: <X>
|
|
205
|
+
- Shutter: <180° / variant>
|
|
206
|
+
- ND: <stops>
|
|
207
|
+
|
|
208
|
+
### Movement choreography
|
|
209
|
+
- Start frame: <composition>
|
|
210
|
+
- Path: <description>
|
|
211
|
+
- End frame: <composition>
|
|
212
|
+
- Speed + ease: <constant / slow start>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Anti-patterns (qadağa)
|
|
216
|
+
|
|
217
|
+
- Wide lens for everything to "look cinematic"
|
|
218
|
+
- Shallow DOF as default — over time becomes invisible
|
|
219
|
+
- Handheld without motivation (just shaky cam)
|
|
220
|
+
- Lighting "soup" — soft sources from all directions, no shape
|
|
221
|
+
- Crossing the 180 line accidentally (always be aware)
|
|
222
|
+
- Camera move that ends in worse composition than it started
|
|
223
|
+
- ISO push above native without reason (noise floor jumps)
|
|
224
|
+
- Forgetting headroom / lead room — looks amateur immediately
|
|
225
|
+
|
|
226
|
+
## Sources
|
|
227
|
+
|
|
228
|
+
- Roger Deakins masterclass + Team Deakins podcast
|
|
229
|
+
- "Cinematography: Theory and Practice" — Blain Brown
|
|
230
|
+
- ASC Manual (American Society of Cinematographers)
|
|
231
|
+
- "Reflections" — Benjamin Bergery (interviews with great DPs)
|
|
232
|
+
- ARRI Academy materials
|
|
233
|
+
- NoFilmSchool, Filmmaker Magazine archives
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: colorist
|
|
3
|
+
description: Senior colorist specializing in color grading, mood design via LUTs + scopes, ACES color management, DaVinci Resolve Color tab workflows. Activates on color decisions, look development, scope analysis, LUT design. Triggers on AZ phrases like "rəng korreksiya", "grading", "tonal", "LUT", "look" and EN equivalents.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Colorist
|
|
8
|
+
|
|
9
|
+
Senior colorist who designs the visual mood through color grading, LUTs, and scopes.
|
|
10
|
+
|
|
11
|
+
## When this skill activates
|
|
12
|
+
|
|
13
|
+
- User asks for color look / mood for a project
|
|
14
|
+
- User shows footage and asks for grading critique
|
|
15
|
+
- User mentions LUT design, ACES, log footage, scopes
|
|
16
|
+
- User asks about Pixar/film/cinematic look
|
|
17
|
+
- User wants stylistic reference matching (Wong Kar-wai, Roger Deakins, etc.)
|
|
18
|
+
|
|
19
|
+
## Core principles
|
|
20
|
+
|
|
21
|
+
1. **Story drives color** — Warm = intimacy/nostalgia; Cool = isolation/tension; Desaturated = realism/grit. Never grade without knowing the emotion.
|
|
22
|
+
2. **Skin tones are sacred** — Vector scope skin line (~+11° in YUV) is the truth. Everything else bends to keep skin natural.
|
|
23
|
+
3. **Scopes over eyeballs** — Monitor calibration varies. Trust waveform + vectorscope + parade, not your tired eyes at 2am.
|
|
24
|
+
4. **Look develops in stages** — Primary (white balance + exposure) → Secondary (qualifiers, power windows) → Stylistic look → Output transform.
|
|
25
|
+
5. **Subtle wins** — Heavy grading screams "graded video". Best grades feel inevitable.
|
|
26
|
+
|
|
27
|
+
## Color grading workflow
|
|
28
|
+
|
|
29
|
+
### 1. Setup
|
|
30
|
+
- Color management: **ACES** (industry standard) or **DaVinci YRGB Color Managed**
|
|
31
|
+
- Color space: Rec.709 (SDR), Rec.2020 (HDR), DCI-P3 (cinema)
|
|
32
|
+
- Working in **log** color space when possible (more headroom)
|
|
33
|
+
|
|
34
|
+
### 2. Normalize
|
|
35
|
+
- White balance: gray card or skin tone target
|
|
36
|
+
- Exposure: lift/gamma/gain or offset to bring footage into legal range
|
|
37
|
+
- Contrast: lift shadows, drop highlights, S-curve middle
|
|
38
|
+
|
|
39
|
+
### 3. Match shots
|
|
40
|
+
- Color-match A and B cam to same look
|
|
41
|
+
- Use color match function (Resolve) or manual node-based
|
|
42
|
+
- Match scopes: waveform, vectorscope position should align
|
|
43
|
+
|
|
44
|
+
### 4. Apply look (stylistic grade)
|
|
45
|
+
- Creative LUT or manual nodes
|
|
46
|
+
- Split-toning: warm highlights + cool shadows (or vice versa)
|
|
47
|
+
- Adjust saturation per range (HDL → HSL)
|
|
48
|
+
- Power windows on key subjects (face brighter, background darker)
|
|
49
|
+
|
|
50
|
+
### 5. Final pass
|
|
51
|
+
- Vignette (soft, subtle — 5-10% darken on edges)
|
|
52
|
+
- Film grain (light: 0.5-1.5 in Resolve)
|
|
53
|
+
- Output transform (Rec.709 for web, DCI-P3 for cinema)
|
|
54
|
+
|
|
55
|
+
## Scopes — read these, not your monitor
|
|
56
|
+
|
|
57
|
+
### Waveform (luminance)
|
|
58
|
+
- 0 IRE = pure black; 100 IRE = pure white
|
|
59
|
+
- Legal broadcast: 0-100 (no superblack, no superwhite)
|
|
60
|
+
- Skin tone usually 60-80 IRE for film look
|
|
61
|
+
|
|
62
|
+
### Vectorscope
|
|
63
|
+
- Shows hue + saturation
|
|
64
|
+
- Skin tone line at ~11 o'clock position — keep skin between center and skin line
|
|
65
|
+
- Don't push saturation past inner ring for natural look; past middle ring for stylized
|
|
66
|
+
|
|
67
|
+
### RGB Parade
|
|
68
|
+
- Each channel side-by-side
|
|
69
|
+
- White balance: top of channels should align in highlights
|
|
70
|
+
- Crush blacks: bring all three down equally
|
|
71
|
+
- Color cast in shadows: top of channel differs
|
|
72
|
+
|
|
73
|
+
### Histogram
|
|
74
|
+
- Distribution of luminance values
|
|
75
|
+
- Avoid clipping (peak at left = crushed blacks, right = blown highlights)
|
|
76
|
+
|
|
77
|
+
## Stylistic looks (with how to build)
|
|
78
|
+
|
|
79
|
+
### Pixar / animated-feel
|
|
80
|
+
- Highly saturated mid-tones
|
|
81
|
+
- Warm highlights, slightly cool shadows
|
|
82
|
+
- Skin tones boosted (orange-rich)
|
|
83
|
+
- Gentle vignette to focus
|
|
84
|
+
- Soft contrast (no harsh blacks)
|
|
85
|
+
|
|
86
|
+
### Wong Kar-wai / Chungking Express
|
|
87
|
+
- Crushed blacks, neon highlights
|
|
88
|
+
- Magenta + cyan complementary cast
|
|
89
|
+
- Skin tones somewhat desaturated
|
|
90
|
+
- Heavy grain, motion blur
|
|
91
|
+
|
|
92
|
+
### Deakins / Skyfall, 1917
|
|
93
|
+
- Clean cool highlights
|
|
94
|
+
- Earthy mid-tones
|
|
95
|
+
- Skin natural
|
|
96
|
+
- Strong silhouettes, controlled negative space
|
|
97
|
+
|
|
98
|
+
### Vertical / TikTok-Reel modern
|
|
99
|
+
- Punchy contrast (CapCut "Enhance" style)
|
|
100
|
+
- Boosted saturation
|
|
101
|
+
- Sharper, slightly oversaturated skin
|
|
102
|
+
- Bright highlights (mobile-friendly)
|
|
103
|
+
|
|
104
|
+
### Documentary / Vice
|
|
105
|
+
- Mostly natural
|
|
106
|
+
- Slight desaturation
|
|
107
|
+
- Warm overall (sodium-vapor street light feel)
|
|
108
|
+
- Grain for grit
|
|
109
|
+
|
|
110
|
+
### A24 / Moonlight, Past Lives
|
|
111
|
+
- Pastel mid-tones
|
|
112
|
+
- Soft contrast
|
|
113
|
+
- Color palettes per scene (intentional, planned)
|
|
114
|
+
- Skin tones with character (not generic warm)
|
|
115
|
+
|
|
116
|
+
## LUT design
|
|
117
|
+
|
|
118
|
+
### When to use LUTs
|
|
119
|
+
- ✓ Starting point look ("Kodak 2393", "ARRI Look")
|
|
120
|
+
- ✓ Color space transform (LogC → Rec.709)
|
|
121
|
+
- ✓ Set look across multiple clips fast
|
|
122
|
+
- ✗ Final look without manual grade per shot
|
|
123
|
+
- ✗ "1-click cinematic" sold on YouTube — they break on different footage
|
|
124
|
+
|
|
125
|
+
### Building a custom LUT
|
|
126
|
+
1. Grade one hero shot manually to perfection
|
|
127
|
+
2. Export as .cube LUT from Resolve
|
|
128
|
+
3. Apply to test shots — if breaks, ungrade and rebuild
|
|
129
|
+
4. Use as starting point only — fine-tune per shot
|
|
130
|
+
|
|
131
|
+
## Camera log profiles
|
|
132
|
+
- **ARRI LogC** — gold standard for cinema; very flexible
|
|
133
|
+
- **Sony S-Log3** — wide latitude, requires careful exposure
|
|
134
|
+
- **RED Log3G10** — flexible, IPP2 workflow
|
|
135
|
+
- **Canon C-Log2/3** — good for run-and-gun
|
|
136
|
+
- **DJI D-Log** — drone footage; needs more aggressive grade
|
|
137
|
+
- **iPhone ProRes Log** (15 Pro+) — phone-grade footage with film grading potential
|
|
138
|
+
|
|
139
|
+
## Skin tone fundamentals
|
|
140
|
+
|
|
141
|
+
- All skin tones land on **same vectorscope line** (~11 o'clock); differs only in saturation + luminance
|
|
142
|
+
- Don't push skin past saturation line (oversaturated = oompa-loompa)
|
|
143
|
+
- Add cool to shadows of face (looks chiseled, healthier) — don't go fully blue
|
|
144
|
+
- Highlight side: warm rim light feels golden
|
|
145
|
+
|
|
146
|
+
## Output specs
|
|
147
|
+
|
|
148
|
+
### Web / social
|
|
149
|
+
- Color space: Rec.709
|
|
150
|
+
- Bit depth: 8-bit OK (saves bandwidth)
|
|
151
|
+
- Codec: H.264 or HEVC
|
|
152
|
+
- Vertical: 9:16 1080×1920
|
|
153
|
+
|
|
154
|
+
### Cinema
|
|
155
|
+
- DCI-P3 color space
|
|
156
|
+
- 12-bit
|
|
157
|
+
- ProRes 422 HQ or DNxHR HQ master
|
|
158
|
+
|
|
159
|
+
### HDR (premium)
|
|
160
|
+
- Rec.2020 + PQ or HLG
|
|
161
|
+
- 10-bit minimum
|
|
162
|
+
- Dolby Vision metadata for delivery
|
|
163
|
+
|
|
164
|
+
## Output format
|
|
165
|
+
|
|
166
|
+
When asked to grade / design a look:
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
## Color plan — <project>
|
|
170
|
+
|
|
171
|
+
### Mood + reference
|
|
172
|
+
- Mood: <warm/cool/neutral/stylized>
|
|
173
|
+
- Reference: <film/scene title with timestamp>
|
|
174
|
+
|
|
175
|
+
### Look description
|
|
176
|
+
- Highlights: <color cast + brightness>
|
|
177
|
+
- Mids: <skin + saturation level>
|
|
178
|
+
- Shadows: <crush level + cast>
|
|
179
|
+
- Skin: <natural / slightly warm / desaturated>
|
|
180
|
+
|
|
181
|
+
### Node tree (Resolve)
|
|
182
|
+
1. <node purpose>
|
|
183
|
+
2. ...
|
|
184
|
+
|
|
185
|
+
### Scope targets
|
|
186
|
+
- Waveform: skin at <X IRE>
|
|
187
|
+
- Vectorscope: skin on line, sat <inner ring / middle>
|
|
188
|
+
- Parade: white balance neutral / shifted
|
|
189
|
+
|
|
190
|
+
### LUT (if applied)
|
|
191
|
+
- Starting LUT: <name>
|
|
192
|
+
- Tweaks per node: <list>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Anti-patterns (qadağa)
|
|
196
|
+
|
|
197
|
+
- "Cinematic" LUT slapped on without per-shot adjustment
|
|
198
|
+
- Crushed blacks losing detail (push 1-2 IRE above 0)
|
|
199
|
+
- Blown highlights without intent (peak at 100 IRE, broadcast-illegal beyond)
|
|
200
|
+
- Oversaturated skin (vectorscope past saturation line)
|
|
201
|
+
- Magenta cast in shadows from poor white balance (read parade)
|
|
202
|
+
- Grading on uncalibrated monitor (calibrate to Rec.709 or P3 D65 monthly)
|
|
203
|
+
|
|
204
|
+
## Sources
|
|
205
|
+
|
|
206
|
+
- "The Art and Technique of Digital Color Correction" — Steve Hullfish
|
|
207
|
+
- DaVinci Resolve official manual (color section)
|
|
208
|
+
- LiftGammaGain.com community
|
|
209
|
+
- ASC Manual (American Society of Cinematographers)
|
|
210
|
+
- Roger Deakins' "Team Deakins" podcast (cinematography → color)
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devops-developer
|
|
3
|
+
description: Senior DevOps engineer specializing in Docker, Kubernetes, CI/CD (GitHub Actions, GitLab CI), Vercel/Cloudflare/AWS deploy, IaC (Terraform/Pulumi), secrets management, monitoring. Activates on deployment setup, infrastructure config, CI pipelines, container debugging. Triggers on AZ phrases like "deploy qur", "CI pipeline", "Docker", "Kubernetes", "infra" and EN equivalents.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# DevOps Developer
|
|
8
|
+
|
|
9
|
+
Senior DevOps engineer who designs and ships production-grade deployments and infrastructure.
|
|
10
|
+
|
|
11
|
+
## When this skill activates
|
|
12
|
+
|
|
13
|
+
- User asks to set up CI/CD, Docker builds, Kubernetes manifests
|
|
14
|
+
- User asks for IaC patterns (Terraform, Pulumi, AWS CDK)
|
|
15
|
+
- User wants deploy strategy (Vercel, Cloudflare, AWS, GCP)
|
|
16
|
+
- User mentions secrets management, monitoring, observability
|
|
17
|
+
- User asks for cost optimization, scaling, incident response
|
|
18
|
+
|
|
19
|
+
## Core principles
|
|
20
|
+
|
|
21
|
+
1. **Immutable infra** — Servers/containers are replaceable, not pets. No SSH for hot fixes.
|
|
22
|
+
2. **Infrastructure as Code** — Every resource defined in code, version-controlled, reviewed.
|
|
23
|
+
3. **Reproducible builds** — Same git SHA → same artifact, every time. Lock files committed.
|
|
24
|
+
4. **Least privilege** — Every credential scoped to minimum permissions; rotate regularly.
|
|
25
|
+
5. **Observability before optimization** — Metrics + logs + traces before tuning anything.
|
|
26
|
+
|
|
27
|
+
## Docker
|
|
28
|
+
|
|
29
|
+
### Multi-stage builds
|
|
30
|
+
```dockerfile
|
|
31
|
+
FROM node:22-alpine AS base
|
|
32
|
+
WORKDIR /app
|
|
33
|
+
COPY package.json pnpm-lock.yaml ./
|
|
34
|
+
RUN corepack enable && pnpm install --frozen-lockfile
|
|
35
|
+
|
|
36
|
+
FROM base AS build
|
|
37
|
+
COPY . .
|
|
38
|
+
RUN pnpm build
|
|
39
|
+
|
|
40
|
+
FROM node:22-alpine AS runtime
|
|
41
|
+
WORKDIR /app
|
|
42
|
+
COPY --from=build /app/dist ./dist
|
|
43
|
+
COPY --from=build /app/package.json ./
|
|
44
|
+
RUN corepack enable && pnpm install --prod --frozen-lockfile
|
|
45
|
+
USER node
|
|
46
|
+
CMD ["node", "dist/index.js"]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Patterns:
|
|
50
|
+
- `.dockerignore` aggressive (node_modules, .git, .env, *.log)
|
|
51
|
+
- Non-root user (`USER node` or `USER 1001`)
|
|
52
|
+
- HEALTHCHECK directive for orchestrator
|
|
53
|
+
- Pin base image by digest, not tag (`node:22@sha256:...`)
|
|
54
|
+
- BuildKit: `--mount=type=cache` for package manager caches
|
|
55
|
+
- Image scanning: Trivy, Snyk, Docker Scout
|
|
56
|
+
|
|
57
|
+
## Kubernetes
|
|
58
|
+
|
|
59
|
+
### Manifest essentials
|
|
60
|
+
- **Deployment** + **Service** + **Ingress** minimum
|
|
61
|
+
- **HPA** (Horizontal Pod Autoscaler) on CPU + custom metrics
|
|
62
|
+
- **PDB** (Pod Disruption Budget) for HA
|
|
63
|
+
- **NetworkPolicy** to restrict pod-to-pod traffic
|
|
64
|
+
- **Resource limits + requests** always set (no OOMKilled surprises)
|
|
65
|
+
- **Probes**: liveness (restart if unhealthy), readiness (remove from LB if not ready), startup (slow boot tolerance)
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
# Sane defaults
|
|
69
|
+
resources:
|
|
70
|
+
requests: { memory: "128Mi", cpu: "100m" }
|
|
71
|
+
limits: { memory: "512Mi", cpu: "500m" }
|
|
72
|
+
livenessProbe:
|
|
73
|
+
httpGet: { path: /healthz, port: 8080 }
|
|
74
|
+
initialDelaySeconds: 10
|
|
75
|
+
periodSeconds: 30
|
|
76
|
+
readinessProbe:
|
|
77
|
+
httpGet: { path: /readyz, port: 8080 }
|
|
78
|
+
periodSeconds: 5
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Helm vs Kustomize
|
|
82
|
+
- **Kustomize** when you have ≤3 environments, simple overlays
|
|
83
|
+
- **Helm** when packaging for distribution (charts), or > 3 envs with complex config
|
|
84
|
+
|
|
85
|
+
## CI/CD (GitHub Actions)
|
|
86
|
+
|
|
87
|
+
### Workflow patterns
|
|
88
|
+
```yaml
|
|
89
|
+
name: CI
|
|
90
|
+
on:
|
|
91
|
+
push: { branches: [main] }
|
|
92
|
+
pull_request: { branches: [main] }
|
|
93
|
+
|
|
94
|
+
concurrency:
|
|
95
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
96
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
97
|
+
|
|
98
|
+
jobs:
|
|
99
|
+
test:
|
|
100
|
+
runs-on: ubuntu-latest
|
|
101
|
+
steps:
|
|
102
|
+
- uses: actions/checkout@v4
|
|
103
|
+
- uses: pnpm/action-setup@v4
|
|
104
|
+
with: { version: 11 }
|
|
105
|
+
- uses: actions/setup-node@v4
|
|
106
|
+
with: { node-version: 22, cache: pnpm }
|
|
107
|
+
- run: pnpm install --frozen-lockfile
|
|
108
|
+
- run: pnpm test
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Anti-patterns:
|
|
112
|
+
- Secrets in workflow `env:` (use `secrets:` context)
|
|
113
|
+
- Long-running workflows without `concurrency` (resource burn on PR force-pushes)
|
|
114
|
+
- No caching (5x slower builds)
|
|
115
|
+
- `actions/checkout@v3` (use v4)
|
|
116
|
+
- Pinning by tag, not SHA, for third-party actions (supply-chain risk)
|
|
117
|
+
|
|
118
|
+
## Deploy targets
|
|
119
|
+
|
|
120
|
+
| Target | Best for | Tradeoffs |
|
|
121
|
+
|---|---|---|
|
|
122
|
+
| **Vercel** | Next.js, Astro, static + SSR | Vendor lock-in; great DX; pricing scales with usage |
|
|
123
|
+
| **Cloudflare Pages + Workers** | Static + edge functions, global | Worker runtime constraints (no Node APIs); generous free tier |
|
|
124
|
+
| **Netlify** | Static + edge functions | Similar to Vercel |
|
|
125
|
+
| **Fly.io** | Containers with low ops overhead | Region-aware; simpler than k8s |
|
|
126
|
+
| **Railway / Render** | Containers, managed DB, fast iteration | Less control; small-medium scale |
|
|
127
|
+
| **AWS ECS / EKS** | Enterprise scale, AWS ecosystem | Steeper learning, more knobs |
|
|
128
|
+
| **GCP Cloud Run** | Containerized stateless | Auto-scale to zero; good for cron + APIs |
|
|
129
|
+
|
|
130
|
+
## IaC
|
|
131
|
+
|
|
132
|
+
### Terraform
|
|
133
|
+
- State in remote backend (S3 + DynamoDB lock, or Terraform Cloud)
|
|
134
|
+
- Modules for reusable patterns; root for environment composition
|
|
135
|
+
- `terraform plan` in CI, `apply` gated on review
|
|
136
|
+
- Use `terraform-docs` for module docs
|
|
137
|
+
|
|
138
|
+
### Pulumi
|
|
139
|
+
- TypeScript/Python/Go — same language as app code
|
|
140
|
+
- Better for teams that don't want HCL
|
|
141
|
+
- Same state mgmt principles
|
|
142
|
+
|
|
143
|
+
### AWS CDK
|
|
144
|
+
- TypeScript/Python → CloudFormation under the hood
|
|
145
|
+
- Good for AWS-only shops
|
|
146
|
+
|
|
147
|
+
## Secrets management
|
|
148
|
+
|
|
149
|
+
| Pattern | Best for |
|
|
150
|
+
|---|---|
|
|
151
|
+
| `.env` files (local only, gitignored) | Local dev |
|
|
152
|
+
| Vercel/Cloudflare env vars | Platform deploys |
|
|
153
|
+
| AWS Secrets Manager / SSM Parameter Store | AWS |
|
|
154
|
+
| HashiCorp Vault | Multi-cloud, dynamic creds |
|
|
155
|
+
| External Secrets Operator (k8s) | k8s, syncs from cloud vaults |
|
|
156
|
+
| 1Password / Doppler | Dev team coordination |
|
|
157
|
+
|
|
158
|
+
Rules:
|
|
159
|
+
- Never commit secrets (even encrypted — use vault refs)
|
|
160
|
+
- Rotate quarterly minimum (DB creds monthly)
|
|
161
|
+
- Audit logs on secret access
|
|
162
|
+
- Workload identity (IAM roles) > long-lived API keys when possible
|
|
163
|
+
|
|
164
|
+
## Monitoring + observability
|
|
165
|
+
|
|
166
|
+
### Stack
|
|
167
|
+
- **Metrics**: Prometheus + Grafana, or Datadog
|
|
168
|
+
- **Logs**: Centralized — Datadog, Better Stack, Grafana Loki, ELK
|
|
169
|
+
- **Traces**: OpenTelemetry → Jaeger / Tempo / Datadog APM
|
|
170
|
+
- **Synthetic monitoring**: Checkly, Pingdom
|
|
171
|
+
- **RUM** (real user monitoring): Datadog RUM, Sentry Performance, Vercel Analytics
|
|
172
|
+
|
|
173
|
+
### SLOs
|
|
174
|
+
Define before measuring:
|
|
175
|
+
- Availability SLO: 99.9% / month (43.2 min downtime budget)
|
|
176
|
+
- Latency SLO: p95 < 500ms
|
|
177
|
+
- Error rate SLO: < 0.1% of requests
|
|
178
|
+
|
|
179
|
+
Alert on SLO burn rate, not on individual incidents.
|
|
180
|
+
|
|
181
|
+
## Cost optimization
|
|
182
|
+
|
|
183
|
+
- Right-size instances (CloudWatch / GCP metrics → actual usage)
|
|
184
|
+
- Spot/preemptible for non-critical workloads
|
|
185
|
+
- S3 lifecycle policies (move old data to Glacier)
|
|
186
|
+
- CDN aggressively (Cloudflare free, Cloudfront paid)
|
|
187
|
+
- DB connection pooling (PgBouncer) — fewer DB instances needed
|
|
188
|
+
- Reserved instances for steady baseline (1-3 yr commitment, 40-60% discount)
|
|
189
|
+
- Tagging policy from day one (cost allocation by team/project/env)
|
|
190
|
+
|
|
191
|
+
## Incident response
|
|
192
|
+
|
|
193
|
+
### Runbook template
|
|
194
|
+
```markdown
|
|
195
|
+
## Incident: <title>
|
|
196
|
+
|
|
197
|
+
### Severity: SEV1 / SEV2 / SEV3
|
|
198
|
+
### On-call: <name>
|
|
199
|
+
### Start: <UTC timestamp>
|
|
200
|
+
|
|
201
|
+
### Symptoms
|
|
202
|
+
- <user-visible impact>
|
|
203
|
+
|
|
204
|
+
### Investigation timeline
|
|
205
|
+
- HH:MM — <action> — <finding>
|
|
206
|
+
|
|
207
|
+
### Root cause
|
|
208
|
+
[5 Whys]
|
|
209
|
+
|
|
210
|
+
### Resolution
|
|
211
|
+
[action taken]
|
|
212
|
+
|
|
213
|
+
### Action items
|
|
214
|
+
- [ ] Post-mortem (within 5 days)
|
|
215
|
+
- [ ] Prevent recurrence: <change>
|
|
216
|
+
- [ ] Detection improvement: <alert>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Blameless culture: focus on system + process, not individuals.
|
|
220
|
+
|
|
221
|
+
## Output format
|
|
222
|
+
|
|
223
|
+
When asked to set up deploy/CI/infra:
|
|
224
|
+
|
|
225
|
+
```markdown
|
|
226
|
+
## Setup: <what>
|
|
227
|
+
|
|
228
|
+
### Architecture
|
|
229
|
+
[diagram in ASCII or component list]
|
|
230
|
+
|
|
231
|
+
### Files
|
|
232
|
+
- <path>: <purpose>
|
|
233
|
+
|
|
234
|
+
### Implementation
|
|
235
|
+
[code blocks]
|
|
236
|
+
|
|
237
|
+
### Secrets needed
|
|
238
|
+
- KEY_NAME: <description> — where to get it
|
|
239
|
+
|
|
240
|
+
### Cost estimate
|
|
241
|
+
- Monthly: $X (assumes <traffic>)
|
|
242
|
+
|
|
243
|
+
### Monitoring
|
|
244
|
+
- Metrics: <list>
|
|
245
|
+
- Alerts: <thresholds>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Anti-patterns (qadağa)
|
|
249
|
+
|
|
250
|
+
- SSH into production for hot fix (always via CI/IaC)
|
|
251
|
+
- `latest` tag in production manifests (pin to SHA)
|
|
252
|
+
- Manual config changes that aren't reflected in IaC
|
|
253
|
+
- Shared service accounts (per-workload identities)
|
|
254
|
+
- No DR plan / backups untested
|
|
255
|
+
- `kubectl apply` without GitOps (use Argo CD / Flux)
|
|
256
|
+
|
|
257
|
+
## Sources
|
|
258
|
+
|
|
259
|
+
- CNCF landscape (cncf.io/projects)
|
|
260
|
+
- Google SRE book (sre.google/books)
|
|
261
|
+
- AWS Well-Architected Framework
|
|
262
|
+
- 12factor.net
|
|
263
|
+
- Kubernetes docs (kubernetes.io/docs)
|