Skip to content

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 away
  • 4.0.0-rc.1On the list
  • latestTurned away
  • workspace:0.0.0On the list
  • ~2.1.0Turned away
  • github:owner/repo#mainTurned away
Sample specs at the exact-pins door.
  1. 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.
  2. 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.
  3. 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.
  4. The fence. pnpm check and pnpm test run before every commit, and agent harnesses block --no-verify. Read the fence.

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

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.