@neyugn/agent-kits 0.5.1 → 0.5.4
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/common/skills/filter-agent/SKILL.md +33 -45
- package/common/skills/filter-skill/SKILL.md +51 -73
- package/common/skills/scan-techstack/SKILL.md +30 -36
- package/kits/coder/agents/ai-engineer.md +27 -39
- package/kits/coder/agents/backend-specialist.md +31 -45
- package/kits/coder/agents/cloud-architect.md +31 -45
- package/kits/coder/agents/code-reviewer.md +45 -67
- package/kits/coder/agents/data-engineer.md +22 -32
- package/kits/coder/agents/database-specialist.md +30 -44
- package/kits/coder/agents/debugger.md +28 -42
- package/kits/coder/agents/devops-engineer.md +35 -53
- package/kits/coder/agents/documentation-writer.md +48 -68
- package/kits/coder/agents/frontend-specialist.md +30 -46
- package/kits/coder/agents/i18n-specialist.md +37 -51
- package/kits/coder/agents/integration-specialist.md +38 -54
- package/kits/coder/agents/mobile-developer.md +37 -53
- package/kits/coder/agents/multi-tenant-architect.md +25 -37
- package/kits/coder/agents/orchestrator.md +20 -32
- package/kits/coder/agents/performance-analyst.md +43 -65
- package/kits/coder/agents/project-planner.md +25 -39
- package/kits/coder/agents/queue-specialist.md +26 -38
- package/kits/coder/agents/realtime-specialist.md +44 -64
- package/kits/coder/agents/security-auditor.md +44 -64
- package/kits/coder/agents/test-engineer.md +30 -44
- package/kits/coder/agents/ux-researcher.md +26 -38
- package/kits/coder/rules/AGENTS.md +3 -1
- package/kits/coder/rules/CLAUDE.md +3 -1
- package/kits/coder/rules/CURSOR.md +8 -1
- package/kits/coder/rules/GEMINI.md +6 -1
- package/kits/coder/rules/OPENCODE.md +3 -1
- package/kits/coder/rules/sections/classifier.md +11 -7
- package/kits/coder/rules/sections/code.md +5 -4
- package/kits/coder/rules/sections/routing.md +10 -2
- package/kits/coder/rules/sections/universal.md +2 -0
- package/kits/coder/skills/accessibility-patterns/SKILL.md +67 -81
- package/kits/coder/skills/ai-rag-patterns/SKILL.md +27 -23
- package/kits/coder/skills/api-patterns/SKILL.md +40 -43
- package/kits/coder/skills/auth-patterns/SKILL.md +47 -51
- package/kits/coder/skills/aws-patterns/SKILL.md +52 -57
- package/kits/coder/skills/brainstorming/SKILL.md +26 -23
- package/kits/coder/skills/clean-code/SKILL.md +74 -90
- package/kits/coder/skills/database-design/SKILL.md +32 -31
- package/kits/coder/skills/docker-patterns/SKILL.md +46 -49
- package/kits/coder/skills/documentation-templates/SKILL.md +21 -13
- package/kits/coder/skills/e2e-testing/SKILL.md +52 -58
- package/kits/coder/skills/flutter-patterns/SKILL.md +44 -46
- package/kits/coder/skills/frontend-design/SKILL.md +28 -24
- package/kits/coder/skills/github-actions/SKILL.md +43 -45
- package/kits/coder/skills/gitlab-ci-patterns/SKILL.md +35 -33
- package/kits/coder/skills/graphql-patterns/SKILL.md +35 -33
- package/kits/coder/skills/i18n-localization/SKILL.md +37 -35
- package/kits/coder/skills/kubernetes-patterns/SKILL.md +35 -33
- package/kits/coder/skills/mermaid-diagrams/SKILL.md +54 -60
- package/kits/coder/skills/mobile-design/SKILL.md +51 -61
- package/kits/coder/skills/monitoring-observability/SKILL.md +32 -30
- package/kits/coder/skills/multi-tenancy/SKILL.md +16 -8
- package/kits/coder/skills/nodejs-best-practices/SKILL.md +19 -14
- package/kits/coder/skills/performance-profiling/SKILL.md +31 -29
- package/kits/coder/skills/plan-writing/SKILL.md +52 -59
- package/kits/coder/skills/postgres-patterns/SKILL.md +39 -39
- package/kits/coder/skills/prompt-engineering/SKILL.md +40 -42
- package/kits/coder/skills/queue-patterns/SKILL.md +22 -16
- package/kits/coder/skills/react-native-patterns/SKILL.md +35 -33
- package/kits/coder/skills/react-patterns/SKILL.md +46 -52
- package/kits/coder/skills/realtime-patterns/SKILL.md +44 -46
- package/kits/coder/skills/redis-patterns/SKILL.md +35 -33
- package/kits/coder/skills/security-fundamentals/SKILL.md +45 -46
- package/kits/coder/skills/seo-patterns/SKILL.md +56 -62
- package/kits/coder/skills/systematic-debugging/SKILL.md +38 -39
- package/kits/coder/skills/tailwind-patterns/SKILL.md +21 -13
- package/kits/coder/skills/terraform-patterns/SKILL.md +53 -57
- package/kits/coder/skills/testing-patterns/SKILL.md +42 -47
- package/kits/coder/skills/typescript-patterns/SKILL.md +54 -68
- package/kits/coder/skills/ui-ux-pro-max/SKILL.md +362 -364
- package/package.json +1 -1
|
@@ -8,19 +8,27 @@ priority: MEDIUM
|
|
|
8
8
|
|
|
9
9
|
# SEO Patterns - Sustainable Search Visibility
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## ⚡ Quick Reference
|
|
12
|
+
|
|
13
|
+
- **Core Web Vitals**: LCP < 2.5s · INP < 200ms · CLS < 0.1 · Monitor with Search Console
|
|
14
|
+
- **HTML structure**: 1 `<h1>` per page · logical `<h2>→<h6>` · semantic tags (`<article>`, `<nav>`, `<main>`)
|
|
15
|
+
- **Meta tags**: Unique `<title>` (50-60 chars) · `<meta description>` (150-160 chars) · `<canonical>`
|
|
16
|
+
- **Images**: `alt` on all images · Next-gen format (WebP/AVIF) · `width` + `height` to prevent CLS
|
|
17
|
+
- **Structured data**: JSON-LD format · `Organization`, `Product`, `Article` schemas per content type
|
|
18
|
+
- **Tech SEO**: `robots.txt` · `sitemap.xml` · HTTPS · Mobile-first · No render-blocking resources
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
12
22
|
|
|
13
23
|
---
|
|
14
24
|
|
|
15
25
|
## 🎯 Core Principles
|
|
16
26
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
| **E-E-A-T** | Experience, Expertise, Authoritativeness, Trust |
|
|
23
|
-
| **Patience** | SEO is a long-term investment, not quick wins |
|
|
27
|
+
- **Content First**: Quality content is the foundation of all SEO
|
|
28
|
+
- **Technical Clarity**: Search engines must access, understand, and index
|
|
29
|
+
- **User Focus**: Optimize for users, not search engines
|
|
30
|
+
- **E-E-A-T**: Experience, Expertise, Authoritativeness, Trust
|
|
31
|
+
- **Patience**: SEO is a long-term investment, not quick wins
|
|
24
32
|
|
|
25
33
|
```
|
|
26
34
|
❌ WRONG: Keyword stuffing, link farms, AI spam
|
|
@@ -61,11 +69,9 @@ High E-E-A-T requirements for content affecting:
|
|
|
61
69
|
|
|
62
70
|
### Improvement Strategies
|
|
63
71
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
| INP | Reduce JavaScript, defer non-critical scripts |
|
|
68
|
-
| CLS | Set explicit dimensions on images/embeds |
|
|
72
|
+
- LCP: Optimize images, preload critical resources
|
|
73
|
+
- INP: Reduce JavaScript, defer non-critical scripts
|
|
74
|
+
- CLS: Set explicit dimensions on images/embeds
|
|
69
75
|
|
|
70
76
|
---
|
|
71
77
|
|
|
@@ -109,25 +115,21 @@ Sitemap: https://example.com/sitemap.xml
|
|
|
109
115
|
|
|
110
116
|
### On-Page Elements
|
|
111
117
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
| **Alt Text** | Accessibility and context |
|
|
119
|
-
| **Internal Links** | Topic clusters, related content |
|
|
118
|
+
- **Title Tag**: Clear topic + intent
|
|
119
|
+
- **Meta Description**: Click relevance, not ranking
|
|
120
|
+
- **H1**: Page's primary subject
|
|
121
|
+
- **Headings (H2-H6)**: Logical structure
|
|
122
|
+
- **Alt Text**: Accessibility and context
|
|
123
|
+
- **Internal Links**: Topic clusters, related content
|
|
120
124
|
|
|
121
125
|
### Content Quality Signals
|
|
122
126
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
| **Usefulness** | Satisfies user intent |
|
|
130
|
-
| **Freshness** | Updated when relevant |
|
|
127
|
+
- **Depth**: Fully answers the query
|
|
128
|
+
- **Originality**: Adds unique value
|
|
129
|
+
- **Accuracy**: Factually correct
|
|
130
|
+
- **Clarity**: Easy to understand
|
|
131
|
+
- **Usefulness**: Satisfies user intent
|
|
132
|
+
- **Freshness**: Updated when relevant
|
|
131
133
|
|
|
132
134
|
---
|
|
133
135
|
|
|
@@ -155,15 +157,13 @@ Sitemap: https://example.com/sitemap.xml
|
|
|
155
157
|
|
|
156
158
|
### Common Schema Types
|
|
157
159
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
| **LocalBusiness** | Local businesses with locations |
|
|
166
|
-
| **HowTo** | Step-by-step guides |
|
|
160
|
+
- **Article**: Blog posts, news articles
|
|
161
|
+
- **Product**: E-commerce product pages
|
|
162
|
+
- **FAQPage**: FAQ sections
|
|
163
|
+
- **BreadcrumbList**: Site navigation structure
|
|
164
|
+
- **Organization**: Company/brand identity
|
|
165
|
+
- **LocalBusiness**: Local businesses with locations
|
|
166
|
+
- **HowTo**: Step-by-step guides
|
|
167
167
|
|
|
168
168
|
---
|
|
169
169
|
|
|
@@ -189,14 +189,12 @@ Search engines evaluate **output quality**, not authorship method.
|
|
|
189
189
|
|
|
190
190
|
## 📈 SEO Measurement
|
|
191
191
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
| **Conversions** | Organic-attributed conversions |
|
|
199
|
-
| **Technical** | Core Web Vitals, crawl errors |
|
|
192
|
+
- **Visibility**: Indexed pages, impressions
|
|
193
|
+
- **Rankings**: Position changes, serp features
|
|
194
|
+
- **Traffic**: Organic sessions, new pages
|
|
195
|
+
- **Engagement**: CTR, dwell time, bounce rate
|
|
196
|
+
- **Conversions**: Organic-attributed conversions
|
|
197
|
+
- **Technical**: Core Web Vitals, crawl errors
|
|
200
198
|
|
|
201
199
|
### Essential Tools
|
|
202
200
|
|
|
@@ -209,16 +207,14 @@ Search engines evaluate **output quality**, not authorship method.
|
|
|
209
207
|
|
|
210
208
|
## 🚨 SEO Anti-Patterns
|
|
211
209
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
| Slow page load | Optimize Core Web Vitals |
|
|
221
|
-
| Missing alt text | Descriptive alt for all images |
|
|
210
|
+
- Keyword stuffing: Natural language, topic coverage
|
|
211
|
+
- Duplicate content: Canonical tags, unique pages
|
|
212
|
+
- Hidden text/links: Visible, accessible content
|
|
213
|
+
- Low-quality link building: Earn links through quality content
|
|
214
|
+
- Ignore mobile: Mobile-first design
|
|
215
|
+
- Block CSS/JS from crawlers: Allow full page rendering
|
|
216
|
+
- Slow page load: Optimize Core Web Vitals
|
|
217
|
+
- Missing alt text: Descriptive alt for all images
|
|
222
218
|
|
|
223
219
|
---
|
|
224
220
|
|
|
@@ -250,12 +246,10 @@ Search engines evaluate **output quality**, not authorship method.
|
|
|
250
246
|
|
|
251
247
|
## 🔗 Related Skills
|
|
252
248
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
| React/Next.js SSR | `react-patterns` |
|
|
258
|
-
| Content structure | `documentation-templates` |
|
|
249
|
+
- Performance optimization: `performance-profiling`
|
|
250
|
+
- Accessibility: `accessibility-patterns`
|
|
251
|
+
- React/Next.js SSR: `react-patterns`
|
|
252
|
+
- Content structure: `documentation-templates`
|
|
259
253
|
|
|
260
254
|
---
|
|
261
255
|
|
|
@@ -6,7 +6,16 @@ allowed-tools: Read, Write, Edit, Bash, Grep
|
|
|
6
6
|
|
|
7
7
|
# Systematic Debugging - Scientific Defect Resolution
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## ⚡ Quick Reference
|
|
10
|
+
|
|
11
|
+
- **4 phases**: Reproduce → Isolate → Root Cause (5 Whys) → Fix + Regression Test
|
|
12
|
+
- **Never guess**: Profile first · Read the full stack trace · Binary search commits with `git bisect`
|
|
13
|
+
- **Reproduce first**: Can't fix what you can't see · Get exact steps · Note env differences
|
|
14
|
+
- **Root cause**: Ask WHY 5 times · Fix cause not symptom · Symptom recurs if only patched
|
|
15
|
+
- **After fix**: Add regression test · Check similar code · Remove debug logs · Document root cause
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
10
19
|
|
|
11
20
|
---
|
|
12
21
|
|
|
@@ -86,13 +95,11 @@ PHASE 4: VERIFY → Confirm fix, prevent regression
|
|
|
86
95
|
|
|
87
96
|
### Handling Intermittent Bugs
|
|
88
97
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
| Environment-specific | Compare configurations |
|
|
95
|
-
| Load-dependent | Test under high load/concurrency |
|
|
98
|
+
- Race condition: Add timing logs, check for async issues
|
|
99
|
+
- Memory-related: Check for uninitialized variables
|
|
100
|
+
- State-dependent: Log state at failure points
|
|
101
|
+
- Environment-specific: Compare configurations
|
|
102
|
+
- Load-dependent: Test under high load/concurrency
|
|
96
103
|
|
|
97
104
|
### If Bug Won't Reproduce
|
|
98
105
|
|
|
@@ -229,13 +236,11 @@ PHASE 4: VERIFY → Confirm fix, prevent regression
|
|
|
229
236
|
|
|
230
237
|
### Fix Quality Criteria
|
|
231
238
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
| **Readable** | Future developers can understand why |
|
|
238
|
-
| **Testable** | Can verify it works with automated test |
|
|
239
|
+
- **Targeted**: Changes only what's necessary
|
|
240
|
+
- **Root-Cause**: Fixes the cause, not the symptom
|
|
241
|
+
- **Safe**: Doesn't introduce new bugs
|
|
242
|
+
- **Readable**: Future developers can understand why
|
|
243
|
+
- **Testable**: Can verify it works with automated test
|
|
239
244
|
|
|
240
245
|
### Fix Documentation
|
|
241
246
|
|
|
@@ -265,14 +270,12 @@ PHASE 4: VERIFY → Confirm fix, prevent regression
|
|
|
265
270
|
|
|
266
271
|
### Common Fix Patterns
|
|
267
272
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
| Memory leak | Ensure resources are cleaned up |
|
|
275
|
-
| Timeout | Adjust timeout + add retry logic |
|
|
273
|
+
- Null reference: Add null check + handle gracefully
|
|
274
|
+
- Race condition: Add synchronization/locking
|
|
275
|
+
- Off-by-one: Adjust boundary condition
|
|
276
|
+
- State corruption: Reset or validate state at entry points
|
|
277
|
+
- Memory leak: Ensure resources are cleaned up
|
|
278
|
+
- Timeout: Adjust timeout + add retry logic
|
|
276
279
|
|
|
277
280
|
---
|
|
278
281
|
|
|
@@ -390,16 +393,14 @@ Step 4: Repeat until bug location is isolated
|
|
|
390
393
|
|
|
391
394
|
## 🚨 Anti-Patterns
|
|
392
395
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
| Remove code until it works | Understand why code was there |
|
|
402
|
-
| Assume the obvious cause | Test each hypothesis with evidence |
|
|
396
|
+
- Change random things: Test one hypothesis at a time
|
|
397
|
+
- Fix the symptom: Find and fix root cause
|
|
398
|
+
- Skip reproduction: Establish reliable repro first
|
|
399
|
+
- Hope it's fixed: Verify with tests
|
|
400
|
+
- Fix and forget: Document and add regression test
|
|
401
|
+
- Debug in production: Reproduce in safe environment when possible
|
|
402
|
+
- Remove code until it works: Understand why code was there
|
|
403
|
+
- Assume the obvious cause: Test each hypothesis with evidence
|
|
403
404
|
|
|
404
405
|
---
|
|
405
406
|
|
|
@@ -466,12 +467,10 @@ Step 4: Repeat until bug location is isolated
|
|
|
466
467
|
|
|
467
468
|
## 🔗 Related Skills
|
|
468
469
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
| Writing regression tests | `testing-patterns` |
|
|
474
|
-
| Clean fix code | `clean-code` |
|
|
470
|
+
- Understanding before fix: `brainstorming`
|
|
471
|
+
- Planning complex fixes: `plan-writing`
|
|
472
|
+
- Writing regression tests: `testing-patterns`
|
|
473
|
+
- Clean fix code: `clean-code`
|
|
475
474
|
|
|
476
475
|
---
|
|
477
476
|
|
|
@@ -6,6 +6,18 @@ allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
|
6
6
|
|
|
7
7
|
# Tailwind CSS Patterns
|
|
8
8
|
|
|
9
|
+
## ⚡ Quick Reference
|
|
10
|
+
|
|
11
|
+
- **Design tokens**: Use `@theme` variables not arbitrary values · consistent scale (spacing-4 = 1rem)
|
|
12
|
+
- **Components**: `@apply` for repeated patterns · prefer component extraction over long class strings
|
|
13
|
+
- **Responsive**: Mobile-first · `sm:` `md:` `lg:` breakpoints · `container mx-auto px-4` base
|
|
14
|
+
- **Dark mode**: `dark:` prefix · `class` strategy for user toggle · respect `prefers-color-scheme`
|
|
15
|
+
- **Performance**: PurgeCSS included · JIT compiles only used classes · no custom CSS without reason
|
|
16
|
+
- **Avoid**: Arbitrary values `[px]` in prod code · Inline styles alongside Tailwind · Premature abstraction
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
|
|
9
21
|
> Utility-first CSS that actually scales.
|
|
10
22
|
|
|
11
23
|
---
|
|
@@ -371,24 +383,20 @@ export function cn(...inputs: ClassValue[]) {
|
|
|
371
383
|
|
|
372
384
|
## ❌ Anti-Patterns
|
|
373
385
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
| `dark:` on every element | Use CSS variables for colors |
|
|
380
|
-
| Skip focus states | Include `focus-visible:ring-*` |
|
|
386
|
+
- `text-${color}-500` dynamic: Map to complete class strings
|
|
387
|
+
- Inline arbitrary values `[23px]`: Define in `@theme` and use token
|
|
388
|
+
- 20+ classes per element: Extract component or @apply
|
|
389
|
+
- `dark:` on every element: Use CSS variables for colors
|
|
390
|
+
- Skip focus states: Include `focus-visible:ring-*`
|
|
381
391
|
|
|
382
392
|
---
|
|
383
393
|
|
|
384
394
|
## 🔗 Related Skills
|
|
385
395
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
| Design principles | `frontend-design` |
|
|
391
|
-
| Performance | `performance-profiling` |
|
|
396
|
+
- React component patterns: `react-patterns`
|
|
397
|
+
- Accessibility: `accessibility-patterns`
|
|
398
|
+
- Design principles: `frontend-design`
|
|
399
|
+
- Performance: `performance-profiling`
|
|
392
400
|
|
|
393
401
|
---
|
|
394
402
|
|
|
@@ -8,19 +8,27 @@ priority: HIGH
|
|
|
8
8
|
|
|
9
9
|
# Terraform Patterns - Infrastructure as Code Excellence
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## ⚡ Quick Reference
|
|
12
|
+
|
|
13
|
+
- **Workflow**: `terraform init` → `plan` (review!) → `apply` · Never apply without reviewing plan
|
|
14
|
+
- **State**: Remote backend (S3+DynamoDB lock) · Never commit `.tfstate` to git
|
|
15
|
+
- **Structure**: `main.tf` · `variables.tf` · `outputs.tf` · `versions.tf` · modules for reuse
|
|
16
|
+
- **Variables**: Always typed with descriptions · sensitive = `sensitive = true` · no hardcoded values
|
|
17
|
+
- **Modules**: Separate resources into modules · `source = "./modules/vpc"` · version-pinned remote modules
|
|
18
|
+
- **Naming**: `resource "aws_instance" "web_server"` kebab-case · consistent tagging all resources
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
12
22
|
|
|
13
23
|
---
|
|
14
24
|
|
|
15
25
|
## 🎯 Core Principles
|
|
16
26
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
| **Testable** | Validate before apply, test after |
|
|
23
|
-
| **Modular** | Reusable components, single responsibility per module |
|
|
27
|
+
- **Declarative**: Describe desired state, not steps to achieve it
|
|
28
|
+
- **Idempotent**: Same code + same state = same result, every time
|
|
29
|
+
- **Version-Able**: All infrastructure changes tracked in version control
|
|
30
|
+
- **Testable**: Validate before apply, test after
|
|
31
|
+
- **Modular**: Reusable components, single responsibility per module
|
|
24
32
|
|
|
25
33
|
```
|
|
26
34
|
❌ WRONG: Manual console changes → Export to code
|
|
@@ -59,15 +67,13 @@ infrastructure/
|
|
|
59
67
|
|
|
60
68
|
### File Organization
|
|
61
69
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
| `locals.tf` | Local values (optional) |
|
|
70
|
-
| `terraform.tfvars` | Environment-specific values (gitignore) |
|
|
70
|
+
- `main.tf`: Primary resources
|
|
71
|
+
- `variables.tf`: Input variables with descriptions
|
|
72
|
+
- `outputs.tf`: Output values
|
|
73
|
+
- `versions.tf`: Provider/Terraform version constraints
|
|
74
|
+
- `data.tf`: Data sources (optional)
|
|
75
|
+
- `locals.tf`: Local values (optional)
|
|
76
|
+
- `terraform.tfvars`: Environment-specific values (gitignore)
|
|
71
77
|
|
|
72
78
|
---
|
|
73
79
|
|
|
@@ -232,13 +238,11 @@ terraform {
|
|
|
232
238
|
|
|
233
239
|
### State Security Checklist
|
|
234
240
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
| **Versioning** | S3 bucket versioning enabled |
|
|
241
|
-
| **Backup** | Cross-region replication |
|
|
241
|
+
- **Encryption at rest**: `encrypt = true` in backend
|
|
242
|
+
- **Encryption in transit**: HTTPS/TLS always
|
|
243
|
+
- **Access control**: IAM policies limiting state access
|
|
244
|
+
- **Versioning**: S3 bucket versioning enabled
|
|
245
|
+
- **Backup**: Cross-region replication
|
|
242
246
|
|
|
243
247
|
---
|
|
244
248
|
|
|
@@ -307,13 +311,11 @@ tfsec .
|
|
|
307
311
|
|
|
308
312
|
### Security Rules
|
|
309
313
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
| **Least privilege IAM** | Minimal permissions, no wildcards |
|
|
316
|
-
| **Private by default** | No public IPs unless explicitly needed |
|
|
314
|
+
- **No secrets in code**: Use secrets manager, not variables
|
|
315
|
+
- **Pin provider versions**: `version = "~> 5.0"` not `>= 5.0`
|
|
316
|
+
- **Enable encryption**: Encryption at rest for all data stores
|
|
317
|
+
- **Least privilege IAM**: Minimal permissions, no wildcards
|
|
318
|
+
- **Private by default**: No public IPs unless explicitly needed
|
|
317
319
|
|
|
318
320
|
### Sensitive Variables
|
|
319
321
|
|
|
@@ -415,16 +417,14 @@ version = ">= 5.0" # Minimum (risky - breaking changes)
|
|
|
415
417
|
|
|
416
418
|
## 🚨 Anti-Patterns
|
|
417
419
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
| Massive monolithic modules | Small, focused, composable modules |
|
|
427
|
-
| Skip state locking | Always enable locking |
|
|
420
|
+
- Manual console changes: All changes through code
|
|
421
|
+
- Secrets in terraform.tfvars: External secrets manager
|
|
422
|
+
- Single state file for everything: Per-environment, per-stack states
|
|
423
|
+
- `terraform apply` without plan: Always review plan before apply
|
|
424
|
+
- Hardcoded values: Variables with validation
|
|
425
|
+
- `latest` provider versions: Pinned versions with lock file
|
|
426
|
+
- Massive monolithic modules: Small, focused, composable modules
|
|
427
|
+
- Skip state locking: Always enable locking
|
|
428
428
|
|
|
429
429
|
---
|
|
430
430
|
|
|
@@ -443,27 +443,23 @@ version = ">= 5.0" # Minimum (risky - breaking changes)
|
|
|
443
443
|
|
|
444
444
|
## ✅ Self-Check Before Completing
|
|
445
445
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
| ✅ **Tested?** | Plan reviewed, security scanned? |
|
|
454
|
-
| ✅ **Documented?** | README for modules, examples provided? |
|
|
446
|
+
- ✅ **Modules?**: Is reusable logic extracted to modules?
|
|
447
|
+
- ✅ **State remote?**: State stored remotely with locking?
|
|
448
|
+
- ✅ **Versions pinned?**: Terraform and provider versions constrained?
|
|
449
|
+
- ✅ **Variables validated?**: Input variables have description + validation?
|
|
450
|
+
- ✅ **Secrets safe?**: No secrets in code or state?
|
|
451
|
+
- ✅ **Tested?**: Plan reviewed, security scanned?
|
|
452
|
+
- ✅ **Documented?**: README for modules, examples provided?
|
|
455
453
|
|
|
456
454
|
---
|
|
457
455
|
|
|
458
456
|
## 🔗 Related Skills
|
|
459
457
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
| Database design | `database-design` |
|
|
466
|
-
| Cloud architecture | Cloud provider docs |
|
|
458
|
+
- Container orchestration: `kubernetes-patterns`
|
|
459
|
+
- Docker builds: `docker-patterns`
|
|
460
|
+
- CI/CD workflows: `github-actions`
|
|
461
|
+
- Database design: `database-design`
|
|
462
|
+
- Cloud architecture: Cloud provider docs
|
|
467
463
|
|
|
468
464
|
---
|
|
469
465
|
|