Skip to content

Rule Packs

Dinocheck includes rule packs for different languages and frameworks. All packs are enabled by default.

Available Packs

Pack Description
python Security, correctness, testing, and reliability rules for Python
django ORM, transactions, DRF, migrations, and Celery task rules
react Hooks, performance, security, patterns, and accessibility for JSX
typescript Type safety, async patterns, and security for TS/JS
css Performance, accessibility, maintainability, and compatibility for CSS
docker Dockerfile security, build optimization, and runtime config
docker-compose Compose security, networking, and reliability
sh Shell script security, error handling, and portability
vue Vue.js reactivity, templates, and XSS prevention
latex Academic writing quality, citations, references, and math notation

Pack Commands

# List all available packs
dino packs list

# Show details of a specific pack
dino packs info python

# Explain a specific rule
dino explain django/n-plus-one

Python Pack

Rules for Python code quality, security, and testing.

Categories:

  • security - SQL injection, command injection, insecure deserialization
  • correctness - Mutable defaults, exception handling, iterator exhaustion
  • testing - Over-mocking, missing assertions, test isolation
  • reliability - Resource leaks, race conditions, error handling
  • maintainability - Code complexity, naming, structure

Django Pack

Rules for Django applications, ORM, and Django REST Framework.

Categories:

  • orm - N+1 queries, bulk operations, queryset optimization
  • security - Authorization, CSRF, SQL injection
  • drf - Serializer validation, permission classes, pagination
  • migrations - Data migrations, schema changes, rollbacks
  • tasks - Celery task idempotency, retries, timeouts

React Pack

Rules for React components in JSX files.

Categories:

  • hooks - Exhaustive deps, conditional hooks, stale closures, naming conventions
  • performance - Inline objects in JSX, missing keys, unnecessary re-renders, large components
  • security - dangerouslySetInnerHTML, unsafe href, user input injection
  • patterns - Prop drilling, direct state mutation, useEffect fetch cleanup, index as key
  • accessibility - Missing alt text, click without keyboard support, missing form labels

CSS Pack

Rules for CSS stylesheets.

Categories:

  • performance - Universal selectors, inefficient selectors, layout thrashing
  • accessibility - Color contrast, focus indicators, reduced motion
  • maintainability - Specificity issues, magic numbers, redundant rules
  • compatibility - Vendor prefixes, unsupported properties
  • best-practices - Important overuse, shorthand consistency

TypeScript Pack

Rules for TypeScript and JavaScript code.

Categories:

  • types - Type safety, any abuse, missing generics
  • async - Promise handling, race conditions, error propagation
  • security - XSS, injection, unsafe operations
  • reliability - Null checks, error handling, edge cases

Docker Pack

Rules for Dockerfile best practices.

Categories:

  • security - Running as root, secrets in images, vulnerable base images
  • build - Layer optimization, caching, multi-stage builds
  • runtime - Health checks, signal handling, resource limits

Docker Compose Pack

Rules for Docker Compose configurations.

Categories:

  • security - Privileged containers, exposed ports, secrets management
  • networking - Network isolation, service discovery, port conflicts
  • reliability - Restart policies, health checks, resource limits

Shell Pack

Rules for shell scripts (bash, sh).

Categories:

  • security - Command injection, unsafe variable expansion
  • reliability - Error handling, exit codes, quoting
  • portability - POSIX compliance, bashisms, cross-platform

Vue Pack

Rules for Vue.js applications.

Categories:

  • reactivity - Reactive pitfalls, computed vs methods, watchers
  • security - XSS in templates, v-html usage, sanitization
  • templates - Template best practices, slot usage, prop validation

LaTeX Pack

Rules for LaTeX documents (.tex) used in papers, reports, and technical docs.

Categories:

  • correctness - Escaping issues, command usage, compile-breaking patterns
  • structure - Labels, cross-references, and document organization
  • citations - Citation key consistency and bibliography hygiene
  • math - Clear math mode usage and notation consistency
  • readability - Avoiding manual formatting hacks and source clutter

Excluding Packs

To exclude packs you don't need:

# dino.yaml
exclude_packs:
  - vue
  - docker
  - docker-compose

Disabling Specific Rules

To disable individual rules:

# dino.yaml
disabled_rules:
  - python/broad-exception
  - django/n-plus-one