Not on the list.
house-rules is the door policy for your repo. Agents take the shortest path, so house-rules puts the rules on that path, as checks that fail the commit.
gh repo create <name> --template JakubSzwajka/house-rules^1.4.2Turned away4.0.0-rc.1On the listlatestTurned awayworkspace:0.0.0On the list~2.1.0Turned awaygithub:owner/repo#mainTurned away
What you get
Section titled “What you get”- A template, the stack. A pnpm workspace with Turborepo, TypeScript 7 and Effect 4, an example app and module, and the checks already wired. Start a repo from it with
gh repo create <name> --template JakubSzwajka/house-rules. Read the stack. - The house plugin,
@house-rules/rules. ESLint rules, a Dependency Cruiser layout, TypeScript and Biome presets, and two bins. Other apps install it from GitHub at a pinned commit. Read all rules. - Capabilities,
@house-rules/capability. One contract and one handler per action, with permission and approval gates, and MCP tools built from the contract. Read capabilities. - The fence.
pnpm checkandpnpm testrun before every commit, and agent harnesses block--no-verify. Read the fence.
The guest list
Section titled “The guest list”A few of the rules at the door, and the tool that checks each one. All rules has the full list.
| Rule | Turns away | Checked by |
|---|---|---|
| Exact pins | A dependency that is not an exact version, workspace:<exact>, or a Git spec with a full commit SHA |
Node |
| use-case-is-capability | A use-case file that does not export exactly one implement(...) capability |
ESLint |
| no-hand-rolled-surface | Tool.make, Rpc.make, or HttpApiEndpoint.<method> outside packages/capability/** |
ESLint |
| no-cycles | Circular imports | Dependency Cruiser |
| noNonNullAssertion | ! non-null assertions |
Biome |
| house-rules-migrations | Cross-module foreign keys, SQL that touches another package’s tables, use-cases that open a transaction | Node |
If you are an agent
Section titled “If you are an agent”Read for agents first. Every page has a raw Markdown copy: add .md to its path, such as /rules/eslint/comment-discipline.md. /llms.txt lists every page, and /llms-full.txt holds all of them in one file.
The law for code in this repo is AGENTS.md, not this site. The site explains it and links to it.