tribunal-kit 2.4.6 → 3.1.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/ARCHITECTURE.md +99 -99
- package/.agent/GEMINI.md +52 -52
- package/.agent/agents/accessibility-reviewer.md +139 -86
- package/.agent/agents/ai-code-reviewer.md +160 -90
- package/.agent/agents/backend-specialist.md +164 -127
- package/.agent/agents/code-archaeologist.md +115 -73
- package/.agent/agents/database-architect.md +130 -110
- package/.agent/agents/debugger.md +137 -97
- package/.agent/agents/dependency-reviewer.md +78 -30
- package/.agent/agents/devops-engineer.md +161 -118
- package/.agent/agents/documentation-writer.md +151 -87
- package/.agent/agents/explorer-agent.md +117 -99
- package/.agent/agents/frontend-reviewer.md +127 -47
- package/.agent/agents/frontend-specialist.md +169 -109
- package/.agent/agents/game-developer.md +28 -164
- package/.agent/agents/logic-reviewer.md +87 -49
- package/.agent/agents/mobile-developer.md +151 -103
- package/.agent/agents/mobile-reviewer.md +133 -50
- package/.agent/agents/orchestrator.md +121 -110
- package/.agent/agents/penetration-tester.md +103 -77
- package/.agent/agents/performance-optimizer.md +136 -92
- package/.agent/agents/performance-reviewer.md +139 -69
- package/.agent/agents/product-manager.md +104 -70
- package/.agent/agents/product-owner.md +6 -25
- package/.agent/agents/project-planner.md +95 -95
- package/.agent/agents/qa-automation-engineer.md +174 -87
- package/.agent/agents/security-auditor.md +133 -129
- package/.agent/agents/seo-specialist.md +160 -99
- package/.agent/agents/sql-reviewer.md +132 -44
- package/.agent/agents/supervisor-agent.md +137 -109
- package/.agent/agents/swarm-worker-contracts.md +17 -17
- package/.agent/agents/swarm-worker-registry.md +46 -46
- package/.agent/agents/test-coverage-reviewer.md +132 -53
- package/.agent/agents/test-engineer.md +0 -21
- package/.agent/agents/type-safety-reviewer.md +143 -33
- package/.agent/patterns/generator.md +9 -9
- package/.agent/patterns/inversion.md +12 -12
- package/.agent/patterns/pipeline.md +9 -9
- package/.agent/patterns/reviewer.md +13 -13
- package/.agent/patterns/tool-wrapper.md +9 -9
- package/.agent/rules/GEMINI.md +63 -63
- package/.agent/scripts/__pycache__/auto_preview.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
- package/.agent/scripts/compress_skills.py +167 -0
- package/.agent/scripts/consolidate_skills.py +173 -0
- package/.agent/scripts/deep_compress.py +202 -0
- package/.agent/scripts/minify_context.py +80 -0
- package/.agent/scripts/security_scan.py +1 -1
- package/.agent/scripts/strip_tribunal.py +41 -0
- package/.agent/skills/agent-organizer/SKILL.md +60 -100
- package/.agent/skills/agentic-patterns/SKILL.md +0 -70
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +108 -53
- package/.agent/skills/api-patterns/SKILL.md +197 -257
- package/.agent/skills/api-security-auditor/SKILL.md +125 -57
- package/.agent/skills/app-builder/SKILL.md +326 -50
- package/.agent/skills/app-builder/templates/SKILL.md +13 -15
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
- package/.agent/skills/appflow-wireframe/SKILL.md +71 -98
- package/.agent/skills/architecture/SKILL.md +161 -200
- package/.agent/skills/authentication-best-practices/SKILL.md +121 -54
- package/.agent/skills/bash-linux/SKILL.md +71 -166
- package/.agent/skills/behavioral-modes/SKILL.md +8 -69
- package/.agent/skills/brainstorming/SKILL.md +345 -127
- package/.agent/skills/building-native-ui/SKILL.md +125 -57
- package/.agent/skills/clean-code/SKILL.md +266 -149
- package/.agent/skills/code-review-checklist/SKILL.md +0 -62
- package/.agent/skills/config-validator/SKILL.md +73 -131
- package/.agent/skills/csharp-developer/SKILL.md +434 -73
- package/.agent/skills/database-design/SKILL.md +190 -275
- package/.agent/skills/deployment-procedures/SKILL.md +81 -158
- package/.agent/skills/devops-engineer/SKILL.md +255 -94
- package/.agent/skills/devops-incident-responder/SKILL.md +50 -69
- package/.agent/skills/doc.md +5 -5
- package/.agent/skills/documentation-templates/SKILL.md +19 -63
- package/.agent/skills/edge-computing/SKILL.md +75 -165
- package/.agent/skills/extract-design-system/SKILL.md +84 -58
- package/.agent/skills/framer-motion-expert/SKILL.md +195 -0
- package/.agent/skills/frontend-design/SKILL.md +151 -499
- package/.agent/skills/game-design-expert/SKILL.md +71 -0
- package/.agent/skills/game-engineering-expert/SKILL.md +88 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +52 -178
- package/.agent/skills/github-operations/SKILL.md +197 -272
- package/.agent/skills/gsap-expert/SKILL.md +194 -0
- package/.agent/skills/i18n-localization/SKILL.md +60 -172
- package/.agent/skills/intelligent-routing/SKILL.md +123 -103
- package/.agent/skills/lint-and-validate/SKILL.md +8 -52
- package/.agent/skills/llm-engineering/SKILL.md +281 -195
- package/.agent/skills/local-first/SKILL.md +76 -159
- package/.agent/skills/mcp-builder/SKILL.md +48 -188
- package/.agent/skills/mobile-design/SKILL.md +213 -219
- package/.agent/skills/motion-engineering/SKILL.md +184 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +184 -203
- package/.agent/skills/nodejs-best-practices/SKILL.md +403 -185
- package/.agent/skills/observability/SKILL.md +211 -203
- package/.agent/skills/parallel-agents/SKILL.md +53 -146
- package/.agent/skills/performance-profiling/SKILL.md +171 -151
- package/.agent/skills/plan-writing/SKILL.md +49 -153
- package/.agent/skills/platform-engineer/SKILL.md +57 -103
- package/.agent/skills/playwright-best-practices/SKILL.md +110 -63
- package/.agent/skills/powershell-windows/SKILL.md +61 -179
- package/.agent/skills/python-patterns/SKILL.md +7 -35
- package/.agent/skills/python-pro/SKILL.md +273 -114
- package/.agent/skills/react-specialist/SKILL.md +227 -108
- package/.agent/skills/readme-builder/SKILL.md +15 -85
- package/.agent/skills/realtime-patterns/SKILL.md +216 -243
- package/.agent/skills/red-team-tactics/SKILL.md +10 -51
- package/.agent/skills/rust-pro/SKILL.md +525 -142
- package/.agent/skills/seo-fundamentals/SKILL.md +92 -153
- package/.agent/skills/server-management/SKILL.md +110 -166
- package/.agent/skills/shadcn-ui-expert/SKILL.md +154 -55
- package/.agent/skills/skill-creator/SKILL.md +18 -58
- package/.agent/skills/sql-pro/SKILL.md +543 -68
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
- package/.agent/skills/swiftui-expert/SKILL.md +124 -57
- package/.agent/skills/systematic-debugging/SKILL.md +49 -151
- package/.agent/skills/tailwind-patterns/SKILL.md +433 -149
- package/.agent/skills/tdd-workflow/SKILL.md +63 -169
- package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
- package/.agent/skills/testing-patterns/SKILL.md +437 -130
- package/.agent/skills/trend-researcher/SKILL.md +30 -71
- package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
- package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
- package/.agent/skills/vue-expert/SKILL.md +225 -119
- package/.agent/skills/vulnerability-scanner/SKILL.md +264 -226
- package/.agent/skills/web-accessibility-auditor/SKILL.md +141 -58
- package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
- package/.agent/skills/webapp-testing/SKILL.md +71 -196
- package/.agent/skills/whimsy-injector/SKILL.md +58 -132
- package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
- package/.agent/workflows/api-tester.md +96 -224
- package/.agent/workflows/audit.md +81 -122
- package/.agent/workflows/brainstorm.md +69 -105
- package/.agent/workflows/changelog.md +65 -97
- package/.agent/workflows/create.md +73 -88
- package/.agent/workflows/debug.md +80 -111
- package/.agent/workflows/deploy.md +119 -92
- package/.agent/workflows/enhance.md +80 -91
- package/.agent/workflows/fix.md +68 -97
- package/.agent/workflows/generate.md +165 -164
- package/.agent/workflows/migrate.md +106 -109
- package/.agent/workflows/orchestrate.md +103 -86
- package/.agent/workflows/performance-benchmarker.md +77 -268
- package/.agent/workflows/plan.md +120 -98
- package/.agent/workflows/preview.md +39 -96
- package/.agent/workflows/refactor.md +105 -97
- package/.agent/workflows/review-ai.md +63 -102
- package/.agent/workflows/review.md +71 -110
- package/.agent/workflows/session.md +53 -113
- package/.agent/workflows/status.md +42 -88
- package/.agent/workflows/strengthen-skills.md +90 -51
- package/.agent/workflows/swarm.md +114 -129
- package/.agent/workflows/test.md +125 -102
- package/.agent/workflows/tribunal-backend.md +60 -78
- package/.agent/workflows/tribunal-database.md +62 -100
- package/.agent/workflows/tribunal-frontend.md +62 -82
- package/.agent/workflows/tribunal-full.md +56 -100
- package/.agent/workflows/tribunal-mobile.md +65 -94
- package/.agent/workflows/tribunal-performance.md +62 -105
- package/.agent/workflows/ui-ux-pro-max.md +72 -121
- package/README.md +11 -15
- package/package.json +1 -1
- package/.agent/skills/api-patterns/api-style.md +0 -42
- package/.agent/skills/api-patterns/auth.md +0 -24
- package/.agent/skills/api-patterns/documentation.md +0 -26
- package/.agent/skills/api-patterns/graphql.md +0 -41
- package/.agent/skills/api-patterns/rate-limiting.md +0 -31
- package/.agent/skills/api-patterns/response.md +0 -37
- package/.agent/skills/api-patterns/rest.md +0 -40
- package/.agent/skills/api-patterns/security-testing.md +0 -122
- package/.agent/skills/api-patterns/trpc.md +0 -41
- package/.agent/skills/api-patterns/versioning.md +0 -22
- package/.agent/skills/app-builder/agent-coordination.md +0 -71
- package/.agent/skills/app-builder/feature-building.md +0 -53
- package/.agent/skills/app-builder/project-detection.md +0 -34
- package/.agent/skills/app-builder/scaffolding.md +0 -118
- package/.agent/skills/app-builder/tech-stack.md +0 -40
- package/.agent/skills/architecture/context-discovery.md +0 -43
- package/.agent/skills/architecture/examples.md +0 -94
- package/.agent/skills/architecture/pattern-selection.md +0 -68
- package/.agent/skills/architecture/patterns-reference.md +0 -50
- package/.agent/skills/architecture/trade-off-analysis.md +0 -77
- package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
- package/.agent/skills/database-design/database-selection.md +0 -43
- package/.agent/skills/database-design/indexing.md +0 -39
- package/.agent/skills/database-design/migrations.md +0 -48
- package/.agent/skills/database-design/optimization.md +0 -36
- package/.agent/skills/database-design/orm-selection.md +0 -30
- package/.agent/skills/database-design/schema-design.md +0 -56
- package/.agent/skills/dotnet-core-expert/SKILL.md +0 -103
- package/.agent/skills/framer-motion-animations/SKILL.md +0 -74
- package/.agent/skills/frontend-design/animation-guide.md +0 -331
- package/.agent/skills/frontend-design/color-system.md +0 -329
- package/.agent/skills/frontend-design/decision-trees.md +0 -418
- package/.agent/skills/frontend-design/motion-graphics.md +0 -306
- package/.agent/skills/frontend-design/typography-system.md +0 -363
- package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
- package/.agent/skills/frontend-design/visual-effects.md +0 -383
- package/.agent/skills/game-development/2d-games/SKILL.md +0 -119
- package/.agent/skills/game-development/3d-games/SKILL.md +0 -135
- package/.agent/skills/game-development/SKILL.md +0 -236
- package/.agent/skills/game-development/game-art/SKILL.md +0 -185
- package/.agent/skills/game-development/game-audio/SKILL.md +0 -190
- package/.agent/skills/game-development/game-design/SKILL.md +0 -129
- package/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
- package/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
- package/.agent/skills/game-development/pc-games/SKILL.md +0 -144
- package/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
- package/.agent/skills/game-development/web-games/SKILL.md +0 -150
- package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
- package/.agent/skills/mobile-design/decision-trees.md +0 -516
- package/.agent/skills/mobile-design/mobile-backend.md +0 -491
- package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
- package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
- package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
- package/.agent/skills/mobile-design/mobile-performance.md +0 -767
- package/.agent/skills/mobile-design/mobile-testing.md +0 -356
- package/.agent/skills/mobile-design/mobile-typography.md +0 -433
- package/.agent/skills/mobile-design/platform-android.md +0 -666
- package/.agent/skills/mobile-design/platform-ios.md +0 -561
- package/.agent/skills/mobile-design/touch-psychology.md +0 -537
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
|
@@ -1,230 +1,112 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: powershell-windows
|
|
3
|
-
description: PowerShell Windows
|
|
3
|
+
description: PowerShell and Windows environment mastery. Object-oriented piping, strict error handling (ErrorActionPreference), PSProviders, active directory querying, credential management, and execution policies. Use when automating Azure, Windows environments, or writing .ps1 scripts.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version:
|
|
6
|
-
last-updated: 2026-
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
last-updated: 2026-04-02
|
|
7
7
|
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# PowerShell
|
|
11
|
-
|
|
12
|
-
> PowerShell is not bash with a Windows accent.
|
|
13
|
-
> It is object-based, not text-based. That changes everything.
|
|
10
|
+
# PowerShell — Windows Automation Mastery
|
|
14
11
|
|
|
15
12
|
---
|
|
16
13
|
|
|
17
|
-
##
|
|
14
|
+
## 1. The Object Pipeline
|
|
18
15
|
|
|
19
|
-
|
|
16
|
+
Unlike Bash where everything is strings (requiring `awk`/`grep`), PowerShell passes structured .NET class instances between commands.
|
|
20
17
|
|
|
21
18
|
```powershell
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# PowerShell: Get-ChildItem returns objects you access directly
|
|
26
|
-
Get-ChildItem | Select-Object Name, Length
|
|
27
|
-
(Get-ChildItem ".\src").Count # count files directly
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
This means string parsing (grep, awk, cut) is often unnecessary in PowerShell.
|
|
31
|
-
|
|
32
|
-
---
|
|
19
|
+
# ❌ BAD: Attempting to treat PowerShell like Bash (String Parsing)
|
|
20
|
+
Get-Process | Out-String -Stream | Select-String "node" | ForEach-Object { $id = ($_ -split '\s+')[8]; Stop-Process -Id $id }
|
|
33
21
|
|
|
34
|
-
|
|
22
|
+
# ✅ GOOD: Accessing Object Properties Directly
|
|
23
|
+
Get-Process -Name "node" | Stop-Process -Force
|
|
35
24
|
|
|
36
|
-
|
|
25
|
+
# Filtering objects (Where-Object)
|
|
26
|
+
Get-Service | Where-Object Status -eq 'Running' | Select-Object Name, DisplayName
|
|
37
27
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| Not equal | `-ne` | `!=` |
|
|
42
|
-
| Greater than | `-gt` | `>` |
|
|
43
|
-
| Less than | `-lt` | `<` |
|
|
44
|
-
| Like (wildcard) | `-like "*.ts"` | — |
|
|
45
|
-
| Match (regex) | `-match "pattern"` | — |
|
|
46
|
-
| Contains | `-contains "val"` | — |
|
|
47
|
-
|
|
48
|
-
```powershell
|
|
49
|
-
# ❌ This doesn't compare — it redirects output
|
|
50
|
-
if ($count == 5) { ... }
|
|
51
|
-
|
|
52
|
-
# ✅ Correct PowerShell comparison
|
|
53
|
-
if ($count -eq 5) { ... }
|
|
28
|
+
# Accessing methods natively on the object
|
|
29
|
+
$files = Get-ChildItem -Path "C:\logs" -Filter "*.log"
|
|
30
|
+
$files | ForEach-Object { $_.Delete() }
|
|
54
31
|
```
|
|
55
32
|
|
|
56
33
|
---
|
|
57
34
|
|
|
58
|
-
##
|
|
35
|
+
## 2. Strict Error Handling (The Windows equivalent of set -e)
|
|
59
36
|
|
|
60
|
-
|
|
37
|
+
By default, PowerShell prints an error but keeps running. You MUST enforce strict halting for automation scripts.
|
|
61
38
|
|
|
62
39
|
```powershell
|
|
63
|
-
#
|
|
64
|
-
$
|
|
65
|
-
|
|
40
|
+
# Mandatory header for reliable automation scripts
|
|
41
|
+
$ErrorActionPreference = "Stop"
|
|
42
|
+
Set-StrictMode -Version Latest
|
|
66
43
|
|
|
67
|
-
# Use Join-Path for safe cross-platform joins
|
|
68
|
-
$full = Join-Path $env:USERPROFILE "Desktop\project"
|
|
69
|
-
|
|
70
|
-
# Resolve to absolute path
|
|
71
|
-
$abs = Resolve-Path ".\relative\path"
|
|
72
|
-
|
|
73
|
-
# Test existence before using
|
|
74
|
-
if (Test-Path $path) { ... }
|
|
75
|
-
if (Test-Path $path -PathType Container) { ... } # is it a directory?
|
|
76
|
-
if (Test-Path $path -PathType Leaf) { ... } # is it a file?
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Error Handling
|
|
82
|
-
|
|
83
|
-
PowerShell has two error types: terminating and non-terminating.
|
|
84
|
-
|
|
85
|
-
```powershell
|
|
86
|
-
# Stop on any error (like bash set -e)
|
|
87
|
-
$ErrorActionPreference = 'Stop'
|
|
88
|
-
|
|
89
|
-
# Try/Catch only catches terminating errors
|
|
90
44
|
try {
|
|
91
|
-
|
|
45
|
+
# If this fails, it jumps straight to catch block instead of continuing
|
|
46
|
+
Copy-Item "C:\Source\configs.json" -Destination "C:\Dest\"
|
|
47
|
+
|
|
48
|
+
$config = Get-Content "C:\Dest\configs.json" | ConvertFrom-Json
|
|
92
49
|
} catch {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
$result = Get-Item "maybe.txt" -ErrorAction SilentlyContinue
|
|
99
|
-
if (-not $result) {
|
|
100
|
-
Write-Host "File not found"
|
|
50
|
+
Write-Error "Deployment failed during config copy: $_"
|
|
51
|
+
exit 1
|
|
52
|
+
} finally {
|
|
53
|
+
# Cleanup block executes regardless of success or failure
|
|
54
|
+
Remove-Item "C:\Dest\temp" -Recurse -ErrorAction Ignore
|
|
101
55
|
}
|
|
102
56
|
```
|
|
103
57
|
|
|
104
58
|
---
|
|
105
59
|
|
|
106
|
-
##
|
|
60
|
+
## 3. Execution Policies & Execution
|
|
107
61
|
|
|
108
|
-
|
|
109
|
-
# Single quotes = literal (no variable expansion)
|
|
110
|
-
$name = 'world'
|
|
111
|
-
Write-Host 'Hello $name' # outputs: Hello $name
|
|
112
|
-
|
|
113
|
-
# Double quotes = interpolation
|
|
114
|
-
Write-Host "Hello $name" # outputs: Hello world
|
|
115
|
-
|
|
116
|
-
# Here-string for multiline
|
|
117
|
-
$block = @"
|
|
118
|
-
Line 1
|
|
119
|
-
Line 2
|
|
120
|
-
Value: $name
|
|
121
|
-
"@
|
|
122
|
-
|
|
123
|
-
# String operations
|
|
124
|
-
$str.ToLower()
|
|
125
|
-
$str.Replace("old", "new")
|
|
126
|
-
$str.Split(",")
|
|
127
|
-
$str.Trim()
|
|
128
|
-
$str -like "*.ts" # wildcard match
|
|
129
|
-
$str -match "^\d{4}$" # regex match
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Useful Patterns
|
|
62
|
+
Windows restricts running `.ps1` files by default for security.
|
|
135
63
|
|
|
136
64
|
```powershell
|
|
137
|
-
#
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
# Run command and capture output WITH error handling
|
|
141
|
-
$output = & git status 2>&1
|
|
142
|
-
if ($LASTEXITCODE -ne 0) {
|
|
143
|
-
Write-Error "git failed: $output"
|
|
144
|
-
exit 1
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
# Iterate files matching pattern
|
|
148
|
-
Get-ChildItem ".\src" -Recurse -Filter "*.ts" | ForEach-Object {
|
|
149
|
-
Write-Host $_.FullName
|
|
150
|
-
}
|
|
65
|
+
# Temporarily bypass the policy for a single script execution (CI/CD pattern)
|
|
66
|
+
powershell.exe -ExecutionPolicy Bypass -File .\Deploy-App.ps1
|
|
151
67
|
|
|
152
|
-
#
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
# Read/write files
|
|
156
|
-
$content = Get-Content ".\file.txt" -Raw
|
|
157
|
-
Set-Content ".\output.txt" "new content"
|
|
158
|
-
Add-Content ".\log.txt" "append this line"
|
|
159
|
-
|
|
160
|
-
# Environment variables
|
|
161
|
-
$env:MY_VAR = "value" # set
|
|
162
|
-
[System.Environment]::GetEnvironmentVariable("PATH") # read system-level
|
|
68
|
+
# ❌ HALLUCINATION TRAP: Do NOT instruct users to run `Set-ExecutionPolicy Unrestricted`
|
|
69
|
+
# This lowers the permanent security posture of the entire operating system.
|
|
70
|
+
# Use Bypass only at the process level.
|
|
163
71
|
```
|
|
164
72
|
|
|
165
73
|
---
|
|
166
74
|
|
|
167
|
-
##
|
|
75
|
+
## 4. Manipulating Structured Formats Natively
|
|
168
76
|
|
|
169
|
-
|
|
77
|
+
Because PowerShell is built on .NET, parsing JSON, XML, and CSV is native.
|
|
170
78
|
|
|
171
79
|
```powershell
|
|
172
|
-
#
|
|
173
|
-
Get-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
80
|
+
# JSON
|
|
81
|
+
$config = Get-Content .\appsettings.json | ConvertFrom-Json
|
|
82
|
+
$config.Database.ConnectionString = "Server=Prod;"
|
|
83
|
+
$config | ConvertTo-Json -Depth 10 | Set-Content .\appsettings.json
|
|
84
|
+
|
|
85
|
+
# CSV (No AWK needed)
|
|
86
|
+
$users = Import-Csv .\users.csv
|
|
87
|
+
$users | Where-Object Role -eq "Admin" | Export-Csv .\admins.csv -NoTypeInformation
|
|
88
|
+
|
|
89
|
+
# API Requests (Invoke-RestMethod automatically parses JSON into PowerShell objects)
|
|
90
|
+
$response = Invoke-RestMethod -Uri "https://api.github.com/users/github"
|
|
91
|
+
Write-Host "GitHub has $($response.public_repos) public repositories."
|
|
180
92
|
```
|
|
181
93
|
|
|
182
94
|
---
|
|
183
95
|
|
|
184
|
-
##
|
|
96
|
+
## 5. Providers and Drives
|
|
185
97
|
|
|
186
|
-
|
|
98
|
+
PowerShell extends the "file system" concept to the Registry, Environment Variables, and Certificates.
|
|
187
99
|
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
Scope: [N files · N functions]
|
|
193
|
-
─────────────────────────────────────────────────
|
|
194
|
-
✅ Passed: [checks that passed, or "All clean"]
|
|
195
|
-
⚠️ Warnings: [non-blocking issues, or "None"]
|
|
196
|
-
❌ Blocked: [blocking issues requiring fix, or "None"]
|
|
197
|
-
─────────────────────────────────────────────────
|
|
198
|
-
VBC status: PENDING → VERIFIED
|
|
199
|
-
Evidence: [test output / lint pass / compile success]
|
|
200
|
-
```
|
|
100
|
+
```powershell
|
|
101
|
+
# Environment variables (Env: drive)
|
|
102
|
+
$env:PATH += ";C:\Custom\Bin"
|
|
103
|
+
Write-Host $env:COMPUTERNAME
|
|
201
104
|
|
|
202
|
-
|
|
203
|
-
|
|
105
|
+
# Registry (HKCU: and HKLM: drives)
|
|
106
|
+
Get-ChildItem -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
|
|
204
107
|
|
|
108
|
+
# Certificates (Cert: drive)
|
|
109
|
+
Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object Subject -match "example.com"
|
|
110
|
+
```
|
|
205
111
|
|
|
206
112
|
---
|
|
207
|
-
|
|
208
|
-
## 🏛️ Tribunal Integration (Anti-Hallucination)
|
|
209
|
-
|
|
210
|
-
**Slash command: `/audit` or `/review`**
|
|
211
|
-
**Active reviewers: `logic` · `security` · `devops`**
|
|
212
|
-
|
|
213
|
-
### ❌ Forbidden AI Tropes in PowerShell
|
|
214
|
-
|
|
215
|
-
1. **Using Bash Operators** — writing `==` or `!=` instead of `-eq` or `-ne`.
|
|
216
|
-
2. **Text Parsing Over Objects** — extracting properties with regex instead of just accessing `$obj.Property`.
|
|
217
|
-
3. **Ignoring Execution Policies** — writing scripts without considering that they might be blocked on the user's machine.
|
|
218
|
-
4. **Silent Failures** — relying on generic `catch` blocks without understanding terminating vs non-terminating errors.
|
|
219
|
-
5. **Path Separator Errors** — failing to wrap path operations in safe cmdlets like `Join-Path` or `Test-Path`.
|
|
220
|
-
|
|
221
|
-
### ✅ Pre-Flight Self-Audit
|
|
222
|
-
|
|
223
|
-
Review these questions before generating PowerShell commands:
|
|
224
|
-
```
|
|
225
|
-
✅ Did I use the correct comparison operators (e.g., `-gt`, `-like`)?
|
|
226
|
-
✅ Did I leverage PowerShell's object pipeline instead of parsing text?
|
|
227
|
-
✅ Are paths safely manipulated (e.g., `Join-Path`) to handle Windows backslashes correctly?
|
|
228
|
-
✅ Are potential non-terminating errors handled explicitly?
|
|
229
|
-
✅ Will this script require an execution policy bypass, and did I note that for the user?
|
|
230
|
-
```
|
|
@@ -9,21 +9,18 @@ applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
|
9
9
|
|
|
10
10
|
# Python Development Principles
|
|
11
11
|
|
|
12
|
-
> Python's flexibility is its greatest weakness.
|
|
13
|
-
> Without conventions, every project ends up with its own unpredictable shape.
|
|
14
|
-
|
|
15
12
|
---
|
|
16
13
|
|
|
17
14
|
## Framework Selection
|
|
18
15
|
|
|
19
|
-
|
|
|
16
|
+
|Use Case|Recommended|When to Use|
|
|
20
17
|
|---|---|---|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
18
|
+
|REST API, general-purpose|FastAPI|Type-safe, async, auto-docs via OpenAPI|
|
|
19
|
+
|REST API, batteries-included|Django + DRF|Rapid development, ORM included, admin panel|
|
|
20
|
+
|Microservice / minimal API|Flask|Simple, no overhead, full control|
|
|
21
|
+
|Data pipeline / ETL|No framework|Standard library + pandas/polars as needed|
|
|
22
|
+
|CLI tool|Click or Typer|Better than argparse for complex CLIs|
|
|
23
|
+
|Async task queue|Celery + Redis|Background jobs, scheduled tasks|
|
|
27
24
|
|
|
28
25
|
**Decision question:** Does this need an ORM, admin panel, and auth out of the box? → Django. Does it need type-safe inputs with automatic validation? → FastAPI. Is it small and needs nothing? → Flask.
|
|
29
26
|
|
|
@@ -201,29 +198,4 @@ Evidence: [test output / lint pass / compile success]
|
|
|
201
198
|
**VBC (Verification-Before-Completion) is mandatory.**
|
|
202
199
|
Do not mark status as VERIFIED until concrete terminal evidence is provided.
|
|
203
200
|
|
|
204
|
-
|
|
205
201
|
---
|
|
206
|
-
|
|
207
|
-
## 🏛️ Tribunal Integration (Anti-Hallucination)
|
|
208
|
-
|
|
209
|
-
**Slash command: `/tribunal-backend`**
|
|
210
|
-
**Active reviewers: `logic` · `security` · `dependency` · `type-safety`**
|
|
211
|
-
|
|
212
|
-
### ❌ Forbidden AI Tropes in Python
|
|
213
|
-
|
|
214
|
-
1. **Missing Type Hints** — writing `def func(a, b):` instead of fully typing parameters and return values.
|
|
215
|
-
2. **Bare `except:` blocks** — catching all exceptions blindly without logging or raising `AppError`.
|
|
216
|
-
3. **`requirements.txt` over `pyproject.toml`** — hallucinating outdated dependency management practices.
|
|
217
|
-
4. **Blocking the async event loop** — writing synchronous I/O or `time.sleep()` inside an `async def` FastAPI route.
|
|
218
|
-
5. **Assuming Django for microservices** — defaulting to a massive framework when `FastAPI` or `Flask` fits better.
|
|
219
|
-
|
|
220
|
-
### ✅ Pre-Flight Self-Audit
|
|
221
|
-
|
|
222
|
-
Review these questions before generating Python code:
|
|
223
|
-
```
|
|
224
|
-
✅ Are all function parameters and return types strictly typed?
|
|
225
|
-
✅ Did I use the modern toolchain (`uv`/`poetry`, `ruff`, `mypy`)?
|
|
226
|
-
✅ Did I accidentally block the async event loop with sync code?
|
|
227
|
-
✅ Are domain errors properly caught and mapped to HTTP status codes without leaking stack traces?
|
|
228
|
-
✅ Is my dependency selection precise and explicitly declared in `pyproject.toml`?
|
|
229
|
-
```
|