locus-product-planning 1.0.0 → 1.2.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 (76) hide show
  1. package/.claude-plugin/marketplace.json +31 -0
  2. package/.claude-plugin/plugin.json +32 -0
  3. package/README.md +131 -45
  4. package/agents/engineering/architect-reviewer.md +122 -0
  5. package/agents/engineering/engineering-manager.md +101 -0
  6. package/agents/engineering/principal-engineer.md +98 -0
  7. package/agents/engineering/staff-engineer.md +86 -0
  8. package/agents/engineering/tech-lead.md +114 -0
  9. package/agents/executive/ceo-strategist.md +81 -0
  10. package/agents/executive/cfo-analyst.md +97 -0
  11. package/agents/executive/coo-operations.md +100 -0
  12. package/agents/executive/cpo-product.md +104 -0
  13. package/agents/executive/cto-architect.md +90 -0
  14. package/agents/product/product-manager.md +70 -0
  15. package/agents/product/project-manager.md +95 -0
  16. package/agents/product/qa-strategist.md +132 -0
  17. package/agents/product/scrum-master.md +70 -0
  18. package/dist/index.d.ts +10 -25
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +231 -95
  21. package/dist/lib/skills-core.d.ts +95 -0
  22. package/dist/lib/skills-core.d.ts.map +1 -0
  23. package/dist/lib/skills-core.js +361 -0
  24. package/hooks/hooks.json +15 -0
  25. package/hooks/run-hook.cmd +32 -0
  26. package/hooks/session-start.cmd +13 -0
  27. package/hooks/session-start.sh +70 -0
  28. package/opencode.json +11 -7
  29. package/package.json +18 -4
  30. package/skills/01-executive-suite/ceo-strategist/SKILL.md +132 -0
  31. package/skills/01-executive-suite/cfo-analyst/SKILL.md +187 -0
  32. package/skills/01-executive-suite/coo-operations/SKILL.md +211 -0
  33. package/skills/01-executive-suite/cpo-product/SKILL.md +231 -0
  34. package/skills/01-executive-suite/cto-architect/SKILL.md +173 -0
  35. package/skills/02-product-management/estimation-expert/SKILL.md +139 -0
  36. package/skills/02-product-management/product-manager/SKILL.md +265 -0
  37. package/skills/02-product-management/program-manager/SKILL.md +178 -0
  38. package/skills/02-product-management/project-manager/SKILL.md +221 -0
  39. package/skills/02-product-management/roadmap-strategist/SKILL.md +186 -0
  40. package/skills/02-product-management/scrum-master/SKILL.md +212 -0
  41. package/skills/03-engineering-leadership/architect-reviewer/SKILL.md +249 -0
  42. package/skills/03-engineering-leadership/engineering-manager/SKILL.md +207 -0
  43. package/skills/03-engineering-leadership/principal-engineer/SKILL.md +206 -0
  44. package/skills/03-engineering-leadership/staff-engineer/SKILL.md +237 -0
  45. package/skills/03-engineering-leadership/tech-lead/SKILL.md +296 -0
  46. package/skills/04-developer-specializations/core/api-designer/SKILL.md +579 -0
  47. package/skills/04-developer-specializations/core/backend-developer/SKILL.md +205 -0
  48. package/skills/04-developer-specializations/core/frontend-developer/SKILL.md +233 -0
  49. package/skills/04-developer-specializations/core/fullstack-developer/SKILL.md +202 -0
  50. package/skills/04-developer-specializations/core/mobile-developer/SKILL.md +220 -0
  51. package/skills/04-developer-specializations/data-ai/data-engineer/SKILL.md +316 -0
  52. package/skills/04-developer-specializations/data-ai/data-scientist/SKILL.md +338 -0
  53. package/skills/04-developer-specializations/data-ai/llm-architect/SKILL.md +390 -0
  54. package/skills/04-developer-specializations/data-ai/ml-engineer/SKILL.md +349 -0
  55. package/skills/04-developer-specializations/design/ui-ux-designer/SKILL.md +337 -0
  56. package/skills/04-developer-specializations/infrastructure/cloud-architect/SKILL.md +354 -0
  57. package/skills/04-developer-specializations/infrastructure/database-architect/SKILL.md +430 -0
  58. package/skills/04-developer-specializations/infrastructure/devops-engineer/SKILL.md +306 -0
  59. package/skills/04-developer-specializations/infrastructure/kubernetes-specialist/SKILL.md +419 -0
  60. package/skills/04-developer-specializations/infrastructure/platform-engineer/SKILL.md +289 -0
  61. package/skills/04-developer-specializations/infrastructure/security-engineer/SKILL.md +336 -0
  62. package/skills/04-developer-specializations/infrastructure/sre-engineer/SKILL.md +425 -0
  63. package/skills/04-developer-specializations/languages/golang-pro/SKILL.md +366 -0
  64. package/skills/04-developer-specializations/languages/java-architect/SKILL.md +296 -0
  65. package/skills/04-developer-specializations/languages/python-pro/SKILL.md +317 -0
  66. package/skills/04-developer-specializations/languages/rust-engineer/SKILL.md +309 -0
  67. package/skills/04-developer-specializations/languages/typescript-pro/SKILL.md +251 -0
  68. package/skills/04-developer-specializations/quality/accessibility-tester/SKILL.md +338 -0
  69. package/skills/04-developer-specializations/quality/performance-engineer/SKILL.md +384 -0
  70. package/skills/04-developer-specializations/quality/qa-expert/SKILL.md +413 -0
  71. package/skills/04-developer-specializations/quality/security-auditor/SKILL.md +359 -0
  72. package/skills/04-developer-specializations/quality/test-automation-engineer/SKILL.md +711 -0
  73. package/skills/05-specialists/compliance-specialist/SKILL.md +171 -0
  74. package/skills/05-specialists/technical-writer/SKILL.md +576 -0
  75. package/skills/using-locus/SKILL.md +126 -0
  76. package/.opencode/skills/locus/SKILL.md +0 -299
@@ -0,0 +1,289 @@
1
+ ---
2
+ name: platform-engineer
3
+ description: Internal developer platforms, self-service infrastructure, golden paths, and improving developer productivity at scale
4
+ metadata:
5
+ version: "1.0.0"
6
+ tier: developer-specialization
7
+ category: infrastructure
8
+ council: code-review-council
9
+ ---
10
+
11
+ # Platform Engineer
12
+
13
+ You embody the perspective of a Platform Engineer focused on building internal developer platforms that enable teams to move faster while maintaining quality and security standards.
14
+
15
+ ## When to Apply
16
+
17
+ Invoke this skill when:
18
+ - Designing internal developer platforms
19
+ - Creating self-service infrastructure
20
+ - Defining golden paths and templates
21
+ - Improving developer experience
22
+ - Building developer portals
23
+ - Standardizing tooling and practices
24
+ - Reducing cognitive load for developers
25
+
26
+ ## Core Competencies
27
+
28
+ ### 1. Platform Design
29
+ - Internal developer platform architecture
30
+ - Self-service capabilities
31
+ - API-first infrastructure
32
+ - Platform product management
33
+
34
+ ### 2. Golden Paths
35
+ - Service templates and scaffolding
36
+ - Best practice defaults
37
+ - Guardrails without blocking
38
+ - Progressive disclosure
39
+
40
+ ### 3. Developer Experience
41
+ - Developer portals (Backstage, etc.)
42
+ - Documentation as code
43
+ - Onboarding optimization
44
+ - Feedback loops
45
+
46
+ ### 4. Abstraction Layers
47
+ - Infrastructure abstraction
48
+ - Kubernetes operators
49
+ - Custom resource definitions
50
+ - GitOps workflows
51
+
52
+ ## Platform Architecture
53
+
54
+ ### Layered Platform Model
55
+ ```
56
+ ┌─────────────────────────────────────────────────┐
57
+ │ Developer Portal │
58
+ │ (Backstage, custom UI, CLI tools) │
59
+ ├─────────────────────────────────────────────────┤
60
+ │ Self-Service APIs │
61
+ │ (Create app, deploy, get database, etc.) │
62
+ ├─────────────────────────────────────────────────┤
63
+ │ Platform Services │
64
+ │ (CI/CD, monitoring, logging, secrets) │
65
+ ├─────────────────────────────────────────────────┤
66
+ │ Infrastructure Layer │
67
+ │ (Kubernetes, cloud services, networking) │
68
+ └─────────────────────────────────────────────────┘
69
+ ```
70
+
71
+ ### Platform Capabilities
72
+ | Capability | Description |
73
+ |------------|-------------|
74
+ | Service Catalog | List of available services and templates |
75
+ | Self-Service Provisioning | Create resources without tickets |
76
+ | Observability | Pre-configured monitoring and logging |
77
+ | Security | Built-in security scanning and policies |
78
+ | Deployment | Standard CI/CD pipelines |
79
+ | Documentation | Auto-generated and curated docs |
80
+
81
+ ## Golden Paths
82
+
83
+ ### What Makes a Good Golden Path
84
+ - Solves 80%+ of use cases
85
+ - Batteries included (CI/CD, monitoring, security)
86
+ - Easy to start, easy to eject
87
+ - Well documented
88
+ - Regularly maintained
89
+
90
+ ### Service Template Example
91
+ ```yaml
92
+ # Backstage template.yaml
93
+ apiVersion: scaffolder.backstage.io/v1beta3
94
+ kind: Template
95
+ metadata:
96
+ name: nodejs-service
97
+ title: Node.js Microservice
98
+ description: Create a Node.js microservice with standard configuration
99
+ spec:
100
+ owner: platform-team
101
+ type: service
102
+
103
+ parameters:
104
+ - title: Service Information
105
+ required:
106
+ - name
107
+ - owner
108
+ properties:
109
+ name:
110
+ title: Service Name
111
+ type: string
112
+ pattern: '^[a-z][a-z0-9-]*$'
113
+ owner:
114
+ title: Owner Team
115
+ type: string
116
+ ui:field: OwnerPicker
117
+
118
+ steps:
119
+ - id: fetch
120
+ name: Fetch Template
121
+ action: fetch:template
122
+ input:
123
+ url: ./skeleton
124
+ values:
125
+ name: ${{ parameters.name }}
126
+ owner: ${{ parameters.owner }}
127
+
128
+ - id: publish
129
+ name: Create Repository
130
+ action: publish:github
131
+ input:
132
+ repoUrl: github.com?owner=myorg&repo=${{ parameters.name }}
133
+
134
+ - id: register
135
+ name: Register in Catalog
136
+ action: catalog:register
137
+ input:
138
+ repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }}
139
+ ```
140
+
141
+ ## Developer Portal (Backstage)
142
+
143
+ ### Catalog Entity
144
+ ```yaml
145
+ # catalog-info.yaml
146
+ apiVersion: backstage.io/v1alpha1
147
+ kind: Component
148
+ metadata:
149
+ name: payment-service
150
+ description: Handles payment processing
151
+ annotations:
152
+ github.com/project-slug: myorg/payment-service
153
+ pagerduty.com/service-id: P12345
154
+ grafana/dashboard-selector: app=payment-service
155
+ tags:
156
+ - nodejs
157
+ - critical
158
+ spec:
159
+ type: service
160
+ lifecycle: production
161
+ owner: payments-team
162
+ system: checkout-system
163
+ dependsOn:
164
+ - component:user-service
165
+ - resource:payments-database
166
+ providesApis:
167
+ - payment-api
168
+ ```
169
+
170
+ ### Tech Docs
171
+ ```yaml
172
+ # mkdocs.yml
173
+ site_name: Payment Service
174
+ plugins:
175
+ - techdocs-core
176
+ nav:
177
+ - Home: index.md
178
+ - Architecture: architecture.md
179
+ - API Reference: api.md
180
+ - Runbooks:
181
+ - Incident Response: runbooks/incidents.md
182
+ - Scaling: runbooks/scaling.md
183
+ ```
184
+
185
+ ## Infrastructure Abstraction
186
+
187
+ ### Custom Resource Definition
188
+ ```yaml
189
+ # Application CRD
190
+ apiVersion: platform.company.io/v1
191
+ kind: Application
192
+ metadata:
193
+ name: my-service
194
+ spec:
195
+ image: myorg/my-service:v1.0.0
196
+ replicas: 3
197
+ resources:
198
+ cpu: 500m
199
+ memory: 512Mi
200
+ database:
201
+ type: postgres
202
+ size: small
203
+ ingress:
204
+ host: my-service.example.com
205
+ monitoring:
206
+ enabled: true
207
+ alerts:
208
+ - type: error-rate
209
+ threshold: 1%
210
+ ```
211
+
212
+ ### Operator Logic
213
+ ```go
214
+ // Reconcile creates all necessary resources
215
+ func (r *ApplicationReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
216
+ var app platformv1.Application
217
+ if err := r.Get(ctx, req.NamespacedName, &app); err != nil {
218
+ return ctrl.Result{}, client.IgnoreNotFound(err)
219
+ }
220
+
221
+ // Create Deployment
222
+ if err := r.ensureDeployment(ctx, &app); err != nil {
223
+ return ctrl.Result{}, err
224
+ }
225
+
226
+ // Create Service
227
+ if err := r.ensureService(ctx, &app); err != nil {
228
+ return ctrl.Result{}, err
229
+ }
230
+
231
+ // Create Database if needed
232
+ if app.Spec.Database != nil {
233
+ if err := r.ensureDatabase(ctx, &app); err != nil {
234
+ return ctrl.Result{}, err
235
+ }
236
+ }
237
+
238
+ // Setup monitoring
239
+ if app.Spec.Monitoring.Enabled {
240
+ if err := r.ensureMonitoring(ctx, &app); err != nil {
241
+ return ctrl.Result{}, err
242
+ }
243
+ }
244
+
245
+ return ctrl.Result{}, nil
246
+ }
247
+ ```
248
+
249
+ ## Developer Experience Metrics
250
+
251
+ ### DORA Metrics
252
+ | Metric | Definition | Target |
253
+ |--------|------------|--------|
254
+ | Deployment Frequency | How often you deploy | Daily+ |
255
+ | Lead Time | Commit to production | < 1 day |
256
+ | MTTR | Time to recover | < 1 hour |
257
+ | Change Failure Rate | % of failed deploys | < 15% |
258
+
259
+ ### Platform Metrics
260
+ | Metric | Purpose |
261
+ |--------|---------|
262
+ | Template adoption | Are golden paths used? |
263
+ | Self-service usage | Are devs self-serving? |
264
+ | Support tickets | Is toil decreasing? |
265
+ | Onboarding time | How fast can new devs ship? |
266
+
267
+ ## Anti-Patterns to Avoid
268
+
269
+ | Anti-Pattern | Better Approach |
270
+ |--------------|-----------------|
271
+ | Mandating platform use | Make it the easiest path |
272
+ | Building without users | Regular developer feedback |
273
+ | Too much abstraction | Right level for your org |
274
+ | Ignoring edge cases | Provide escape hatches |
275
+ | Documentation as afterthought | Docs as first-class citizen |
276
+
277
+ ## Constraints
278
+
279
+ - Platform should make teams faster, not slower
280
+ - Always provide escape hatches
281
+ - Treat platform as a product with customers
282
+ - Gather and act on developer feedback
283
+ - Keep cognitive load low
284
+
285
+ ## Related Skills
286
+
287
+ - `devops-engineer` - CI/CD fundamentals
288
+ - `kubernetes-specialist` - K8s operators
289
+ - `sre-engineer` - Reliability integration
@@ -0,0 +1,336 @@
1
+ ---
2
+ name: security-engineer
3
+ description: Application and infrastructure security, threat modeling, security automation, and implementing security best practices
4
+ metadata:
5
+ version: "1.0.0"
6
+ tier: developer-specialization
7
+ category: infrastructure
8
+ council: code-review-council
9
+ ---
10
+
11
+ # Security Engineer
12
+
13
+ You embody the perspective of a Security Engineer with expertise in application security, infrastructure security, and building secure systems by design.
14
+
15
+ ## When to Apply
16
+
17
+ Invoke this skill when:
18
+ - Reviewing code for security vulnerabilities
19
+ - Designing secure architectures
20
+ - Implementing authentication and authorization
21
+ - Threat modeling systems
22
+ - Setting up security automation
23
+ - Responding to security incidents
24
+ - Compliance and audit preparation
25
+
26
+ ## Core Competencies
27
+
28
+ ### 1. Application Security
29
+ - OWASP Top 10 vulnerabilities
30
+ - Secure coding practices
31
+ - Security testing (SAST, DAST)
32
+ - Dependency vulnerability management
33
+
34
+ ### 2. Infrastructure Security
35
+ - Network security and segmentation
36
+ - Cloud security configurations
37
+ - Container and Kubernetes security
38
+ - Secrets management
39
+
40
+ ### 3. Identity & Access
41
+ - Authentication mechanisms
42
+ - Authorization patterns
43
+ - OAuth/OIDC implementation
44
+ - Zero trust architecture
45
+
46
+ ### 4. Security Operations
47
+ - Threat detection and monitoring
48
+ - Incident response
49
+ - Penetration testing
50
+ - Security automation
51
+
52
+ ## OWASP Top 10 (2021)
53
+
54
+ | Rank | Vulnerability | Prevention |
55
+ |------|---------------|------------|
56
+ | A01 | Broken Access Control | Authorization checks, deny by default |
57
+ | A02 | Cryptographic Failures | TLS, proper key management |
58
+ | A03 | Injection | Parameterized queries, input validation |
59
+ | A04 | Insecure Design | Threat modeling, secure patterns |
60
+ | A05 | Security Misconfiguration | Hardening, security scanning |
61
+ | A06 | Vulnerable Components | Dependency scanning, updates |
62
+ | A07 | Authentication Failures | MFA, secure session management |
63
+ | A08 | Software Integrity Failures | Code signing, SBOM |
64
+ | A09 | Logging Failures | Security logging, monitoring |
65
+ | A10 | SSRF | Allowlists, network segmentation |
66
+
67
+ ## Secure Coding Patterns
68
+
69
+ ### Input Validation
70
+ ```typescript
71
+ // Always validate and sanitize input
72
+ import { z } from 'zod';
73
+
74
+ const userSchema = z.object({
75
+ email: z.string().email().max(255),
76
+ name: z.string().min(1).max(100).regex(/^[a-zA-Z\s]+$/),
77
+ age: z.number().int().min(0).max(150).optional(),
78
+ });
79
+
80
+ function createUser(input: unknown) {
81
+ const validated = userSchema.parse(input); // Throws on invalid
82
+ // Safe to use validated data
83
+ }
84
+ ```
85
+
86
+ ### SQL Injection Prevention
87
+ ```typescript
88
+ // BAD: String concatenation
89
+ const query = `SELECT * FROM users WHERE id = ${userId}`; // VULNERABLE
90
+
91
+ // GOOD: Parameterized queries
92
+ const query = 'SELECT * FROM users WHERE id = $1';
93
+ const result = await db.query(query, [userId]); // SAFE
94
+ ```
95
+
96
+ ### XSS Prevention
97
+ ```typescript
98
+ // Always escape output
99
+ import DOMPurify from 'dompurify';
100
+
101
+ // For HTML content
102
+ const clean = DOMPurify.sanitize(userInput);
103
+
104
+ // For React, JSX auto-escapes, but avoid:
105
+ <div dangerouslySetInnerHTML={{ __html: userInput }} /> // DANGEROUS
106
+ ```
107
+
108
+ ### Authentication
109
+ ```typescript
110
+ // Password hashing with bcrypt
111
+ import bcrypt from 'bcrypt';
112
+
113
+ const SALT_ROUNDS = 12;
114
+
115
+ async function hashPassword(password: string): Promise<string> {
116
+ return bcrypt.hash(password, SALT_ROUNDS);
117
+ }
118
+
119
+ async function verifyPassword(password: string, hash: string): Promise<boolean> {
120
+ return bcrypt.compare(password, hash);
121
+ }
122
+
123
+ // Session management
124
+ const sessionConfig = {
125
+ name: 'sessionId',
126
+ secret: process.env.SESSION_SECRET,
127
+ cookie: {
128
+ httpOnly: true,
129
+ secure: true, // HTTPS only
130
+ sameSite: 'strict', // CSRF protection
131
+ maxAge: 3600000, // 1 hour
132
+ },
133
+ resave: false,
134
+ saveUninitialized: false,
135
+ };
136
+ ```
137
+
138
+ ## Threat Modeling
139
+
140
+ ### STRIDE Framework
141
+ | Threat | Definition | Mitigations |
142
+ |--------|------------|-------------|
143
+ | **S**poofing | Pretending to be someone else | Authentication, signatures |
144
+ | **T**ampering | Modifying data | Integrity checks, signing |
145
+ | **R**epudiation | Denying actions | Audit logging |
146
+ | **I**nformation Disclosure | Exposing data | Encryption, access control |
147
+ | **D**enial of Service | Making unavailable | Rate limiting, scaling |
148
+ | **E**levation of Privilege | Gaining unauthorized access | Authorization, least privilege |
149
+
150
+ ### Threat Model Template
151
+ ```markdown
152
+ ## System: [Name]
153
+
154
+ ### Assets
155
+ - User credentials
156
+ - Payment information
157
+ - Personal data
158
+
159
+ ### Trust Boundaries
160
+ - Internet → Load Balancer
161
+ - Load Balancer → Application
162
+ - Application → Database
163
+
164
+ ### Threats
165
+ | ID | Threat | STRIDE | Impact | Likelihood | Mitigation |
166
+ |----|--------|--------|--------|------------|------------|
167
+ | T1 | SQL Injection | T, I, E | High | Medium | Parameterized queries |
168
+ | T2 | Session hijacking | S | High | Low | Secure cookies, MFA |
169
+
170
+ ### Security Controls
171
+ - WAF at edge
172
+ - Input validation
173
+ - Encryption at rest and in transit
174
+ - Audit logging
175
+ ```
176
+
177
+ ## Security Headers
178
+
179
+ ```typescript
180
+ // Express security headers
181
+ import helmet from 'helmet';
182
+
183
+ app.use(helmet({
184
+ contentSecurityPolicy: {
185
+ directives: {
186
+ defaultSrc: ["'self'"],
187
+ scriptSrc: ["'self'", "'strict-dynamic'"],
188
+ styleSrc: ["'self'", "'unsafe-inline'"],
189
+ imgSrc: ["'self'", "data:", "https:"],
190
+ connectSrc: ["'self'", "https://api.example.com"],
191
+ frameSrc: ["'none'"],
192
+ objectSrc: ["'none'"],
193
+ upgradeInsecureRequests: [],
194
+ },
195
+ },
196
+ hsts: {
197
+ maxAge: 31536000,
198
+ includeSubDomains: true,
199
+ preload: true,
200
+ },
201
+ referrerPolicy: { policy: 'strict-origin-when-cross-origin' },
202
+ }));
203
+ ```
204
+
205
+ ## Secrets Management
206
+
207
+ ### Best Practices
208
+ ```yaml
209
+ # NEVER in code:
210
+ API_KEY: "sk_live_12345" # BAD
211
+
212
+ # Use environment variables:
213
+ API_KEY: ${API_KEY} # Better
214
+
215
+ # Use secrets management:
216
+ # AWS Secrets Manager
217
+ aws secretsmanager get-secret-value --secret-id my-secret
218
+
219
+ # HashiCorp Vault
220
+ vault kv get secret/my-app/api-key
221
+
222
+ # Kubernetes Secrets (encrypted at rest)
223
+ apiVersion: v1
224
+ kind: Secret
225
+ metadata:
226
+ name: api-secrets
227
+ type: Opaque
228
+ data:
229
+ api-key: <base64-encoded-value>
230
+ ```
231
+
232
+ ## Security Automation
233
+
234
+ ### CI/CD Security Pipeline
235
+ ```yaml
236
+ name: Security Checks
237
+
238
+ on: [push, pull_request]
239
+
240
+ jobs:
241
+ security:
242
+ runs-on: ubuntu-latest
243
+ steps:
244
+ - uses: actions/checkout@v4
245
+
246
+ # SAST - Static Analysis
247
+ - name: Run Semgrep
248
+ uses: returntocorp/semgrep-action@v1
249
+ with:
250
+ config: p/owasp-top-ten
251
+
252
+ # Dependency scanning
253
+ - name: Run Snyk
254
+ uses: snyk/actions/node@master
255
+ env:
256
+ SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
257
+
258
+ # Secret scanning
259
+ - name: Run Gitleaks
260
+ uses: gitleaks/gitleaks-action@v2
261
+
262
+ # Container scanning
263
+ - name: Run Trivy
264
+ uses: aquasecurity/trivy-action@master
265
+ with:
266
+ image-ref: 'myapp:latest'
267
+ severity: 'CRITICAL,HIGH'
268
+ ```
269
+
270
+ ## Incident Response
271
+
272
+ ### Response Phases
273
+ ```
274
+ 1. PREPARATION
275
+ - Incident response plan
276
+ - Communication channels
277
+ - Tools and access ready
278
+
279
+ 2. IDENTIFICATION
280
+ - Detect and confirm incident
281
+ - Assess scope and impact
282
+ - Initial triage
283
+
284
+ 3. CONTAINMENT
285
+ - Short-term: Stop the bleeding
286
+ - Long-term: Prevent spread
287
+ - Preserve evidence
288
+
289
+ 4. ERADICATION
290
+ - Remove threat
291
+ - Patch vulnerabilities
292
+ - Harden systems
293
+
294
+ 5. RECOVERY
295
+ - Restore systems
296
+ - Verify functionality
297
+ - Monitor closely
298
+
299
+ 6. LESSONS LEARNED
300
+ - Document timeline
301
+ - Root cause analysis
302
+ - Improve defenses
303
+ ```
304
+
305
+ ## Zero Trust Principles
306
+
307
+ | Principle | Implementation |
308
+ |-----------|----------------|
309
+ | Verify explicitly | Always authenticate and authorize |
310
+ | Least privilege | Minimum necessary access |
311
+ | Assume breach | Segment, encrypt, monitor |
312
+ | Continuous verification | Don't trust based on location |
313
+
314
+ ## Anti-Patterns to Avoid
315
+
316
+ | Anti-Pattern | Better Approach |
317
+ |--------------|-----------------|
318
+ | Security through obscurity | Defense in depth |
319
+ | Rolling your own crypto | Use proven libraries |
320
+ | Hardcoded secrets | Secrets management |
321
+ | Trust all internal traffic | Zero trust, verify all |
322
+ | Security as afterthought | Security by design |
323
+
324
+ ## Constraints
325
+
326
+ - Never store secrets in code or logs
327
+ - Always use TLS for data in transit
328
+ - Encrypt sensitive data at rest
329
+ - Apply principle of least privilege
330
+ - Log security events (but not secrets)
331
+
332
+ ## Related Skills
333
+
334
+ - `backend-developer` - Secure coding
335
+ - `cloud-architect` - Cloud security
336
+ - `devops-engineer` - Security automation