@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.
- package/CONTRIBUTING.md +54 -0
- package/LICENSE +21 -0
- package/README.md +347 -2
- package/THIRD_PARTY_NOTICES.md +188 -0
- package/compose.mjs +119 -0
- package/composition.mjs +353 -0
- package/config-view.mjs +194 -0
- package/config.mjs +320 -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 +193 -0
- package/docs/npm-release.md +45 -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 +40 -4
- package/rule-references.mjs +91 -0
- package/rules/core.md +431 -0
- package/rules/modifiers/coded-offers.md +40 -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 +19 -0
- package/rules/modifiers/multi-agent.md +34 -0
- package/rules/modifiers/no-attribution.md +10 -0
- package/rules/modifiers/plan-files.md +50 -0
- package/rules/modifiers/question-cards.md +48 -0
- package/rules/modifiers/release-batching.md +13 -0
- package/rules/modifiers/scratch-on-disk.md +15 -0
- package/rules/modifiers/shared-host-load.md +48 -0
- package/rules/modifiers/solo-operator.md +13 -0
- package/rules/modifiers/squash-landing.md +22 -0
- package/rules/modifiers/swarmail.md +12 -0
- package/rules/references/github-actions.md +45 -0
- package/rules/references/landing.md +39 -0
- package/rules/references/multi-agent.md +47 -0
- package/rules/references/release-batching.md +43 -0
- package/rules/references/squash-landing.md +44 -0
- package/setup.mjs +375 -0
- package/skills/hr-agent-guidance-audit/LICENSE +21 -0
- package/skills/hr-agent-guidance-audit/SKILL.md +86 -0
- package/skills/hr-agent-guidance-audit/agents/openai.yaml +2 -0
- package/skills/hr-agent-guidance-audit/references/records-and-lessons.md +60 -0
- package/skills/hr-agent-guidance-refresh/LICENSE +21 -0
- package/skills/hr-agent-guidance-refresh/SKILL.md +68 -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 +316 -0
- package/skills/hr-benchmarking/agents/openai.yaml +2 -0
- package/skills/hr-benchmarking/references/javascript.md +17 -0
- package/skills/hr-benchmarking/references/priority-findings-20261006.md +115 -0
- package/skills/hr-benchmarking/references/tools.md +160 -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 +101 -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-change-impact/SKILL.md +113 -0
- package/skills/hr-change-impact/agents/openai.yaml +5 -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 +147 -0
- package/skills/hr-code-review/agents/openai.yaml +3 -0
- package/skills/hr-code-review/references/evidence.md +57 -0
- package/skills/hr-design-exploration/SKILL.md +82 -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 +72 -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-handoff/SKILL.md +91 -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 +105 -0
- package/skills/hr-handoff/scripts/check-reconciliation.mjs +282 -0
- package/skills/hr-house-rules-setup/SKILL.md +100 -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 +142 -0
- package/skills/hr-lean-plan/agents/openai.yaml +5 -0
- package/skills/hr-maintainability-review/SKILL.md +176 -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 +261 -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 +71 -0
- package/skills/hr-pr-followup/agents/openai.yaml +2 -0
- package/skills/hr-pr-followup/references/review-helpers.md +90 -0
- package/skills/hr-pr-followup/scripts/check-pr-review.ts +510 -0
- package/skills/hr-pr-followup/scripts/resolve-pr-thread.ts +219 -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-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-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/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-what-next/SKILL.md +61 -0
- package/skills/hr-what-next/agents/openai.yaml +4 -0
- package/skills/hr-what-next/references/reporting.md +68 -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 +104 -0
- package/skills/hr-writing-pr/agents/openai.yaml +2 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hr-code-review
|
|
3
|
+
description: Review a branch, PR, working-tree changes or changes since a revision for repository standards and spec conformance. Use only when the user requests a change review. Do not use for simplification-only or strictest maintainability audits.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Two-axis review of the changes the user requested: working-tree changes, a committed branch, or changes since a named revision.
|
|
7
|
+
|
|
8
|
+
- **Standards**: does the code conform to this repo's documented coding standards?
|
|
9
|
+
- **Spec**: does the code implement the originating issue / spec?
|
|
10
|
+
|
|
11
|
+
Keep both axes distinct. Review small scopes locally; use separate read-only
|
|
12
|
+
subagents when the scope benefits from independent review and the host permits
|
|
13
|
+
it. Missing spec material limits the Spec assessment, not all useful review.
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
### 1. Pin the review scope
|
|
18
|
+
|
|
19
|
+
Use the scope stated by the user or established in the task:
|
|
20
|
+
|
|
21
|
+
- **Working-tree changes:** use `git diff HEAD` for tracked changes and `git ls-files --others --exclude-standard` to identify untracked files to inspect.
|
|
22
|
+
- **Committed branch comparison:** resolve the base and use `git diff <base>...HEAD`.
|
|
23
|
+
- **Since an exact commit or tag:** use `git diff <revision> HEAD`; include working-tree changes only when requested, using `git diff <revision>` and inspecting in-scope untracked files.
|
|
24
|
+
- **Merge-base comparison including local changes:** resolve `git merge-base <base> HEAD`, compare the working tree with that revision, and inspect in-scope untracked files.
|
|
25
|
+
|
|
26
|
+
Record the resolved base, comparison command, and whether staged, unstaged, and untracked files are included. Validate supplied refs before dispatching reviewers. Ask only when scope remains ambiguous. Report an empty scope only after checking every included category. Record the commit list when reviewing committed changes.
|
|
27
|
+
|
|
28
|
+
### 2. Identify the spec source
|
|
29
|
+
|
|
30
|
+
Look for the originating spec in this order:
|
|
31
|
+
|
|
32
|
+
1. A path the user passed as an argument.
|
|
33
|
+
2. The linked issue or pull request, or an approved plan or specification in the repository.
|
|
34
|
+
3. The user's request as recorded in the session.
|
|
35
|
+
4. If nothing is found, report "Spec conformance not assessed: no source found" and complete the review supported by available evidence. Ask for a source only when its absence prevents the judgment the user requested; continue independent review while awaiting it. Do not infer requirements from the implementation itself.
|
|
36
|
+
|
|
37
|
+
### 3. Identify the standards sources
|
|
38
|
+
|
|
39
|
+
Anything in the repo that documents how code should be written, such as `CODING_STANDARDS.md` or `CONTRIBUTING.md`.
|
|
40
|
+
|
|
41
|
+
When the diff adds or changes what an API returns (a handler, serializer, DTO,
|
|
42
|
+
response schema or webhook payload), load `hr-api-exposure-check` and give its
|
|
43
|
+
Two answers per field test to the Standards reviewer, or apply it in a local
|
|
44
|
+
review. If that skill is missing or excluded, report the limit on response-field
|
|
45
|
+
assessment and use the available project standards. Do not claim the skill was
|
|
46
|
+
applied or install it without authorization.
|
|
47
|
+
|
|
48
|
+
Use the design heuristics below when relevant to the changed code. They are prompts to investigate maintenance problems, not a checklist that must produce findings or automatic refactoring prescriptions.
|
|
49
|
+
|
|
50
|
+
- **The repo overrides.** A documented repo standard always wins; where it endorses something the baseline would flag, suppress the smell.
|
|
51
|
+
- **Always a judgement call.** Each smell is a labelled heuristic ("possible Feature Envy"), never a hard violation. Like any standard here, skip anything tooling already enforces.
|
|
52
|
+
|
|
53
|
+
Recommend a transformation only when inspected evidence shows a concrete current
|
|
54
|
+
maintenance problem and the remedy reduces it without weakening required behavior.
|
|
55
|
+
State the consequence and any equivalence assumptions; otherwise omit the finding.
|
|
56
|
+
|
|
57
|
+
- **Naming:** does ambiguity cause a concrete misunderstanding at a call site?
|
|
58
|
+
- **Duplication and repeated branches:** must these sites evolve together, or do they express independent policies? Extraction or polymorphism must earn its coupling and indirection.
|
|
59
|
+
- **Grouped data and domain primitives:** are invalid combinations or repeated invariant checks causing problems that a type would actually prevent?
|
|
60
|
+
- **Module boundaries and data access:** does current coupling force scattered edits, expose internals or mix unrelated responsibilities? Moving code must improve the boundary rather than merely rearrange it.
|
|
61
|
+
- **Delegation and inheritance:** does a wrapper or interface provide a useful contract, isolation or adaptation? One caller or implementation is not itself a defect.
|
|
62
|
+
- **Speculative flexibility:** does configuration or abstraction serve a current requirement? Remove unsupported complexity only after checking its consumers and behavior.
|
|
63
|
+
|
|
64
|
+
### 4. Review each axis
|
|
65
|
+
|
|
66
|
+
Use the same pinned scope for both axes, whether reviewing locally or delegating.
|
|
67
|
+
Read [the evidence-assessment method](references/evidence.md) and include it in
|
|
68
|
+
each delegated brief. It covers completion claims, weakened tests, emitted
|
|
69
|
+
results and verification limits.
|
|
70
|
+
When delegating and both sources are available, the reviews may run in parallel.
|
|
71
|
+
If a source arrives later or scope changes, update only the affected assessment.
|
|
72
|
+
|
|
73
|
+
**Hosts.** Both sub-agents are read-only. Use the current host's native agent mechanism and follow the repository's model-selection rules. A sub-agent never runs the model that wrote the code; when the author is its vendor's strongest model, use another vendor's model where one is available, through the host or that vendor's command-line agent run read-only with the same brief. When no other model is available, use a fresh context and say in the report that the reviewer shares the author's model.
|
|
74
|
+
|
|
75
|
+
**Correctness of input-to-output code** goes in the Spec brief, using the
|
|
76
|
+
evidence method above. Split a large scope into groups of about three files,
|
|
77
|
+
one reviewer per group. Do not assign this work to a reviewer focused on
|
|
78
|
+
structure or maintainability.
|
|
79
|
+
|
|
80
|
+
**Standards sub-agent prompt** should include:
|
|
81
|
+
|
|
82
|
+
- The full diff command and commit list.
|
|
83
|
+
- The applicable standards sources and relevant design heuristics, including their evidence requirement.
|
|
84
|
+
- The brief: "Report documented-standard violations with citations, and design findings only when inspected code shows a concrete current maintenance problem. For each finding give the location, consequence and proportionate remedy that preserves required behavior. Distinguish hard violations from heuristic judgments; repository standards override heuristics. Do not prescribe abstraction from a pattern alone. Skip tooling-enforced issues. Keep findings concise, with enough evidence to assess them."
|
|
85
|
+
|
|
86
|
+
**Spec sub-agent prompt** should include:
|
|
87
|
+
|
|
88
|
+
- The diff command and commit list.
|
|
89
|
+
- The path or fetched contents of the spec.
|
|
90
|
+
- The brief: "Report missing or partial requirements, behavior outside the requested scope, and incorrectly implemented requirements. Cite the requirement and code location for each finding. Keep findings concise, with enough evidence to assess their consequence. Where the spec is silent, what a reasonable user of this software would expect is still a requirement; grade it by its effect on that user. Before your verdict, list under `Declined to judge` every behavior you considered and set aside as out of scope, one line each with the reason, or write `none`."
|
|
91
|
+
|
|
92
|
+
Ground findings in inspected code and cite their locations and applicable
|
|
93
|
+
standards or requirements. Report concrete consequences; smells alone do not
|
|
94
|
+
justify a new abstraction. Mark missing evidence and unassessed requirements
|
|
95
|
+
explicitly rather than claiming a pass.
|
|
96
|
+
|
|
97
|
+
### 5. Aggregate
|
|
98
|
+
|
|
99
|
+
Present Standards and Spec separately. Verify delegated findings, remove
|
|
100
|
+
unsupported or duplicate claims, and prioritize within each axis. Preserve the
|
|
101
|
+
distinction between documented violations and heuristic suggestions.
|
|
102
|
+
|
|
103
|
+
Report a one-line summary: total findings per axis, and the worst issue _within each axis_ (if any). Don't pick a single winner across axes; the separation exists to prevent that reranking.
|
|
104
|
+
|
|
105
|
+
Tag each surviving finding HIGH (corroborated by a second source or a directly cited requirement), MEDIUM (single inspected source), or LOW (inferred; name the check that would confirm it). Nothing is dropped on confidence alone: the operator adjudicates.
|
|
106
|
+
|
|
107
|
+
Tag each finding with one actionability label, independent of the confidence tag:
|
|
108
|
+
|
|
109
|
+
- `blocking` must be fixed before merge.
|
|
110
|
+
- `important` should be fixed and may block, depending on context.
|
|
111
|
+
- `nit` is a minor style or preference issue.
|
|
112
|
+
- `suggestion` is an optional improvement worth considering.
|
|
113
|
+
- `learning` is an educational note that needs no action.
|
|
114
|
+
- `praise` marks good work; report it so review is not only defects.
|
|
115
|
+
|
|
116
|
+
Within each axis, order findings by actionability (`blocking` first, in the list order above), then by confidence (HIGH first).
|
|
117
|
+
|
|
118
|
+
Grade actionability by the finding's effect on users, not by whether the spec
|
|
119
|
+
mentions the trigger or by the implementer's stated rationale. Rule on each
|
|
120
|
+
line of the Spec reviewer's `Declined to judge` list: promote it to a finding
|
|
121
|
+
or confirm it out of scope, and show both in the report.
|
|
122
|
+
|
|
123
|
+
### 6. Remediation options
|
|
124
|
+
|
|
125
|
+
When a finding has more than one viable remedy, or the remedy you would
|
|
126
|
+
recommend differs from the ideal fix, present them as an offer in the house rules' § Offers format
|
|
127
|
+
for the user to choose from. Give each option a rough relative effort and its
|
|
128
|
+
tradeoffs, mark the recommendation, and separately name the right fix, meaning
|
|
129
|
+
the remedy that best serves the codebase absent current constraints. When the
|
|
130
|
+
recommendation is not the right fix, say why: scope, risk, blast radius or
|
|
131
|
+
existing debt. Skip this step for findings with a single obvious remedy; do not
|
|
132
|
+
produce an options list per nit.
|
|
133
|
+
|
|
134
|
+
When the user rejects, narrows or edits a finding or remedy, record the reason
|
|
135
|
+
in the task's plan or notes. Record why it was wrong or
|
|
136
|
+
unwanted, not merely that it was declined. For each accepted finding, record
|
|
137
|
+
the verifying command or one-line reason with it, so a later session can
|
|
138
|
+
re-check the fix without re-deriving the finding.
|
|
139
|
+
|
|
140
|
+
## Why two axes
|
|
141
|
+
|
|
142
|
+
A change can pass one axis and fail the other:
|
|
143
|
+
|
|
144
|
+
- Code that follows every standard but implements the wrong thing is a **Standards pass, Spec fail.**
|
|
145
|
+
- Code that does exactly what the issue asked but breaks the project's conventions is a **Spec pass, Standards fail.**
|
|
146
|
+
|
|
147
|
+
Reporting them separately stops one axis from masking the other.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Assess review evidence
|
|
2
|
+
|
|
3
|
+
Apply this method to the pinned review scope, locally or in a read-only review.
|
|
4
|
+
The repository owns required checks, gates and waivers; this method adds no
|
|
5
|
+
permission to run commands, edit files or expand the review scope.
|
|
6
|
+
|
|
7
|
+
## Read the scope and its evidence
|
|
8
|
+
|
|
9
|
+
Start from the requested intent, diff, changed paths and verification evidence.
|
|
10
|
+
Use an existing review packet when supplied; do not require a particular
|
|
11
|
+
artifact path or release workflow. Read applicable repository guidance not
|
|
12
|
+
already in context. Report missing scope or required evidence.
|
|
13
|
+
|
|
14
|
+
Inspect changed regions first. When a supplied diff or shell is unavailable,
|
|
15
|
+
locate those regions with available read-only search and file tools. Trace
|
|
16
|
+
source, tests and consumers where needed to assess a concrete risk. Respect
|
|
17
|
+
scope limits; name dependencies needing assessment outside them rather than
|
|
18
|
+
asserting they are safe.
|
|
19
|
+
|
|
20
|
+
Check behavior against requirements, invariants and testing standards. Treat a
|
|
21
|
+
completion claim as a hypothesis to refute from the diff and evidence. For a
|
|
22
|
+
bug fix, look for evidence that its regression test failed on the pre-fix code
|
|
23
|
+
for the intended reason and passed after the fix. Missing evidence is a
|
|
24
|
+
verification limit; whether it blocks follows the project's gate rules.
|
|
25
|
+
|
|
26
|
+
## Account for weakened tests
|
|
27
|
+
|
|
28
|
+
Before judging the change, list each existing test the diff deletes, skips,
|
|
29
|
+
marks as expected to fail or weakens. Include narrowed assertions, widened
|
|
30
|
+
tolerances and expected values rewritten to match new output. Require a stated
|
|
31
|
+
reason tied to the changed requirement or supported test-audit evidence.
|
|
32
|
+
An unexplained change is missing verification; classify it under the project's
|
|
33
|
+
verification requirements rather than accepting the new output as its reason.
|
|
34
|
+
|
|
35
|
+
When test auditing is in scope, use the installed `hr-test-audit` bundle's
|
|
36
|
+
method and floor guard if available and command execution is authorized.
|
|
37
|
+
The guard detects some weakening patterns; a clean result does not replace
|
|
38
|
+
reading changed assertions. Report unavailable coverage without installing or
|
|
39
|
+
running tools outside the selected scope.
|
|
40
|
+
|
|
41
|
+
## Trace emitted results
|
|
42
|
+
|
|
43
|
+
For input-to-output code such as resolvers, parsers or extractors, trace every
|
|
44
|
+
path in scope to its emitted result before reporting performance or structure
|
|
45
|
+
findings. Start from the nearest test fixture and construct the smallest input
|
|
46
|
+
change that would emit a wrong result or drop a correct one. Report a confirmed
|
|
47
|
+
counterexample with the fixture, changed input, expected and emitted results,
|
|
48
|
+
and `path:line` for the steps. When no counterexample is found, record the paths
|
|
49
|
+
and cases assessed; do not invent a failing result to fill the report.
|
|
50
|
+
|
|
51
|
+
## Ground the result
|
|
52
|
+
|
|
53
|
+
Do not repeat verified lint, type or format checks or invent release gates.
|
|
54
|
+
Confirm each finding with its file and line, violated requirement and evidence.
|
|
55
|
+
Distinguish confirmed defects from unresolved questions and omit speculative
|
|
56
|
+
findings. Report missing evidence and unassessed requirements separately.
|
|
57
|
+
A review pass does not establish that unrun checks passed.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hr-design-exploration
|
|
3
|
+
description: "Explore visual design or redesign alternatives through four ranked directions, top-two feedback and successive refinement toward one chosen design. Use when asked to propose or compare UI design directions; ordinary UI fixes and implementing an already chosen design do not need this workflow."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design exploration
|
|
7
|
+
|
|
8
|
+
Use the user's requested scope and constraints. The default is four initial
|
|
9
|
+
directions, then rounds containing the two selected designs and one variation
|
|
10
|
+
of each. A requested count applies to the initial comparison unless the user
|
|
11
|
+
also specifies refinement rounds. Refinement defaults to four options. Before
|
|
12
|
+
a differently sized refinement round, agree which selected designs to retain
|
|
13
|
+
and how many variations to show. The user's chosen method takes precedence.
|
|
14
|
+
|
|
15
|
+
## Establish the comparison
|
|
16
|
+
|
|
17
|
+
Read the brief and current design. Identify the intended users, primary task,
|
|
18
|
+
content, required interactions, brand constraints and target viewports. Use
|
|
19
|
+
existing answers; ask only for missing information that would change the
|
|
20
|
+
alternatives. State the goal used to rank recommendations.
|
|
21
|
+
|
|
22
|
+
Keep the same real content, states and viewport sizes across previews. Hold
|
|
23
|
+
accessibility and required behavior constant. If content is unavailable, label
|
|
24
|
+
placeholder content and the assumptions it introduces.
|
|
25
|
+
|
|
26
|
+
## Show the initial directions
|
|
27
|
+
|
|
28
|
+
Create four meaningfully different approaches by default to the same goal. Differences
|
|
29
|
+
should affect hierarchy, layout, navigation, interaction or density. Color
|
|
30
|
+
swaps alone do not make distinct directions. Stay within the authorized
|
|
31
|
+
prototype scope; keep the current implementation available for comparison.
|
|
32
|
+
|
|
33
|
+
Show inspectable previews at comparable sizes, using the host's available
|
|
34
|
+
preview or image tools. Include interaction states when they distinguish the
|
|
35
|
+
directions. If rendering is unavailable, label the output as concepts and name
|
|
36
|
+
what remains unverified. Never claim an unseen design was visually checked.
|
|
37
|
+
|
|
38
|
+
Give each direction a stable ID and a short descriptive name. Present the directions
|
|
39
|
+
in recommendation order, strongest first. Mark the strongest choices
|
|
40
|
+
"(Recommended)" and explain why they fit the stated goal. Recommendations are
|
|
41
|
+
judgments; do not invent usability results, performance gains or scores.
|
|
42
|
+
|
|
43
|
+
Beside the previews, use a short comparison table with each direction's ID,
|
|
44
|
+
main difference, benefit and tradeoff. Keep IDs stable when rankings change.
|
|
45
|
+
Ask the user to select their top two and give feedback on each, including what
|
|
46
|
+
to retain and what to change. Follow the host's question format. Wait for the
|
|
47
|
+
answer before narrowing or generating the next round.
|
|
48
|
+
|
|
49
|
+
## Refine the selected two
|
|
50
|
+
|
|
51
|
+
Record the chosen IDs and feedback in the task's durable design notes. Keep
|
|
52
|
+
eliminated directions there so later rounds do not revive rejected ideas by
|
|
53
|
+
accident. If the user chooses one as final, move to final selection below.
|
|
54
|
+
|
|
55
|
+
By default, show four options again:
|
|
56
|
+
|
|
57
|
+
1. The first selected design, unchanged as a comparison.
|
|
58
|
+
2. The second selected design, unchanged as a comparison.
|
|
59
|
+
3. One variation of the first design responding to its feedback.
|
|
60
|
+
4. One variation of the second design responding to its feedback.
|
|
61
|
+
|
|
62
|
+
Give variations new IDs and name their parent IDs. Explain what changed and
|
|
63
|
+
which feedback it addresses. Keep the inherited strengths visible and the
|
|
64
|
+
variation distinct enough to assess. Rerank the round against the goal and
|
|
65
|
+
latest feedback, mark recommended choices, and ask for the next top two with
|
|
66
|
+
feedback on each.
|
|
67
|
+
|
|
68
|
+
Repeat this round only after a new selection. Do not add new unrelated
|
|
69
|
+
concepts unless the user asks to reopen exploration. If feedback leaves no
|
|
70
|
+
meaningful variation to test, offer final selection or ask which unresolved
|
|
71
|
+
tradeoff needs another round instead of inventing cosmetic differences.
|
|
72
|
+
|
|
73
|
+
## Final selection
|
|
74
|
+
|
|
75
|
+
An explicit final choice ends exploration; no minimum round count is required.
|
|
76
|
+
Record the chosen ID, accepted refinements, rejected directions and remaining
|
|
77
|
+
uncertainties. Summarize the final design's layout, interactions and relevant
|
|
78
|
+
responsive states so implementation can follow it.
|
|
79
|
+
|
|
80
|
+
Choosing two for refinement authorizes that comparison, not promotion of a
|
|
81
|
+
winner. Apply the final design within existing implementation authorization;
|
|
82
|
+
when implementation or landing has not been authorized, offer that next step.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Source notices
|
|
2
|
+
|
|
3
|
+
This notice accompanies the hr-diagnosing-bugs bundle when copied on its own.
|
|
4
|
+
|
|
5
|
+
## mattpocock/skills
|
|
6
|
+
|
|
7
|
+
Source: https://github.com/mattpocock/skills (compared at revision `d81f3a1`)
|
|
8
|
+
|
|
9
|
+
- `skills/hr-diagnosing-bugs/`: written for this repository after
|
|
10
|
+
`skills/engineering/diagnosing-bugs/`, which it shares a purpose with.
|
|
11
|
+
|
|
12
|
+
Copyright (c) 2026 Matt Pocock
|
|
13
|
+
|
|
14
|
+
## cursor/plugins (pstack)
|
|
15
|
+
|
|
16
|
+
Source: https://github.com/cursor/plugins (compared at revision `e43c7ee`)
|
|
17
|
+
|
|
18
|
+
- `skills/hr-diagnosing-bugs/SKILL.md`: § Question the premise is adapted from
|
|
19
|
+
`pstack/skills/principle-attack-the-premise/`.
|
|
20
|
+
|
|
21
|
+
Copyright (c) 2026 Lauren Tan
|
|
22
|
+
|
|
23
|
+
## house-rules and MIT permission notice
|
|
24
|
+
|
|
25
|
+
MIT License
|
|
26
|
+
|
|
27
|
+
Copyright (c) 2026 Aaron Queen
|
|
28
|
+
|
|
29
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
30
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
31
|
+
in the Software without restriction, including without limitation the rights
|
|
32
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
33
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
34
|
+
furnished to do so, subject to the following conditions:
|
|
35
|
+
|
|
36
|
+
The above copyright notice and this permission notice shall be included in all
|
|
37
|
+
copies or substantial portions of the Software.
|
|
38
|
+
|
|
39
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
40
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
41
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
42
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
43
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
44
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
45
|
+
SOFTWARE.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hr-diagnosing-bugs
|
|
3
|
+
description: Investigate unknown-cause or intermittent bugs and performance regressions systematically. Evident fixes only on explicit diagnosis requests; exclude change reviews.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Diagnosing bugs
|
|
7
|
+
|
|
8
|
+
When filing an upstream bug, follow [Reporting a bug](references/reporting.md)
|
|
9
|
+
for reduction, submission and fix verification.
|
|
10
|
+
|
|
11
|
+
Follow project guidance for source paths, domain safeguards, tests and deployment.
|
|
12
|
+
Read relevant domain documents when they help explain the affected behavior.
|
|
13
|
+
Choose the next probe from the evidence; these techniques are not mandatory phases.
|
|
14
|
+
|
|
15
|
+
## Choose a model when needed
|
|
16
|
+
|
|
17
|
+
Use the project or host's current benchmark-backed order for bug-finding models
|
|
18
|
+
and efforts. Primary, secondary and tertiary choices can change with benchmark
|
|
19
|
+
results; read the current selection rather than carrying names from an old run.
|
|
20
|
+
If the primary is unavailable through quota, outage or an unsupported route,
|
|
21
|
+
use the next available eligible choice within authorized billing limits only
|
|
22
|
+
when changing provider, model or effort is authorized. When the low-quota
|
|
23
|
+
handoff rule applies, use the `hr-handoff` skill and stop, even if a model change
|
|
24
|
+
was authorized. Preserve review independence and record the model, effort and fallback
|
|
25
|
+
reason.
|
|
26
|
+
If no eligible model is available, report the blocker.
|
|
27
|
+
|
|
28
|
+
## Establish the symptom
|
|
29
|
+
|
|
30
|
+
Identify expected and observed behavior and seek a repeatable signal for the
|
|
31
|
+
reported failure. Source inspection and initial hypotheses can help construct it.
|
|
32
|
+
Prefer an existing test, command or captured input before building a harness.
|
|
33
|
+
Minimize the scenario when doing so helps distinguish causes or create a useful
|
|
34
|
+
regression test; an exhaustively minimal reproduction is not a prerequisite.
|
|
35
|
+
|
|
36
|
+
For intermittent failures, record attempts and failures under comparable
|
|
37
|
+
conditions. Increase the reproduction rate when practical within host load and
|
|
38
|
+
environment safeguards; do not impose a fixed retry count or success threshold.
|
|
39
|
+
For performance regressions, establish a measured baseline before changing code.
|
|
40
|
+
|
|
41
|
+
If reproduction is unavailable, continue useful source and artifact analysis,
|
|
42
|
+
label hypotheses as unverified, and report what would confirm them. Ask for
|
|
43
|
+
missing access or evidence only when it blocks further progress. Production
|
|
44
|
+
instrumentation still requires the applicable authorization.
|
|
45
|
+
|
|
46
|
+
## Distinguish causes
|
|
47
|
+
|
|
48
|
+
State a falsifiable prediction for the likely cause and test it. Consider
|
|
49
|
+
alternatives when evidence is ambiguous or a probe fails; there is no hypothesis
|
|
50
|
+
quota. Use targeted inspection, a debugger, logs, replay, bisection or differential
|
|
51
|
+
testing according to the uncertainty each resolves. Keep probes attributable by
|
|
52
|
+
changing one relevant variable at a time where practical.
|
|
53
|
+
|
|
54
|
+
When the cause depends on event order between actors, control the relevant
|
|
55
|
+
boundaries in an implementation test. Pause a response or write, interrupt the
|
|
56
|
+
process, then resume or restart it and assert the visible result. Use barriers
|
|
57
|
+
or explicit signals instead of sleeps to force the failing order. When the
|
|
58
|
+
failing order is unknown, the `hr-ordering-tests` skill enumerates the orderings
|
|
59
|
+
through the real code and names the sequence that breaks.
|
|
60
|
+
|
|
61
|
+
Keep secrets out of commands and shared artifacts; use environment variables
|
|
62
|
+
for credentials and redact captured headers or logs before displaying them.
|
|
63
|
+
Tag temporary instrumentation so it can be found and removed. When a human must
|
|
64
|
+
perform a reproduction step, give clear steps and the expected observation.
|
|
65
|
+
|
|
66
|
+
## Bound the loop
|
|
67
|
+
|
|
68
|
+
When retrying a probe or fix, cap attempts per hypothesis, stop on
|
|
69
|
+
no-progress (repeated identical calls, oscillation, unchanged error class),
|
|
70
|
+
and enforce time/token/cost ceilings outside the agent so a stuck loop
|
|
71
|
+
terminates instead of retrying.
|
|
72
|
+
|
|
73
|
+
## Question the premise
|
|
74
|
+
|
|
75
|
+
When two fixes that rest on the same assumption have failed the same check,
|
|
76
|
+
stop fixing and test the assumption. Write it down as the one sentence every
|
|
77
|
+
failed fix took for granted. Before a third fix, gather evidence that would
|
|
78
|
+
show the sentence false, such as a count per input, actor or run, and keep it
|
|
79
|
+
as a script that can be rerun. If the evidence contradicts the sentence, find
|
|
80
|
+
what made it false and fix that, instead of compensating for it on every run.
|
|
81
|
+
If the evidence supports the sentence, keep it as a record and look for the
|
|
82
|
+
cause elsewhere.
|
|
83
|
+
|
|
84
|
+
## Fix and verify
|
|
85
|
+
|
|
86
|
+
When the confirmed cause admits more than one viable fix, such as a targeted
|
|
87
|
+
workaround versus a root-cause correction, present the fixes as an offer (the house rules' § Offers) with
|
|
88
|
+
rough relative effort before changing code. Mark the recommendation and name
|
|
89
|
+
the right fix when it differs, with the reason: scope, risk, blast radius or
|
|
90
|
+
existing debt. Skip this when the evidence supports a single obvious fix or
|
|
91
|
+
the user already prescribed the remedy.
|
|
92
|
+
|
|
93
|
+
Make the smallest fix supported by the evidence. Use a regression assertion that
|
|
94
|
+
exercises the actual failure when a suitable seam exists and the change warrants
|
|
95
|
+
it under project guidance. It must fail on the pre-fix code for the intended
|
|
96
|
+
reason and pass after the fix, as `hr-test-audit` requires. Test-first ordering is optional
|
|
97
|
+
unless requested or required by the project.
|
|
98
|
+
|
|
99
|
+
Recheck the original symptom, including the original scenario if a minimized
|
|
100
|
+
case was used. For intermittent or performance issues, compare measurements and
|
|
101
|
+
report their limits. If verification is blocked or coverage lacks a suitable
|
|
102
|
+
seam, state the gap rather than claiming the fix is proven or expanding the
|
|
103
|
+
architecture without authorization.
|
|
104
|
+
|
|
105
|
+
Remove temporary instrumentation and throwaway artifacts. Report the cause,
|
|
106
|
+
change, checks actually run and remaining uncertainty. Recommend preventive work
|
|
107
|
+
only when the evidence supports a concrete benefit; follow project completion
|
|
108
|
+
and scope boundaries.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Reporting a bug
|
|
2
|
+
|
|
3
|
+
Before filing, apply the submission search in your loaded agent guidance's "Repository work" section.
|
|
4
|
+
If that section is unavailable, locate the local house-rules checkout and read
|
|
5
|
+
`rules/core.md` there. Report an unavailable local source before submitting.
|
|
6
|
+
Inspect labels, linked changes and timeline actions as well as comments.
|
|
7
|
+
For the same problem and scope, add new evidence to a matching open issue.
|
|
8
|
+
When a closed report still reproduces and remains materially unchanged,
|
|
9
|
+
explain the failed fix or changed conditions and request reopening. If reopening
|
|
10
|
+
is unavailable, file one linked follow-up. For material changes, use the
|
|
11
|
+
replacement workflow below.
|
|
12
|
+
|
|
13
|
+
Reduce the failure to the smallest self-contained reproduction you can verify.
|
|
14
|
+
Remove unrelated code, dependencies, data and setup. Keep reducing until each
|
|
15
|
+
remaining part is needed to reproduce the failure. For a library failure,
|
|
16
|
+
trace the failing path and isolate its underlying runtime API or language
|
|
17
|
+
operation. Use source inspection, profiling or controlled substitutions to
|
|
18
|
+
choose the next reduction; a slow dependency does not establish its cause.
|
|
19
|
+
|
|
20
|
+
Verify both the final reduction and the original scenario with exact commands
|
|
21
|
+
and pinned versions. Preserve the inputs, output checks and relevant allocation,
|
|
22
|
+
retention, concurrency or lifecycle behavior. A similar standalone failure is
|
|
23
|
+
a contributor observation until evidence connects it to the original symptom.
|
|
24
|
+
For performance or memory bugs, compare equivalent work under the applicable
|
|
25
|
+
benchmark protocol. State units, repetitions, variability and measured controls;
|
|
26
|
+
put the focused case before a larger comparison matrix.
|
|
27
|
+
|
|
28
|
+
Include a cause-and-reduction note in the report: the isolated operation,
|
|
29
|
+
evidence connecting it to the original failure, and remaining uncertainty.
|
|
30
|
+
Test the proposed cause by changing or removing the suspected factor while
|
|
31
|
+
preserving the other relevant conditions. Distinguish a reproduced operation,
|
|
32
|
+
a supported causal explanation and a confirmed internal defect. Do not infer
|
|
33
|
+
an engine defect merely because one runtime is slower on a library workload.
|
|
34
|
+
|
|
35
|
+
Lead with one symptom, the reproduction, expected and actual text results,
|
|
36
|
+
and the versions and environment needed to reproduce it. Check the current
|
|
37
|
+
stable release; identify development builds separately when tested. A verified
|
|
38
|
+
small reproduction can be reported while its internal cause remains unknown.
|
|
39
|
+
|
|
40
|
+
Show direct reproduction commands. Omit incidental scheduling, resource-control
|
|
41
|
+
and observer wrappers from issue and pull request examples. When a control is
|
|
42
|
+
required to reproduce the defect, include it and explain why. Keep exact executed
|
|
43
|
+
commands in measurement records; disclose material conditions beside performance
|
|
44
|
+
results without presenting local controls as prerequisites or changing historical
|
|
45
|
+
conditions. This reporting choice is checked by the author, not a syntax gate.
|
|
46
|
+
|
|
47
|
+
When reduction is blocked, record the attempted isolations and why the remaining
|
|
48
|
+
parts are necessary before asking whether to submit the broader case.
|
|
49
|
+
|
|
50
|
+
Read the repository's contribution guidance and matching issue template,
|
|
51
|
+
including organization defaults. Complete required fields and checklists.
|
|
52
|
+
Submit issue forms through the form or tooling that preserves required fields,
|
|
53
|
+
labels and routing; copied headings alone do not preserve form metadata.
|
|
54
|
+
Verify the published body and metadata. If available tooling cannot preserve
|
|
55
|
+
the form, prepare the report and ask for access or user submission.
|
|
56
|
+
|
|
57
|
+
When an issue needs major or material changes, replace it with a new issue
|
|
58
|
+
in any repository. Compare the proposed revision with the published report.
|
|
59
|
+
A revision is major or material if it changes the reported problem, scope,
|
|
60
|
+
reproduction mechanism or main conclusion. Carry forward relevant evidence and unresolved
|
|
61
|
+
questions, and link the old and new reports both ways. Submit and verify the
|
|
62
|
+
replacement before closing the old report as superseded, not fixed. Routine
|
|
63
|
+
corrections and evidence that leave the report materially unchanged stay in place.
|
|
64
|
+
|
|
65
|
+
Keep one active report per problem after replacement. Follow up with new
|
|
66
|
+
evidence or a specific unanswered question. An absent bot comment is not
|
|
67
|
+
evidence that nothing happened. Do not duplicate a report or close and reopen it merely to seek
|
|
68
|
+
priority. Small examples help investigation; they do not guarantee action or a fix deadline.
|
|
69
|
+
|
|
70
|
+
When a fix build is available, test the same reproduction and report the
|
|
71
|
+
revision and before/after result. Distinguish triage, an open fix, a merged fix
|
|
72
|
+
and a released fix. Verify the affected behavior before calling it resolved.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Source notices
|
|
2
|
+
|
|
3
|
+
This notice accompanies the hr-explain-code bundle when copied on its own.
|
|
4
|
+
|
|
5
|
+
## humanlayer/skills
|
|
6
|
+
|
|
7
|
+
Source: https://github.com/humanlayer/skills (compared at revision `bba9d13ab34f0a87f1cc33df4dd196372393ddfc`)
|
|
8
|
+
|
|
9
|
+
- `skills/hr-explain-code/SKILL.md` and `skills/hr-writing-pr/SKILL.md`: compact
|
|
10
|
+
visual explanation and focused structural-diff guidance adapted from
|
|
11
|
+
`plugins/show-me/skills/show-me/SKILL.md`.
|
|
12
|
+
|
|
13
|
+
Copyright (c) 2026 HumanLayer
|
|
14
|
+
|
|
15
|
+
## house-rules and MIT permission notice
|
|
16
|
+
|
|
17
|
+
MIT License
|
|
18
|
+
|
|
19
|
+
Copyright (c) 2026 Aaron Queen
|
|
20
|
+
|
|
21
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
22
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
23
|
+
in the Software without restriction, including without limitation the rights
|
|
24
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
25
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
26
|
+
furnished to do so, subject to the following conditions:
|
|
27
|
+
|
|
28
|
+
The above copyright notice and this permission notice shall be included in all
|
|
29
|
+
copies or substantial portions of the Software.
|
|
30
|
+
|
|
31
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
32
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
33
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
34
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
35
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
36
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
37
|
+
SOFTWARE.
|