tribunal-kit 4.5.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
- package/.agent/ARCHITECTURE.md +279 -277
- package/.agent/GEMINI.md +127 -121
- package/.agent/agents/accessibility-reviewer.md +187 -187
- package/.agent/agents/ai-code-reviewer.md +199 -199
- package/.agent/agents/api-architect.md +71 -66
- package/.agent/agents/backend-specialist.md +219 -215
- package/.agent/agents/cloud-engineer.md +98 -0
- package/.agent/agents/code-archaeologist.md +168 -161
- package/.agent/agents/database-architect.md +184 -184
- package/.agent/agents/db-latency-auditor.md +213 -216
- package/.agent/agents/debugger.md +198 -191
- package/.agent/agents/dependency-reviewer.md +106 -103
- package/.agent/agents/devops-engineer.md +218 -218
- package/.agent/agents/documentation-writer.md +209 -201
- package/.agent/agents/explorer-agent.md +167 -160
- package/.agent/agents/frontend-reviewer.md +162 -160
- package/.agent/agents/frontend-specialist.md +257 -248
- package/.agent/agents/game-developer.md +48 -48
- package/.agent/agents/logic-reviewer.md +118 -116
- package/.agent/agents/mobile-developer.md +197 -200
- package/.agent/agents/mobile-reviewer.md +159 -162
- package/.agent/agents/orchestrator.md +187 -181
- package/.agent/agents/penetration-tester.md +160 -157
- package/.agent/agents/performance-optimizer.md +183 -183
- package/.agent/agents/performance-reviewer.md +178 -178
- package/.agent/agents/precedence-reviewer.md +251 -250
- package/.agent/agents/product-manager.md +149 -142
- package/.agent/agents/product-owner.md +81 -80
- package/.agent/agents/project-planner.md +152 -142
- package/.agent/agents/qa-automation-engineer.md +216 -225
- package/.agent/agents/resilience-reviewer.md +88 -88
- package/.agent/agents/schema-reviewer.md +67 -67
- package/.agent/agents/security-auditor.md +180 -174
- package/.agent/agents/seo-specialist.md +188 -193
- package/.agent/agents/sql-reviewer.md +159 -161
- package/.agent/agents/supervisor-agent.md +173 -184
- package/.agent/agents/swarm-worker-contracts.md +170 -166
- package/.agent/agents/swarm-worker-registry.md +92 -92
- package/.agent/agents/system-architect.md +85 -0
- package/.agent/agents/test-coverage-reviewer.md +158 -160
- package/.agent/agents/test-engineer.md +118 -118
- package/.agent/agents/throughput-optimizer.md +291 -299
- package/.agent/agents/type-safety-reviewer.md +182 -175
- package/.agent/agents/ui-ux-auditor.md +300 -292
- package/.agent/agents/vitals-reviewer.md +223 -223
- package/.agent/mcp_config.json +37 -40
- package/.agent/patterns/generator.md +11 -9
- package/.agent/patterns/inversion.md +14 -12
- package/.agent/patterns/pipeline.md +11 -9
- package/.agent/patterns/reviewer.md +15 -13
- package/.agent/patterns/tool-wrapper.md +11 -9
- package/.agent/routing_index.json +654 -0
- package/.agent/rules/GEMINI.md +358 -352
- package/.agent/scripts/compile_router.py +112 -0
- package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
- package/.agent/scripts/strengthen_skills.js +1 -1
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
- package/.agent/skills/agent-organizer/SKILL.md +156 -150
- package/.agent/skills/agentic-patterns/SKILL.md +313 -315
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
- package/.agent/skills/api-patterns/SKILL.md +253 -247
- package/.agent/skills/api-security-auditor/SKILL.md +195 -193
- package/.agent/skills/app-builder/SKILL.md +573 -572
- package/.agent/skills/app-builder/templates/SKILL.md +108 -115
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
- package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
- package/.agent/skills/architecture/SKILL.md +226 -219
- package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
- package/.agent/skills/backend-security-expert/SKILL.md +16 -2
- package/.agent/skills/bash-linux/SKILL.md +179 -179
- package/.agent/skills/behavioral-modes/SKILL.md +239 -223
- package/.agent/skills/brainstorming/SKILL.md +498 -486
- package/.agent/skills/browser-native-ai/SKILL.md +57 -4
- package/.agent/skills/building-native-ui/SKILL.md +202 -202
- package/.agent/skills/cicd-pro/SKILL.md +442 -0
- package/.agent/skills/clean-code/SKILL.md +400 -381
- package/.agent/skills/cloud-architect/SKILL.md +439 -0
- package/.agent/skills/code-review-checklist/SKILL.md +203 -194
- package/.agent/skills/config-validator/SKILL.md +165 -165
- package/.agent/skills/containerization-pro/SKILL.md +452 -0
- package/.agent/skills/csharp-developer/SKILL.md +518 -518
- package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
- package/.agent/skills/database-design/SKILL.md +247 -240
- package/.agent/skills/deployment-procedures/SKILL.md +172 -169
- package/.agent/skills/devops-engineer/SKILL.md +345 -345
- package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
- package/.agent/skills/doc.md +209 -177
- package/.agent/skills/documentation-templates/SKILL.md +291 -279
- package/.agent/skills/edge-computing/SKILL.md +183 -181
- package/.agent/skills/error-resilience/SKILL.md +411 -428
- package/.agent/skills/extract-design-system/SKILL.md +160 -158
- package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
- package/.agent/skills/frontend-design/SKILL.md +208 -201
- package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
- package/.agent/skills/game-design-expert/SKILL.md +132 -129
- package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
- package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
- package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
- package/.agent/skills/git-pro/SKILL.md +435 -0
- package/.agent/skills/github-operations/SKILL.md +335 -329
- package/.agent/skills/gsap-core/SKILL.md +319 -308
- package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
- package/.agent/skills/gsap-performance/SKILL.md +139 -133
- package/.agent/skills/gsap-plugins/SKILL.md +486 -480
- package/.agent/skills/gsap-react/SKILL.md +202 -189
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
- package/.agent/skills/gsap-timeline/SKILL.md +165 -161
- package/.agent/skills/gsap-utils/SKILL.md +344 -338
- package/.agent/skills/harness-protocol/SKILL.md +48 -0
- package/.agent/skills/i18n-localization/SKILL.md +174 -163
- package/.agent/skills/intelligent-routing/SKILL.md +202 -246
- package/.agent/skills/knowledge-graph/SKILL.md +60 -52
- package/.agent/skills/lint-and-validate/SKILL.md +261 -261
- package/.agent/skills/llm-engineering/SKILL.md +400 -394
- package/.agent/skills/local-first/SKILL.md +178 -178
- package/.agent/skills/mcp-builder/SKILL.md +143 -142
- package/.agent/skills/mobile-design/SKILL.md +272 -263
- package/.agent/skills/monorepo-management/SKILL.md +335 -334
- package/.agent/skills/motion-engineering/SKILL.md +266 -234
- package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
- package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
- package/.agent/skills/observability/SKILL.md +343 -343
- package/.agent/skills/parallel-agents/SKILL.md +143 -146
- package/.agent/skills/performance-profiling/SKILL.md +259 -267
- package/.agent/skills/plan-writing/SKILL.md +150 -142
- package/.agent/skills/platform-engineer/SKILL.md +148 -147
- package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
- package/.agent/skills/powershell-windows/SKILL.md +162 -162
- package/.agent/skills/project-idioms/SKILL.md +137 -137
- package/.agent/skills/python-patterns/SKILL.md +260 -259
- package/.agent/skills/python-pro/SKILL.md +324 -323
- package/.agent/skills/react-specialist/SKILL.md +305 -277
- package/.agent/skills/readme-builder/SKILL.md +310 -300
- package/.agent/skills/realtime-patterns/SKILL.md +323 -319
- package/.agent/skills/red-team-tactics/SKILL.md +231 -218
- package/.agent/skills/rust-pro/SKILL.md +671 -673
- package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
- package/.agent/skills/server-management/SKILL.md +218 -214
- package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
- package/.agent/skills/skill-creator/SKILL.md +87 -86
- package/.agent/skills/sql-pro/SKILL.md +629 -629
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
- package/.agent/skills/swiftui-expert/SKILL.md +204 -201
- package/.agent/skills/system-design-pro/SKILL.md +345 -0
- package/.agent/skills/systematic-debugging/SKILL.md +153 -142
- package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
- package/.agent/skills/tdd-workflow/SKILL.md +169 -161
- package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
- package/.agent/skills/testing-patterns/SKILL.md +566 -579
- package/.agent/skills/trend-researcher/SKILL.md +243 -237
- package/.agent/skills/typescript-advanced/SKILL.md +336 -335
- package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
- package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
- package/.agent/skills/vue-expert/SKILL.md +294 -275
- package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
- package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
- package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
- package/.agent/skills/webapp-testing/SKILL.md +167 -169
- package/.agent/skills/webgpu-performance/SKILL.md +56 -2
- package/.agent/skills/whimsy-injector/SKILL.md +346 -325
- package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
- package/.agent/workflows/acf.md +141 -0
- package/.agent/workflows/api-tester.md +176 -151
- package/.agent/workflows/audit.md +150 -127
- package/.agent/workflows/brainstorm.md +134 -110
- package/.agent/workflows/changelog.md +140 -112
- package/.agent/workflows/create.md +168 -124
- package/.agent/workflows/debug.md +190 -165
- package/.agent/workflows/deploy.md +201 -180
- package/.agent/workflows/enhance.md +154 -128
- package/.agent/workflows/fix.md +136 -114
- package/.agent/workflows/generate.md +198 -183
- package/.agent/workflows/marathon.md +37 -11
- package/.agent/workflows/migrate.md +184 -160
- package/.agent/workflows/orchestrate.md +192 -168
- package/.agent/workflows/performance-benchmarker.md +135 -114
- package/.agent/workflows/plan.md +196 -173
- package/.agent/workflows/preview.md +103 -80
- package/.agent/workflows/refactor.md +192 -161
- package/.agent/workflows/review-ai.md +125 -101
- package/.agent/workflows/review.md +141 -116
- package/.agent/workflows/session.md +122 -94
- package/.agent/workflows/status.md +101 -79
- package/.agent/workflows/strengthen-skills.md +164 -138
- package/.agent/workflows/super-prompt.md +24 -0
- package/.agent/workflows/swarm.md +193 -179
- package/.agent/workflows/test.md +211 -189
- package/.agent/workflows/tribunal-backend.md +136 -105
- package/.agent/workflows/tribunal-database.md +122 -95
- package/.agent/workflows/tribunal-frontend.md +221 -96
- package/.agent/workflows/tribunal-full.md +129 -100
- package/.agent/workflows/tribunal-mobile.md +122 -95
- package/.agent/workflows/tribunal-performance.md +136 -110
- package/.agent/workflows/tribunal-speed.md +209 -183
- package/.agent/workflows/ui-ux-pro-max.md +145 -122
- package/README.md +107 -55
- package/bin/mcp-server.js +159 -0
- package/bin/tribunal-kit.js +105 -29
- package/bin/wrapper.js +16 -7
- package/mcp_config.json +9 -0
- package/package.json +94 -86
- package/scripts/changelog.js +4 -3
- package/scripts/validate-payload.js +6 -1
- package/scripts/postinstall.js +0 -127
|
@@ -1,265 +1,263 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: lint-and-validate
|
|
3
|
-
description: Linting and validation principles for code quality enforcement.
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
#
|
|
45
|
-
npx eslint . --ext .ts,.tsx
|
|
46
|
-
npx prettier --
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
],
|
|
59
|
-
"rules": {
|
|
60
|
-
"@typescript-eslint/no-explicit-any": "error",
|
|
61
|
-
"@typescript-eslint/no-floating-promises": "error",
|
|
62
|
-
"@typescript-eslint/await-thenable": "error",
|
|
63
|
-
"no-console": ["warn", { "allow": ["warn", "error"] }],
|
|
64
|
-
"eqeqeq": ["error", "always"]
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**Key rules explained:**
|
|
70
|
-
|
|
71
|
-
|Rule|Why It Matters|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Python (Ruff)
|
|
81
|
-
|
|
82
|
-
Ruff replaces flake8, black, isort, and pyupgrade in one fast tool:
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
# Install
|
|
86
|
-
pip install ruff
|
|
87
|
-
|
|
88
|
-
# Check
|
|
89
|
-
ruff check .
|
|
90
|
-
|
|
91
|
-
# Fix auto-fixable
|
|
92
|
-
ruff check . --fix
|
|
93
|
-
|
|
94
|
-
# Format (replaces black)
|
|
95
|
-
ruff format .
|
|
96
|
-
|
|
97
|
-
# Pre-commit config
|
|
98
|
-
# .pre-commit-config.yaml
|
|
99
|
-
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
100
|
-
hooks:
|
|
101
|
-
- id: ruff
|
|
102
|
-
args: [--fix]
|
|
103
|
-
- id: ruff-format
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
```toml
|
|
107
|
-
# pyproject.toml
|
|
108
|
-
[tool.ruff]
|
|
109
|
-
line-length = 100
|
|
110
|
-
target-version = "py311"
|
|
111
|
-
|
|
112
|
-
[tool.ruff.lint]
|
|
113
|
-
select = ["E", "F", "I", "N", "UP", "B", "SIM", "ANN"]
|
|
114
|
-
# E: pycodestyle, F: pyflakes, I: isort, N: naming, UP: pyupgrade
|
|
115
|
-
# B: bugbear (common bugs), SIM: simplify, ANN: annotations
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Type Checking
|
|
121
|
-
|
|
122
|
-
Linting and type checking catch different things. Run both.
|
|
123
|
-
|
|
124
|
-
**TypeScript:**
|
|
125
|
-
```bash
|
|
126
|
-
npx tsc --noEmit # type check without emitting files
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
**Python:**
|
|
130
|
-
```bash
|
|
131
|
-
mypy src/ --ignore-missing-imports
|
|
132
|
-
# or
|
|
133
|
-
pyright src/
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**Required compiler options (TypeScript):**
|
|
137
|
-
```json
|
|
138
|
-
{
|
|
139
|
-
"compilerOptions": {
|
|
140
|
-
"strict": true, // enables all strict checks
|
|
141
|
-
"noImplicitAny": true,
|
|
142
|
-
"noUncheckedIndexedAccess": true, // index access can be undefined
|
|
143
|
-
"exactOptionalPropertyTypes": true
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## Pre-commit Integration
|
|
151
|
-
|
|
152
|
-
Run linting automatically before every commit:
|
|
153
|
-
|
|
154
|
-
```yaml
|
|
155
|
-
# .pre-commit-config.yaml
|
|
156
|
-
repos:
|
|
157
|
-
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
158
|
-
hooks:
|
|
159
|
-
- id: check-merge-conflict
|
|
160
|
-
- id: check-added-large-files
|
|
161
|
-
- id: end-of-file-fixer
|
|
162
|
-
- id: trailing-whitespace
|
|
163
|
-
|
|
164
|
-
- repo: local
|
|
165
|
-
hooks:
|
|
166
|
-
- id: eslint
|
|
167
|
-
name: ESLint
|
|
168
|
-
language: node
|
|
169
|
-
entry: npx eslint --ext .ts,.tsx
|
|
170
|
-
types: [javascript, ts]
|
|
171
|
-
|
|
172
|
-
- id: tsc
|
|
173
|
-
name: TypeScript
|
|
174
|
-
language: node
|
|
175
|
-
entry: npx tsc --noEmit
|
|
176
|
-
pass_filenames: false
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## Scripts
|
|
182
|
-
|
|
183
|
-
|Script|Purpose|Run With|
|
|
184
|
-
|---|---|---|
|
|
185
|
-
|`scripts/lint_runner.py`|Runs project linting and reports findings|`python scripts/lint_runner.py <project_path>`|
|
|
186
|
-
|`scripts/type_coverage.py`|Measures TypeScript type coverage|`python scripts/type_coverage.py <project_path>`|
|
|
187
|
-
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
## Output Format
|
|
191
|
-
|
|
192
|
-
When this skill produces or reviews code, structure your output as follows:
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
━━━ Lint And Validate Report ━━━━━━━━━━━━━━━━━━━━━━━━
|
|
196
|
-
Skill: Lint And Validate
|
|
197
|
-
Language: [detected language / framework]
|
|
198
|
-
Scope: [N files · N functions]
|
|
199
|
-
─────────────────────────────────────────────────
|
|
200
|
-
✅ Passed: [checks that passed, or "All clean"]
|
|
201
|
-
⚠️ Warnings: [non-blocking issues, or "None"]
|
|
202
|
-
❌ Blocked: [blocking issues requiring fix, or "None"]
|
|
203
|
-
─────────────────────────────────────────────────
|
|
204
|
-
VBC status: PENDING → VERIFIED
|
|
205
|
-
Evidence: [test output / lint pass / compile success]
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
**VBC (Verification-Before-Completion) is mandatory.**
|
|
209
|
-
Do not mark status as VERIFIED until concrete terminal evidence is provided.
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
219
|
-
|
|
220
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
221
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
222
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
223
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
224
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
231
|
-
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
232
|
-
|
|
233
|
-
### ❌ Forbidden AI Tropes
|
|
234
|
-
|
|
235
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
236
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
237
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
Review these questions before confirming output:
|
|
242
|
-
```
|
|
243
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
244
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
245
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
246
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
250
|
-
|
|
251
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
252
|
-
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
253
|
-
- ✅ **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.
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
## Pre-Flight Checklist
|
|
257
|
-
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
258
|
-
- [ ] Have I checked the environment for relevant existing implementations?
|
|
259
|
-
|
|
260
|
-
## VBC Protocol (Verification-Before-Completion)
|
|
261
|
-
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
1
|
+
---
|
|
2
|
+
name: lint-and-validate
|
|
3
|
+
description: Linting and validation principles for code quality enforcement.
|
|
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
|
+
- ❌ Auto-fixing lint errors without reviewing the diff -> ✅ Some auto-fixes change logic (e.g., removing 'unused' variables that are side-effects)
|
|
16
|
+
- ❌ Treating warnings as non-blocking in CI -> ✅ Warnings accumulate; enforce zero-warning policy or they become permanent
|
|
17
|
+
- ❌ Running linters only on changed files -> ✅ Run on full codebase periodically; cross-file issues are only caught with full runs
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Linting & Validation
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Why Linting Matters
|
|
26
|
+
|
|
27
|
+
Linting catches problems that code review misses:
|
|
28
|
+
|
|
29
|
+
- Unused variables left in after refactoring
|
|
30
|
+
- Missing `await` on async functions (silently returns a Promise instead of the value)
|
|
31
|
+
- Inconsistent code style that makes diffs hard to read
|
|
32
|
+
- Known dangerous patterns (e.g., `==` instead of `===` in JS)
|
|
33
|
+
|
|
34
|
+
Run linting in CI. Every PR that merges should pass lint. A lint check that doesn't block the build is decoration.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## JavaScript / TypeScript (ESLint + Prettier)
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Install
|
|
42
|
+
npm install -D eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser prettier
|
|
43
|
+
|
|
44
|
+
# Run
|
|
45
|
+
npx eslint . --ext .ts,.tsx
|
|
46
|
+
npx prettier --check .
|
|
47
|
+
|
|
48
|
+
# Fix auto-fixable issues
|
|
49
|
+
npx eslint . --ext .ts,.tsx --fix
|
|
50
|
+
npx prettier --write .
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Recommended rules to enforce:**
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
// .eslintrc.json
|
|
57
|
+
{
|
|
58
|
+
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking"],
|
|
59
|
+
"rules": {
|
|
60
|
+
"@typescript-eslint/no-explicit-any": "error",
|
|
61
|
+
"@typescript-eslint/no-floating-promises": "error",
|
|
62
|
+
"@typescript-eslint/await-thenable": "error",
|
|
63
|
+
"no-console": ["warn", { "allow": ["warn", "error"] }],
|
|
64
|
+
"eqeqeq": ["error", "always"]
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Key rules explained:**
|
|
70
|
+
|
|
71
|
+
| Rule | Why It Matters |
|
|
72
|
+
| ---------------------- | ----------------------------------------------------------- |
|
|
73
|
+
| `no-floating-promises` | Missing `await` on async call = silent bug |
|
|
74
|
+
| `no-explicit-any` | `any` disables TypeScript's only protection |
|
|
75
|
+
| `eqeqeq` | `==` has coercion surprises; `===` is always explicit |
|
|
76
|
+
| `await-thenable` | Prevents `await`-ing non-async functions (always a mistake) |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Python (Ruff)
|
|
81
|
+
|
|
82
|
+
Ruff replaces flake8, black, isort, and pyupgrade in one fast tool:
|
|
262
83
|
|
|
84
|
+
```bash
|
|
85
|
+
# Install
|
|
86
|
+
pip install ruff
|
|
87
|
+
|
|
88
|
+
# Check
|
|
89
|
+
ruff check .
|
|
90
|
+
|
|
91
|
+
# Fix auto-fixable
|
|
92
|
+
ruff check . --fix
|
|
93
|
+
|
|
94
|
+
# Format (replaces black)
|
|
95
|
+
ruff format .
|
|
96
|
+
|
|
97
|
+
# Pre-commit config
|
|
98
|
+
# .pre-commit-config.yaml
|
|
99
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
100
|
+
hooks:
|
|
101
|
+
- id: ruff
|
|
102
|
+
args: [--fix]
|
|
103
|
+
- id: ruff-format
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```toml
|
|
107
|
+
# pyproject.toml
|
|
108
|
+
[tool.ruff]
|
|
109
|
+
line-length = 100
|
|
110
|
+
target-version = "py311"
|
|
111
|
+
|
|
112
|
+
[tool.ruff.lint]
|
|
113
|
+
select = ["E", "F", "I", "N", "UP", "B", "SIM", "ANN"]
|
|
114
|
+
# E: pycodestyle, F: pyflakes, I: isort, N: naming, UP: pyupgrade
|
|
115
|
+
# B: bugbear (common bugs), SIM: simplify, ANN: annotations
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Type Checking
|
|
121
|
+
|
|
122
|
+
Linting and type checking catch different things. Run both.
|
|
123
|
+
|
|
124
|
+
**TypeScript:**
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npx tsc --noEmit # type check without emitting files
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Python:**
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
mypy src/ --ignore-missing-imports
|
|
134
|
+
# or
|
|
135
|
+
pyright src/
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Required compiler options (TypeScript):**
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"compilerOptions": {
|
|
143
|
+
"strict": true, // enables all strict checks
|
|
144
|
+
"noImplicitAny": true,
|
|
145
|
+
"noUncheckedIndexedAccess": true, // index access can be undefined
|
|
146
|
+
"exactOptionalPropertyTypes": true
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Pre-commit Integration
|
|
154
|
+
|
|
155
|
+
Run linting automatically before every commit:
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
# .pre-commit-config.yaml
|
|
159
|
+
repos:
|
|
160
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
161
|
+
hooks:
|
|
162
|
+
- id: check-merge-conflict
|
|
163
|
+
- id: check-added-large-files
|
|
164
|
+
- id: end-of-file-fixer
|
|
165
|
+
- id: trailing-whitespace
|
|
166
|
+
|
|
167
|
+
- repo: local
|
|
168
|
+
hooks:
|
|
169
|
+
- id: eslint
|
|
170
|
+
name: ESLint
|
|
171
|
+
language: node
|
|
172
|
+
entry: npx eslint --ext .ts,.tsx
|
|
173
|
+
types: [javascript, ts]
|
|
174
|
+
|
|
175
|
+
- id: tsc
|
|
176
|
+
name: TypeScript
|
|
177
|
+
language: node
|
|
178
|
+
entry: npx tsc --noEmit
|
|
179
|
+
pass_filenames: false
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Scripts
|
|
185
|
+
|
|
186
|
+
| Script | Purpose | Run With |
|
|
187
|
+
| -------------------------- | ----------------------------------------- | ------------------------------------------------ |
|
|
188
|
+
| `scripts/lint_runner.py` | Runs project linting and reports findings | `python scripts/lint_runner.py <project_path>` |
|
|
189
|
+
| `scripts/type_coverage.py` | Measures TypeScript type coverage | `python scripts/type_coverage.py <project_path>` |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Output Format
|
|
194
|
+
|
|
195
|
+
When this skill produces or reviews code, structure your output as follows:
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
━━━ Lint And Validate Report ━━━━━━━━━━━━━━━━━━━━━━━━
|
|
199
|
+
Skill: Lint And Validate
|
|
200
|
+
Language: [detected language / framework]
|
|
201
|
+
Scope: [N files · N functions]
|
|
202
|
+
─────────────────────────────────────────────────
|
|
203
|
+
✅ Passed: [checks that passed, or "All clean"]
|
|
204
|
+
⚠️ Warnings: [non-blocking issues, or "None"]
|
|
205
|
+
❌ Blocked: [blocking issues requiring fix, or "None"]
|
|
206
|
+
─────────────────────────────────────────────────
|
|
207
|
+
VBC status: PENDING → VERIFIED
|
|
208
|
+
Evidence: [test output / lint pass / compile success]
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**VBC (Verification-Before-Completion) is mandatory.**
|
|
212
|
+
Do not mark status as VERIFIED until concrete terminal evidence is provided.
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
219
|
+
|
|
220
|
+
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
221
|
+
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
222
|
+
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
223
|
+
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
224
|
+
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
**Slash command: `/review` or `/tribunal-full`**
|
|
229
|
+
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
230
|
+
|
|
231
|
+
### ❌ Forbidden AI Tropes
|
|
232
|
+
|
|
233
|
+
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
234
|
+
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
235
|
+
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
236
|
+
|
|
237
|
+
Review these questions before confirming output:
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
✅ Did I rely ONLY on real, verified tools and methods?
|
|
241
|
+
✅ Is this solution appropriately scoped to the user's constraints?
|
|
242
|
+
✅ Did I handle potential failure modes and edge cases?
|
|
243
|
+
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
247
|
+
|
|
248
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
249
|
+
|
|
250
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
251
|
+
- ✅ **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.
|
|
252
|
+
|
|
253
|
+
## Pre-Flight Checklist
|
|
254
|
+
|
|
255
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
256
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
257
|
+
|
|
258
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
259
|
+
|
|
260
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
263
261
|
|
|
264
262
|
---
|
|
265
263
|
|
|
@@ -289,6 +287,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
289
287
|
### ✅ Pre-Flight Self-Audit
|
|
290
288
|
|
|
291
289
|
Review these questions before confirming output:
|
|
290
|
+
|
|
292
291
|
```
|
|
293
292
|
✅ Did I rely ONLY on real, verified tools and methods?
|
|
294
293
|
✅ Is this solution appropriately scoped to the user's constraints?
|
|
@@ -299,5 +298,6 @@ Review these questions before confirming output:
|
|
|
299
298
|
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
300
299
|
|
|
301
300
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
301
|
+
|
|
302
302
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
303
303
|
- ✅ **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.
|