LABSCO SUMMARY
Constraints at generation time, not findings at review time.
A linter tells you the generated code hardcoded its database connection; a constraint stops it happening. That distinction is what this is built on, and it is why the rules read like principles with detection logic attached rather than regex patterns. The rules are also opinionated in a way that is easy to check — the before-and-after example shows exactly what changes — so you can decide in a minute whether these are your standards. Being plain files, individual rules work with no installation at all.
What it is
A set of language-agnostic constraint rules for AI code generation, plus an MCP server that carries them into your editor. Each rule is a state machine: detect the pattern, evaluate the context, apply the engineering constraint, then check the output against it. The point is to constrain generation rather than to lint the result afterwards.
What you get
- Architecture rules that stop the usual defaults:
avoid-god-classesenforces single responsibility,composition-over-inheritancesteers away from rigid hierarchies,dependency-injectionkeeps generated classes testable instead of hardcoding their collaborators - Security and performance rules:
secure-by-defaultblocks SQL injection and weak cryptography patterns,promise-patternspushes concurrent async code instead of blocking calls - Readability rules:
prefer-early-returnsreplaces deep if-else nesting with guard clauses,descriptive-function-namesandmeaningful-variable-namesrule outprocess,handle,dataandresult,explicit-error-messagesdemands actionable failures,conventional-commitsstructures commit messages - Two ways to use them: paste a rule file's contents into the prompt for immediate ad-hoc use, or install the MCP server for persistent enforcement across Claude, Cursor and other clients
- A worked before-and-after in the README showing the same login method generated with and without the constraints, which is the fastest way to judge whether the rules match your standards
Requirements
No account and no key. npm install -g @ailint/mcp installs the server, published as @ailint/mcp (2.0.1) with the ailint-mcp binary. The rules themselves are .mdc files under rules/universal/ in the repository and work without any server at all — copying one into a prompt is a complete use of this project. Per-IDE setup instructions live in the linked ailint-mcp repository.
Setup effort
One command — npm install -g @ailint/mcp
USE CASES
01
Stopping generated code from hardcoding its dependencies
Apply the injection rule so classes take their collaborators as parameters and stay testable from the start.
02
Keeping injection vulnerabilities out of generated queries
Apply the security rule so string-interpolated SQL and weak hashing are constrained away during generation.
03
Trying a rule before installing anything
Copy one rule file's contents into the prompt ahead of your request and see how the output changes.
04
Making a team's standards persistent
Install the MCP server so the same constraints apply in every session, not only when someone remembers to paste them.
BEFORE YOU INSTALL
What to know first
Requires
npm on PATH
INSTALLATION
Connect your client
This project publishes no client configuration, so the entry for your client is yours to write.
Server setup
TERMINAL
npm install -g @ailint/mcp