@mrtrinhvn/ag-kit 1.0.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/bin/cli.js +88 -0
- package/package.json +28 -0
- package/template/.agent/agents/backend-specialist.md +263 -0
- package/template/.agent/agents/code-archaeologist.md +106 -0
- package/template/.agent/agents/database-architect.md +226 -0
- package/template/.agent/agents/debugger.md +225 -0
- package/template/.agent/agents/devops-engineer.md +242 -0
- package/template/.agent/agents/documentation-writer.md +104 -0
- package/template/.agent/agents/explorer-agent.md +73 -0
- package/template/.agent/agents/frontend-specialist.md +556 -0
- package/template/.agent/agents/game-developer.md +162 -0
- package/template/.agent/agents/mobile-developer.md +377 -0
- package/template/.agent/agents/orchestrator.md +416 -0
- package/template/.agent/agents/penetration-tester.md +188 -0
- package/template/.agent/agents/performance-optimizer.md +187 -0
- package/template/.agent/agents/product-manager.md +112 -0
- package/template/.agent/agents/product-owner.md +95 -0
- package/template/.agent/agents/project-planner.md +406 -0
- package/template/.agent/agents/qa-automation-engineer.md +103 -0
- package/template/.agent/agents/quant-architect.md +31 -0
- package/template/.agent/agents/security-auditor.md +170 -0
- package/template/.agent/agents/seo-specialist.md +111 -0
- package/template/.agent/agents/test-engineer.md +158 -0
- package/template/.agent/knowledge/.gitkeep +0 -0
- package/template/.agent/rules/GEMINI.md +280 -0
- package/template/.agent/scripts/auto_preview.py +148 -0
- package/template/.agent/scripts/checklist.py +217 -0
- package/template/.agent/scripts/session_manager.py +120 -0
- package/template/.agent/scripts/verify_all.py +327 -0
- package/template/.agent/skills/api-patterns/SKILL.md +81 -0
- package/template/.agent/skills/api-patterns/api-style.md +42 -0
- package/template/.agent/skills/api-patterns/auth.md +24 -0
- package/template/.agent/skills/api-patterns/documentation.md +26 -0
- package/template/.agent/skills/api-patterns/graphql.md +41 -0
- package/template/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/template/.agent/skills/api-patterns/response.md +37 -0
- package/template/.agent/skills/api-patterns/rest.md +40 -0
- package/template/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/template/.agent/skills/api-patterns/security-testing.md +122 -0
- package/template/.agent/skills/api-patterns/trpc.md +41 -0
- package/template/.agent/skills/api-patterns/versioning.md +22 -0
- package/template/.agent/skills/app-builder/SKILL.md +75 -0
- package/template/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/template/.agent/skills/app-builder/feature-building.md +53 -0
- package/template/.agent/skills/app-builder/project-detection.md +34 -0
- package/template/.agent/skills/app-builder/scaffolding.md +118 -0
- package/template/.agent/skills/app-builder/tech-stack.md +40 -0
- package/template/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/template/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/template/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/template/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/template/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/template/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/template/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/template/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/template/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/template/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/template/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/template/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/template/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/template/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/template/.agent/skills/architecture/SKILL.md +55 -0
- package/template/.agent/skills/architecture/context-discovery.md +43 -0
- package/template/.agent/skills/architecture/examples.md +94 -0
- package/template/.agent/skills/architecture/pattern-selection.md +68 -0
- package/template/.agent/skills/architecture/patterns-reference.md +50 -0
- package/template/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/template/.agent/skills/bash-linux/SKILL.md +199 -0
- package/template/.agent/skills/behavioral-modes/SKILL.md +242 -0
- package/template/.agent/skills/brainstorming/SKILL.md +168 -0
- package/template/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
- package/template/.agent/skills/business-ops/SKILL.md +26 -0
- package/template/.agent/skills/clean-code/SKILL.md +202 -0
- package/template/.agent/skills/code-review-checklist/SKILL.md +109 -0
- package/template/.agent/skills/data-science/SKILL.md +28 -0
- package/template/.agent/skills/database-design/SKILL.md +52 -0
- package/template/.agent/skills/database-design/database-selection.md +43 -0
- package/template/.agent/skills/database-design/indexing.md +39 -0
- package/template/.agent/skills/database-design/migrations.md +48 -0
- package/template/.agent/skills/database-design/optimization.md +36 -0
- package/template/.agent/skills/database-design/orm-selection.md +30 -0
- package/template/.agent/skills/database-design/schema-design.md +56 -0
- package/template/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.agent/skills/doc.md +177 -0
- package/template/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/template/.agent/skills/frontend-design/SKILL.md +418 -0
- package/template/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/template/.agent/skills/frontend-design/color-system.md +311 -0
- package/template/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/template/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/template/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/template/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/template/.agent/skills/frontend-design/typography-system.md +345 -0
- package/template/.agent/skills/frontend-design/ux-psychology.md +541 -0
- package/template/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/template/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/template/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/template/.agent/skills/game-development/SKILL.md +167 -0
- package/template/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/template/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/template/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/template/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/template/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/template/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/template/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/template/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/template/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/template/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/template/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/template/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/template/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/template/.agent/skills/knowledge-management/SKILL.md +54 -0
- package/template/.agent/skills/lint-and-validate/SKILL.md +45 -0
- package/template/.agent/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/template/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/template/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/template/.agent/skills/mobile-design/SKILL.md +394 -0
- package/template/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/template/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/template/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/template/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/template/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/template/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/template/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/template/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/template/.agent/skills/mobile-design/mobile-typography.md +433 -0
- package/template/.agent/skills/mobile-design/platform-android.md +666 -0
- package/template/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/template/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/template/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/template/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/template/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/template/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/template/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/template/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/template/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/template/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/template/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/template/.agent/skills/nextjs-react-expert/SKILL.md +267 -0
- package/template/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/template/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/template/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/template/.agent/skills/parallel-agents/SKILL.md +175 -0
- package/template/.agent/skills/performance-profiling/SKILL.md +143 -0
- package/template/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/template/.agent/skills/plan-writing/SKILL.md +153 -0
- package/template/.agent/skills/powershell-windows/SKILL.md +167 -0
- package/template/.agent/skills/product-management/SKILL.md +30 -0
- package/template/.agent/skills/python-patterns/SKILL.md +441 -0
- package/template/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/template/.agent/skills/seo-fundamentals/SKILL.md +129 -0
- package/template/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/template/.agent/skills/server-management/SKILL.md +161 -0
- package/template/.agent/skills/systematic-debugging/SKILL.md +110 -0
- package/template/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/template/.agent/skills/tdd-workflow/SKILL.md +148 -0
- package/template/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/template/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/template/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/template/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/template/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/template/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/template/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/template/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/template/.agent/workflows/brainstorm.md +113 -0
- package/template/.agent/workflows/create.md +59 -0
- package/template/.agent/workflows/debug.md +103 -0
- package/template/.agent/workflows/deploy.md +176 -0
- package/template/.agent/workflows/enhance.md +63 -0
- package/template/.agent/workflows/orchestrate.md +237 -0
- package/template/.agent/workflows/plan.md +89 -0
- package/template/.agent/workflows/preview.md +81 -0
- package/template/.agent/workflows/status.md +86 -0
- package/template/.agent/workflows/test.md +144 -0
- package/template/.agent/workflows/ui-ux-pro-max.md +296 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: parallel-agents
|
|
3
|
+
description: Multi-agent orchestration patterns. Use when multiple independent tasks can run with different domain expertise or when comprehensive analysis requires multiple perspectives.
|
|
4
|
+
allowed-tools: Read, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Native Parallel Agents
|
|
8
|
+
|
|
9
|
+
> Orchestration through Antigravity's built-in Agent Tool
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
This skill enables coordinating multiple specialized agents through Antigravity's native agent system. Unlike external scripts, this approach keeps all orchestration within Antigravity's control.
|
|
14
|
+
|
|
15
|
+
## When to Use Orchestration
|
|
16
|
+
|
|
17
|
+
✅ **Good for:**
|
|
18
|
+
- Complex tasks requiring multiple expertise domains
|
|
19
|
+
- Code analysis from security, performance, and quality perspectives
|
|
20
|
+
- Comprehensive reviews (architecture + security + testing)
|
|
21
|
+
- Feature implementation needing backend + frontend + database work
|
|
22
|
+
|
|
23
|
+
❌ **Not for:**
|
|
24
|
+
- Simple, single-domain tasks
|
|
25
|
+
- Quick fixes or small changes
|
|
26
|
+
- Tasks where one agent suffices
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Native Agent Invocation
|
|
31
|
+
|
|
32
|
+
### Single Agent
|
|
33
|
+
```
|
|
34
|
+
Use the security-auditor agent to review authentication
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Sequential Chain
|
|
38
|
+
```
|
|
39
|
+
First, use the explorer-agent to discover project structure.
|
|
40
|
+
Then, use the backend-specialist to review API endpoints.
|
|
41
|
+
Finally, use the test-engineer to identify test gaps.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### With Context Passing
|
|
45
|
+
```
|
|
46
|
+
Use the frontend-specialist to analyze React components.
|
|
47
|
+
Based on those findings, have the test-engineer generate component tests.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Resume Previous Work
|
|
51
|
+
```
|
|
52
|
+
Resume agent [agentId] and continue with additional requirements.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Orchestration Patterns
|
|
58
|
+
|
|
59
|
+
### Pattern 1: Comprehensive Analysis
|
|
60
|
+
```
|
|
61
|
+
Agents: explorer-agent → [domain-agents] → synthesis
|
|
62
|
+
|
|
63
|
+
1. explorer-agent: Map codebase structure
|
|
64
|
+
2. security-auditor: Security posture
|
|
65
|
+
3. backend-specialist: API quality
|
|
66
|
+
4. frontend-specialist: UI/UX patterns
|
|
67
|
+
5. test-engineer: Test coverage
|
|
68
|
+
6. Synthesize all findings
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Pattern 2: Feature Review
|
|
72
|
+
```
|
|
73
|
+
Agents: affected-domain-agents → test-engineer
|
|
74
|
+
|
|
75
|
+
1. Identify affected domains (backend? frontend? both?)
|
|
76
|
+
2. Invoke relevant domain agents
|
|
77
|
+
3. test-engineer verifies changes
|
|
78
|
+
4. Synthesize recommendations
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Pattern 3: Security Audit
|
|
82
|
+
```
|
|
83
|
+
Agents: security-auditor → penetration-tester → synthesis
|
|
84
|
+
|
|
85
|
+
1. security-auditor: Configuration and code review
|
|
86
|
+
2. penetration-tester: Active vulnerability testing
|
|
87
|
+
3. Synthesize with prioritized remediation
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Available Agents
|
|
93
|
+
|
|
94
|
+
| Agent | Expertise | Trigger Phrases |
|
|
95
|
+
|-------|-----------|-----------------|
|
|
96
|
+
| `orchestrator` | Coordination | "comprehensive", "multi-perspective" |
|
|
97
|
+
| `security-auditor` | Security | "security", "auth", "vulnerabilities" |
|
|
98
|
+
| `penetration-tester` | Security Testing | "pentest", "red team", "exploit" |
|
|
99
|
+
| `backend-specialist` | Backend | "API", "server", "Node.js", "Express" |
|
|
100
|
+
| `frontend-specialist` | Frontend | "React", "UI", "components", "Next.js" |
|
|
101
|
+
| `test-engineer` | Testing | "tests", "coverage", "TDD" |
|
|
102
|
+
| `devops-engineer` | DevOps | "deploy", "CI/CD", "infrastructure" |
|
|
103
|
+
| `database-architect` | Database | "schema", "Prisma", "migrations" |
|
|
104
|
+
| `mobile-developer` | Mobile | "React Native", "Flutter", "mobile" |
|
|
105
|
+
| `api-designer` | API Design | "REST", "GraphQL", "OpenAPI" |
|
|
106
|
+
| `debugger` | Debugging | "bug", "error", "not working" |
|
|
107
|
+
| `explorer-agent` | Discovery | "explore", "map", "structure" |
|
|
108
|
+
| `documentation-writer` | Documentation | "write docs", "create README", "generate API docs" |
|
|
109
|
+
| `performance-optimizer` | Performance | "slow", "optimize", "profiling" |
|
|
110
|
+
| `project-planner` | Planning | "plan", "roadmap", "milestones" |
|
|
111
|
+
| `seo-specialist` | SEO | "SEO", "meta tags", "search ranking" |
|
|
112
|
+
| `game-developer` | Game Development | "game", "Unity", "Godot", "Phaser" |
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Antigravity Built-in Agents
|
|
117
|
+
|
|
118
|
+
These work alongside custom agents:
|
|
119
|
+
|
|
120
|
+
| Agent | Model | Purpose |
|
|
121
|
+
|-------|-------|---------|
|
|
122
|
+
| **Explore** | Haiku | Fast read-only codebase search |
|
|
123
|
+
| **Plan** | Sonnet | Research during plan mode |
|
|
124
|
+
| **General-purpose** | Sonnet | Complex multi-step modifications |
|
|
125
|
+
|
|
126
|
+
Use **Explore** for quick searches, **custom agents** for domain expertise.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Synthesis Protocol
|
|
131
|
+
|
|
132
|
+
After all agents complete, synthesize:
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## Orchestration Synthesis
|
|
136
|
+
|
|
137
|
+
### Task Summary
|
|
138
|
+
[What was accomplished]
|
|
139
|
+
|
|
140
|
+
### Agent Contributions
|
|
141
|
+
| Agent | Finding |
|
|
142
|
+
|-------|---------|
|
|
143
|
+
| security-auditor | Found X |
|
|
144
|
+
| backend-specialist | Identified Y |
|
|
145
|
+
|
|
146
|
+
### Consolidated Recommendations
|
|
147
|
+
1. **Critical**: [Issue from Agent A]
|
|
148
|
+
2. **Important**: [Issue from Agent B]
|
|
149
|
+
3. **Nice-to-have**: [Enhancement from Agent C]
|
|
150
|
+
|
|
151
|
+
### Action Items
|
|
152
|
+
- [ ] Fix critical security issue
|
|
153
|
+
- [ ] Refactor API endpoint
|
|
154
|
+
- [ ] Add missing tests
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Best Practices
|
|
160
|
+
|
|
161
|
+
1. **Available agents** - 17 specialized agents can be orchestrated
|
|
162
|
+
2. **Logical order** - Discovery → Analysis → Implementation → Testing
|
|
163
|
+
3. **Share context** - Pass relevant findings to subsequent agents
|
|
164
|
+
4. **Single synthesis** - One unified report, not separate outputs
|
|
165
|
+
5. **Verify changes** - Always include test-engineer for code modifications
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Key Benefits
|
|
170
|
+
|
|
171
|
+
- ✅ **Single session** - All agents share context
|
|
172
|
+
- ✅ **AI-controlled** - Claude orchestrates autonomously
|
|
173
|
+
- ✅ **Native integration** - Works with built-in Explore, Plan agents
|
|
174
|
+
- ✅ **Resume support** - Can continue previous agent work
|
|
175
|
+
- ✅ **Context passing** - Findings flow between agents
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-profiling
|
|
3
|
+
description: Performance profiling principles. Measurement, analysis, and optimization techniques.
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Performance Profiling
|
|
8
|
+
|
|
9
|
+
> Measure, analyze, optimize - in that order.
|
|
10
|
+
|
|
11
|
+
## 🔧 Runtime Scripts
|
|
12
|
+
|
|
13
|
+
**Execute these for automated profiling:**
|
|
14
|
+
|
|
15
|
+
| Script | Purpose | Usage |
|
|
16
|
+
|--------|---------|-------|
|
|
17
|
+
| `scripts/lighthouse_audit.py` | Lighthouse performance audit | `python scripts/lighthouse_audit.py https://example.com` |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 1. Core Web Vitals
|
|
22
|
+
|
|
23
|
+
### Targets
|
|
24
|
+
|
|
25
|
+
| Metric | Good | Poor | Measures |
|
|
26
|
+
|--------|------|------|----------|
|
|
27
|
+
| **LCP** | < 2.5s | > 4.0s | Loading |
|
|
28
|
+
| **INP** | < 200ms | > 500ms | Interactivity |
|
|
29
|
+
| **CLS** | < 0.1 | > 0.25 | Stability |
|
|
30
|
+
|
|
31
|
+
### When to Measure
|
|
32
|
+
|
|
33
|
+
| Stage | Tool |
|
|
34
|
+
|-------|------|
|
|
35
|
+
| Development | Local Lighthouse |
|
|
36
|
+
| CI/CD | Lighthouse CI |
|
|
37
|
+
| Production | RUM (Real User Monitoring) |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. Profiling Workflow
|
|
42
|
+
|
|
43
|
+
### The 4-Step Process
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
1. BASELINE → Measure current state
|
|
47
|
+
2. IDENTIFY → Find the bottleneck
|
|
48
|
+
3. FIX → Make targeted change
|
|
49
|
+
4. VALIDATE → Confirm improvement
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Profiling Tool Selection
|
|
53
|
+
|
|
54
|
+
| Problem | Tool |
|
|
55
|
+
|---------|------|
|
|
56
|
+
| Page load | Lighthouse |
|
|
57
|
+
| Bundle size | Bundle analyzer |
|
|
58
|
+
| Runtime | DevTools Performance |
|
|
59
|
+
| Memory | DevTools Memory |
|
|
60
|
+
| Network | DevTools Network |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 3. Bundle Analysis
|
|
65
|
+
|
|
66
|
+
### What to Look For
|
|
67
|
+
|
|
68
|
+
| Issue | Indicator |
|
|
69
|
+
|-------|-----------|
|
|
70
|
+
| Large dependencies | Top of bundle |
|
|
71
|
+
| Duplicate code | Multiple chunks |
|
|
72
|
+
| Unused code | Low coverage |
|
|
73
|
+
| Missing splits | Single large chunk |
|
|
74
|
+
|
|
75
|
+
### Optimization Actions
|
|
76
|
+
|
|
77
|
+
| Finding | Action |
|
|
78
|
+
|---------|--------|
|
|
79
|
+
| Big library | Import specific modules |
|
|
80
|
+
| Duplicate deps | Dedupe, update versions |
|
|
81
|
+
| Route in main | Code split |
|
|
82
|
+
| Unused exports | Tree shake |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 4. Runtime Profiling
|
|
87
|
+
|
|
88
|
+
### Performance Tab Analysis
|
|
89
|
+
|
|
90
|
+
| Pattern | Meaning |
|
|
91
|
+
|---------|---------|
|
|
92
|
+
| Long tasks (>50ms) | UI blocking |
|
|
93
|
+
| Many small tasks | Possible batching opportunity |
|
|
94
|
+
| Layout/paint | Rendering bottleneck |
|
|
95
|
+
| Script | JavaScript execution |
|
|
96
|
+
|
|
97
|
+
### Memory Tab Analysis
|
|
98
|
+
|
|
99
|
+
| Pattern | Meaning |
|
|
100
|
+
|---------|---------|
|
|
101
|
+
| Growing heap | Possible leak |
|
|
102
|
+
| Large retained | Check references |
|
|
103
|
+
| Detached DOM | Not cleaned up |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 5. Common Bottlenecks
|
|
108
|
+
|
|
109
|
+
### By Symptom
|
|
110
|
+
|
|
111
|
+
| Symptom | Likely Cause |
|
|
112
|
+
|---------|--------------|
|
|
113
|
+
| Slow initial load | Large JS, render blocking |
|
|
114
|
+
| Slow interactions | Heavy event handlers |
|
|
115
|
+
| Jank during scroll | Layout thrashing |
|
|
116
|
+
| Growing memory | Leaks, retained refs |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 6. Quick Win Priorities
|
|
121
|
+
|
|
122
|
+
| Priority | Action | Impact |
|
|
123
|
+
|----------|--------|--------|
|
|
124
|
+
| 1 | Enable compression | High |
|
|
125
|
+
| 2 | Lazy load images | High |
|
|
126
|
+
| 3 | Code split routes | High |
|
|
127
|
+
| 4 | Cache static assets | Medium |
|
|
128
|
+
| 5 | Optimize images | Medium |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 7. Anti-Patterns
|
|
133
|
+
|
|
134
|
+
| ❌ Don't | ✅ Do |
|
|
135
|
+
|----------|-------|
|
|
136
|
+
| Guess at problems | Profile first |
|
|
137
|
+
| Micro-optimize | Fix biggest issue |
|
|
138
|
+
| Optimize early | Optimize when needed |
|
|
139
|
+
| Ignore real users | Use RUM data |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
> **Remember:** The fastest code is code that doesn't run. Remove before optimizing.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Skill: performance-profiling
|
|
4
|
+
Script: lighthouse_audit.py
|
|
5
|
+
Purpose: Run Lighthouse performance audit on a URL
|
|
6
|
+
Usage: python lighthouse_audit.py https://example.com
|
|
7
|
+
Output: JSON with performance scores
|
|
8
|
+
Note: Requires lighthouse CLI (npm install -g lighthouse)
|
|
9
|
+
"""
|
|
10
|
+
import subprocess
|
|
11
|
+
import json
|
|
12
|
+
import sys
|
|
13
|
+
import os
|
|
14
|
+
import tempfile
|
|
15
|
+
|
|
16
|
+
def run_lighthouse(url: str) -> dict:
|
|
17
|
+
"""Run Lighthouse audit on URL."""
|
|
18
|
+
try:
|
|
19
|
+
with tempfile.NamedTemporaryFile(suffix='.json', delete=False) as f:
|
|
20
|
+
output_path = f.name
|
|
21
|
+
|
|
22
|
+
result = subprocess.run(
|
|
23
|
+
[
|
|
24
|
+
"lighthouse",
|
|
25
|
+
url,
|
|
26
|
+
"--output=json",
|
|
27
|
+
f"--output-path={output_path}",
|
|
28
|
+
"--chrome-flags=--headless",
|
|
29
|
+
"--only-categories=performance,accessibility,best-practices,seo"
|
|
30
|
+
],
|
|
31
|
+
capture_output=True,
|
|
32
|
+
text=True,
|
|
33
|
+
timeout=120
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
if os.path.exists(output_path):
|
|
37
|
+
with open(output_path, 'r') as f:
|
|
38
|
+
report = json.load(f)
|
|
39
|
+
os.unlink(output_path)
|
|
40
|
+
|
|
41
|
+
categories = report.get("categories", {})
|
|
42
|
+
return {
|
|
43
|
+
"url": url,
|
|
44
|
+
"scores": {
|
|
45
|
+
"performance": int(categories.get("performance", {}).get("score", 0) * 100),
|
|
46
|
+
"accessibility": int(categories.get("accessibility", {}).get("score", 0) * 100),
|
|
47
|
+
"best_practices": int(categories.get("best-practices", {}).get("score", 0) * 100),
|
|
48
|
+
"seo": int(categories.get("seo", {}).get("score", 0) * 100)
|
|
49
|
+
},
|
|
50
|
+
"summary": get_summary(categories)
|
|
51
|
+
}
|
|
52
|
+
else:
|
|
53
|
+
return {"error": "Lighthouse failed to generate report", "stderr": result.stderr[:500]}
|
|
54
|
+
|
|
55
|
+
except subprocess.TimeoutExpired:
|
|
56
|
+
return {"error": "Lighthouse audit timed out"}
|
|
57
|
+
except FileNotFoundError:
|
|
58
|
+
return {"error": "Lighthouse CLI not found. Install with: npm install -g lighthouse"}
|
|
59
|
+
|
|
60
|
+
def get_summary(categories: dict) -> str:
|
|
61
|
+
"""Generate summary based on scores."""
|
|
62
|
+
perf = categories.get("performance", {}).get("score", 0) * 100
|
|
63
|
+
if perf >= 90:
|
|
64
|
+
return "[OK] Excellent performance"
|
|
65
|
+
elif perf >= 50:
|
|
66
|
+
return "[!] Needs improvement"
|
|
67
|
+
else:
|
|
68
|
+
return "[X] Poor performance"
|
|
69
|
+
|
|
70
|
+
if __name__ == "__main__":
|
|
71
|
+
if len(sys.argv) < 2:
|
|
72
|
+
print(json.dumps({"error": "Usage: python lighthouse_audit.py <url>"}))
|
|
73
|
+
sys.exit(1)
|
|
74
|
+
|
|
75
|
+
result = run_lighthouse(sys.argv[1])
|
|
76
|
+
print(json.dumps(result, indent=2))
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-writing
|
|
3
|
+
description: Structured task planning with clear breakdowns, dependencies, and verification criteria. Use when implementing features, refactoring, or any multi-step work.
|
|
4
|
+
allowed-tools: Read, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Plan Writing
|
|
8
|
+
|
|
9
|
+
> Source: obra/superpowers
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
This skill provides a framework for breaking down work into clear, actionable tasks with verification criteria.
|
|
13
|
+
|
|
14
|
+
## Task Breakdown Principles
|
|
15
|
+
|
|
16
|
+
### 1. Kỷ Luật Micro-Tasking (Hành động 5 phút)
|
|
17
|
+
- Each task should take 2-5 minutes MAXIMUM.
|
|
18
|
+
- Tên Task KHÔNG PHẢI LÀ "Làm tính năng X". Tên Task phải là **hành động cụ thể trên 1 file cụ thể**.
|
|
19
|
+
- VD Sai: `[ ] Thêm logic phân quyền`
|
|
20
|
+
- VD Đúng: `[ ] Taọ file auth.middleware.ts, đọc token từ header và trả về role.`
|
|
21
|
+
|
|
22
|
+
### 2. Clear Verification & TDD (Nếu có thể)
|
|
23
|
+
- How do you know it's done?
|
|
24
|
+
- What exact command to run? (e.g. `npm run test auth.test.ts`)
|
|
25
|
+
- What's the expected output?
|
|
26
|
+
|
|
27
|
+
### 3. Logical Ordering
|
|
28
|
+
- Dependencies identified
|
|
29
|
+
- Parallel work where possible
|
|
30
|
+
- Critical path highlighted
|
|
31
|
+
- **Phase X: Verification is always LAST**
|
|
32
|
+
|
|
33
|
+
### 4. Dynamic Naming in Project Root
|
|
34
|
+
- Plan files are saved as `{task-slug}.md` in the PROJECT ROOT
|
|
35
|
+
- Name derived from task (e.g., "add auth" → `auth-feature.md`)
|
|
36
|
+
- **NEVER** inside `.claude/`, `docs/`, or temp folders
|
|
37
|
+
|
|
38
|
+
## Planning Principles (NOT Templates!)
|
|
39
|
+
|
|
40
|
+
> 🔴 **NO fixed templates. Each plan is UNIQUE to the task.**
|
|
41
|
+
|
|
42
|
+
### Principle 1: Keep It SHORT
|
|
43
|
+
|
|
44
|
+
| ❌ Wrong | ✅ Right |
|
|
45
|
+
|----------|----------|
|
|
46
|
+
| 50 tasks with sub-sub-tasks | 5-10 clear tasks max |
|
|
47
|
+
| Every micro-step listed | Only actionable items |
|
|
48
|
+
| Verbose descriptions | One-line per task |
|
|
49
|
+
|
|
50
|
+
> **Rule:** If plan is longer than 1 page, it's too long. Simplify.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### Principle 2: Be STRICTLY SPECIFIC (File-Level)
|
|
55
|
+
|
|
56
|
+
| ❌ Wrong (Cấm Tuyệt Đối) | ✅ Right (Chuẩn Superpowers) |
|
|
57
|
+
|----------|----------|
|
|
58
|
+
| "Set up project" | "Run `npx create-next-app`" |
|
|
59
|
+
| "Add authentication" | "Tạo `api/auth.ts`, code hàm verify JWT và trả 401" |
|
|
60
|
+
| "Style the UI" | "Mở `Header.tsx`, đổi bg-white thành bg-slate-900" |
|
|
61
|
+
|
|
62
|
+
> **Rule:** Mỗi task là một phát súng bắn tỉa chính xác vào 1 file. Không viết task bắn tỉa mù.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### Principle 3: Dynamic Content Based on Project Type
|
|
67
|
+
|
|
68
|
+
**For NEW PROJECT:**
|
|
69
|
+
- What tech stack? (decide first)
|
|
70
|
+
- What's the MVP? (minimal features)
|
|
71
|
+
- What's the file structure?
|
|
72
|
+
|
|
73
|
+
**For FEATURE ADDITION:**
|
|
74
|
+
- Which files are affected?
|
|
75
|
+
- What dependencies needed?
|
|
76
|
+
- How to verify it works?
|
|
77
|
+
|
|
78
|
+
**For BUG FIX:**
|
|
79
|
+
- What's the root cause?
|
|
80
|
+
- What file/line to change?
|
|
81
|
+
- How to test the fix?
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### Principle 4: Scripts Are Project-Specific
|
|
86
|
+
|
|
87
|
+
> 🔴 **DO NOT copy-paste script commands. Choose based on project type.**
|
|
88
|
+
|
|
89
|
+
| Project Type | Relevant Scripts |
|
|
90
|
+
|--------------|------------------|
|
|
91
|
+
| Frontend/React | `ux_audit.py`, `accessibility_checker.py` |
|
|
92
|
+
| Backend/API | `api_validator.py`, `security_scan.py` |
|
|
93
|
+
| Mobile | `mobile_audit.py` |
|
|
94
|
+
| Database | `schema_validator.py` |
|
|
95
|
+
| Full-stack | Mix of above based on what you touched |
|
|
96
|
+
|
|
97
|
+
**Wrong:** Adding all scripts to every plan
|
|
98
|
+
**Right:** Only scripts relevant to THIS task
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Principle 5: Verification is Simple
|
|
103
|
+
|
|
104
|
+
| ❌ Wrong | ✅ Right |
|
|
105
|
+
|----------|----------|
|
|
106
|
+
| "Verify the component works correctly" | "Run `npm run dev`, click button, see toast" |
|
|
107
|
+
| "Test the API" | "curl localhost:3000/api/users returns 200" |
|
|
108
|
+
| "Check styles" | "Open browser, verify dark mode toggle works" |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Plan Structure (Flexible, Not Fixed!)
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
# [Tên tính năng ngắn gọn]
|
|
116
|
+
|
|
117
|
+
> **MANDATORY STEP BEFORE PLAN:** Đã đọc `.agent/knowledge/architecture_decisions.md` (ADR) để không lập kế hoạch sai luồng công nghệ chưa?
|
|
118
|
+
|
|
119
|
+
## Tasks
|
|
120
|
+
- [ ] `path/to/file1.py`: [Chính xác hàm gì cần thêm/sửa, tốn bao nhiêu phút?]
|
|
121
|
+
-> Verify: Chạy `pytest file1`, output X.
|
|
122
|
+
- [ ] `path/to/file2.ts`: [Chỉnh sửa dòng nào thành dòng nào?]
|
|
123
|
+
-> Verify: Bật browser check console log.
|
|
124
|
+
|
|
125
|
+
## Done When
|
|
126
|
+
- [ ] [Main success criteria]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
> **That's it.** No phases, no sub-sections unless truly needed.
|
|
130
|
+
> Keep it minimal. Add complexity only when required.
|
|
131
|
+
|
|
132
|
+
## Notes
|
|
133
|
+
[Any important considerations]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Best Practices (Quick Reference)
|
|
139
|
+
|
|
140
|
+
1. **Start with goal** - What are we building/fixing?
|
|
141
|
+
2. **Max 10 tasks** - If more, break into multiple plans
|
|
142
|
+
3. **Each task verifiable** - Clear "done" criteria
|
|
143
|
+
4. **Project-specific** - No copy-paste templates
|
|
144
|
+
5. **Update as you go** - Mark `[x]` when complete
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## When to Use
|
|
149
|
+
|
|
150
|
+
- New project from scratch
|
|
151
|
+
- Adding a feature
|
|
152
|
+
- Fixing a bug (if complex)
|
|
153
|
+
- Refactoring multiple files
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: powershell-windows
|
|
3
|
+
description: PowerShell Windows patterns. Critical pitfalls, operator syntax, error handling.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PowerShell Windows Patterns
|
|
8
|
+
|
|
9
|
+
> Critical patterns and pitfalls for Windows PowerShell.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Operator Syntax Rules
|
|
14
|
+
|
|
15
|
+
### CRITICAL: Parentheses Required
|
|
16
|
+
|
|
17
|
+
| ❌ Wrong | ✅ Correct |
|
|
18
|
+
|----------|-----------|
|
|
19
|
+
| `if (Test-Path "a" -or Test-Path "b")` | `if ((Test-Path "a") -or (Test-Path "b"))` |
|
|
20
|
+
| `if (Get-Item $x -and $y -eq 5)` | `if ((Get-Item $x) -and ($y -eq 5))` |
|
|
21
|
+
|
|
22
|
+
**Rule:** Each cmdlet call MUST be in parentheses when using logical operators.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. Unicode/Emoji Restriction
|
|
27
|
+
|
|
28
|
+
### CRITICAL: No Unicode in Scripts
|
|
29
|
+
|
|
30
|
+
| Purpose | ❌ Don't Use | ✅ Use |
|
|
31
|
+
|---------|-------------|--------|
|
|
32
|
+
| Success | ✅ ✓ | [OK] [+] |
|
|
33
|
+
| Error | ❌ ✗ 🔴 | [!] [X] |
|
|
34
|
+
| Warning | ⚠️ 🟡 | [*] [WARN] |
|
|
35
|
+
| Info | ℹ️ 🔵 | [i] [INFO] |
|
|
36
|
+
| Progress | ⏳ | [...] |
|
|
37
|
+
|
|
38
|
+
**Rule:** Use ASCII characters only in PowerShell scripts.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. Null Check Patterns
|
|
43
|
+
|
|
44
|
+
### Always Check Before Access
|
|
45
|
+
|
|
46
|
+
| ❌ Wrong | ✅ Correct |
|
|
47
|
+
|----------|-----------|
|
|
48
|
+
| `$array.Count -gt 0` | `$array -and $array.Count -gt 0` |
|
|
49
|
+
| `$text.Length` | `if ($text) { $text.Length }` |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 4. String Interpolation
|
|
54
|
+
|
|
55
|
+
### Complex Expressions
|
|
56
|
+
|
|
57
|
+
| ❌ Wrong | ✅ Correct |
|
|
58
|
+
|----------|-----------|
|
|
59
|
+
| `"Value: $($obj.prop.sub)"` | Store in variable first |
|
|
60
|
+
|
|
61
|
+
**Pattern:**
|
|
62
|
+
```
|
|
63
|
+
$value = $obj.prop.sub
|
|
64
|
+
Write-Output "Value: $value"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 5. Error Handling
|
|
70
|
+
|
|
71
|
+
### ErrorActionPreference
|
|
72
|
+
|
|
73
|
+
| Value | Use |
|
|
74
|
+
|-------|-----|
|
|
75
|
+
| Stop | Development (fail fast) |
|
|
76
|
+
| Continue | Production scripts |
|
|
77
|
+
| SilentlyContinue | When errors expected |
|
|
78
|
+
|
|
79
|
+
### Try/Catch Pattern
|
|
80
|
+
|
|
81
|
+
- Don't return inside try block
|
|
82
|
+
- Use finally for cleanup
|
|
83
|
+
- Return after try/catch
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 6. File Paths
|
|
88
|
+
|
|
89
|
+
### Windows Path Rules
|
|
90
|
+
|
|
91
|
+
| Pattern | Use |
|
|
92
|
+
|---------|-----|
|
|
93
|
+
| Literal path | `C:\Users\User\file.txt` |
|
|
94
|
+
| Variable path | `Join-Path $env:USERPROFILE "file.txt"` |
|
|
95
|
+
| Relative | `Join-Path $ScriptDir "data"` |
|
|
96
|
+
|
|
97
|
+
**Rule:** Use Join-Path for cross-platform safety.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 7. Array Operations
|
|
102
|
+
|
|
103
|
+
### Correct Patterns
|
|
104
|
+
|
|
105
|
+
| Operation | Syntax |
|
|
106
|
+
|-----------|--------|
|
|
107
|
+
| Empty array | `$array = @()` |
|
|
108
|
+
| Add item | `$array += $item` |
|
|
109
|
+
| ArrayList add | `$list.Add($item) | Out-Null` |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 8. JSON Operations
|
|
114
|
+
|
|
115
|
+
### CRITICAL: Depth Parameter
|
|
116
|
+
|
|
117
|
+
| ❌ Wrong | ✅ Correct |
|
|
118
|
+
|----------|-----------|
|
|
119
|
+
| `ConvertTo-Json` | `ConvertTo-Json -Depth 10` |
|
|
120
|
+
|
|
121
|
+
**Rule:** Always specify `-Depth` for nested objects.
|
|
122
|
+
|
|
123
|
+
### File Operations
|
|
124
|
+
|
|
125
|
+
| Operation | Pattern |
|
|
126
|
+
|-----------|---------|
|
|
127
|
+
| Read | `Get-Content "file.json" -Raw | ConvertFrom-Json` |
|
|
128
|
+
| Write | `$data | ConvertTo-Json -Depth 10 | Out-File "file.json" -Encoding UTF8` |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 9. Common Errors
|
|
133
|
+
|
|
134
|
+
| Error Message | Cause | Fix |
|
|
135
|
+
|---------------|-------|-----|
|
|
136
|
+
| "parameter 'or'" | Missing parentheses | Wrap cmdlets in () |
|
|
137
|
+
| "Unexpected token" | Unicode character | Use ASCII only |
|
|
138
|
+
| "Cannot find property" | Null object | Check null first |
|
|
139
|
+
| "Cannot convert" | Type mismatch | Use .ToString() |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 10. Script Template
|
|
144
|
+
|
|
145
|
+
```powershell
|
|
146
|
+
# Strict mode
|
|
147
|
+
Set-StrictMode -Version Latest
|
|
148
|
+
$ErrorActionPreference = "Continue"
|
|
149
|
+
|
|
150
|
+
# Paths
|
|
151
|
+
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
152
|
+
|
|
153
|
+
# Main
|
|
154
|
+
try {
|
|
155
|
+
# Logic here
|
|
156
|
+
Write-Output "[OK] Done"
|
|
157
|
+
exit 0
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
Write-Warning "Error: $_"
|
|
161
|
+
exit 1
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
> **Remember:** PowerShell has unique syntax rules. Parentheses, ASCII-only, and null checks are non-negotiable.
|