tribunal-kit 4.5.0 → 4.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/.agent/.shared/ui-ux-pro-max/README.md +4 -4
- package/.agent/ARCHITECTURE.md +279 -277
- package/.agent/GEMINI.md +127 -121
- package/.agent/agents/accessibility-reviewer.md +187 -187
- package/.agent/agents/ai-code-reviewer.md +199 -199
- package/.agent/agents/api-architect.md +71 -66
- package/.agent/agents/backend-specialist.md +219 -215
- package/.agent/agents/cloud-engineer.md +98 -0
- package/.agent/agents/code-archaeologist.md +168 -161
- package/.agent/agents/database-architect.md +184 -184
- package/.agent/agents/db-latency-auditor.md +213 -216
- package/.agent/agents/debugger.md +198 -191
- package/.agent/agents/dependency-reviewer.md +106 -103
- package/.agent/agents/devops-engineer.md +218 -218
- package/.agent/agents/documentation-writer.md +209 -201
- package/.agent/agents/explorer-agent.md +167 -160
- package/.agent/agents/frontend-reviewer.md +162 -160
- package/.agent/agents/frontend-specialist.md +257 -248
- package/.agent/agents/game-developer.md +48 -48
- package/.agent/agents/logic-reviewer.md +118 -116
- package/.agent/agents/mobile-developer.md +197 -200
- package/.agent/agents/mobile-reviewer.md +159 -162
- package/.agent/agents/orchestrator.md +187 -181
- package/.agent/agents/penetration-tester.md +160 -157
- package/.agent/agents/performance-optimizer.md +183 -183
- package/.agent/agents/performance-reviewer.md +178 -178
- package/.agent/agents/precedence-reviewer.md +251 -250
- package/.agent/agents/product-manager.md +149 -142
- package/.agent/agents/product-owner.md +81 -80
- package/.agent/agents/project-planner.md +152 -142
- package/.agent/agents/qa-automation-engineer.md +216 -225
- package/.agent/agents/resilience-reviewer.md +88 -88
- package/.agent/agents/schema-reviewer.md +67 -67
- package/.agent/agents/security-auditor.md +180 -174
- package/.agent/agents/seo-specialist.md +188 -193
- package/.agent/agents/sql-reviewer.md +159 -161
- package/.agent/agents/supervisor-agent.md +173 -184
- package/.agent/agents/swarm-worker-contracts.md +170 -166
- package/.agent/agents/swarm-worker-registry.md +92 -92
- package/.agent/agents/system-architect.md +85 -0
- package/.agent/agents/test-coverage-reviewer.md +158 -160
- package/.agent/agents/test-engineer.md +118 -118
- package/.agent/agents/throughput-optimizer.md +291 -299
- package/.agent/agents/type-safety-reviewer.md +182 -175
- package/.agent/agents/ui-ux-auditor.md +300 -292
- package/.agent/agents/vitals-reviewer.md +223 -223
- package/.agent/mcp_config.json +37 -40
- package/.agent/patterns/generator.md +11 -9
- package/.agent/patterns/inversion.md +14 -12
- package/.agent/patterns/pipeline.md +11 -9
- package/.agent/patterns/reviewer.md +15 -13
- package/.agent/patterns/tool-wrapper.md +11 -9
- package/.agent/routing_index.json +654 -0
- package/.agent/rules/GEMINI.md +358 -352
- package/.agent/scripts/compile_router.py +112 -0
- package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
- package/.agent/scripts/strengthen_skills.js +1 -1
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
- package/.agent/skills/agent-organizer/SKILL.md +156 -150
- package/.agent/skills/agentic-patterns/SKILL.md +313 -315
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
- package/.agent/skills/api-patterns/SKILL.md +253 -247
- package/.agent/skills/api-security-auditor/SKILL.md +195 -193
- package/.agent/skills/app-builder/SKILL.md +573 -572
- package/.agent/skills/app-builder/templates/SKILL.md +108 -115
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
- package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
- package/.agent/skills/architecture/SKILL.md +226 -219
- package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
- package/.agent/skills/backend-security-expert/SKILL.md +16 -2
- package/.agent/skills/bash-linux/SKILL.md +179 -179
- package/.agent/skills/behavioral-modes/SKILL.md +239 -223
- package/.agent/skills/brainstorming/SKILL.md +498 -486
- package/.agent/skills/browser-native-ai/SKILL.md +57 -4
- package/.agent/skills/building-native-ui/SKILL.md +202 -202
- package/.agent/skills/cicd-pro/SKILL.md +442 -0
- package/.agent/skills/clean-code/SKILL.md +400 -381
- package/.agent/skills/cloud-architect/SKILL.md +439 -0
- package/.agent/skills/code-review-checklist/SKILL.md +203 -194
- package/.agent/skills/config-validator/SKILL.md +165 -165
- package/.agent/skills/containerization-pro/SKILL.md +452 -0
- package/.agent/skills/csharp-developer/SKILL.md +518 -518
- package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
- package/.agent/skills/database-design/SKILL.md +247 -240
- package/.agent/skills/deployment-procedures/SKILL.md +172 -169
- package/.agent/skills/devops-engineer/SKILL.md +345 -345
- package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
- package/.agent/skills/doc.md +209 -177
- package/.agent/skills/documentation-templates/SKILL.md +291 -279
- package/.agent/skills/edge-computing/SKILL.md +183 -181
- package/.agent/skills/error-resilience/SKILL.md +411 -428
- package/.agent/skills/extract-design-system/SKILL.md +160 -158
- package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
- package/.agent/skills/frontend-design/SKILL.md +208 -201
- package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
- package/.agent/skills/game-design-expert/SKILL.md +132 -129
- package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
- package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
- package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
- package/.agent/skills/git-pro/SKILL.md +435 -0
- package/.agent/skills/github-operations/SKILL.md +335 -329
- package/.agent/skills/gsap-core/SKILL.md +319 -308
- package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
- package/.agent/skills/gsap-performance/SKILL.md +139 -133
- package/.agent/skills/gsap-plugins/SKILL.md +486 -480
- package/.agent/skills/gsap-react/SKILL.md +202 -189
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
- package/.agent/skills/gsap-timeline/SKILL.md +165 -161
- package/.agent/skills/gsap-utils/SKILL.md +344 -338
- package/.agent/skills/harness-protocol/SKILL.md +48 -0
- package/.agent/skills/i18n-localization/SKILL.md +174 -163
- package/.agent/skills/intelligent-routing/SKILL.md +202 -246
- package/.agent/skills/knowledge-graph/SKILL.md +60 -52
- package/.agent/skills/lint-and-validate/SKILL.md +261 -261
- package/.agent/skills/llm-engineering/SKILL.md +400 -394
- package/.agent/skills/local-first/SKILL.md +178 -178
- package/.agent/skills/mcp-builder/SKILL.md +143 -142
- package/.agent/skills/mobile-design/SKILL.md +272 -263
- package/.agent/skills/monorepo-management/SKILL.md +335 -334
- package/.agent/skills/motion-engineering/SKILL.md +266 -234
- package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
- package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
- package/.agent/skills/observability/SKILL.md +343 -343
- package/.agent/skills/parallel-agents/SKILL.md +143 -146
- package/.agent/skills/performance-profiling/SKILL.md +259 -267
- package/.agent/skills/plan-writing/SKILL.md +150 -142
- package/.agent/skills/platform-engineer/SKILL.md +148 -147
- package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
- package/.agent/skills/powershell-windows/SKILL.md +162 -162
- package/.agent/skills/project-idioms/SKILL.md +137 -137
- package/.agent/skills/python-patterns/SKILL.md +260 -259
- package/.agent/skills/python-pro/SKILL.md +324 -323
- package/.agent/skills/react-specialist/SKILL.md +305 -277
- package/.agent/skills/readme-builder/SKILL.md +310 -300
- package/.agent/skills/realtime-patterns/SKILL.md +323 -319
- package/.agent/skills/red-team-tactics/SKILL.md +231 -218
- package/.agent/skills/rust-pro/SKILL.md +671 -673
- package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
- package/.agent/skills/server-management/SKILL.md +218 -214
- package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
- package/.agent/skills/skill-creator/SKILL.md +87 -86
- package/.agent/skills/sql-pro/SKILL.md +629 -629
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
- package/.agent/skills/swiftui-expert/SKILL.md +204 -201
- package/.agent/skills/system-design-pro/SKILL.md +345 -0
- package/.agent/skills/systematic-debugging/SKILL.md +153 -142
- package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
- package/.agent/skills/tdd-workflow/SKILL.md +169 -161
- package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
- package/.agent/skills/testing-patterns/SKILL.md +566 -579
- package/.agent/skills/trend-researcher/SKILL.md +243 -237
- package/.agent/skills/typescript-advanced/SKILL.md +336 -335
- package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
- package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
- package/.agent/skills/vue-expert/SKILL.md +294 -275
- package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
- package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
- package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
- package/.agent/skills/webapp-testing/SKILL.md +167 -169
- package/.agent/skills/webgpu-performance/SKILL.md +56 -2
- package/.agent/skills/whimsy-injector/SKILL.md +346 -325
- package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
- package/.agent/workflows/acf.md +141 -0
- package/.agent/workflows/api-tester.md +176 -151
- package/.agent/workflows/audit.md +150 -127
- package/.agent/workflows/brainstorm.md +134 -110
- package/.agent/workflows/changelog.md +140 -112
- package/.agent/workflows/create.md +168 -124
- package/.agent/workflows/debug.md +190 -165
- package/.agent/workflows/deploy.md +201 -180
- package/.agent/workflows/enhance.md +154 -128
- package/.agent/workflows/fix.md +136 -114
- package/.agent/workflows/generate.md +198 -183
- package/.agent/workflows/marathon.md +37 -11
- package/.agent/workflows/migrate.md +184 -160
- package/.agent/workflows/orchestrate.md +192 -168
- package/.agent/workflows/performance-benchmarker.md +135 -114
- package/.agent/workflows/plan.md +196 -173
- package/.agent/workflows/preview.md +103 -80
- package/.agent/workflows/refactor.md +192 -161
- package/.agent/workflows/review-ai.md +125 -101
- package/.agent/workflows/review.md +141 -116
- package/.agent/workflows/session.md +122 -94
- package/.agent/workflows/status.md +101 -79
- package/.agent/workflows/strengthen-skills.md +164 -138
- package/.agent/workflows/super-prompt.md +24 -0
- package/.agent/workflows/swarm.md +193 -179
- package/.agent/workflows/test.md +211 -189
- package/.agent/workflows/tribunal-backend.md +136 -105
- package/.agent/workflows/tribunal-database.md +122 -95
- package/.agent/workflows/tribunal-frontend.md +221 -96
- package/.agent/workflows/tribunal-full.md +129 -100
- package/.agent/workflows/tribunal-mobile.md +122 -95
- package/.agent/workflows/tribunal-performance.md +136 -110
- package/.agent/workflows/tribunal-speed.md +209 -183
- package/.agent/workflows/ui-ux-pro-max.md +145 -122
- package/README.md +107 -55
- package/bin/mcp-server.js +159 -0
- package/bin/tribunal-kit.js +105 -29
- package/bin/wrapper.js +16 -7
- package/mcp_config.json +9 -0
- package/package.json +94 -86
- package/scripts/changelog.js +4 -3
- package/scripts/validate-payload.js +6 -1
- package/scripts/postinstall.js +0 -127
|
@@ -1,218 +1,220 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: server-management
|
|
3
|
-
description: Production Linux server administration mastery. Systemd services, Nginx reverse proxy architecture, UFW firewalls, SSH key security, cron scheduling, log rotation, and server hardening. Use when configuring bare-metal, VPS instances, or reviewing deployment architecture.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version: 2.0.0
|
|
6
|
-
last-updated: 2026-04-02
|
|
7
|
-
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
#
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
`
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
server {
|
|
77
|
-
listen 80;
|
|
78
|
-
server_name api.myapp.com;
|
|
79
|
-
|
|
80
|
-
# Force SSL Redirect
|
|
81
|
-
return 301 https://$host$request_uri;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
server {
|
|
85
|
-
listen 443 ssl http2;
|
|
86
|
-
server_name api.myapp.com;
|
|
87
|
-
|
|
88
|
-
# SSL Certs (Let's Encrypt / Certbot)
|
|
89
|
-
ssl_certificate /etc/letsencrypt/live/api.myapp.com/fullchain.pem;
|
|
90
|
-
ssl_certificate_key /etc/letsencrypt/live/api.myapp.com/privkey.pem;
|
|
91
|
-
|
|
92
|
-
# Modern Security Headers
|
|
93
|
-
add_header Strict-Transport-Security "max-age=63072000" always;
|
|
94
|
-
add_header X-Content-Type-Options nosniff;
|
|
95
|
-
add_header X-Frame-Options DENY;
|
|
96
|
-
|
|
97
|
-
# GZIP Compression
|
|
98
|
-
gzip on;
|
|
99
|
-
gzip_types text/plain application/json;
|
|
100
|
-
|
|
101
|
-
location / {
|
|
102
|
-
# Proxy traffic to internal local process
|
|
103
|
-
proxy_pass http://127.0.0.1:3000;
|
|
104
|
-
|
|
105
|
-
# Forward original IP and Protocol for rate limiters
|
|
106
|
-
proxy_set_header Host $host;
|
|
107
|
-
proxy_set_header X-Real-IP $remote_addr;
|
|
108
|
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
109
|
-
proxy_set_header X-Forwarded-Proto $scheme;
|
|
110
|
-
|
|
111
|
-
# WebSocket support (Required for GraphQL subscriptions, TRPC, Socket.io)
|
|
112
|
-
proxy_http_version 1.1;
|
|
113
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
114
|
-
proxy_set_header Connection "upgrade";
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 3. Server Hardening Fundamentals
|
|
122
|
-
|
|
123
|
-
### SSH Security (`/etc/ssh/sshd_config`)
|
|
124
|
-
```bash
|
|
125
|
-
PermitRootLogin no # Kill direct root login attacks immediately
|
|
126
|
-
PasswordAuthentication no # Enforce SSH key-based login ONLY
|
|
127
|
-
Port 2022 # (Optional) Obscurity defense against automated script-kiddie scanners
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Uncomplicated Firewall (UFW)
|
|
131
|
-
A naked server with all ports open is a honeypot.
|
|
132
|
-
```bash
|
|
133
|
-
sudo ufw default deny incoming
|
|
134
|
-
sudo ufw default allow outgoing
|
|
135
|
-
sudo ufw allow 22/tcp # Allow SSH
|
|
136
|
-
sudo ufw allow 80/tcp # Allow HTTP
|
|
137
|
-
sudo ufw allow 443/tcp # Allow HTTPS
|
|
138
|
-
sudo ufw enable
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Fail2Ban
|
|
142
|
-
Automatically bans IPs attempting brute force credential filling after 5 bad attempts.
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## 4. Log Rotation (Prevent Disk Full Outages)
|
|
147
|
-
|
|
148
|
-
A server will inevitably crash when `/var/log` consumes 100% of the disk.
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
# /etc/logrotate.d/myapp
|
|
152
|
-
|
|
153
|
-
/var/www/myapp/logs/*.log {
|
|
154
|
-
daily # Rotate every day
|
|
155
|
-
missingok # Ignore if file is missing
|
|
156
|
-
rotate 14 # Keep 14 days of history
|
|
157
|
-
compress # Gzip old logs
|
|
158
|
-
delaycompress # Don't compress the one created yesterday
|
|
159
|
-
notifempty # Do nothing if log is empty
|
|
160
|
-
copytruncate # Copy then clear (avoids disrupting Node's open file handles)
|
|
161
|
-
}
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
172
|
-
|
|
173
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
174
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
175
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
176
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
177
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
184
|
-
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
185
|
-
|
|
186
|
-
### ❌ Forbidden AI Tropes
|
|
187
|
-
|
|
188
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
189
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
190
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
Review these questions before confirming output:
|
|
195
|
-
```
|
|
196
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
197
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
198
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
199
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
203
|
-
|
|
204
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
205
|
-
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
206
|
-
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
## Pre-Flight Checklist
|
|
210
|
-
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
211
|
-
- [ ] Have I checked the environment for relevant existing implementations?
|
|
212
|
-
|
|
213
|
-
## VBC Protocol (Verification-Before-Completion)
|
|
214
|
-
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
1
|
+
---
|
|
2
|
+
name: server-management
|
|
3
|
+
description: Production Linux server administration mastery. Systemd services, Nginx reverse proxy architecture, UFW firewalls, SSH key security, cron scheduling, log rotation, and server hardening. Use when configuring bare-metal, VPS instances, or reviewing deployment architecture.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
last-updated: 2026-04-02
|
|
7
|
+
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
+
routing:
|
|
9
|
+
domain: general
|
|
10
|
+
tier: basic
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Hallucination Traps (Read First)
|
|
14
|
+
|
|
15
|
+
- ❌ Running services as root -> ✅ Create a dedicated service user with minimal permissions; never run as root
|
|
16
|
+
- ❌ Using password-based SSH -> ✅ Disable password auth; use SSH key pairs only with `PermitRootLogin no`
|
|
17
|
+
- ❌ Editing nginx config without testing -> ✅ Always run `nginx -t` before `systemctl reload nginx`; syntax errors take down all sites
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Server Management — Production Linux Mastery
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. Systemd Service Architecture (Process Guard)
|
|
26
|
+
|
|
27
|
+
Do not use `pm2`, `forever`, or custom `screen` sessions attached to SSH panels for server orchestration. Linux provides an enterprise-grade init system natively: systemd.
|
|
28
|
+
|
|
29
|
+
```ini
|
|
30
|
+
# /etc/systemd/system/myapp.service
|
|
31
|
+
|
|
32
|
+
[Unit]
|
|
33
|
+
Description=My Application Node.js Server
|
|
34
|
+
Documentation=https://example.com/docs
|
|
35
|
+
After=network.target postgresql.service # Ensure DB and Network start first
|
|
36
|
+
|
|
37
|
+
[Service]
|
|
38
|
+
Type=simple
|
|
39
|
+
User=appuser # NEVER run as root
|
|
40
|
+
Group=appuser
|
|
41
|
+
WorkingDirectory=/var/www/myapp
|
|
42
|
+
|
|
43
|
+
# Explicitly declare environment limits and variables
|
|
44
|
+
Environment=NODE_ENV=production
|
|
45
|
+
Environment=PORT=3000
|
|
46
|
+
EnvironmentFile=/var/www/myapp/.env
|
|
47
|
+
|
|
48
|
+
# The execution target
|
|
49
|
+
ExecStart=/usr/bin/node /var/www/myapp/build/index.js
|
|
50
|
+
|
|
51
|
+
# Immortal behavior: Restart strictly on failure
|
|
52
|
+
Restart=on-failure
|
|
53
|
+
RestartSec=5
|
|
54
|
+
|
|
55
|
+
# Security Hardening
|
|
56
|
+
NoNewPrivileges=yes
|
|
57
|
+
PrivateTmp=yes
|
|
58
|
+
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
|
|
59
|
+
|
|
60
|
+
[Install]
|
|
61
|
+
WantedBy=multi-user.target
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Commands:**
|
|
65
|
+
`sudo systemctl daemon-reload`
|
|
66
|
+
`sudo systemctl enable myapp`
|
|
67
|
+
`sudo systemctl start myapp`
|
|
68
|
+
`journalctl -u myapp -f` (Follow logs seamlessly)
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 2. Nginx Reverse Proxy Architecture
|
|
73
|
+
|
|
74
|
+
You must shield your internal application framework (Node/Python/Ruby) behind Nginx. Nginx handles SSL termination, static file caching, and DDOS mitigation.
|
|
215
75
|
|
|
76
|
+
```nginx
|
|
77
|
+
# /etc/nginx/sites-available/myapp.com
|
|
78
|
+
|
|
79
|
+
server {
|
|
80
|
+
listen 80;
|
|
81
|
+
server_name api.myapp.com;
|
|
82
|
+
|
|
83
|
+
# Force SSL Redirect
|
|
84
|
+
return 301 https://$host$request_uri;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
server {
|
|
88
|
+
listen 443 ssl http2;
|
|
89
|
+
server_name api.myapp.com;
|
|
90
|
+
|
|
91
|
+
# SSL Certs (Let's Encrypt / Certbot)
|
|
92
|
+
ssl_certificate /etc/letsencrypt/live/api.myapp.com/fullchain.pem;
|
|
93
|
+
ssl_certificate_key /etc/letsencrypt/live/api.myapp.com/privkey.pem;
|
|
94
|
+
|
|
95
|
+
# Modern Security Headers
|
|
96
|
+
add_header Strict-Transport-Security "max-age=63072000" always;
|
|
97
|
+
add_header X-Content-Type-Options nosniff;
|
|
98
|
+
add_header X-Frame-Options DENY;
|
|
99
|
+
|
|
100
|
+
# GZIP Compression
|
|
101
|
+
gzip on;
|
|
102
|
+
gzip_types text/plain application/json;
|
|
103
|
+
|
|
104
|
+
location / {
|
|
105
|
+
# Proxy traffic to internal local process
|
|
106
|
+
proxy_pass http://127.0.0.1:3000;
|
|
107
|
+
|
|
108
|
+
# Forward original IP and Protocol for rate limiters
|
|
109
|
+
proxy_set_header Host $host;
|
|
110
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
111
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
112
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
113
|
+
|
|
114
|
+
# WebSocket support (Required for GraphQL subscriptions, TRPC, Socket.io)
|
|
115
|
+
proxy_http_version 1.1;
|
|
116
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
117
|
+
proxy_set_header Connection "upgrade";
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 3. Server Hardening Fundamentals
|
|
125
|
+
|
|
126
|
+
### SSH Security (`/etc/ssh/sshd_config`)
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
PermitRootLogin no # Kill direct root login attacks immediately
|
|
130
|
+
PasswordAuthentication no # Enforce SSH key-based login ONLY
|
|
131
|
+
Port 2022 # (Optional) Obscurity defense against automated script-kiddie scanners
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Uncomplicated Firewall (UFW)
|
|
135
|
+
|
|
136
|
+
A naked server with all ports open is a honeypot.
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
sudo ufw default deny incoming
|
|
140
|
+
sudo ufw default allow outgoing
|
|
141
|
+
sudo ufw allow 22/tcp # Allow SSH
|
|
142
|
+
sudo ufw allow 80/tcp # Allow HTTP
|
|
143
|
+
sudo ufw allow 443/tcp # Allow HTTPS
|
|
144
|
+
sudo ufw enable
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Fail2Ban
|
|
148
|
+
|
|
149
|
+
Automatically bans IPs attempting brute force credential filling after 5 bad attempts.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 4. Log Rotation (Prevent Disk Full Outages)
|
|
154
|
+
|
|
155
|
+
A server will inevitably crash when `/var/log` consumes 100% of the disk.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# /etc/logrotate.d/myapp
|
|
159
|
+
|
|
160
|
+
/var/www/myapp/logs/*.log {
|
|
161
|
+
daily # Rotate every day
|
|
162
|
+
missingok # Ignore if file is missing
|
|
163
|
+
rotate 14 # Keep 14 days of history
|
|
164
|
+
compress # Gzip old logs
|
|
165
|
+
delaycompress # Don't compress the one created yesterday
|
|
166
|
+
notifempty # Do nothing if log is empty
|
|
167
|
+
copytruncate # Copy then clear (avoids disrupting Node's open file handles)
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
176
|
+
|
|
177
|
+
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
178
|
+
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
179
|
+
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
180
|
+
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
181
|
+
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
**Slash command: `/review` or `/tribunal-full`**
|
|
186
|
+
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
187
|
+
|
|
188
|
+
### ❌ Forbidden AI Tropes
|
|
189
|
+
|
|
190
|
+
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
191
|
+
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
192
|
+
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
193
|
+
|
|
194
|
+
Review these questions before confirming output:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
✅ Did I rely ONLY on real, verified tools and methods?
|
|
198
|
+
✅ Is this solution appropriately scoped to the user's constraints?
|
|
199
|
+
✅ Did I handle potential failure modes and edge cases?
|
|
200
|
+
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
204
|
+
|
|
205
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
206
|
+
|
|
207
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
208
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
209
|
+
|
|
210
|
+
## Pre-Flight Checklist
|
|
211
|
+
|
|
212
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
213
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
214
|
+
|
|
215
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
216
|
+
|
|
217
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
216
218
|
|
|
217
219
|
---
|
|
218
220
|
|
|
@@ -242,6 +244,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
242
244
|
### ✅ Pre-Flight Self-Audit
|
|
243
245
|
|
|
244
246
|
Review these questions before confirming output:
|
|
247
|
+
|
|
245
248
|
```
|
|
246
249
|
✅ Did I rely ONLY on real, verified tools and methods?
|
|
247
250
|
✅ Is this solution appropriately scoped to the user's constraints?
|
|
@@ -252,5 +255,6 @@ Review these questions before confirming output:
|
|
|
252
255
|
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
253
256
|
|
|
254
257
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
258
|
+
|
|
255
259
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
256
260
|
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|