Project Structure Checker
Source: Dev.to
What it does
PSX auto‑detects the project type (Node, Go, etc.) and runs a set of rules to ensure the repository has the essential files. If something’s missing you can run psx fix and it creates sensible defaults. Rules are configurable via a simple YAML file and checks run in parallel for speed.
Features
- Automatic detection of project type and basic scaffolding
- Auto‑fix mode that creates missing files and folders
- Support for multiple languages (Node.js, Go, generic projects)
- Configurable rules via a simple YAML file
Installation
Quick install
Linux / macOS
curl -sSL https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.sh | bash
Windows (PowerShell)
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.ps1" -OutFile install.ps1; .\install.ps1 github
Download binary
Pre‑built releases are available on GitHub for Linux (amd64, arm64), macOS (amd64, arm64) and Windows (amd64). See the Releases page on the repository.
Build from source
git clone https://github.com/m-mdy-m/psx
cd psx
make build
sudo make install
Docker
docker pull bitsgenix/psx:latest
docker run --rm -v $(pwd):/project psx:latest check
Quick start
cd my-project
psx check
If PSX finds missing or weak items you can auto‑fix:
psx fix
To confirm each change interactively:
psx fix --interactive
Example config (psx.yml)
Place this file in the repository root. PSX will auto‑detect the project type if type is left empty.
version: 1
project:
type: "go"
rules:
readme: error
license: warning
gitignore: warning
changelog: info
How auto‑fix works
psx fix reads your rules, determines what’s missing, and creates sensible defaults for README, .gitignore, LICENSE, etc. LICENSE files use standard templates; README is minimal (name, short description, install/run hints). The --interactive flag asks before applying each change.
Development notes
PSX is written in Go and requires Go 1.25+ to build. The codebase is modular, allowing detectors and rules to be extended. The current repository does not include tests (intentional for v1); contributions adding tests or lint rules are welcome.
Why I made it
Setting up a new project always involved repeating the same first few minutes of work—creating README, LICENSE, .gitignore, changelog, and other boilerplate. PSX provides a tiny tool to enforce a sane baseline so you can start coding faster and keep repositories consistent.
Future enhancements (not in v1)
- Plugin system for custom rules – allow users to add/share custom rule sets
- Multi‑project scanning – scan multiple repositories at once
- Git pre‑commit hook integration – run checks locally before commits
- Additional language support – Python, Rust, Java, etc.
- Improved code structure and quality – refactor modules, add more tests
- Editor/CI integrations – VS Code extension, CI checks
- Usability improvements – more templates, interactive flows
A note about v1
This is the first public version. It may contain bugs or missing features. Please try it, report issues, and provide feedback. Your input helps make the tool better.
If you want to help
Star the repository and consider contributing. Useful contributions include adding tests, writing linters, creating new language detectors, improving templates, or submitting small fixes. Open issues or pull requests and they will be reviewed.
Links & support
- Repository:
- Issues:
- Releases: