@bompus/house-rules 0.0.0-stage → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CONTRIBUTING.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +347 -2
  4. package/THIRD_PARTY_NOTICES.md +188 -0
  5. package/compose.mjs +119 -0
  6. package/composition.mjs +353 -0
  7. package/config-view.mjs +194 -0
  8. package/config.mjs +320 -0
  9. package/docs/assets/banner-dark.png +0 -0
  10. package/docs/assets/banner-light.png +0 -0
  11. package/docs/assets/overview.png +0 -0
  12. package/docs/configuration.md +193 -0
  13. package/docs/npm-release.md +45 -0
  14. package/docs/skill-names.md +50 -0
  15. package/examples/person/house-rules.json +15 -0
  16. package/examples/person/rules/10-tooling.md +8 -0
  17. package/examples/person/rules/20-reporting.md +9 -0
  18. package/examples/project/AGENTS.md +18 -0
  19. package/package.json +40 -4
  20. package/rule-references.mjs +91 -0
  21. package/rules/core.md +431 -0
  22. package/rules/modifiers/coded-offers.md +40 -0
  23. package/rules/modifiers/effort-estimates.md +41 -0
  24. package/rules/modifiers/land-when-done.md +12 -0
  25. package/rules/modifiers/low-quota-handoff.md +19 -0
  26. package/rules/modifiers/multi-agent.md +34 -0
  27. package/rules/modifiers/no-attribution.md +10 -0
  28. package/rules/modifiers/plan-files.md +50 -0
  29. package/rules/modifiers/question-cards.md +48 -0
  30. package/rules/modifiers/release-batching.md +13 -0
  31. package/rules/modifiers/scratch-on-disk.md +15 -0
  32. package/rules/modifiers/shared-host-load.md +48 -0
  33. package/rules/modifiers/solo-operator.md +13 -0
  34. package/rules/modifiers/squash-landing.md +22 -0
  35. package/rules/modifiers/swarmail.md +12 -0
  36. package/rules/references/github-actions.md +45 -0
  37. package/rules/references/landing.md +39 -0
  38. package/rules/references/multi-agent.md +47 -0
  39. package/rules/references/release-batching.md +43 -0
  40. package/rules/references/squash-landing.md +44 -0
  41. package/setup.mjs +375 -0
  42. package/skills/hr-agent-guidance-audit/LICENSE +21 -0
  43. package/skills/hr-agent-guidance-audit/SKILL.md +86 -0
  44. package/skills/hr-agent-guidance-audit/agents/openai.yaml +2 -0
  45. package/skills/hr-agent-guidance-audit/references/records-and-lessons.md +60 -0
  46. package/skills/hr-agent-guidance-refresh/LICENSE +21 -0
  47. package/skills/hr-agent-guidance-refresh/SKILL.md +68 -0
  48. package/skills/hr-agent-guidance-refresh/agents/openai.yaml +2 -0
  49. package/skills/hr-agent-guidance-refresh/references/verification.md +47 -0
  50. package/skills/hr-api-exposure-check/SKILL.md +159 -0
  51. package/skills/hr-api-exposure-check/agents/openai.yaml +3 -0
  52. package/skills/hr-audit-choices/SKILL.md +67 -0
  53. package/skills/hr-audit-choices/agents/openai.yaml +2 -0
  54. package/skills/hr-benchmarking/NOTICE.md +36 -0
  55. package/skills/hr-benchmarking/SKILL.md +316 -0
  56. package/skills/hr-benchmarking/agents/openai.yaml +2 -0
  57. package/skills/hr-benchmarking/references/javascript.md +17 -0
  58. package/skills/hr-benchmarking/references/priority-findings-20261006.md +115 -0
  59. package/skills/hr-benchmarking/references/tools.md +160 -0
  60. package/skills/hr-benchmarking/scripts/process-attribution.ps1 +20 -0
  61. package/skills/hr-benchmarking/scripts/process-attribution.py +107 -0
  62. package/skills/hr-better-accessibility/LICENSE +22 -0
  63. package/skills/hr-better-accessibility/NOTICE.md +46 -0
  64. package/skills/hr-better-accessibility/SKILL.md +119 -0
  65. package/skills/hr-better-accessibility/agents/openai.yaml +3 -0
  66. package/skills/hr-better-accessibility/focus-and-keyboard.md +130 -0
  67. package/skills/hr-better-accessibility/forms.md +82 -0
  68. package/skills/hr-better-accessibility/hit-areas.md +98 -0
  69. package/skills/hr-better-accessibility/motion-and-zoom.md +81 -0
  70. package/skills/hr-better-accessibility/screen-readers.md +101 -0
  71. package/skills/hr-better-accessibility/semantics-and-aria.md +84 -0
  72. package/skills/hr-better-colors/LICENSE +21 -0
  73. package/skills/hr-better-colors/NOTICE.md +37 -0
  74. package/skills/hr-better-colors/SKILL.md +114 -0
  75. package/skills/hr-better-colors/agents/openai.yaml +3 -0
  76. package/skills/hr-better-colors/color-formats.md +90 -0
  77. package/skills/hr-better-colors/color-usage.md +140 -0
  78. package/skills/hr-better-colors/contrast.md +80 -0
  79. package/skills/hr-better-colors/palette-generation.md +104 -0
  80. package/skills/hr-better-colors/palette-structure.md +76 -0
  81. package/skills/hr-better-colors/token-naming.md +97 -0
  82. package/skills/hr-better-layout/LICENSE +22 -0
  83. package/skills/hr-better-layout/NOTICE.md +48 -0
  84. package/skills/hr-better-layout/SKILL.md +92 -0
  85. package/skills/hr-better-layout/agents/openai.yaml +3 -0
  86. package/skills/hr-better-layout/grouping-and-alignment.md +144 -0
  87. package/skills/hr-better-layout/spacing-and-adaptivity.md +215 -0
  88. package/skills/hr-better-typography/LICENSE +22 -0
  89. package/skills/hr-better-typography/NOTICE.md +46 -0
  90. package/skills/hr-better-typography/SKILL.md +172 -0
  91. package/skills/hr-better-typography/agents/openai.yaml +3 -0
  92. package/skills/hr-better-typography/choosing-fonts.md +69 -0
  93. package/skills/hr-better-typography/css-cheat-sheet.md +65 -0
  94. package/skills/hr-better-typography/details-and-accessibility.md +119 -0
  95. package/skills/hr-better-typography/spacing-and-sizing.md +131 -0
  96. package/skills/hr-better-typography/variable-fonts-and-opentype.md +105 -0
  97. package/skills/hr-better-typography/wrapping-and-punctuation.md +57 -0
  98. package/skills/hr-better-writing/LICENSE +22 -0
  99. package/skills/hr-better-writing/NOTICE.md +46 -0
  100. package/skills/hr-better-writing/SKILL.md +122 -0
  101. package/skills/hr-better-writing/agents/openai.yaml +3 -0
  102. package/skills/hr-change-impact/SKILL.md +113 -0
  103. package/skills/hr-change-impact/agents/openai.yaml +5 -0
  104. package/skills/hr-code-review/LICENSE +21 -0
  105. package/skills/hr-code-review/NOTICE.md +26 -0
  106. package/skills/hr-code-review/SKILL.md +147 -0
  107. package/skills/hr-code-review/agents/openai.yaml +3 -0
  108. package/skills/hr-code-review/references/evidence.md +57 -0
  109. package/skills/hr-design-exploration/SKILL.md +82 -0
  110. package/skills/hr-design-exploration/agents/openai.yaml +4 -0
  111. package/skills/hr-diagnosing-bugs/NOTICE.md +45 -0
  112. package/skills/hr-diagnosing-bugs/SKILL.md +108 -0
  113. package/skills/hr-diagnosing-bugs/agents/openai.yaml +3 -0
  114. package/skills/hr-diagnosing-bugs/references/reporting.md +72 -0
  115. package/skills/hr-explain-code/NOTICE.md +37 -0
  116. package/skills/hr-explain-code/SKILL.md +110 -0
  117. package/skills/hr-explain-code/agents/openai.yaml +5 -0
  118. package/skills/hr-explain-code/references/helper-brief.md +39 -0
  119. package/skills/hr-extract-shared-steps/SKILL.md +134 -0
  120. package/skills/hr-extract-shared-steps/agents/openai.yaml +3 -0
  121. package/skills/hr-handoff/SKILL.md +91 -0
  122. package/skills/hr-handoff/agents/openai.yaml +5 -0
  123. package/skills/hr-handoff/assets/ledger.example.json +10 -0
  124. package/skills/hr-handoff/assets/receipt.example.json +76 -0
  125. package/skills/hr-handoff/assets/source.example.json +20 -0
  126. package/skills/hr-handoff/references/reconciliation.md +105 -0
  127. package/skills/hr-handoff/scripts/check-reconciliation.mjs +282 -0
  128. package/skills/hr-house-rules-setup/SKILL.md +100 -0
  129. package/skills/hr-house-rules-setup/agents/openai.yaml +5 -0
  130. package/skills/hr-issue-tracker-setup/SKILL.md +49 -0
  131. package/skills/hr-issue-tracker-setup/agents/openai.yaml +5 -0
  132. package/skills/hr-lean-plan/SKILL.md +142 -0
  133. package/skills/hr-lean-plan/agents/openai.yaml +5 -0
  134. package/skills/hr-maintainability-review/SKILL.md +176 -0
  135. package/skills/hr-maintainability-review/agents/openai.yaml +5 -0
  136. package/skills/hr-manual-qa/NOTICE.md +36 -0
  137. package/skills/hr-manual-qa/SKILL.md +37 -0
  138. package/skills/hr-manual-qa/agents/openai.yaml +3 -0
  139. package/skills/hr-navigation-retro/LICENSE +21 -0
  140. package/skills/hr-navigation-retro/NOTICE.md +5 -0
  141. package/skills/hr-navigation-retro/SKILL.md +86 -0
  142. package/skills/hr-navigation-retro/agents/openai.yaml +4 -0
  143. package/skills/hr-navigation-retro/references/inputs.md +67 -0
  144. package/skills/hr-navigation-retro/scripts/retro.py +552 -0
  145. package/skills/hr-navigation-retro/scripts/transcripts.py +205 -0
  146. package/skills/hr-ordering-tests/SKILL.md +51 -0
  147. package/skills/hr-ordering-tests/agents/openai.yaml +2 -0
  148. package/skills/hr-plain-prose/SKILL.md +261 -0
  149. package/skills/hr-plain-prose/agents/openai.yaml +3 -0
  150. package/skills/hr-plain-prose/scripts/check.mjs +331 -0
  151. package/skills/hr-pr-followup/LICENSE +21 -0
  152. package/skills/hr-pr-followup/NOTICE.md +9 -0
  153. package/skills/hr-pr-followup/SKILL.md +71 -0
  154. package/skills/hr-pr-followup/agents/openai.yaml +2 -0
  155. package/skills/hr-pr-followup/references/review-helpers.md +90 -0
  156. package/skills/hr-pr-followup/scripts/check-pr-review.ts +510 -0
  157. package/skills/hr-pr-followup/scripts/resolve-pr-thread.ts +219 -0
  158. package/skills/hr-progress-report/SKILL.md +49 -0
  159. package/skills/hr-progress-report/agents/openai.yaml +5 -0
  160. package/skills/hr-read-reddit/SKILL.md +44 -0
  161. package/skills/hr-read-reddit/agents/openai.yaml +2 -0
  162. package/skills/hr-read-reddit/scripts/reddit.ts +252 -0
  163. package/skills/hr-read-x-links/SKILL.md +42 -0
  164. package/skills/hr-read-x-links/agents/openai.yaml +2 -0
  165. package/skills/hr-read-x-links/scripts/x-post.ts +264 -0
  166. package/skills/hr-split-to-prs/LICENSE +21 -0
  167. package/skills/hr-split-to-prs/NOTICE.md +9 -0
  168. package/skills/hr-split-to-prs/SKILL.md +61 -0
  169. package/skills/hr-split-to-prs/agents/openai.yaml +2 -0
  170. package/skills/hr-stock-ui-audit/SKILL.md +132 -0
  171. package/skills/hr-stock-ui-audit/agents/openai.yaml +3 -0
  172. package/skills/hr-stock-ui-audit/scripts/scan.mjs +619 -0
  173. package/skills/hr-tdd/LICENSE +21 -0
  174. package/skills/hr-tdd/NOTICE.md +10 -0
  175. package/skills/hr-tdd/SKILL.md +40 -0
  176. package/skills/hr-tdd/agents/openai.yaml +3 -0
  177. package/skills/hr-tdd/mocking.md +39 -0
  178. package/skills/hr-tdd/tests.md +77 -0
  179. package/skills/hr-test-audit/SKILL.md +146 -0
  180. package/skills/hr-test-audit/agents/openai.yaml +3 -0
  181. package/skills/hr-test-audit/scripts/floor-guard.ts +137 -0
  182. package/skills/hr-what-next/SKILL.md +61 -0
  183. package/skills/hr-what-next/agents/openai.yaml +4 -0
  184. package/skills/hr-what-next/references/reporting.md +68 -0
  185. package/skills/hr-writing-for-agents/NOTICE.md +46 -0
  186. package/skills/hr-writing-for-agents/SKILL-MECHANICS.md +83 -0
  187. package/skills/hr-writing-for-agents/SKILL.md +108 -0
  188. package/skills/hr-writing-for-agents/agents/openai.yaml +3 -0
  189. package/skills/hr-writing-pr/NOTICE.md +48 -0
  190. package/skills/hr-writing-pr/SKILL.md +104 -0
  191. package/skills/hr-writing-pr/agents/openai.yaml +2 -0
@@ -0,0 +1,54 @@
1
+ # Contributing
2
+
3
+ Issues and pull requests are welcome: a rule an agent misreads, a modifier
4
+ or skill that would help other setups, a bug in `compose.mjs`.
5
+ Everyone taking part follows the [code of conduct](CODE_OF_CONDUCT.md).
6
+
7
+ ## What fits
8
+
9
+ House-rules is a practical starting point for ordinary development with AI
10
+ coding agents. Include guidance for common work or a recurring failure with a
11
+ clear benefit over existing rules, tools and skills.
12
+
13
+ For a new rule, modifier or skill, show:
14
+
15
+ 1. The concrete problem and representative developer task.
16
+ 2. The existing alternative and why it is insufficient.
17
+ 3. Evidence for the behavior, including when it should stay inactive.
18
+ 4. Its cost in setup choices, loaded context, dependencies and maintenance.
19
+ 5. Why it belongs here rather than in personal or project guidance.
20
+
21
+ Portability and explicit invocation alone do not establish a reason to include
22
+ a workflow. Prefer improving existing guidance or tools. Keep speculative
23
+ procedures and personal operating habits in their own layers.
24
+
25
+ Always-on rules must be broadly useful and preserve project choices. Default
26
+ skills must support routine work with little setup. Specialist additions need
27
+ a concrete shared use case and stay out of fresh defaults. Introduce them when
28
+ the relevant task arises; setup should not require choosing from the catalog.
29
+
30
+ Everything here must work for anyone's projects. Leave out names of private
31
+ projects or repositories, local paths, home directories and credentials. A
32
+ preference only some users want belongs in an opt-in modifier, not in
33
+ `rules/core.md`.
34
+
35
+ When you change rule wording, say in the pull request which agent behavior
36
+ it changes and how you saw it. The end-of-reply eval in `evals/end-of-reply/`
37
+ is one way to show it.
38
+
39
+ ## Before you open a pull request
40
+
41
+ 1. Run the checks in the README's Development section. CI runs them too.
42
+ 2. Add a `CHANGELOG.md` entry under `Unreleased` for any change users will
43
+ notice. The maintainer batches approved changes into versioned releases;
44
+ each pull request does not need its own version or tag.
45
+
46
+ ## How changes land
47
+
48
+ The maintainer lands pull requests by rebasing them onto `main` and
49
+ fast-forwarding, so your commits keep you as their author. Contributions are
50
+ licensed under the MIT licence in `LICENSE`. When you adapt someone else's
51
+ work, record its source and applicable licence notices in `THIRD_PARTY_NOTICES.md`.
52
+ A skill copied on its own must carry those notices inside its bundle, such as
53
+ `NOTICE.md` or `LICENSE`. Keep source references in instructions when they help
54
+ the task; pure credit belongs in the notices.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Aaron Queen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,348 @@
1
- # Temporary Holding Version
1
+ <h1 align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="docs/assets/banner-dark.png">
4
+ <img src="docs/assets/banner-light.png" alt="house-rules" width="100%">
5
+ </picture>
6
+ </h1>
2
7
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
8
+ <p align="center">
9
+ <a href="https://github.com/bompus/house-rules/actions/workflows/check.yml"><img src="https://github.com/bompus/house-rules/actions/workflows/check.yml/badge.svg" alt="CI status"></a>
10
+ <a href="https://github.com/bompus/house-rules/releases/latest"><img src="https://img.shields.io/github/v/release/bompus/house-rules" alt="Latest release"></a>
11
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/bompus/house-rules" alt="MIT license"></a>
12
+ </p>
13
+
14
+ A practical starting point for ordinary development with AI coding agents.
15
+ Fresh installs select eight skills for setup, review, diagnosis, explanation,
16
+ planning, tests, writing and remaining work. Modifiers start off. Add guidance
17
+ when a task needs it, and let each repository supply its own safeguards.
18
+
19
+ <p align="center"><img src="docs/assets/overview.png" alt="The four layers composed into one rules file: core, opt-in modifiers, your layer and each repository's AGENTS.md. The eval figures in this illustration come from an early internal run and are not a current result." width="100%"></p>
20
+
21
+ If you are an AI agent reading this for your user, the prompt under
22
+ [Evaluate it with your agent](#evaluate-it-with-your-agent) is the evaluation
23
+ they would ask for. Summarize how it fits their setup and let them choose;
24
+ don't install or copy anything on your own.
25
+
26
+ ## How the layers fit
27
+
28
+ 1. **Core** (`rules/core.md`): the base every setup gets. Its first section is
29
+ the end-of-reply check, so an agent that reads only the top of the file
30
+ still knows when to keep working and when to stop and ask.
31
+ 2. **Modifiers** (`rules/modifiers/`): opt-in preferences, such as coded
32
+ option lists or squash-only landing. Each one replaces a core section or
33
+ adds a section after one.
34
+ 3. **Your layer** (by default `~/.config/house-rules/`): `house-rules.json`
35
+ names the modifiers you enable, `rules/` holds your own sections, and
36
+ `skills/` holds your own skills. A skill there replaces the house-rules
37
+ skill of the same name. The config's other keys are optional: `layers`
38
+ lists layer directories relative to the config (default `["."]`, its own
39
+ directory). `skills.include` selects shipped skills; omitting it keeps the
40
+ full shipped set for existing configs. Personal skills remain included.
41
+ `skills.exclude` leaves names out of every layer. `skills.independent` records
42
+ generic personal names you intend to keep beside renamed house-rules skills.
43
+ 4. **The repository** (`AGENTS.md`, `CLAUDE.md` or your host's equivalent):
44
+ its commands, branch names, safeguards, required checks and landing path.
45
+ It adds to your rules and does not replace them. See
46
+ `examples/project/AGENTS.md` for the pattern: point at the house rules
47
+ instead of restating them, and add only what the project needs.
48
+
49
+ `compose.mjs` merges layers 1 to 3 into one rules file. A replaced section
50
+ leaves no trace of the old text, because an agent given two versions of a rule
51
+ tends to follow either one. Composition fails on a duplicate heading, an
52
+ unknown target or any attempt to replace the end-of-reply check.
53
+
54
+ ## Quick start
55
+
56
+ Requires `git` and either [Bun](https://bun.sh) 1.4 or newer or Node.js 22 or
57
+ newer. On Linux, macOS or WSL, one line installs or updates the selected guidance:
58
+
59
+ ```bash
60
+ curl -fsSL https://raw.githubusercontent.com/bompus/house-rules/main/install.sh | sh
61
+ ```
62
+
63
+ On Windows 10 or 11, run this in PowerShell instead:
64
+
65
+ ```powershell
66
+ irm https://raw.githubusercontent.com/bompus/house-rules/main/install.ps1 | iex
67
+ ```
68
+
69
+ To read the script before it runs:
70
+
71
+ ```bash
72
+ curl -fsSLO https://raw.githubusercontent.com/bompus/house-rules/main/install.sh
73
+ less install.sh
74
+ sh install.sh
75
+ ```
76
+
77
+ ```powershell
78
+ irm https://raw.githubusercontent.com/bompus/house-rules/main/install.ps1 -OutFile install.ps1
79
+ notepad install.ps1
80
+ powershell -ExecutionPolicy Bypass -File install.ps1
81
+ ```
82
+
83
+ The script picks the newest Bun 1.4 or newer it finds on `PATH` or in a
84
+ version manager's directory, otherwise the newest Node.js 22 or newer. It
85
+ clones this repository to `~/.local/share/house-rules` (or pulls it when it is
86
+ already there), copies `examples/person/house-rules.json` to
87
+ `~/.config/house-rules/` when you have no config yet, and composes
88
+ `~/.config/house-rules/rules.md` and `~/.config/house-rules/composed-skills`.
89
+ Those are the default paths: a set `XDG_DATA_HOME` replaces `~/.local/share`,
90
+ and a set `XDG_CONFIG_HOME` replaces `~/.config`. On Windows the checkout goes
91
+ to `%LOCALAPPDATA%\house-rules` and the config to
92
+ `%USERPROFILE%\.config\house-rules`.
93
+ The fresh config selects the eight skills named above and no modifiers.
94
+ Updates preserve your existing config. An explicit `skills.include` list keeps
95
+ later shipped additions off until selected. Browse the full catalog only when
96
+ you want more choices.
97
+
98
+ On a later run it keeps the previous skills directory under a dated name
99
+ instead of deleting it. It never edits an agent host's files. The comment at
100
+ the top of `install.sh` lists the environment variables that change its paths
101
+ or runtime; `install.ps1` takes the same variables. Some skill scripts need Bun
102
+ even when Node.js composes the rules.
103
+
104
+ Then connect the composed file to your agent. Claude Code reads
105
+ `@~/.config/house-rules/rules.md` on its own line in `~/.claude/CLAUDE.md`;
106
+ other hosts take a copy in their user-level rules file, with the
107
+ `house-rules-references/` directory placed beside it. Written rules link to the
108
+ procedures in that directory; stdout and configuration previews keep them
109
+ inline. See [reference output](docs/configuration.md#reference-output). To change modifiers or
110
+ skills, change to the checkout directory and run `node compose.mjs setup`,
111
+ or `bun compose.mjs setup` when Node.js is unavailable. Review the numbered
112
+ choices and use `save` to change only the configuration. Then run the
113
+ installer again.
114
+ The [configuration CLI guide](docs/configuration.md) covers status, previews,
115
+ question preferences and safe writes. The
116
+ `hr-house-rules-setup` skill preserves selections, offers relevant additions and connects
117
+ hosts, and asks before it touches a host file.
118
+
119
+ ### npm distribution
120
+
121
+ `@bompus/house-rules` is published to npm. The package provides the
122
+ `house-rules` composition and configuration commands. Installation has no
123
+ lifecycle hooks and does not connect an agent host or change its settings.
124
+
125
+ ```bash
126
+ npm install --global @bompus/house-rules
127
+ house-rules --list
128
+ house-rules config help
129
+ house-rules --config ./house-rules.json --out ./rules.md --skills-out ./composed-skills
130
+ ```
131
+
132
+ Create your configuration before composing. The
133
+ [configuration guide](docs/configuration.md) describes the available choices.
134
+ The package bundles rules, skills, their resources and documentation. With the
135
+ npm package, run `house-rules setup` to change modifiers or skills. Git-based
136
+ installers follow the default branch; npm follows published versions.
137
+
138
+ ### Manual steps
139
+
140
+ To keep the checkout somewhere else, run the same steps by hand. The commands use `node`; `bun` runs them the same way.
141
+
142
+ ```bash
143
+ git clone https://github.com/bompus/house-rules.git
144
+ cd house-rules
145
+ node compose.mjs --list
146
+ mkdir -p ~/.config/house-rules
147
+ cp examples/person/house-rules.json ~/.config/house-rules/
148
+ node compose.mjs --config ~/.config/house-rules/house-rules.json \
149
+ --out ~/.config/house-rules/rules.md --skills-out ~/.config/house-rules/composed-skills
150
+ ```
151
+
152
+ To recompose later, move or remove the old `composed-skills` directory first,
153
+ because `--skills-out` must be empty or absent. `compose.mjs` writes the rules
154
+ file, a `house-rules-references/` directory beside it (or at `--references-out`)
155
+ when the rules include reference procedures, and `--skills-out` when given. It never deletes anything.
156
+
157
+ When distributing a rules-only output, carry this checkout's `LICENSE` and
158
+ `THIRD_PARTY_NOTICES.md` alongside it. Copy them into an explicit destination
159
+ and reconcile existing notice files before replacing them. A full
160
+ `--skills-out` export already includes both at its root. When copying one
161
+ skill, keep its entire directory, including any `NOTICE.md` and `LICENSE`.
162
+ Personal layers must also carry notices required by their own sources.
163
+
164
+ The `hr-navigation-retro` skill finds navigation failures in selected tool-call
165
+ transcripts, then proposes fixes verified against current source. Any agent with
166
+ file and shell access can run it. Supported inputs include Claude Code, Codex,
167
+ OpenCode exports, Cursor CLI streams and ACP v1 recordings from other agents.
168
+ See its [input limits](skills/hr-navigation-retro/references/inputs.md).
169
+ It is explicit-only, requires Python 3.11+ and keeps reports local.
170
+
171
+ ## Upgrading skill names
172
+
173
+ All shipped skill names use `hr-`. Before updating an older installation,
174
+ follow [the skill name upgrade guide](docs/skill-names.md) to preserve exclusions
175
+ and personal overrides. Composition stops on ambiguous old names before
176
+ writing output. Host links and copies need a separate update.
177
+
178
+ ## Evaluate it with your agent
179
+
180
+ Paste this into a session with the agent you use. It compares house-rules with
181
+ the rules you already have and changes nothing until you choose.
182
+
183
+ ```text
184
+ I'm considering house-rules (https://github.com/bompus/house-rules), working
185
+ rules and skills for AI coding agents. Read its README, rules/core.md,
186
+ rules/modifiers/ and the skills list, then compare them with the rules and
187
+ skills I already use (my user-level rules file for this host and this
188
+ repository's AGENTS.md or equivalent). Tell me:
189
+ 1. Which rules, modifiers or skills would change how you work with me, with
190
+ an example from how you work now.
191
+ 2. Which ones duplicate or conflict with what I already have.
192
+ 3. Whether to adopt it whole (compose.mjs plus my own layer) or copy single
193
+ sections into my existing rules. Taking individual ideas is fine.
194
+ If I run several agent sessions on one machine at once, also look at
195
+ Swarmail (https://github.com/bompus/swarmail); house-rules has an opt-in
196
+ modifier for it.
197
+ Read only: don't install, compose or edit anything until I choose. When I
198
+ adopt a section or idea, record its source in distributed notices, such as
199
+ "Adapted from house-rules (https://github.com/bompus/house-rules)". Keep required
200
+ licence notices with copied text and standalone skill bundles.
201
+ ```
202
+
203
+ Taking individual ideas is welcome. If you adopt any, we'd appreciate a
204
+ source credit in your distributed notices. Copying substantial text also needs
205
+ the MIT notice kept (see `LICENSE`).
206
+
207
+ ## Writing your own sections
208
+
209
+ A rules file in your layer starts with frontmatter that names one operation
210
+ and a core heading, followed by its own `## ` heading:
211
+
212
+ ```markdown
213
+ ---
214
+ after: Implementation economy
215
+ ---
216
+
217
+ ## My tooling
218
+
219
+ Use pnpm for JavaScript projects unless the repository uses another manager.
220
+ ```
221
+
222
+ The operations are `replaces:`, `after:`, `before:` and `removes:`; a
223
+ `removes:` file has no body. A file without frontmatter is added at the end.
224
+ Frontmatter may also hold `description:` and `requires:` (a comma-separated
225
+ list of skills the section relies on); any other key is an error. Files apply
226
+ in name order, after the modifiers.
227
+
228
+ ## Modifiers
229
+
230
+ | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modifier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | What it does |
231
+ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
232
+ | `coded-offers` | Offers use numbered questions and coded options (`1A`, `1B`) so one short reply answers every decision. |
233
+ | `effort-estimates` | Options that differ in cost, or work that waits on CI, a build or a deploy, carry a wall-clock estimate based on comparable finished work. Estimates from workers, docs or other models are converted the same way or dropped. |
234
+ | `land-when-done` | Authorized repository work is not finished until it is in the remote default branch. |
235
+ | `low-quota-handoff` | When the current model's usage allowance runs low, write a handoff before work stops. |
236
+ | `multi-agent` | Work is split across delegated workers and several agent hosts; worker reports, review standards and cleanup checks account for all of them. |
237
+ | `no-attribution` | Commits, pull requests and comments carry no agent or tool credit lines. |
238
+ | `plan-files` | Multi-step work keeps a visible task list mirrored to a plan file with a ledger of every item's outcome. |
239
+ | `question-cards` | Opt in to question cards beside complete text offers when the host supports them; availability and presentation can vary by host, provider and model. |
240
+ | `release-batching` | Batch approved, compatible changes for releases and audit factual claims before releases or public announcements. |
241
+ | `scratch-on-disk` | Task scratch lives on disk under the user data directory, never in RAM-backed `/tmp`. |
242
+ | `shared-host-load` | Coordinate shared local work within host-defined resource budgets; isolate measurements and release reservations during remote waits. |
243
+ | `solo-operator` | For repositories with one maintainer, the user's direction is the review; no review-gated steps. |
244
+ | `squash-landing` | Pull requests land by squash merge after review-bot findings are handled, and the session's checkout moves off the landed branch. |
245
+ | `swarmail` | Locate Swarmail-owned instructions and tool contracts for local session coordination. |
246
+
247
+ Questions use text by default, with plain options or `coded-offers`. Text-only
248
+ setups do not call question-card tools merely because a host exposes them.
249
+ Enable `question-cards` only when you want cards too. Cards can be unavailable,
250
+ skipped or shown unexpectedly across hosts, providers and models; the text
251
+ offer remains usable on its own. `hr-house-rules-setup` asks which format you
252
+ want and explains these limits before changing the configuration.
253
+
254
+ ## Skills
255
+
256
+ | Skill | Use it to |
257
+ | --------------------------- | --------------------------------------------------------------------------------------------------------- |
258
+ | `hr-agent-guidance-audit` | Audit a repository's agent guidance for stale, duplicated or conflicting rules. |
259
+ | `hr-agent-guidance-refresh` | Re-read guidance that changed since the session started. |
260
+ | `hr-api-exposure-check` | Keep API responses to the fields a consumer reads and the caller may see. |
261
+ | `hr-audit-choices` | List and check the decisions made while implementing a task. |
262
+ | `hr-benchmarking` | Design, run and assess timing, CPU and memory comparisons; choose tools by the question they answer. |
263
+ | `hr-better-accessibility` | Build and review keyboard access, semantics, forms, focus, motion and reflow in web UI. |
264
+ | `hr-better-colors` | Choose and check palettes, semantic tokens, themes, gamut and rendered contrast. |
265
+ | `hr-better-layout` | Build and review grouping, alignment, spacing, responsive layout and clipping. |
266
+ | `hr-better-typography` | Style and review type scales, wrapping, spacing, truncation and font loading. |
267
+ | `hr-better-writing` | Write and review interface labels, errors, empty states and product terminology. |
268
+ | `hr-change-impact` | Check what a change can break beyond its diff before merging. |
269
+ | `hr-code-review` | Review a diff against the repository's standards and the originating request. |
270
+ | `hr-design-exploration` | Compare four visual directions and refine the selected two toward one final design. |
271
+ | `hr-diagnosing-bugs` | Work a hard bug or regression to a confirmed cause. |
272
+ | `hr-explain-code` | Trace how existing code works, read-only, before changing it. |
273
+ | `hr-extract-shared-steps` | Move operations repeated across workflows into shared functions. |
274
+ | `hr-handoff` | Write a handoff a fresh session can resume from. |
275
+ | `hr-house-rules-setup` | Choose modifiers, create your layer and connect your hosts. |
276
+ | `hr-issue-tracker-setup` | Configure project tracker, domain-term and ADR conventions; explicit-only. |
277
+ | `hr-lean-plan` | Write or tighten an implementation plan with the fewest moving parts. |
278
+ | `hr-maintainability-review` | Review a diff or entire codebase strictly for structure and maintainability. |
279
+ | `hr-manual-qa` | Give reproducible human checks after reporting agent verification results. |
280
+ | `hr-navigation-retro` | Audit navigation failures in selected transcripts and propose verified findability fixes; explicit-only. |
281
+ | `hr-ordering-tests` | Enumerate event orderings through the real code to find race bugs. |
282
+ | `hr-plain-prose` | Make text people read plain and specific. |
283
+ | `hr-progress-report` | Report current task activity, milestone completion and remaining wall-clock time. |
284
+ | `hr-pr-followup` | Address conflicts, feedback and failing checks for a requested PR; honor existing landing authority. |
285
+ | `hr-read-reddit` | Read Reddit feed output while supported; RSS support ends November 13, 2026. Partial web-search fallback. |
286
+ | `hr-read-x-links` | Read the full content of X posts. |
287
+ | `hr-split-to-prs` | Divide work into coherent PRs while preserving recovery points and verifying each slice. |
288
+ | `hr-stock-ui-audit` | Find and triage template-default styling in frontend code. |
289
+ | `hr-tdd` | Implement requested test-first work through one red-green slice at a time; simplify during review. |
290
+ | `hr-test-audit` | Decide which new tests are worth keeping and which old ones to prune. |
291
+ | `hr-what-next` | Reconcile remaining session work and recommend priorities when asked what comes next. |
292
+ | `hr-writing-for-agents` | Write skills, rules and other documents agents read. |
293
+ | `hr-writing-pr` | Write a pull request title and body from the final diff. |
294
+
295
+ ## Checking the rules against your models
296
+
297
+ `evals/end-of-reply/` runs short scenarios through any model CLI and grades
298
+ whether the agent keeps working or ends with an offer at the right time,
299
+ including when it reads only the first 80 lines. In a 2026-10-04 run of the
300
+ three original scenarios against v0.5.7 on seven models, the rules passed 62 of
301
+ 63 replies, against 26 for a one-sentence instruction and 21 with no rules; its
302
+ README has the breakdown and limits.
303
+
304
+ ## Development
305
+
306
+ ```bash
307
+ node --test test/*.test.mjs # composer and eval grader (or: bun test test/)
308
+ bun test skills/ # skill scripts
309
+ npx oxlint . && npx oxfmt --check .
310
+ ```
311
+
312
+ Oxfmt checks authored Markdown, HTML, JSON, JSONC, YAML, TOML and CSS as well
313
+ as JavaScript and TypeScript. Test fixtures stay excluded because scanner
314
+ tests depend on their exact text and line numbers. Package fields and
315
+ dependency maps are sorted; script order is preserved.
316
+
317
+ Tests remove their own fixture directories after each test, including failures.
318
+ Set `HOUSE_RULES_TEST_TMP` to an existing directory to choose their scratch root;
319
+ otherwise they use the operating system temporary directory. Choose a disk-backed
320
+ location when the system temporary directory is RAM-backed.
321
+
322
+ CI runs the same checks on every push and pull request. See
323
+ [CONTRIBUTING.md](CONTRIBUTING.md) before opening one.
324
+
325
+ The local-reference gate runs in `test/guidance-links.test.mjs`. Audit another
326
+ checkout with `node guidance-links.mjs --root <checkout> --repository
327
+ owner/repo=<local-checkout>`; repeat `--repository` for other available sources.
328
+ Its JSON report identifies GitHub file pointers to replace. When a remote
329
+ link deliberately cites current provenance, downloads a file or refreshes
330
+ upstream guidance, use one of these comments on that line. Each needs a reason:
331
+
332
+ - `<!-- local-reference: source <reason> -->`
333
+ - `<!-- local-reference: download <reason> -->`
334
+ - `<!-- local-reference: remote-refresh <reason> -->`
335
+
336
+ Pinned history and images are exempt.
337
+
338
+ ## Sponsoring
339
+
340
+ house-rules is built and maintained by one person. If it saves you time, you can
341
+ sponsor it monthly or once through
342
+ [GitHub Sponsors](https://github.com/sponsors/bompus), or leave a tip on
343
+ [Ko-fi](https://ko-fi.com/bompus).
344
+
345
+ ## Licence
346
+
347
+ MIT. Some skills adapt MIT-licensed work, and `CODE_OF_CONDUCT.md` is the
348
+ Contributor Covenant under CC BY 4.0; see `THIRD_PARTY_NOTICES.md`.
@@ -0,0 +1,188 @@
1
+ # Third-party notices
2
+
3
+ Some files in this repository copy or adapt work published under the MIT
4
+ License. Each source's copyright notice and the licence text follow.
5
+ `CODE_OF_CONDUCT.md` is the Contributor Covenant, under CC BY 4.0, noted at
6
+ the end.
7
+
8
+ ## Cursor workflow ideas
9
+
10
+ Source: https://cursor.com/docs/skills
11
+
12
+ - `skills/hr-split-to-prs/`: independently written workflow informed by the
13
+ purpose of Cursor's built-in `split-to-prs` skill.
14
+ - `skills/hr-pr-followup/`: independently written workflow informed by the
15
+ purpose of Cursor's built-in `autopilot` skill.
16
+
17
+ These bundles distribute no Cursor instruction text. Their MIT licence applies
18
+ to newly written house-rules material, not to the Cursor skills.
19
+
20
+ ## mattpocock/skills
21
+
22
+ Source: https://github.com/mattpocock/skills (compared at revision `d81f3a1`)
23
+
24
+ - `skills/hr-writing-for-agents/`: adapted from `skills/productivity/writing-for-agents/`.
25
+ - `skills/hr-code-review/`: adapted from `skills/engineering/code-review/`.
26
+ - `skills/hr-handoff/`: adapted from `skills/productivity/handoff/`.
27
+ - `skills/hr-diagnosing-bugs/`: written for this repository after
28
+ `skills/engineering/diagnosing-bugs/`, which it shares a purpose with.
29
+
30
+ - `skills/hr-tdd/`: adapted from `skills/engineering/tdd/` at revision
31
+ `f3fc5632f401156837ee3872f14fe33ccf1024ea`. The bundle carries its MIT notice.
32
+
33
+ Copyright (c) 2026 Matt Pocock
34
+
35
+ ## obra/superpowers
36
+
37
+ Source: https://github.com/obra/superpowers (compared at revision `8ca22db`)
38
+
39
+ - `skills/hr-writing-for-agents/SKILL.md`: the instruction-form table is adapted
40
+ from `writing-skills`. Its wording tests found that a recipe beat a prohibition
41
+ for shape failures.
42
+ - `skills/hr-test-audit/SKILL.md`: cites `writing-good-tests.md`.
43
+
44
+ Copyright (c) 2025 Jesse Vincent
45
+
46
+ ## addyosmani/agent-skills
47
+
48
+ Source: https://github.com/addyosmani/agent-skills (compared at revision `9d0c60d`)
49
+
50
+ - `skills/hr-test-audit/scripts/floor-guard.ts`: adapted from
51
+ constraint-driven-development.
52
+
53
+ Copyright (c) 2025 Addy Osmani
54
+
55
+ ## openclaw/openclaw
56
+
57
+ Source: https://github.com/openclaw/openclaw (linked at revision `65f1e4d`, compared at `1fda703`)
58
+
59
+ - `skills/hr-test-audit/SKILL.md`: the authoring gate, junk patterns, retention
60
+ bar and evidence fields are adapted from `.agents/skills/test-audit/`.
61
+
62
+ Copyright (c) 2026 OpenClaw Foundation
63
+
64
+ ## no-human-ai/no_human
65
+
66
+ Source: https://github.com/no-human-ai/no_human (compared at revision `9b50bf6`)
67
+
68
+ - `skills/hr-test-audit/SKILL.md`: the rule that weakening a test counts as
69
+ removing it is adapted from its tamper guard.
70
+ - `skills/hr-code-review/references/evidence.md`: test-weakening assessment and
71
+ refuting completion claims are informed by its verification approach.
72
+
73
+ Copyright (c) 2026 Eyal Golan
74
+
75
+ ## omkamal/pypict-claude-skill
76
+
77
+ Source: https://github.com/omkamal/pypict-claude-skill (compared at revision `fbda212`)
78
+
79
+ - `skills/hr-test-audit/SKILL.md`: the pairwise-coverage guidance is adapted from
80
+ this skill.
81
+
82
+ Copyright (c) 2025 pypict-claude-skill contributors
83
+
84
+ ## sickn33/antigravity-awesome-skills
85
+
86
+ Source: https://github.com/sickn33/antigravity-awesome-skills (compared at revision `7bb0ab4`)
87
+
88
+ - `skills/hr-writing-pr/SKILL.md`: selected ideas from
89
+ `skills/git-pr-workflows-pr-enhance/`. Selected ideas also come from
90
+ [Luke Parker's writing-pr post](https://x.com/LukeParkerDev/status/2096769160021979571).
91
+
92
+ Copyright (c) 2026 Antigravity User
93
+
94
+ ## cursor/plugins (pstack)
95
+
96
+ Source: https://github.com/cursor/plugins (compared at revision `e43c7ee`)
97
+
98
+ - `rules/core.md`: the § Implementation economy bullet on scripting changes
99
+ that span more than three places is adapted from
100
+ `pstack/skills/principle-build-the-lever/`.
101
+ - `skills/hr-diagnosing-bugs/SKILL.md`: § Question the premise is adapted from
102
+ `pstack/skills/principle-attack-the-premise/`.
103
+ - `skills/hr-benchmarking/SKILL.md`: the validity checks are adapted from
104
+ `pstack/skills/benchmark-checklist/`.
105
+
106
+ Copyright (c) 2026 Lauren Tan
107
+
108
+ ## jakubkrehel/skills
109
+
110
+ Source: https://github.com/jakubkrehel/skills (compared at revision `267330e1adfc66a718fb65fa6918c1f06d0a689e`)
111
+
112
+ - `skills/hr-better-accessibility/`, `skills/hr-better-colors/`, `skills/hr-better-layout/`,
113
+ `skills/hr-better-typography/` and `skills/hr-better-writing/`: adapted skill bundles,
114
+ including their supporting references and discovery metadata.
115
+
116
+ Copyright (c) 2026 Jakub Krehel
117
+
118
+ ## emilkowalski/skills
119
+
120
+ Source: https://github.com/emilkowalski/skills (compared at revision `e8a175de22ae1e49370fc144c1f3bb9aeedf988d`)
121
+
122
+ - `skills/hr-better-accessibility/` and `skills/hr-better-layout/`: mobile behavior and
123
+ viewport guidance adapted from `skills/mobile-native/SKILL.md`.
124
+ - `skills/hr-better-layout/`, `skills/hr-better-typography/` and `skills/hr-better-writing/`:
125
+ clipping, truncation and plural-form guidance adapted from `skills/break-ui/SKILL.md`.
126
+
127
+ Copyright (c) 2026 Emil Kowalski
128
+
129
+ ## humanlayer/skills
130
+
131
+ Source: https://github.com/humanlayer/skills (compared at revision `bba9d13ab34f0a87f1cc33df4dd196372393ddfc`)
132
+
133
+ - `skills/hr-explain-code/SKILL.md` and `skills/hr-writing-pr/SKILL.md`: compact
134
+ visual explanation and focused structural-diff guidance adapted from
135
+ `plugins/show-me/skills/show-me/SKILL.md`.
136
+
137
+ Copyright (c) 2026 HumanLayer
138
+
139
+ ## Jeanno/jeanno-skills (ideas)
140
+
141
+ Source: https://github.com/Jeanno/jeanno-skills (compared at revision `db4e8fd66197ece38d622ca8b527dbe821843df2`)
142
+
143
+ - `skills/hr-manual-qa/SKILL.md`: independently written instructions informed by
144
+ the reproducible-checklist idea in `skills/qa-checklist/SKILL.md`.
145
+ - `rules/core.md`: independently written correction handling informed by the
146
+ dependent-work sweep in `skills/realign/SKILL.md`.
147
+
148
+ No source text from this repository is copied here.
149
+
150
+ ## ayghri/i-have-adhd (ideas)
151
+
152
+ Source: https://github.com/ayghri/i-have-adhd (compared at revision `723af7d9afaf43eb871dbcce6129e2bf80de90d5`)
153
+
154
+ - `rules/core.md`: independently written guidance informed by the small visible
155
+ list idea in `skills/i-have-adhd/SKILL.md`.
156
+ - `skills/hr-plain-prose/SKILL.md`: independently written reply check informed
157
+ by the first-and-last-line check in that skill.
158
+
159
+ No source text from this repository is copied here.
160
+
161
+ ## MIT License text
162
+
163
+ Permission is hereby granted, free of charge, to any person obtaining a copy
164
+ of this software and associated documentation files (the "Software"), to deal
165
+ in the Software without restriction, including without limitation the rights
166
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
167
+ copies of the Software, and to permit persons to whom the Software is
168
+ furnished to do so, subject to the following conditions:
169
+
170
+ The above copyright notice and this permission notice shall be included in all
171
+ copies or substantial portions of the Software.
172
+
173
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
174
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
175
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
176
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
177
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
178
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
179
+ SOFTWARE.
180
+
181
+ ## Contributor Covenant
182
+
183
+ Source: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
184
+
185
+ - `CODE_OF_CONDUCT.md`: version 2.1, with this repository's reporting method
186
+ filled in. Licensed under
187
+ [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); its own
188
+ Attribution section credits the source.