@bompus/house-rules 0.0.0-stage → 0.13.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.
- package/CODE_OF_CONDUCT.md +83 -0
- package/CONTRIBUTING.md +54 -0
- package/LICENSE +21 -0
- package/README.md +378 -2
- package/THIRD_PARTY_NOTICES.md +188 -0
- package/compose.mjs +125 -0
- package/composition.mjs +361 -0
- package/config-view.mjs +209 -0
- package/config.mjs +381 -0
- package/docs/assets/banner-dark.png +0 -0
- package/docs/assets/banner-light.png +0 -0
- package/docs/assets/overview.png +0 -0
- package/docs/configuration.md +269 -0
- package/docs/skill-names.md +50 -0
- package/examples/person/house-rules.json +15 -0
- package/examples/person/rules/10-tooling.md +8 -0
- package/examples/person/rules/20-reporting.md +9 -0
- package/examples/project/AGENTS.md +18 -0
- package/package.json +42 -4
- package/rule-references.mjs +91 -0
- package/rules/core.md +340 -0
- package/rules/modifiers/backlog-outline.md +25 -0
- package/rules/modifiers/backlog-visual.md +16 -0
- package/rules/modifiers/coded-offers.md +70 -0
- package/rules/modifiers/cross-session-relay.md +23 -0
- package/rules/modifiers/effort-estimates.md +41 -0
- package/rules/modifiers/land-when-done.md +12 -0
- package/rules/modifiers/low-quota-handoff.md +20 -0
- package/rules/modifiers/model-default-questions.md +33 -0
- package/rules/modifiers/multi-agent.md +38 -0
- package/rules/modifiers/no-attribution.md +16 -0
- package/rules/modifiers/periodic-updates.md +25 -0
- package/rules/modifiers/plan-files.md +82 -0
- package/rules/modifiers/question-cards.md +48 -0
- package/rules/modifiers/release-batching.md +15 -0
- package/rules/modifiers/scratch-on-disk.md +15 -0
- package/rules/modifiers/shared-host-load.md +19 -0
- package/rules/modifiers/solo-operator.md +13 -0
- package/rules/modifiers/squash-landing.md +22 -0
- package/rules/modifiers/upstream-contributions.md +45 -0
- package/rules/modifiers/web-image-formats.md +35 -0
- package/rules/references/backlog-view.md +154 -0
- package/rules/references/github-actions.md +45 -0
- package/rules/references/landing.md +39 -0
- package/rules/references/multi-agent.md +51 -0
- package/rules/references/release-batching.md +66 -0
- package/rules/references/squash-landing.md +50 -0
- package/rules/references/thread-visuals.md +45 -0
- package/setup.mjs +445 -0
- package/skills/hr-agent-guidance-audit/LICENSE +21 -0
- package/skills/hr-agent-guidance-audit/SKILL.md +91 -0
- package/skills/hr-agent-guidance-audit/agents/openai.yaml +2 -0
- package/skills/hr-agent-guidance-audit/references/prune-workflow.md +72 -0
- package/skills/hr-agent-guidance-audit/references/records-and-lessons.md +60 -0
- package/skills/hr-agent-guidance-audit/references/retirement-verdicts.md +49 -0
- package/skills/hr-agent-guidance-refresh/LICENSE +21 -0
- package/skills/hr-agent-guidance-refresh/SKILL.md +36 -0
- package/skills/hr-agent-guidance-refresh/agents/openai.yaml +2 -0
- package/skills/hr-agent-guidance-refresh/references/verification.md +47 -0
- package/skills/hr-api-exposure-check/SKILL.md +159 -0
- package/skills/hr-api-exposure-check/agents/openai.yaml +3 -0
- package/skills/hr-audit-choices/SKILL.md +67 -0
- package/skills/hr-audit-choices/agents/openai.yaml +2 -0
- package/skills/hr-benchmarking/NOTICE.md +36 -0
- package/skills/hr-benchmarking/SKILL.md +279 -0
- package/skills/hr-benchmarking/agents/openai.yaml +2 -0
- package/skills/hr-benchmarking/references/javascript.md +130 -0
- package/skills/hr-benchmarking/references/tools.md +165 -0
- package/skills/hr-benchmarking/scripts/process-attribution.ps1 +20 -0
- package/skills/hr-benchmarking/scripts/process-attribution.py +107 -0
- package/skills/hr-better-accessibility/LICENSE +22 -0
- package/skills/hr-better-accessibility/NOTICE.md +46 -0
- package/skills/hr-better-accessibility/SKILL.md +119 -0
- package/skills/hr-better-accessibility/agents/openai.yaml +3 -0
- package/skills/hr-better-accessibility/focus-and-keyboard.md +130 -0
- package/skills/hr-better-accessibility/forms.md +82 -0
- package/skills/hr-better-accessibility/hit-areas.md +98 -0
- package/skills/hr-better-accessibility/motion-and-zoom.md +81 -0
- package/skills/hr-better-accessibility/screen-readers.md +102 -0
- package/skills/hr-better-accessibility/semantics-and-aria.md +84 -0
- package/skills/hr-better-colors/LICENSE +21 -0
- package/skills/hr-better-colors/NOTICE.md +37 -0
- package/skills/hr-better-colors/SKILL.md +114 -0
- package/skills/hr-better-colors/agents/openai.yaml +3 -0
- package/skills/hr-better-colors/color-formats.md +90 -0
- package/skills/hr-better-colors/color-usage.md +140 -0
- package/skills/hr-better-colors/contrast.md +80 -0
- package/skills/hr-better-colors/palette-generation.md +104 -0
- package/skills/hr-better-colors/palette-structure.md +76 -0
- package/skills/hr-better-colors/token-naming.md +97 -0
- package/skills/hr-better-layout/LICENSE +22 -0
- package/skills/hr-better-layout/NOTICE.md +48 -0
- package/skills/hr-better-layout/SKILL.md +92 -0
- package/skills/hr-better-layout/agents/openai.yaml +3 -0
- package/skills/hr-better-layout/grouping-and-alignment.md +144 -0
- package/skills/hr-better-layout/spacing-and-adaptivity.md +215 -0
- package/skills/hr-better-typography/LICENSE +22 -0
- package/skills/hr-better-typography/NOTICE.md +46 -0
- package/skills/hr-better-typography/SKILL.md +172 -0
- package/skills/hr-better-typography/agents/openai.yaml +3 -0
- package/skills/hr-better-typography/choosing-fonts.md +69 -0
- package/skills/hr-better-typography/css-cheat-sheet.md +65 -0
- package/skills/hr-better-typography/details-and-accessibility.md +119 -0
- package/skills/hr-better-typography/spacing-and-sizing.md +131 -0
- package/skills/hr-better-typography/variable-fonts-and-opentype.md +105 -0
- package/skills/hr-better-typography/wrapping-and-punctuation.md +57 -0
- package/skills/hr-better-writing/LICENSE +22 -0
- package/skills/hr-better-writing/NOTICE.md +46 -0
- package/skills/hr-better-writing/SKILL.md +122 -0
- package/skills/hr-better-writing/agents/openai.yaml +3 -0
- package/skills/hr-code-review/LICENSE +21 -0
- package/skills/hr-code-review/NOTICE.md +26 -0
- package/skills/hr-code-review/SKILL.md +163 -0
- package/skills/hr-code-review/agents/openai.yaml +3 -0
- package/skills/hr-code-review/references/acp-client.md +43 -0
- package/skills/hr-code-review/references/evidence.md +57 -0
- package/skills/hr-code-review/references/impact.md +103 -0
- package/skills/hr-code-review/references/panel-adjudication.md +58 -0
- package/skills/hr-code-review/references/panel-plan.md +61 -0
- package/skills/hr-code-review/references/panel-recommendations.json +105 -0
- package/skills/hr-code-review/references/panel-recommendations.md +46 -0
- package/skills/hr-code-review/references/panel-setup.md +54 -0
- package/skills/hr-code-review/references/reviewer-role.md +31 -0
- package/skills/hr-code-review/scripts/acp-panel-client.mjs +299 -0
- package/skills/hr-code-review/scripts/check-receipts.mjs +263 -0
- package/skills/hr-code-review/scripts/panel-plan.mjs +69 -0
- package/skills/hr-code-review/scripts/panel-preferences.mjs +220 -0
- package/skills/hr-design-exploration/SKILL.md +105 -0
- package/skills/hr-design-exploration/agents/openai.yaml +4 -0
- package/skills/hr-diagnosing-bugs/NOTICE.md +45 -0
- package/skills/hr-diagnosing-bugs/SKILL.md +108 -0
- package/skills/hr-diagnosing-bugs/agents/openai.yaml +3 -0
- package/skills/hr-diagnosing-bugs/references/reporting.md +97 -0
- package/skills/hr-diagnosing-bugs/scripts/check-pr-offer.mjs +47 -0
- package/skills/hr-explain-code/NOTICE.md +37 -0
- package/skills/hr-explain-code/SKILL.md +110 -0
- package/skills/hr-explain-code/agents/openai.yaml +5 -0
- package/skills/hr-explain-code/references/helper-brief.md +39 -0
- package/skills/hr-extract-shared-steps/SKILL.md +134 -0
- package/skills/hr-extract-shared-steps/agents/openai.yaml +3 -0
- package/skills/hr-forgotten-work-audit/SKILL.md +130 -0
- package/skills/hr-forgotten-work-audit/references/brief-template.md +56 -0
- package/skills/hr-forgotten-work-audit/references/result-format.md +46 -0
- package/skills/hr-handoff/LICENSE +21 -0
- package/skills/hr-handoff/NOTICE.md +29 -0
- package/skills/hr-handoff/SKILL.md +114 -0
- package/skills/hr-handoff/agents/openai.yaml +5 -0
- package/skills/hr-handoff/assets/ledger.example.json +10 -0
- package/skills/hr-handoff/assets/receipt.example.json +76 -0
- package/skills/hr-handoff/assets/source.example.json +20 -0
- package/skills/hr-handoff/references/reconciliation.md +124 -0
- package/skills/hr-handoff/references/successor-thread.md +76 -0
- package/skills/hr-handoff/scripts/check-reconciliation.mjs +324 -0
- package/skills/hr-house-rules-setup/SKILL.md +114 -0
- package/skills/hr-house-rules-setup/agents/openai.yaml +5 -0
- package/skills/hr-issue-tracker-setup/SKILL.md +49 -0
- package/skills/hr-issue-tracker-setup/agents/openai.yaml +5 -0
- package/skills/hr-lean-plan/SKILL.md +146 -0
- package/skills/hr-lean-plan/agents/openai.yaml +5 -0
- package/skills/hr-maintainability-review/SKILL.md +186 -0
- package/skills/hr-maintainability-review/agents/openai.yaml +5 -0
- package/skills/hr-manual-qa/NOTICE.md +36 -0
- package/skills/hr-manual-qa/SKILL.md +37 -0
- package/skills/hr-manual-qa/agents/openai.yaml +3 -0
- package/skills/hr-navigation-retro/LICENSE +21 -0
- package/skills/hr-navigation-retro/NOTICE.md +5 -0
- package/skills/hr-navigation-retro/SKILL.md +86 -0
- package/skills/hr-navigation-retro/agents/openai.yaml +4 -0
- package/skills/hr-navigation-retro/references/inputs.md +67 -0
- package/skills/hr-navigation-retro/scripts/retro.py +552 -0
- package/skills/hr-navigation-retro/scripts/transcripts.py +205 -0
- package/skills/hr-ordering-tests/SKILL.md +51 -0
- package/skills/hr-ordering-tests/agents/openai.yaml +2 -0
- package/skills/hr-plain-prose/SKILL.md +264 -0
- package/skills/hr-plain-prose/agents/openai.yaml +3 -0
- package/skills/hr-plain-prose/scripts/check.mjs +331 -0
- package/skills/hr-pr-followup/LICENSE +21 -0
- package/skills/hr-pr-followup/NOTICE.md +9 -0
- package/skills/hr-pr-followup/SKILL.md +74 -0
- package/skills/hr-pr-followup/agents/openai.yaml +2 -0
- package/skills/hr-pr-followup/references/review-helpers.md +111 -0
- package/skills/hr-pr-followup/scripts/check-landing.py +204 -0
- package/skills/hr-pr-followup/scripts/check-pr-review.ts +510 -0
- package/skills/hr-pr-followup/scripts/merge-pr.sh +100 -0
- package/skills/hr-pr-followup/scripts/resolve-pr-thread.ts +219 -0
- package/skills/hr-pr-followup/scripts/verify-landed.sh +184 -0
- package/skills/hr-progress-report/SKILL.md +49 -0
- package/skills/hr-progress-report/agents/openai.yaml +5 -0
- package/skills/hr-read-reddit/SKILL.md +44 -0
- package/skills/hr-read-reddit/agents/openai.yaml +2 -0
- package/skills/hr-read-reddit/scripts/reddit.ts +252 -0
- package/skills/hr-read-x-links/SKILL.md +42 -0
- package/skills/hr-read-x-links/agents/openai.yaml +2 -0
- package/skills/hr-read-x-links/scripts/x-post.ts +264 -0
- package/skills/hr-research-shared-links/SKILL.md +103 -0
- package/skills/hr-split-to-prs/LICENSE +21 -0
- package/skills/hr-split-to-prs/NOTICE.md +9 -0
- package/skills/hr-split-to-prs/SKILL.md +61 -0
- package/skills/hr-split-to-prs/agents/openai.yaml +2 -0
- package/skills/hr-sqlite/SKILL.md +174 -0
- package/skills/hr-sqlite/agents/openai.yaml +2 -0
- package/skills/hr-sqlite/references/evidence.md +94 -0
- package/skills/hr-sqlite/references/tool-decisions.md +39 -0
- package/skills/hr-sqlite/scripts/inspect-sqlite.py +245 -0
- package/skills/hr-stock-ui-audit/SKILL.md +132 -0
- package/skills/hr-stock-ui-audit/agents/openai.yaml +3 -0
- package/skills/hr-stock-ui-audit/scripts/scan.mjs +619 -0
- package/skills/hr-tdd/LICENSE +21 -0
- package/skills/hr-tdd/NOTICE.md +10 -0
- package/skills/hr-tdd/SKILL.md +40 -0
- package/skills/hr-tdd/agents/openai.yaml +3 -0
- package/skills/hr-tdd/mocking.md +39 -0
- package/skills/hr-tdd/tests.md +77 -0
- package/skills/hr-test-audit/LICENSE +21 -0
- package/skills/hr-test-audit/NOTICE.md +67 -0
- package/skills/hr-test-audit/SKILL.md +146 -0
- package/skills/hr-test-audit/agents/openai.yaml +3 -0
- package/skills/hr-test-audit/scripts/floor-guard.ts +137 -0
- package/skills/hr-usage-report/SKILL.md +90 -0
- package/skills/hr-usage-report/agents/openai.yaml +2 -0
- package/skills/hr-usage-report/assets/example-report.json +125 -0
- package/skills/hr-usage-report/assets/report-template.html +377 -0
- package/skills/hr-usage-report/scripts/render-report.ts +86 -0
- package/skills/hr-usage-report/scripts/usage-by-model.ts +499 -0
- package/skills/hr-what-next/SKILL.md +151 -0
- package/skills/hr-what-next/agents/openai.yaml +4 -0
- package/skills/hr-what-next/references/reporting.md +59 -0
- package/skills/hr-what-next/scripts/check-open-work.mjs +711 -0
- package/skills/hr-writing-for-agents/NOTICE.md +46 -0
- package/skills/hr-writing-for-agents/SKILL-MECHANICS.md +83 -0
- package/skills/hr-writing-for-agents/SKILL.md +108 -0
- package/skills/hr-writing-for-agents/agents/openai.yaml +3 -0
- package/skills/hr-writing-pr/NOTICE.md +48 -0
- package/skills/hr-writing-pr/SKILL.md +119 -0
- package/skills/hr-writing-pr/agents/openai.yaml +2 -0
- package/skills/hr-writing-pr/scripts/benefit-chart.py +200 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
|
8
|
+
|
|
9
|
+
## Our Standards
|
|
10
|
+
|
|
11
|
+
Examples of behavior that contributes to a positive environment for our community include:
|
|
12
|
+
|
|
13
|
+
- Demonstrating empathy and kindness toward other people
|
|
14
|
+
- Being respectful of differing opinions, viewpoints, and experiences
|
|
15
|
+
- Giving and gracefully accepting constructive feedback
|
|
16
|
+
- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
|
|
17
|
+
- Focusing on what is best not just for us as individuals, but for the overall community
|
|
18
|
+
|
|
19
|
+
Examples of unacceptable behavior include:
|
|
20
|
+
|
|
21
|
+
- The use of sexualized language or imagery, and sexual attention or advances of any kind
|
|
22
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
23
|
+
- Public or private harassment
|
|
24
|
+
- Publishing others' private information, such as a physical or email address, without their explicit permission
|
|
25
|
+
- Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
26
|
+
|
|
27
|
+
## Enforcement Responsibilities
|
|
28
|
+
|
|
29
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
|
|
32
|
+
|
|
33
|
+
## Scope
|
|
34
|
+
|
|
35
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
|
|
36
|
+
|
|
37
|
+
## Enforcement
|
|
38
|
+
|
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement through the repository's private reporting form: on the [Security tab](https://github.com/bompus/house-rules/security), choose **Report a vulnerability** and say the report is about conduct. Only the maintainer can read it. All complaints will be reviewed and investigated promptly and fairly.
|
|
40
|
+
|
|
41
|
+
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
|
42
|
+
|
|
43
|
+
## Enforcement Guidelines
|
|
44
|
+
|
|
45
|
+
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
|
|
46
|
+
|
|
47
|
+
### 1. Correction
|
|
48
|
+
|
|
49
|
+
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
|
|
50
|
+
|
|
51
|
+
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
|
|
52
|
+
|
|
53
|
+
### 2. Warning
|
|
54
|
+
|
|
55
|
+
**Community Impact**: A violation through a single incident or series of actions.
|
|
56
|
+
|
|
57
|
+
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
|
|
58
|
+
|
|
59
|
+
### 3. Temporary Ban
|
|
60
|
+
|
|
61
|
+
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
|
|
62
|
+
|
|
63
|
+
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
|
|
64
|
+
|
|
65
|
+
### 4. Permanent Ban
|
|
66
|
+
|
|
67
|
+
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
|
|
68
|
+
|
|
69
|
+
**Consequence**: A permanent ban from any sort of public interaction within the community.
|
|
70
|
+
|
|
71
|
+
## Attribution
|
|
72
|
+
|
|
73
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
|
74
|
+
|
|
75
|
+
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
|
76
|
+
|
|
77
|
+
For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations].
|
|
78
|
+
|
|
79
|
+
[homepage]: https://www.contributor-covenant.org
|
|
80
|
+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
|
81
|
+
[Mozilla CoC]: https://github.com/mozilla/diversity
|
|
82
|
+
[FAQ]: https://www.contributor-covenant.org/faq
|
|
83
|
+
[translations]: https://www.contributor-covenant.org/translations
|
package/CONTRIBUTING.md
ADDED
|
@@ -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,379 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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: core, opt-in modifiers and your own layer are composed into one rules file, and each repository's AGENTS.md adds to it. Beside them, what a fresh install selects: core rules on, modifiers off, eight skills." 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. **Optional rules**, called modifiers in the files (`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 own rules**, called your layer in the files (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, if the composed skills changed, it keeps the previous skills
|
|
99
|
+
directory under a dated name instead of deleting it; if they match, it says so
|
|
100
|
+
and keeps nothing extra. It never edits an agent host's files. The comment at
|
|
101
|
+
the top of `install.sh` lists the environment variables that change its paths
|
|
102
|
+
or runtime; `install.ps1` takes the same variables. Some skill scripts need Bun
|
|
103
|
+
even when Node.js composes the rules.
|
|
104
|
+
|
|
105
|
+
Then connect the composed file to your agent. Claude Code reads
|
|
106
|
+
`@~/.config/house-rules/rules.md` on its own line in `~/.claude/CLAUDE.md`;
|
|
107
|
+
other hosts take a copy in their user-level rules file, with the
|
|
108
|
+
`house-rules-references/` directory placed beside it. Written rules link to the
|
|
109
|
+
procedures in that directory, which hold detail; an agent may act without opening
|
|
110
|
+
one, so each guard stays written in the rules themselves. Stdout and configuration
|
|
111
|
+
previews keep the procedures inline. See [reference output](docs/configuration.md#reference-output). To change modifiers or
|
|
112
|
+
skills, change to the checkout directory and run `node compose.mjs setup`,
|
|
113
|
+
or `bun compose.mjs setup` when Node.js is unavailable. Review the numbered
|
|
114
|
+
choices and use `save` to change only the configuration. Setup then prints the
|
|
115
|
+
command that applies the selection: the installer for a checkout, or
|
|
116
|
+
`house-rules --config` for the npm package.
|
|
117
|
+
The [configuration CLI guide](docs/configuration.md) covers status, previews,
|
|
118
|
+
question preferences, optional panel preferences and safe writes. The
|
|
119
|
+
`hr-house-rules-setup` skill preserves selections, offers relevant additions and connects
|
|
120
|
+
hosts, and asks before it touches a host file.
|
|
121
|
+
|
|
122
|
+
### npm distribution
|
|
123
|
+
|
|
124
|
+
`@bompus/house-rules` is published to npm. The package provides the
|
|
125
|
+
`house-rules` composition and configuration commands. Installation has no
|
|
126
|
+
lifecycle hooks and does not connect an agent host or change its settings.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npm install --global @bompus/house-rules
|
|
130
|
+
house-rules --list
|
|
131
|
+
house-rules config help
|
|
132
|
+
house-rules --config ./house-rules.json --out ./rules.md --skills-out ./composed-skills
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Create your configuration before composing. The
|
|
136
|
+
[configuration guide](docs/configuration.md) describes the available choices.
|
|
137
|
+
The package bundles rules, skills, their resources and documentation. With the
|
|
138
|
+
npm package, run `house-rules setup` to change modifiers or skills. Git-based
|
|
139
|
+
installers follow the default branch; npm follows published versions.
|
|
140
|
+
|
|
141
|
+
### Manual steps
|
|
142
|
+
|
|
143
|
+
To keep the checkout somewhere else, run the same steps by hand. The commands use `node`; `bun` runs them the same way.
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
git clone https://github.com/bompus/house-rules.git
|
|
147
|
+
cd house-rules
|
|
148
|
+
node compose.mjs --list
|
|
149
|
+
mkdir -p ~/.config/house-rules
|
|
150
|
+
cp examples/person/house-rules.json ~/.config/house-rules/
|
|
151
|
+
node compose.mjs --config ~/.config/house-rules/house-rules.json \
|
|
152
|
+
--out ~/.config/house-rules/rules.md --skills-out ~/.config/house-rules/composed-skills
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
To recompose later, move or remove the old `composed-skills` directory first,
|
|
156
|
+
because `--skills-out` must be empty or absent. `compose.mjs` writes the rules
|
|
157
|
+
file, a `house-rules-references/` directory beside it (or at `--references-out`)
|
|
158
|
+
when the rules include reference procedures, and `--skills-out` when given. It never deletes anything.
|
|
159
|
+
|
|
160
|
+
When distributing a rules-only output, carry this checkout's `LICENSE` and
|
|
161
|
+
`THIRD_PARTY_NOTICES.md` alongside it. Copy them into an explicit destination
|
|
162
|
+
and reconcile existing notice files before replacing them. A full
|
|
163
|
+
`--skills-out` export already includes both at its root. When copying one
|
|
164
|
+
skill, keep its entire directory, including any `NOTICE.md` and `LICENSE`.
|
|
165
|
+
Personal layers must also carry notices required by their own sources.
|
|
166
|
+
|
|
167
|
+
## Upgrading skill names
|
|
168
|
+
|
|
169
|
+
All shipped skill names use `hr-`. Before updating an older installation,
|
|
170
|
+
follow [the skill name upgrade guide](docs/skill-names.md) to preserve exclusions
|
|
171
|
+
and personal overrides. Composition stops on ambiguous old names before
|
|
172
|
+
writing output. Host links and copies need a separate update.
|
|
173
|
+
|
|
174
|
+
## Evaluate it with your agent
|
|
175
|
+
|
|
176
|
+
Paste this into a session with the agent you use. It compares house-rules with
|
|
177
|
+
the rules you already have and changes nothing until you choose.
|
|
178
|
+
|
|
179
|
+
```text
|
|
180
|
+
I'm considering house-rules (https://github.com/bompus/house-rules), working
|
|
181
|
+
rules and skills for AI coding agents. Read its README, rules/core.md,
|
|
182
|
+
rules/modifiers/ and the skills list, then compare them with the rules and
|
|
183
|
+
skills I already use (my user-level rules file for this host and this
|
|
184
|
+
repository's AGENTS.md or equivalent). Tell me:
|
|
185
|
+
1. Which rules, modifiers or skills would change how you work with me, with
|
|
186
|
+
an example from how you work now.
|
|
187
|
+
2. Which ones duplicate or conflict with what I already have.
|
|
188
|
+
3. Whether to adopt it whole (compose.mjs plus my own layer) or copy single
|
|
189
|
+
sections into my existing rules. Taking individual ideas is fine.
|
|
190
|
+
Read only: don't install, compose or edit anything until I choose. When I
|
|
191
|
+
adopt a section or idea, record its source in distributed notices, such as
|
|
192
|
+
"Adapted from house-rules (https://github.com/bompus/house-rules)". Keep required
|
|
193
|
+
licence notices with copied text and standalone skill bundles.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Taking individual ideas is welcome. If you adopt any, we'd appreciate a
|
|
197
|
+
source credit in your distributed notices. Copying substantial text also needs
|
|
198
|
+
the MIT notice kept (see `LICENSE`).
|
|
199
|
+
|
|
200
|
+
## Writing your own sections
|
|
201
|
+
|
|
202
|
+
A rules file in your layer starts with frontmatter that names one operation
|
|
203
|
+
and a core heading, followed by its own `## ` heading:
|
|
204
|
+
|
|
205
|
+
```markdown
|
|
206
|
+
---
|
|
207
|
+
after: Implementation economy
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## My tooling
|
|
211
|
+
|
|
212
|
+
Use pnpm for JavaScript projects unless the repository uses another manager.
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
The operations are `replaces:`, `after:`, `before:` and `removes:`; a
|
|
216
|
+
`removes:` file has no body. A file without frontmatter is added at the end.
|
|
217
|
+
Frontmatter may also hold `description:`, `requires:` (a comma-separated
|
|
218
|
+
list of skills the section relies on; the core rules and any modifier that relies
|
|
219
|
+
on skills declare them, and composing warns when one is not in the composed
|
|
220
|
+
set) and `reference:` (a procedure file the section links to; see
|
|
221
|
+
[reference output](docs/configuration.md#reference-output)); any other key is an error. Files apply
|
|
222
|
+
in name order, after the modifiers.
|
|
223
|
+
|
|
224
|
+
## Modifiers
|
|
225
|
+
|
|
226
|
+
| Modifier | What it does |
|
|
227
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
228
|
+
| `backlog-outline` | A backlog report adds a Markdown outline of every open item grouped by what it waits on; nothing is rendered, so it reads the same on every host. |
|
|
229
|
+
| `backlog-visual` | A backlog report adds one dark panel of every open item grouped by what it waits on, with a table for waiting items and one row per decision; hosts without a render tool get the same outline in Markdown. |
|
|
230
|
+
| `coded-offers` | Offers use numbered questions and coded options (`1A`, `1B`) so one short reply answers every decision. |
|
|
231
|
+
| `cross-session-relay` | Relayed work between sessions keeps its source and authorized scope, and an authorized push that changes inherited guidance or tooling is announced to the affected sessions. |
|
|
232
|
+
| `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. |
|
|
233
|
+
| `land-when-done` | Authorized repository work is not finished until it is in the remote default branch. |
|
|
234
|
+
| `low-quota-handoff` | When the current model's usage allowance runs low, write a handoff before work stops. |
|
|
235
|
+
| `model-default-questions` | Leave how questions are asked to your host and model, with no text-only or question-card instruction. |
|
|
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 unless the target repository asks for a disclosure. |
|
|
238
|
+
| `periodic-updates` | A job expected to run longer than about 10 minutes posts a short status update every 5 minutes by default, with progress, an ETA with its basis or "unmeasured", and findings so far, until the job ends; a watcher event that changes nothing gets at most one line. |
|
|
239
|
+
| `plan-files` | Multi-step work keeps a visible task list mirrored to a plan file with a ledger of every item's outcome. |
|
|
240
|
+
| `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. |
|
|
241
|
+
| `release-batching` | Batch approved, compatible changes for releases and audit factual claims before releases or public announcements. |
|
|
242
|
+
| `scratch-on-disk` | Task scratch lives on disk under the user data directory, never in RAM-backed `/tmp`. |
|
|
243
|
+
| `shared-host-load` | On a shared machine, follow its resource budgets; without one, get operator direction before parallel workers or whole-repository commands, and use memory controls. |
|
|
244
|
+
| `solo-operator` | For repositories with one maintainer, the user's direction is the review; no review-gated steps. |
|
|
245
|
+
| `squash-landing` | Pull requests land by squash merge after review-bot findings are handled, and the session's checkout moves off the landed branch. |
|
|
246
|
+
| `upstream-contributions` | A measured optimization, fix or defect found in a third-party project is offered for submission to that project through its own contribution route. |
|
|
247
|
+
| `web-image-formats` | Prefer WebP for web raster images when it saves bytes at acceptable quality, with format exceptions and delivered-file checks. |
|
|
248
|
+
|
|
249
|
+
Questions use text only by default. Setup asks how you want questions asked:
|
|
250
|
+
|
|
251
|
+
- **Model default**: house-rules gives no instruction, so your model and host ask
|
|
252
|
+
their usual way (`model-default-questions`).
|
|
253
|
+
- **Text only**: plain text options, with or without short reply codes such as
|
|
254
|
+
`1A` (`coded-offers`). No question tools are called, even when the host
|
|
255
|
+
exposes them.
|
|
256
|
+
- **Clickable choices when available**: complete text options plus a
|
|
257
|
+
question card (`question-cards`). Cards can be unavailable, skipped or shown
|
|
258
|
+
unexpectedly across hosts, providers and models; the text offer remains usable
|
|
259
|
+
on its own.
|
|
260
|
+
|
|
261
|
+
`hr-house-rules-setup` asks which you want and explains these limits before
|
|
262
|
+
changing the configuration.
|
|
263
|
+
|
|
264
|
+
## Skills
|
|
265
|
+
|
|
266
|
+
| Skill | Use it to |
|
|
267
|
+
| --------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
268
|
+
| `hr-agent-guidance-audit` | Audit agent guidance for stale or conflicting rules, and decide what to retire or merge. |
|
|
269
|
+
| `hr-agent-guidance-refresh` | Re-read guidance that changed since the session started. |
|
|
270
|
+
| `hr-api-exposure-check` | Keep API responses to the fields a consumer reads and the caller may see. |
|
|
271
|
+
| `hr-audit-choices` | List and check the decisions made while implementing a task. |
|
|
272
|
+
| `hr-benchmarking` | Design, run and assess timing, CPU and memory comparisons; choose tools by the question they answer. |
|
|
273
|
+
| `hr-better-accessibility` | Build and review keyboard access, semantics, forms, focus, motion and reflow in web UI. |
|
|
274
|
+
| `hr-better-colors` | Choose and check palettes, semantic tokens, themes, gamut and rendered contrast. |
|
|
275
|
+
| `hr-better-layout` | Build and review grouping, alignment, spacing, responsive layout and clipping. |
|
|
276
|
+
| `hr-better-typography` | Style and review type scales, wrapping, spacing, truncation and font loading. |
|
|
277
|
+
| `hr-better-writing` | Write and review interface labels, errors, empty states and product terminology. |
|
|
278
|
+
| `hr-code-review` | Review a diff against standards and the request, and check what it can break beyond its lines. |
|
|
279
|
+
| `hr-design-exploration` | Compare visual directions, or variants of one component, and refine toward one design. |
|
|
280
|
+
| `hr-diagnosing-bugs` | Work a hard bug or regression to a confirmed cause. |
|
|
281
|
+
| `hr-explain-code` | Trace how existing code works, read-only, before changing it. |
|
|
282
|
+
| `hr-extract-shared-steps` | Move operations repeated across workflows into shared functions. |
|
|
283
|
+
| `hr-forgotten-work-audit` | Audit past sessions, plans and handoffs for promised work that dropped off every list. |
|
|
284
|
+
| `hr-handoff` | Write a handoff a fresh session can resume from. |
|
|
285
|
+
| `hr-house-rules-setup` | Choose modifiers, create your layer and connect your hosts. |
|
|
286
|
+
| `hr-issue-tracker-setup` | Configure project tracker, domain-term and ADR conventions; explicit-only. |
|
|
287
|
+
| `hr-lean-plan` | Write or tighten an implementation plan with the fewest moving parts. |
|
|
288
|
+
| `hr-maintainability-review` | Review a diff or entire codebase strictly for structure, over-engineering and leftover scaffolding. |
|
|
289
|
+
| `hr-manual-qa` | Give reproducible human checks after reporting agent verification results. |
|
|
290
|
+
| `hr-navigation-retro` | Audit navigation failures in selected transcripts and propose verified findability fixes; explicit-only. |
|
|
291
|
+
| `hr-ordering-tests` | Enumerate event orderings through the real code to find race bugs. |
|
|
292
|
+
| `hr-plain-prose` | Make text people read plain and specific. |
|
|
293
|
+
| `hr-progress-report` | Report current task activity, milestone completion and remaining wall-clock time. |
|
|
294
|
+
| `hr-pr-followup` | Address conflicts, feedback and failing checks for a PR; honor landing authority; CodeRabbit review gate. |
|
|
295
|
+
| `hr-read-reddit` | Read Reddit feed output while supported; RSS support ends November 13, 2026. Partial web-search fallback. |
|
|
296
|
+
| `hr-read-x-links` | Read the full content of X posts. |
|
|
297
|
+
| `hr-research-shared-links` | Research a shared link or repository in depth, compare it with your setup and rate each idea. |
|
|
298
|
+
| `hr-split-to-prs` | Divide work into coherent PRs while preserving recovery points and verifying each slice. |
|
|
299
|
+
| `hr-sqlite` | Check settings, locking, queries and copies in SQLite code against measured findings. |
|
|
300
|
+
| `hr-stock-ui-audit` | Find and triage template-default styling in frontend code. |
|
|
301
|
+
| `hr-tdd` | Implement requested test-first work through one red-green slice at a time; simplify during review. |
|
|
302
|
+
| `hr-test-audit` | Decide which new tests are worth keeping and which old ones to prune. |
|
|
303
|
+
| `hr-usage-report` | Measure where agent usage went by provider, model and role, and chart model comparisons. |
|
|
304
|
+
| `hr-what-next` | Reconcile remaining session work and recommend priorities when asked what comes next. |
|
|
305
|
+
| `hr-writing-for-agents` | Write skills, rules and other documents agents read. |
|
|
306
|
+
| `hr-writing-pr` | Write a pull request title and body from the final diff. |
|
|
307
|
+
|
|
308
|
+
The `hr-navigation-retro` skill finds navigation failures in selected tool-call
|
|
309
|
+
transcripts, then proposes fixes verified against current source. Any agent with
|
|
310
|
+
file and shell access can run it. Supported inputs include Claude Code, Codex,
|
|
311
|
+
OpenCode exports, Cursor CLI streams and ACP v1 recordings from other agents.
|
|
312
|
+
See its [input limits](skills/hr-navigation-retro/references/inputs.md).
|
|
313
|
+
It is explicit-only, requires Python 3.11+ and keeps reports local.
|
|
314
|
+
|
|
315
|
+
## Checking the rules against your models
|
|
316
|
+
|
|
317
|
+
`evals/end-of-reply/` (in the GitHub repository, not the npm package) runs short scenarios through any model CLI. It grades
|
|
318
|
+
whether the agent keeps working or ends with an offer at the right time,
|
|
319
|
+
including when it reads only the first 80 lines. A 2026-10-11 replay covered
|
|
320
|
+
its 18 scenarios, two runs each, on Claude Code 2.1.296 only, at revision
|
|
321
|
+
`efd4d7b`; `rules/core.md` has changed since. The rules scored
|
|
322
|
+
22 of 36 replies with Opus 5.5 and 27 of 36 with Sonnet 5.5. A one-sentence
|
|
323
|
+
instruction scored 18 and 16, and no rules scored 17 and 16. The gains cluster
|
|
324
|
+
in follow-ups, parked findings, stacked offers and spin-offs, where the
|
|
325
|
+
controls scored 0. Two runs per scenario is a small sample, so read the counts,
|
|
326
|
+
not a percentage. No other agent was measured. The eval's README has the
|
|
327
|
+
breakdown and limits.
|
|
328
|
+
|
|
329
|
+
## Development
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
node --test test/*.test.mjs # composer and eval grader
|
|
333
|
+
bun test test/ # the same under Bun
|
|
334
|
+
bun test skills/ # skill scripts
|
|
335
|
+
npm run check:package -- --bun # npm tarball: packs, installs, runs the CLI
|
|
336
|
+
npx --yes oxlint@1.85.0 . && npx --yes oxfmt@0.70.0 --check .
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
These versions match the pins in `.github/workflows/check.yml`; an unpinned `npx`
|
|
340
|
+
fetches the latest release, whose formatting can differ from CI's. Change both
|
|
341
|
+
together.
|
|
342
|
+
|
|
343
|
+
Oxfmt checks authored Markdown, HTML, JSON, JSONC, YAML, TOML and CSS as well
|
|
344
|
+
as JavaScript and TypeScript. Test fixtures stay excluded because scanner
|
|
345
|
+
tests depend on their exact text and line numbers. Package fields and
|
|
346
|
+
dependency maps are sorted; script order is preserved.
|
|
347
|
+
|
|
348
|
+
Tests remove their own fixture directories after each test, including failures.
|
|
349
|
+
Set `HOUSE_RULES_TEST_TMP` to an existing directory to choose their scratch root;
|
|
350
|
+
otherwise they use the operating system temporary directory. Choose a disk-backed
|
|
351
|
+
location when the system temporary directory is RAM-backed.
|
|
352
|
+
|
|
353
|
+
CI runs these checks on every pull request and on pushes to `main`, and also runs the tests and the tarball check on Windows. See
|
|
354
|
+
[CONTRIBUTING.md](CONTRIBUTING.md) before opening one.
|
|
355
|
+
|
|
356
|
+
The local-reference gate runs in `test/guidance-links.test.mjs`. Audit another
|
|
357
|
+
checkout with `node guidance-links.mjs --root <checkout> --repository
|
|
358
|
+
owner/repo=<local-checkout>`; repeat `--repository` for other available sources.
|
|
359
|
+
Its JSON report identifies GitHub file pointers to replace. When a remote
|
|
360
|
+
link deliberately cites current provenance, downloads a file or refreshes
|
|
361
|
+
upstream guidance, use one of these comments on that line. Each needs a reason:
|
|
362
|
+
|
|
363
|
+
- `<!-- local-reference: source <reason> -->`
|
|
364
|
+
- `<!-- local-reference: download <reason> -->`
|
|
365
|
+
- `<!-- local-reference: remote-refresh <reason> -->`
|
|
366
|
+
|
|
367
|
+
Pinned history and images are exempt.
|
|
368
|
+
|
|
369
|
+
## Sponsoring
|
|
370
|
+
|
|
371
|
+
house-rules is built and maintained by one person. If it saves you time, you can
|
|
372
|
+
sponsor it monthly or once through
|
|
373
|
+
[GitHub Sponsors](https://github.com/sponsors/bompus), or leave a tip on
|
|
374
|
+
[Ko-fi](https://ko-fi.com/bompus).
|
|
375
|
+
|
|
376
|
+
## Licence
|
|
377
|
+
|
|
378
|
+
MIT. Some skills adapt MIT-licensed work, and `CODE_OF_CONDUCT.md` is the
|
|
379
|
+
Contributor Covenant under CC BY 4.0; see `THIRD_PARTY_NOTICES.md`.
|