Skip to content
Back to skills

Code Standards

ASecurity

The binding, numbered definition of good code for this codebase. Generation agents read it BEFORE writing any code; review skills cite violations by rule id (CS-n). Use whenever the user says "code standards", "what is good code", "coding rules", or before generating application code in any pipeline step.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 26, 2026
ai-agentsrustgophpsqlfrontendbackendsecurity

Security analysis

A100/100

Scanned October 26, 2026

npx -y skills add digitaldreams/tuhin --skill code-standards --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Standards?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Code Standards
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/digitaldreams-code-standards/badge)](https://www.skillsdirectory.com/skills/digitaldreams-code-standards)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: code-standards
description: >
  The binding, numbered definition of good code for this codebase. Generation agents read it
  BEFORE writing any code; review skills cite violations by rule id (CS-n). Use whenever the user
  says "code standards", "what is good code", "coding rules", or before generating application
  code in any pipeline step.
---

# Code Standards

Every rule here is checkable by reading the code — no vibes. Generators comply; reviewers cite CS-n. A rule that can't be verified by inspection doesn't belong in this file.

## Naming

- **CS-1** Class names carry their type suffix: `Controller`, `Job`, `Service`, `Event`, `Listener`, `Factory`.
- **CS-2** Queued classes carry the `Job` suffix; trigger-listeners are named `{Verb}On{Event}Listener`.
- **CS-3** Service primary methods are intent-named (`check`, `create`, `process`, `store`) — `handle()` is reserved for framework contracts.
- **CS-4** Enum cases are `ALL_CAPS_SNAKE_CASE`.
- **CS-5** A name states what comes out, not how it works (`priorComposites`, not `loopAndFilterList`).

## Structure

- **CS-6** Guard clauses and early returns over nested conditionals; no `else` after a return.
- **CS-7** A self-contained block of 4+ lines (input → transform → one output) becomes an intent-named private method.
- **CS-8** Never extract: guard clauses, single statements, or blocks mutating 2+ enclosing-scope locals — over-extraction reads worse than inline code.
- **CS-9** One responsibility per class; a method reads top-to-bottom at one level of abstraction.
- **CS-10** Paired classes (sibling drivers, mirrored paths) stay symmetric: same shape, same extractions.

## Comments

- **CS-11** No inline what-comments — the code self-explains through names; a comment restating the next line is deleted.
- **CS-12** A genuine why (race condition, idempotency gate, security rationale, external quirk) lives in the method PHPDoc, never inline.
- **CS-13** Commented-out code never ships.

## Simplicity

- **CS-14** No interface with a single implementation — unless a swap requirement exists today, in which case use the driver pattern.
- **CS-15** No config entry for a value that never changes; constants live where they're used.
- **CS-16** Framework feature over hand-rolled equivalent: if Laravel ships it (validation, throttling, casting, scheduling), use it.
- **CS-17** Fewest files that work — no scaffolding, folders, or base classes "for later".

## Framework Idiom

- **CS-18** Validation lives in FormRequests, never inline in controllers.
- **CS-19** Authorization lives in Policies/Gates, never inline role checks scattered in controllers or views.
- **CS-20** Relationships via Eloquent (`hasMany`, `belongsTo`), not manual joins; no raw SQL with user input.
- **CS-21** Slow or external work (mail, HTTP, image processing) is queued, never inline in a request.

## Data Safety

- **CS-22** Every trust boundary (user input, webhook payload, CSV cell, query param) validates before use; mass assignment stays guarded.
- **CS-23** Multi-write operations wrap in one transaction; partial writes are a bug.
- **CS-24** Any new query path eager-loads its relations — an N+1 is a defect, not a style issue.

## Errors & Tests

- **CS-25** No swallowed exceptions, no empty catch — fail loud or handle for real.
- **CS-26** Every behavior change ships with a test named by the behavior it proves.
- **CS-27** A bug fix starts with a red regression test (see red-first skill); no fix commits without one.

## Placement

- **CS-28** Class placement follows the vsa skill's rules — slice-first, events as seams; not restated here.

## Formatting

- **CS-29** PSR-12 compliance, enforced by Pint (`vendor/bin/pint`) — formatting is the tool's job; never hand-format against it, never argue style Pint already settles.
- **CS-30** Static analysis must pass: PHPStan — Larastan in Laravel projects (`vendor/bin/phpstan analyse`). New code introduces zero new errors at the project's configured level; never fix an error by adding a baseline entry or `@phpstan-ignore` without a PHPDoc why.

## Consumers

- Generation agents (task-backend, task-frontend, tuhin twin) read this file before writing code.
- The review skill cites CS-n in findings; readability-sweep enforces CS-1..13 mechanically.
- If this file conflicts with a target project's `docs/conventions.md`, the project wins — flag the delta instead of silently following either.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.