sinemacula / coding-standards
Centralized coding standards, static analysis configurations, and code quality tooling for all Sine Macula repositories.
Package info
github.com/sinemacula/coding-standards
Type:phpcodesniffer-standard
pkg:composer/sinemacula/coding-standards
Requires
- php: ^8.3
- friendsofphp/php-cs-fixer: ^3.0
This package is auto-updated.
Last update: 2026-05-13 17:18:39 UTC
README
Centralized coding standards, static analysis configurations, and code quality tooling for all Sine Macula repositories.
This package ships config files only — no runtime dependencies. Consuming projects install the tools themselves.
Installation
Composer (PHP-side: PHP CS Fixer, PHPStan, PHPCS)
composer require --dev sinemacula/coding-standards
npm (JS-side: Biome, Knip)
npm install --save-dev @sinemacula/coding-standards
The npm package ships only the static configs (js/, markdown/, yaml/, shell/, security/). The PHP autoloaded code lives in the Composer package.
Usage
Each consuming project creates thin wrapper files at its root that reference the shared configs.
PHP CS Fixer
Create a .php-cs-fixer.dist.php at your project root:
<?php use SineMacula\CodingStandards\PhpCsFixerConfig; return PhpCsFixerConfig::make([ __DIR__ . '/src', __DIR__ . '/tests', ]);
You can pass rule overrides as a second argument:
return PhpCsFixerConfig::make( [__DIR__ . '/src', __DIR__ . '/tests'], ['strict_comparison' => false], );
PHPCS
The SineMacula coding standard is auto-discovered via the phpcodesniffer-standard composer type. Create a
phpcs.xml at your project root:
<?xml version="1.0"?> <ruleset name="Project"> <rule ref="SineMacula"/> <file>src</file> <file>tests</file> </ruleset>
PHPStan
The shared PHPStan configs are auto-included via the extra.phpstan.includes section in composer.json. Your project's
phpstan.neon only needs project-specific settings:
parameters: level: 8 paths: - src - tests
Laravel projects
Documentation for Laravel/Larastan integration is coming soon.
Biome (JavaScript / TypeScript)
After installing the npm package, extend the shared Biome config from your project's biome.json (or .qlty/configs/biome.json when wired through Qlty):
{
"$schema": "https://biomejs.dev/schemas/2.0.0/schema.json",
"root": true,
"extends": ["@sinemacula/coding-standards/js/biome.json"],
"files": {
"ignoreUnknown": true,
"includes": ["**", "!**/node_modules/**", "!**/vendor/**"]
}
}
extends paths are resolved through normal Node module lookup, so the package only needs to be installed (no path math against node_modules/ required). Project-specific files.includes and files.excludes stay in the consumer config.
Knip (JavaScript / TypeScript)
{
"$schema": "https://unpkg.com/knip@6/schema.json",
"extends": ["@sinemacula/coding-standards/js/knip.json"]
}
Qlty
Reference this repository as a source in your project's .qlty/qlty.toml:
[[source]] name = "sinemacula" repository = "https://github.com/sinemacula/coding-standards" tag = "v1.0.0"
What's Included
| Path | Tool | Description |
|---|---|---|
src/PhpCsFixerConfig.php |
PHP CS Fixer | Factory class for building PHP CS Fixer configurations |
php/.php-cs-fixer.rules.php |
PHP CS Fixer | Shared rules array (PSR-12 base + org conventions) |
SineMacula/ruleset.xml |
PHPCS | Auto-discovered coding standard (PSR-12 + exclusions) |
php/phpstan.neon |
PHPStan | Base config (org-wide ignored errors + settings) |
js/biome.json |
Biome | JavaScript / TypeScript formatter + linter rules |
js/knip.json |
Knip | Unused-export detection rules |
markdown/.markdownlint.json |
markdownlint | Markdown linting rules |
yaml/.yamllint.yaml |
yamllint | YAML linting rules |
shell/.shellcheckrc |
ShellCheck | Shell script linting rules |
security/.gitleaks.toml |
Gitleaks | Secret-detection ruleset |
Contributing
Contributions are welcome via GitHub pull requests.
Security
If you discover a security issue, please contact Sine Macula directly rather than opening a public issue.
License
Licensed under the Apache License, Version 2.0.