@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.
Files changed (44) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/dist/applier/agents-installer.d.ts +1 -6
  3. package/dist/applier/agents-installer.js +16 -64
  4. package/dist/applier/agents-installer.js.map +1 -1
  5. package/dist/applier/pool.d.ts +34 -0
  6. package/dist/applier/pool.js +166 -0
  7. package/dist/applier/pool.js.map +1 -0
  8. package/dist/applier/preset-definitions.d.ts +15 -0
  9. package/dist/applier/preset-definitions.js +225 -0
  10. package/dist/applier/preset-definitions.js.map +1 -0
  11. package/dist/applier/preset-scaffolder.d.ts +14 -0
  12. package/dist/applier/preset-scaffolder.js +526 -0
  13. package/dist/applier/preset-scaffolder.js.map +1 -0
  14. package/dist/applier/skills-installer.d.ts +5 -3
  15. package/dist/applier/skills-installer.js +26 -75
  16. package/dist/applier/skills-installer.js.map +1 -1
  17. package/dist/commands/help.d.ts +1 -0
  18. package/dist/commands/help.js +98 -0
  19. package/dist/commands/help.js.map +1 -0
  20. package/dist/commands/mcp.js +50 -5
  21. package/dist/commands/mcp.js.map +1 -1
  22. package/dist/commands/new.js +74 -164
  23. package/dist/commands/new.js.map +1 -1
  24. package/dist/commands/scan.d.ts +1 -0
  25. package/dist/commands/scan.js +42 -0
  26. package/dist/commands/scan.js.map +1 -0
  27. package/dist/commands/skills.js +65 -1
  28. package/dist/commands/skills.js.map +1 -1
  29. package/dist/index.js +10 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/utils/paths.d.ts +3 -0
  32. package/dist/utils/paths.js +8 -1
  33. package/dist/utils/paths.js.map +1 -1
  34. package/dist/wizard.js +63 -75
  35. package/dist/wizard.js.map +1 -1
  36. package/package.json +1 -1
  37. package/templates/skills/art-director/SKILL.md +209 -0
  38. package/templates/skills/backend-developer/SKILL.md +198 -0
  39. package/templates/skills/cinematographer/SKILL.md +233 -0
  40. package/templates/skills/colorist/SKILL.md +210 -0
  41. package/templates/skills/devops-developer/SKILL.md +263 -0
  42. package/templates/skills/editor/SKILL.md +166 -0
  43. package/templates/skills/frontend-developer/SKILL.md +147 -0
  44. 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)