tribunal-kit 4.5.1 → 4.6.1
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 +282 -277
- 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 +714 -0
- package/.agent/rules/GEMINI.md +359 -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/documentation-templates/SKILL.md +291 -279
- package/.agent/skills/edge-computing/SKILL.md +183 -181
- package/.agent/skills/emil-design-eng/SKILL.md +147 -0
- 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/review-animations/SKILL.md +72 -0
- package/.agent/skills/review-animations/STANDARDS.md +73 -0
- 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 +129 -95
- package/.agent/workflows/tribunal-frontend.md +140 -96
- package/.agent/workflows/tribunal-full.md +131 -100
- package/.agent/workflows/tribunal-mobile.md +129 -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 +155 -122
- package/README.md +107 -55
- package/mcp_config.json +1 -3
- package/package.json +94 -94
- package/.agent/GEMINI.md +0 -121
- package/.agent/skills/doc.md +0 -177
|
@@ -1,222 +1,233 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: red-team-tactics
|
|
3
|
-
description: Red team tactics principles based on MITRE ATT&CK. Attack phases, detection evasion, reporting.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
last-updated: 2026-03-12
|
|
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
|
-
## Engagement Scope First
|
|
28
|
-
|
|
29
|
-
Before any testing activity:
|
|
30
|
-
|
|
31
|
-
1. **Written authorization** — who authorized this engagement and in what scope?
|
|
32
|
-
2. **Scope definition** — which systems, IPs, domains, time windows are in scope?
|
|
33
|
-
3. **Rules of engagement** — what is prohibited? (production data access, social engineering of specific roles, DDoS)
|
|
34
|
-
4. **Emergency contact** — who do you call if you discover a critical live breach mid-engagement?
|
|
35
|
-
5. **Deconfliction** — does the blue team know an engagement is running, or is it blind?
|
|
36
|
-
|
|
37
|
-
No authorization = no testing.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Attack Phases (Based on MITRE ATT&CK)
|
|
42
|
-
|
|
43
|
-
### 1. Reconnaissance
|
|
44
|
-
Passive and active information gathering before touching the target.
|
|
45
|
-
|
|
46
|
-
**Passive (no target contact):**
|
|
47
|
-
- DNS lookup: `nslookup`, `dig`, certificate transparency logs
|
|
48
|
-
- OSINT: LinkedIn for employee names/roles, GitHub for leaked configs, Shodan for exposed infrastructure
|
|
49
|
-
|
|
50
|
-
**Active (target is contacted):**
|
|
51
|
-
- Port scanning: `nmap -sV -sC <target>`
|
|
52
|
-
- Web tech detection: `whatweb`, `wappalyzer`
|
|
53
|
-
- Subdomain enumeration: `amass`, `subfinder`
|
|
54
|
-
|
|
55
|
-
### 2. Initial Access
|
|
56
|
-
How does an attacker get their first foothold?
|
|
57
|
-
|
|
58
|
-
Common vectors:
|
|
59
|
-
- Phishing (credential harvest or malicious attachment)
|
|
60
|
-
- Exposed admin interfaces with default or weak credentials
|
|
61
|
-
- Publicly exposed vulnerable services (`searchsploit`, `nuclei`)
|
|
62
|
-
- Supply chain compromise (malicious npm package, CI/CD injection)
|
|
63
|
-
|
|
64
|
-
### 3. Persistence
|
|
65
|
-
Maintaining access after initial compromise:
|
|
66
|
-
|
|
67
|
-
- Scheduled tasks / cron jobs
|
|
68
|
-
- Web shells on compromised web servers
|
|
69
|
-
- New user accounts with admin rights
|
|
70
|
-
- SSH authorized_keys injection
|
|
71
|
-
|
|
72
|
-
### 4. Lateral Movement
|
|
73
|
-
Moving from initial foothold to higher-value targets:
|
|
74
|
-
|
|
75
|
-
- Pass-the-hash / pass-the-ticket (Active Directory)
|
|
76
|
-
- SSH key reuse across hosts
|
|
77
|
-
- Credential reuse (if one service is compromised, others sharing the password are vulnerable)
|
|
78
|
-
- Internal network scanning to map new targets
|
|
79
|
-
|
|
80
|
-
### 5. Exfiltration
|
|
81
|
-
Getting data out without triggering alerts:
|
|
82
|
-
|
|
83
|
-
- Small, slow transfers to blend with normal traffic
|
|
84
|
-
- Staging data in cloud storage linked to attacker-controlled accounts
|
|
85
|
-
- DNS exfiltration (for heavily monitored networks)
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Common Vulnerability Targets
|
|
90
|
-
|
|
91
|
-
|Target|What to Test|
|
|
92
|
-
|---|---|
|
|
93
|
-
|Web applications|OWASP Top 10, auth bypass, IDOR, SSRF|
|
|
94
|
-
|APIs|Object-level authorization, mass assignment, rate limiting|
|
|
95
|
-
|Authentication|Brute force protection, token entropy, password reset flow|
|
|
96
|
-
|Secrets|Exposed env files, git history, CI/CD environment variables|
|
|
97
|
-
|Third-party integrations|Webhook validation, OAuth redirect URI validation|
|
|
98
|
-
|Infrastructure|Open S3 buckets, exposed admin ports, default credentials|
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Detection Evasion (for Authorized Testing)
|
|
103
|
-
|
|
104
|
-
When testing detection capabilities:
|
|
105
|
-
|
|
106
|
-
- Slow scan rates to stay under IDS thresholds
|
|
107
|
-
- Use legitimate user agents and headers
|
|
108
|
-
- Blend with normal traffic patterns
|
|
109
|
-
- Test from IP ranges the organization wouldn't expect
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## Reporting Format
|
|
114
|
-
|
|
115
|
-
```markdown
|
|
116
|
-
# Red Team Report: [Engagement Name]
|
|
117
|
-
|
|
118
|
-
## Executive Summary
|
|
119
|
-
[2–3 sentences: what was tested, biggest risk found, business impact]
|
|
120
|
-
|
|
121
|
-
## Scope
|
|
122
|
-
[Systems tested, date range, authorization reference]
|
|
123
|
-
|
|
124
|
-
## Critical Findings
|
|
125
|
-
|
|
126
|
-
### CRIT-01: [Title]
|
|
127
|
-
**Risk:** Critical
|
|
128
|
-
**CVSS:** 9.8
|
|
129
|
-
**Description:** [What the vulnerability is]
|
|
130
|
-
**Evidence:** [Screenshot, payload, response]
|
|
131
|
-
**Impact:** [What an attacker could do]
|
|
132
|
-
**Remediation:** [Specific fix with code or config example]
|
|
133
|
-
|
|
134
|
-
## Attack Narrative
|
|
135
|
-
[Chronological story of the full attack path from initial access to objective]
|
|
136
|
-
|
|
137
|
-
## Remediation Priority
|
|
138
|
-
|Finding|Severity|Fix By|
|
|
139
|
-
|---|---|---|
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Ethical Boundaries
|
|
145
|
-
|
|
146
|
-
- Stop immediately if you discover evidence of an active breach by a real attacker — report it, don't continue testing
|
|
147
|
-
- Don't access, copy, or delete real user data even if you can
|
|
148
|
-
- Document everything — every command run, every finding noted
|
|
149
|
-
- Brief the client team before leaving — no surprises in the report
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Output Format
|
|
154
|
-
|
|
155
|
-
When this skill produces a recommendation or design decision, structure your output as:
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
━━━ Red Team Tactics Recommendation ━━━━━━━━━━━━━━━━
|
|
159
|
-
Decision: [what was chosen / proposed]
|
|
160
|
-
Rationale: [why — one concise line]
|
|
161
|
-
Trade-offs: [what is consciously accepted]
|
|
162
|
-
Next action: [concrete next step for the user]
|
|
163
|
-
─────────────────────────────────────────────────
|
|
164
|
-
Pre-Flight: ✅ All checks passed
|
|
165
|
-
or ❌ [blocking item that must be resolved first]
|
|
166
|
-
```
|
|
167
|
-
|
|
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
|
-
|
|
186
|
-
|
|
187
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
188
|
-
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
189
|
-
|
|
190
|
-
### ❌ Forbidden AI Tropes
|
|
191
|
-
|
|
192
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
193
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
194
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
Review these questions before confirming output:
|
|
199
|
-
```
|
|
200
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
201
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
202
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
203
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
207
|
-
|
|
208
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
209
|
-
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
210
|
-
- ✅ **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.
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
## Pre-Flight Checklist
|
|
214
|
-
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
215
|
-
- [ ] Have I checked the environment for relevant existing implementations?
|
|
216
|
-
|
|
217
|
-
## VBC Protocol (Verification-Before-Completion)
|
|
218
|
-
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
1
|
+
---
|
|
2
|
+
name: red-team-tactics
|
|
3
|
+
description: Red team tactics principles based on MITRE ATT&CK. Attack phases, detection evasion, reporting.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last-updated: 2026-03-12
|
|
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
|
+
- ❌ Testing only happy-path authentication -> ✅ Red teaming must test token reuse, expired tokens, forged tokens, and privilege escalation
|
|
16
|
+
- ❌ Reporting vulnerabilities without proof-of-concept -> ✅ Every finding needs a reproducible PoC and severity rating (CVSS)
|
|
17
|
+
- ❌ Stopping after finding the first vulnerability -> ✅ Real attackers chain multiple low-severity issues; test for escalation paths
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Red Team & Penetration Testing Principles
|
|
22
|
+
|
|
23
|
+
A red team engagement is a controlled attack.
|
|
24
|
+
The goal is to find what a real attacker would find — before they do.
|
|
219
25
|
|
|
26
|
+
⚠️ **These techniques are for authorized security testing only. Unauthorized use is illegal.**
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Engagement Scope First
|
|
31
|
+
|
|
32
|
+
Before any testing activity:
|
|
33
|
+
|
|
34
|
+
1. **Written authorization** — who authorized this engagement and in what scope?
|
|
35
|
+
2. **Scope definition** — which systems, IPs, domains, time windows are in scope?
|
|
36
|
+
3. **Rules of engagement** — what is prohibited? (production data access, social engineering of specific roles, DDoS)
|
|
37
|
+
4. **Emergency contact** — who do you call if you discover a critical live breach mid-engagement?
|
|
38
|
+
5. **Deconfliction** — does the blue team know an engagement is running, or is it blind?
|
|
39
|
+
|
|
40
|
+
No authorization = no testing.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Attack Phases (Based on MITRE ATT&CK)
|
|
45
|
+
|
|
46
|
+
### 1. Reconnaissance
|
|
47
|
+
|
|
48
|
+
Passive and active information gathering before touching the target.
|
|
49
|
+
|
|
50
|
+
**Passive (no target contact):**
|
|
51
|
+
|
|
52
|
+
- DNS lookup: `nslookup`, `dig`, certificate transparency logs
|
|
53
|
+
- OSINT: LinkedIn for employee names/roles, GitHub for leaked configs, Shodan for exposed infrastructure
|
|
54
|
+
|
|
55
|
+
**Active (target is contacted):**
|
|
56
|
+
|
|
57
|
+
- Port scanning: `nmap -sV -sC <target>`
|
|
58
|
+
- Web tech detection: `whatweb`, `wappalyzer`
|
|
59
|
+
- Subdomain enumeration: `amass`, `subfinder`
|
|
60
|
+
|
|
61
|
+
### 2. Initial Access
|
|
62
|
+
|
|
63
|
+
How does an attacker get their first foothold?
|
|
64
|
+
|
|
65
|
+
Common vectors:
|
|
66
|
+
|
|
67
|
+
- Phishing (credential harvest or malicious attachment)
|
|
68
|
+
- Exposed admin interfaces with default or weak credentials
|
|
69
|
+
- Publicly exposed vulnerable services (`searchsploit`, `nuclei`)
|
|
70
|
+
- Supply chain compromise (malicious npm package, CI/CD injection)
|
|
71
|
+
|
|
72
|
+
### 3. Persistence
|
|
73
|
+
|
|
74
|
+
Maintaining access after initial compromise:
|
|
75
|
+
|
|
76
|
+
- Scheduled tasks / cron jobs
|
|
77
|
+
- Web shells on compromised web servers
|
|
78
|
+
- New user accounts with admin rights
|
|
79
|
+
- SSH authorized_keys injection
|
|
80
|
+
|
|
81
|
+
### 4. Lateral Movement
|
|
82
|
+
|
|
83
|
+
Moving from initial foothold to higher-value targets:
|
|
84
|
+
|
|
85
|
+
- Pass-the-hash / pass-the-ticket (Active Directory)
|
|
86
|
+
- SSH key reuse across hosts
|
|
87
|
+
- Credential reuse (if one service is compromised, others sharing the password are vulnerable)
|
|
88
|
+
- Internal network scanning to map new targets
|
|
89
|
+
|
|
90
|
+
### 5. Exfiltration
|
|
91
|
+
|
|
92
|
+
Getting data out without triggering alerts:
|
|
93
|
+
|
|
94
|
+
- Small, slow transfers to blend with normal traffic
|
|
95
|
+
- Staging data in cloud storage linked to attacker-controlled accounts
|
|
96
|
+
- DNS exfiltration (for heavily monitored networks)
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Common Vulnerability Targets
|
|
101
|
+
|
|
102
|
+
| Target | What to Test |
|
|
103
|
+
| ------------------------ | ----------------------------------------------------------- |
|
|
104
|
+
| Web applications | OWASP Top 10, auth bypass, IDOR, SSRF |
|
|
105
|
+
| APIs | Object-level authorization, mass assignment, rate limiting |
|
|
106
|
+
| Authentication | Brute force protection, token entropy, password reset flow |
|
|
107
|
+
| Secrets | Exposed env files, git history, CI/CD environment variables |
|
|
108
|
+
| Third-party integrations | Webhook validation, OAuth redirect URI validation |
|
|
109
|
+
| Infrastructure | Open S3 buckets, exposed admin ports, default credentials |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Detection Evasion (for Authorized Testing)
|
|
114
|
+
|
|
115
|
+
When testing detection capabilities:
|
|
116
|
+
|
|
117
|
+
- Slow scan rates to stay under IDS thresholds
|
|
118
|
+
- Use legitimate user agents and headers
|
|
119
|
+
- Blend with normal traffic patterns
|
|
120
|
+
- Test from IP ranges the organization wouldn't expect
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Reporting Format
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
# Red Team Report: [Engagement Name]
|
|
128
|
+
|
|
129
|
+
## Executive Summary
|
|
130
|
+
|
|
131
|
+
[2–3 sentences: what was tested, biggest risk found, business impact]
|
|
132
|
+
|
|
133
|
+
## Scope
|
|
134
|
+
|
|
135
|
+
[Systems tested, date range, authorization reference]
|
|
136
|
+
|
|
137
|
+
## Critical Findings
|
|
138
|
+
|
|
139
|
+
### CRIT-01: [Title]
|
|
140
|
+
|
|
141
|
+
**Risk:** Critical
|
|
142
|
+
**CVSS:** 9.8
|
|
143
|
+
**Description:** [What the vulnerability is]
|
|
144
|
+
**Evidence:** [Screenshot, payload, response]
|
|
145
|
+
**Impact:** [What an attacker could do]
|
|
146
|
+
**Remediation:** [Specific fix with code or config example]
|
|
147
|
+
|
|
148
|
+
## Attack Narrative
|
|
149
|
+
|
|
150
|
+
[Chronological story of the full attack path from initial access to objective]
|
|
151
|
+
|
|
152
|
+
## Remediation Priority
|
|
153
|
+
|
|
154
|
+
| Finding | Severity | Fix By |
|
|
155
|
+
| ------- | -------- | ------ |
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Ethical Boundaries
|
|
161
|
+
|
|
162
|
+
- Stop immediately if you discover evidence of an active breach by a real attacker — report it, don't continue testing
|
|
163
|
+
- Don't access, copy, or delete real user data even if you can
|
|
164
|
+
- Document everything — every command run, every finding noted
|
|
165
|
+
- Brief the client team before leaving — no surprises in the report
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Output Format
|
|
170
|
+
|
|
171
|
+
When this skill produces a recommendation or design decision, structure your output as:
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
━━━ Red Team Tactics Recommendation ━━━━━━━━━━━━━━━━
|
|
175
|
+
Decision: [what was chosen / proposed]
|
|
176
|
+
Rationale: [why — one concise line]
|
|
177
|
+
Trade-offs: [what is consciously accepted]
|
|
178
|
+
Next action: [concrete next step for the user]
|
|
179
|
+
─────────────────────────────────────────────────
|
|
180
|
+
Pre-Flight: ✅ All checks passed
|
|
181
|
+
or ❌ [blocking item that must be resolved first]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
189
|
+
|
|
190
|
+
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
191
|
+
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
192
|
+
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
193
|
+
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
194
|
+
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
**Slash command: `/review` or `/tribunal-full`**
|
|
199
|
+
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
200
|
+
|
|
201
|
+
### ❌ Forbidden AI Tropes
|
|
202
|
+
|
|
203
|
+
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
204
|
+
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
205
|
+
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
206
|
+
|
|
207
|
+
Review these questions before confirming output:
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
✅ Did I rely ONLY on real, verified tools and methods?
|
|
211
|
+
✅ Is this solution appropriately scoped to the user's constraints?
|
|
212
|
+
✅ Did I handle potential failure modes and edge cases?
|
|
213
|
+
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
217
|
+
|
|
218
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
219
|
+
|
|
220
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
221
|
+
- ✅ **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.
|
|
222
|
+
|
|
223
|
+
## Pre-Flight Checklist
|
|
224
|
+
|
|
225
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
226
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
227
|
+
|
|
228
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
229
|
+
|
|
230
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
220
231
|
|
|
221
232
|
---
|
|
222
233
|
|
|
@@ -246,6 +257,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
246
257
|
### ✅ Pre-Flight Self-Audit
|
|
247
258
|
|
|
248
259
|
Review these questions before confirming output:
|
|
260
|
+
|
|
249
261
|
```
|
|
250
262
|
✅ Did I rely ONLY on real, verified tools and methods?
|
|
251
263
|
✅ Is this solution appropriately scoped to the user's constraints?
|
|
@@ -256,5 +268,6 @@ Review these questions before confirming output:
|
|
|
256
268
|
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
257
269
|
|
|
258
270
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
271
|
+
|
|
259
272
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
260
273
|
- ✅ **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.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-animations
|
|
3
|
+
description: Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
last-updated: 2026-06-26
|
|
6
|
+
applies-to-model: gemini-3-1-pro, claude-3-7-sonnet
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
routing:
|
|
9
|
+
domain: review
|
|
10
|
+
tier: specialized
|
|
11
|
+
trigger-signals:
|
|
12
|
+
strong: [review animations, motion review, ui animation craft, 60fps, animation standards, evaluate motion]
|
|
13
|
+
weak: [review UI, check transitions, smooth animation]
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Reviewing Animations
|
|
17
|
+
|
|
18
|
+
A specialized review skill. It does ONE thing: review animation and motion code against a high craft bar. It does not write features, fix unrelated bugs, or review non-motion code. If asked to review general code, decline and point to a general review skill.
|
|
19
|
+
|
|
20
|
+
## Operating Posture
|
|
21
|
+
|
|
22
|
+
You are a senior motion-design reviewer with a brutal eye for craft. Your bias is toward **motion that feels right**, not motion that merely runs. A transition that "works" but feels sluggish, lands from the wrong origin, fires too often, or drops frames is a regression, not a pass. Default to flagging. Approval is earned, not assumed.
|
|
23
|
+
|
|
24
|
+
The substantive bar comes from Emil Kowalski's animation philosophy (animations.dev). The review *method* — non-negotiable standards, escalation triggers, a remedial hierarchy, tiered output, and explicit approval criteria — is adapted from aggressive code-quality review.
|
|
25
|
+
|
|
26
|
+
For the full rule catalog (easing curves, duration tables, spring config, gestures, clip-path, performance, a11y), see [STANDARDS.md](STANDARDS.md). Load it whenever a finding needs a precise value or citation.
|
|
27
|
+
|
|
28
|
+
## The Ten Non-Negotiable Standards
|
|
29
|
+
|
|
30
|
+
Every animation in the diff is measured against these. A violation is a finding.
|
|
31
|
+
|
|
32
|
+
1. **Justified motion.** Every animation must answer "why does this animate?" — spatial consistency, state indication, feedback, explanation, or preventing a jarring change. "It looks cool" on a frequently-seen element is a block.
|
|
33
|
+
2. **Frequency-appropriate.** Match motion to how often it's seen. Keyboard-initiated and 100+/day actions get **no** animation. Tens/day gets reduced motion. Occasional gets standard. Rare/first-time can have delight.
|
|
34
|
+
3. **Responsive easing.** Entering/exiting elements use `ease-out` or a strong custom curve. `ease-in` on UI is a block — it delays the moment the user watches most. Built-in CSS easings are too weak; expect custom cubic-beziers.
|
|
35
|
+
4. **Sub-300ms UI.** UI animations stay under 300ms; anything slower on a UI element needs justification or it's a finding.
|
|
36
|
+
5. **Origin & physical correctness.** Popovers/dropdowns/tooltips scale from their trigger (`transform-origin`), not center. Never animate from `scale(0)` — start from `scale(0.9–0.97)` + opacity. (Modals are exempt — they stay centered.)
|
|
37
|
+
6. **Interruptibility.** Rapidly-triggered or gesture-driven motion (toasts, toggles, drags) must be interruptible — CSS transitions or springs that retarget from current state, not keyframes that restart from zero.
|
|
38
|
+
7. **GPU-only properties.** Animate `transform` and `opacity` only. Animating `width`/`height`/`margin`/`padding`/`top`/`left` is a performance finding.
|
|
39
|
+
8. **Accessibility.** `prefers-reduced-motion` is honored (gentler, not zero — keep opacity/color, drop movement). Hover animations are gated behind `@media (hover: hover) and (pointer: fine)`.
|
|
40
|
+
9. **Asymmetric enter/exit.** Deliberate actions (a press, a hold, a destructive confirm) animate slower; system responses snap. Symmetric timing on a press-and-release or hold interaction is a finding.
|
|
41
|
+
10. **Cohesion.** Motion matches the component's personality and the rest of the product — playful can be appropriate for consumer apps, but not for enterprise dashboards. Verify the motion fits the context.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 🤖 LLM-Specific Traps
|
|
46
|
+
|
|
47
|
+
1. **Passive Approval:** Approving animations just because the syntax is correct. You must evaluate the *feel* and *performance* against the Standards.
|
|
48
|
+
2. **Ignoring Physics:** Failing to flag elements appearing from nothing (`scale(0)`) or scaling from the wrong origin point.
|
|
49
|
+
3. **Overlooking Duration:** Missing sluggish transitions that exceed the 300ms budget for UI elements.
|
|
50
|
+
4. **Accepting Default Easings:** Approving `ease-in` or generic `ease` on entering UI elements instead of demanding strong `ease-out` curves.
|
|
51
|
+
|
|
52
|
+
## 🏛️ Tribunal Integration (Anti-Hallucination)
|
|
53
|
+
|
|
54
|
+
**Slash command: `/review` or `/tribunal-full`**
|
|
55
|
+
**Active reviewers: `frontend-reviewer` · `performance-reviewer`**
|
|
56
|
+
|
|
57
|
+
### ✅ Pre-Flight Self-Audit
|
|
58
|
+
|
|
59
|
+
Review these questions before confirming output:
|
|
60
|
+
```
|
|
61
|
+
✅ Did I measure the diff against all 10 non-negotiable standards?
|
|
62
|
+
✅ Did I flag any UI animations exceeding 300ms?
|
|
63
|
+
✅ Did I reject any `ease-in` usage on entering elements?
|
|
64
|
+
✅ Did I verify GPU-only properties (`transform` and `opacity`)?
|
|
65
|
+
✅ Did I check for interruptibility and physical correctness?
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
69
|
+
|
|
70
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
71
|
+
- ❌ **Forbidden:** Marking the review as "Pass" without explicitly evaluating against the STANDARDS.md criteria.
|
|
72
|
+
- ✅ **Required:** Output the review in the standard table format (`| Before | After | Why |`) highlighting all violations, and explicitly stating why approval is earned or withheld.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Animation Standards Reference
|
|
2
|
+
|
|
3
|
+
The precise values, curves, and rules behind the review. Cite these in findings instead of approximating. Distilled from Emil Kowalski's design engineering philosophy ([animations.dev](https://animations.dev/)).
|
|
4
|
+
|
|
5
|
+
## Should it animate? (frequency table)
|
|
6
|
+
|
|
7
|
+
| Frequency | Decision |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| 100+ times/day (keyboard shortcuts, command palette) | No animation. Ever. |
|
|
10
|
+
| Tens of times/day (hover effects, list navigation) | Remove or drastically reduce |
|
|
11
|
+
| Occasional (modals, drawers, toasts) | Standard animation |
|
|
12
|
+
| Rare / first-time (onboarding, feedback, celebrations) | Can add delight |
|
|
13
|
+
|
|
14
|
+
**Never animate keyboard-initiated actions** — they repeat hundreds of times daily; animation makes them feel slow and disconnected.
|
|
15
|
+
Valid purposes for motion: spatial consistency, state indication, explanation, feedback, preventing jarring change. "It looks cool" on a frequently-seen element is not valid.
|
|
16
|
+
|
|
17
|
+
## Easing
|
|
18
|
+
|
|
19
|
+
Decision order:
|
|
20
|
+
- Entering or exiting → **`ease-out`** (starts fast, feels responsive)
|
|
21
|
+
- Moving / morphing on screen → **`ease-in-out`**
|
|
22
|
+
- Hover / color change → **`ease`**
|
|
23
|
+
- Constant motion (marquee, progress) → **`linear`**
|
|
24
|
+
- Default → **`ease-out`**
|
|
25
|
+
|
|
26
|
+
**Never `ease-in` on UI.** It starts slow, delaying the exact moment the user is watching. `ease-out` at 200ms *feels* faster than `ease-in` at 200ms.
|
|
27
|
+
|
|
28
|
+
Built-in CSS easings are too weak. Use strong custom curves:
|
|
29
|
+
```css
|
|
30
|
+
--ease-out: cubic-bezier(0.23, 1, 0.32, 1); /* strong ease-out for UI */
|
|
31
|
+
--ease-in-out: cubic-bezier(0.77, 0, 0.175, 1); /* strong ease-in-out for on-screen movement */
|
|
32
|
+
--ease-drawer: cubic-bezier(0.32, 0.72, 0, 1); /* iOS-like drawer curve (Ionic) */
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Duration
|
|
36
|
+
|
|
37
|
+
| Element | Duration |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| Button press feedback | 100–160ms |
|
|
40
|
+
| Tooltips, small popovers | 125–200ms |
|
|
41
|
+
| Dropdowns, selects | 150–250ms |
|
|
42
|
+
| Modals, drawers | 200–500ms |
|
|
43
|
+
| Marketing / explanatory | Can be longer |
|
|
44
|
+
|
|
45
|
+
**Rule: UI animations stay under 300ms.** A 180ms dropdown feels more responsive than a 400ms one.
|
|
46
|
+
|
|
47
|
+
## Physicality
|
|
48
|
+
|
|
49
|
+
- **Never `scale(0)`.** Start from `scale(0.9–0.97)` + `opacity: 0`. Nothing in the real world appears from nothing.
|
|
50
|
+
- **Origin-aware popovers.** Scale from the trigger, not center.
|
|
51
|
+
- **Button press feedback.** `transform: scale(0.97)` on `:active`, `transition: transform 160ms ease-out`. Subtle (0.95–0.98).
|
|
52
|
+
|
|
53
|
+
## Springs
|
|
54
|
+
|
|
55
|
+
Feel natural because they simulate physics; no fixed duration. Use for drag with momentum, interruptible gestures.
|
|
56
|
+
```js
|
|
57
|
+
// Apple-style (easier to reason about) — recommended
|
|
58
|
+
{ type: "spring", duration: 0.5, bounce: 0.2 }
|
|
59
|
+
```
|
|
60
|
+
Keep bounce subtle (0.1–0.3); avoid bounce in most UI.
|
|
61
|
+
|
|
62
|
+
## Interruptibility
|
|
63
|
+
|
|
64
|
+
CSS **transitions** can be interrupted and retargeted mid-animation; **keyframes** restart from zero. For anything triggered rapidly, transitions are smoother.
|
|
65
|
+
```css
|
|
66
|
+
/* Interruptible — good for dynamic UI */
|
|
67
|
+
.toast { transition: transform 400ms ease; }
|
|
68
|
+
|
|
69
|
+
/* Not interruptible — avoid for dynamic UI */
|
|
70
|
+
@keyframes slideIn { from { transform: translateY(100%); } to { transform: translateY(0); } }
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Use `@starting-style` for entry without JS.
|