Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Notable changes to house-rules. Versions follow [semantic versioning](https://se
- The T3 steps that read a thread or list threads state their own start, `limit` and `maxCharsPerItem`, so they read the same on T3 builds that differ in order and defaults (a read with no `afterPosition` returns the oldest items first on older builds and the newest first on newer ones; pingdotgg/t3code #33428): `rules/references/multi-agent.md` (the child check, the progress and end-of-thread reads, a finished child's result) and `hr-handoff`'s `references/successor-thread.md` (the header read for `projectId`, the list and the read-back after a settle). A header-only read is `limit: 1`, `maxCharsPerItem: 1`, `runLimit: 1`; the end of a thread is read from `afterPosition` max(0, `itemCount` minus 60), highest `position` newest.
- `hr-sqlite`'s `references/evidence.md` adds a rerun of three measured rows (planner statistics after `PRAGMA optimize`, `synchronous` FULL against NORMAL, and `backup()` against `VACUUM INTO`) on Node 26.13.1 with SQLite 3.54.1. The first figures stay with their versions; the section says the new host, disk and data differ, so the gaps are not attributable to Node or SQLite. Planner statistics still fixed the query (20.4, 6.7 and 8.3 ms to 0.0059 ms); the `synchronous` gap is 7.5 times on this disk, not 87.
- `hr-diagnosing-bugs`' `references/evidence-discipline.md` adds three rules for a chain of causes: label each claim measured, derived or inferred (an inference names the observation or report it rests on), test each causal link on timing, mechanism, magnitude and necessity (a case where the trigger fired without the cause, or a probe that removes it) and treat a refuted link as a dead theory unless a second cause could produce the same effect, and re-measure inherited numbers, with claims about people or ownership held to the same evidence as claims about systems. `SKILL.md` adds a stop rule for tracing a failure back cause by cause: stop at the step that names something you can change that would have prevented it (what produced a state that should never exist, or the code that mishandles a legitimate one), and merge steps past about seven.
- The `hr-better-*` skills and `hr-explain-interface` move to jakubkrehel/skills `a72290d` (each upstream hunk judged): accessibility words the 2.2.2 timer rule as upstream does (auto-updating content needs a control however long it runs), keeps WCAG's limit to content shown alongside other content and its exemption for essential updates, and says a custom dialog must render outside the `inert` container; colors' `@supports` example uses the same `oklch` value as the first; typography's `text-box` examples name both edges (`trim-start cap text`, `trim-end text alphabetic`), because a one-edge `cap` or `alphabetic` value is dropped. Left out: upstream's `100dvh` keyboard note in layout (its "stable chrome" advice conflicts with the sticky-footer recipe here, which the keyboard still covers on iOS Safari), upstream's `hit-areas.md` label rule (already here) and its `explain-interface` token recipe (this fork reads themed and computed values its own way).

## 0.23.0 - 2026-11-11

Expand Down
4 changes: 2 additions & 2 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,14 +179,14 @@ Copyright (c) 2026 Lauren Tan

## jakubkrehel/skills

Source: https://github.com/jakubkrehel/skills (compared at revision `157da62016338e8693dcff93d47154a9e36f2157`)
Source: https://github.com/jakubkrehel/skills (compared at revision `a72290d140249813898ba8648becf6415abcb059`)

- `skills/hr-better-accessibility/`, `skills/hr-better-colors/`, `skills/hr-better-layout/`,
`skills/hr-better-typography/` and `skills/hr-better-writing/`: adapted skill bundles,
including their supporting references and discovery metadata.
- `skills/hr-better-interface/` and `skills/hr-break/` (revision
`592aedc44d7d5b3e29740984252902f3e5402a1c`) and `skills/hr-explain-interface/`
(revision `d574cc8a576dc24256ad38268b8d03d86724a1b3`): adapted skill bundles that
(revision `a72290d140249813898ba8648becf6415abcb059`): adapted skill bundles that
carry their MIT notice.

Copyright (c) 2026 Jakub Krehel
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-accessibility/NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This notice accompanies the hr-better-accessibility bundle when copied on its ow

## jakubkrehel/skills

Source: https://github.com/jakubkrehel/skills (compared at revision `157da62016338e8693dcff93d47154a9e36f2157`)
Source: https://github.com/jakubkrehel/skills (compared at revision `a72290d140249813898ba8648becf6415abcb059`)

- `skills/hr-better-accessibility/`, `skills/hr-better-colors/`, `skills/hr-better-layout/`,
`skills/hr-better-typography/` and `skills/hr-better-writing/`: adapted skill bundles,
Expand Down
4 changes: 2 additions & 2 deletions skills/hr-better-accessibility/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Accessibility rules for web UI: native elements, keyboard and focu
license: MIT
metadata:
upstream: https://github.com/jakubkrehel/skills
upstream_ref: 157da62016338e8693dcff93d47154a9e36f2157
upstream_ref: a72290d140249813898ba8648becf6415abcb059
upstream_path: skills/better-accessibility/
local_patches: 'Use-when description; reduced-motion kill switch spares spinners; 320px reflow keeps the 2D-content exception; carousel pan-y, touch-callout and real-hardware check (from emilkowalski/skills mobile-native); keeps hover gating, overscroll-behavior, rem breakpoints, sticky-focus padding and translate="no" guidance that upstream moved to unvendored better-ui or dropped'
house_rules_patches: "Portable provenance and review verdict; unique SVG title and desc ids"
Expand Down Expand Up @@ -93,7 +93,7 @@ Wrap motion in `@media (prefers-reduced-motion: no-preference)` so it is opt-in.

## Nothing the user needs runs on a timer

Anything moving, blinking or updating on its own for more than 5 seconds needs a visible pause control (2.2.2). Toasts carrying an action or an error stay until dismissed. The rules are in [motion-and-zoom.md](motion-and-zoom.md).
Moving, blinking or scrolling content needs a visible pause control once it lasts more than 5 seconds. Auto-updating content needs one however long it runs, and a frequency control counts (2.2.2). Both apply to content shown alongside other content, and an essential update, such as a progress indicator on a screen with nothing else, is exempt. Toasts carrying an action or an error stay until dismissed. The rules are in [motion-and-zoom.md](motion-and-zoom.md).

## Announce dynamic content

Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-accessibility/focus-and-keyboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ dialogRef.current?.close();
triggerRef.current?.focus(); // return focus to the element that opened it
```

A custom overlay that can't use `<dialog>` needs `role="dialog"`, `aria-modal="true"` and an accessible name via `aria-labelledby`. Make the background `inert` and use the project's tested focus-management utility. Prefer an eligible autofocus target, then a visible, enabled focusable control. Skip hidden, disabled and inert candidates. If none exists, focus the dialog container with `tabindex="-1"`. Restore background interactivity when closing.
A custom overlay that can't use `<dialog>` needs `role="dialog"`, `aria-modal="true"` and an accessible name via `aria-labelledby`. Make the background `inert`, and render the overlay outside the inert container, in a portal or a sibling element, because `inert` on an ancestor disables the dialog too. Use the project's tested focus-management utility. Prefer an eligible autofocus target, then a visible, enabled focusable control. Skip hidden, disabled and inert candidates. If none exists, focus the dialog container with `tabindex="-1"`. Restore background interactivity when closing.

Either way:

Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-accessibility/motion-and-zoom.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Reduced motion targets vestibular triggers, not feedback.

## Autoplay and timed UI

- **Visible controls on anything that moves on its own** (2.2.2). Anything moving, blinking or updating on its own for more than 5 seconds needs a visible pause or stop control, muted looping hero videos included.
- **Visible controls on anything that runs on its own** (2.2.2). Moving, blinking or scrolling content that lasts more than 5 seconds needs a pause, stop or hide control, muted looping hero videos included. Auto-updating content needs one however long it runs, and a frequency control satisfies it. Both apply to content shown alongside other content; an essential update, such as a progress indicator on a screen with nothing else, is exempt.
- **Explicit dismissal over timers.** Auto-dismissal suits low-stakes confirmations and nothing else. A toast carrying an action, an error or information the user may need stays until dismissed.
- **Pause on attention.** Where a toast must time out, give it at least 5 seconds, and pause the timer while it is hovered or focused.
- **Never put critical information only in a timed element.** A vanished toast with the only link to an undo action is data loss on a schedule.
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-colors/NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This notice accompanies the hr-better-colors bundle when copied on its own.

## jakubkrehel/skills

Source: https://github.com/jakubkrehel/skills (compared at revision `157da62016338e8693dcff93d47154a9e36f2157`)
Source: https://github.com/jakubkrehel/skills (compared at revision `a72290d140249813898ba8648becf6415abcb059`)

- `skills/hr-better-accessibility/`, `skills/hr-better-colors/`, `skills/hr-better-layout/`,
`skills/hr-better-typography/` and `skills/hr-better-writing/`: adapted skill bundles,
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-colors/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Color rules for web UI: palette ramps, semantic color tokens, colo
license: MIT
metadata:
upstream: https://github.com/jakubkrehel/skills
upstream_ref: 157da62016338e8693dcff93d47154a9e36f2157
upstream_ref: a72290d140249813898ba8648becf6415abcb059
upstream_path: skills/better-colors/
local_patches: "Use-when description; 14pt bold = 18.67px; P3 fallback severity matches Reporting; better-ui handoff dropped (not vendored); enforce tokens with a lint or guard; gamut mapping described as chroma reduction; light-end spacing outranks even lightness steps"
house_rules_patches: "Portable provenance and review verdict"
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-colors/color-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ For browser matrices predating `oklch()` support, the same layering works with `

@supports (color: oklch(0 0 0)) {
.accent {
background: oklch(0.62 0.19 259);
background: oklch(0.623 0.188 259.815);
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-layout/NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This notice accompanies the hr-better-layout bundle when copied on its own.

## jakubkrehel/skills

Source: https://github.com/jakubkrehel/skills (compared at revision `157da62016338e8693dcff93d47154a9e36f2157`)
Source: https://github.com/jakubkrehel/skills (compared at revision `a72290d140249813898ba8648becf6415abcb059`)

- `skills/hr-better-accessibility/`, `skills/hr-better-colors/`, `skills/hr-better-layout/`,
`skills/hr-better-typography/` and `skills/hr-better-writing/`: adapted skill bundles,
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-layout/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Layout rules for web UI: grouping, alignment, spacing, reading ord
license: MIT
metadata:
upstream: https://github.com/jakubkrehel/skills
upstream_ref: 157da62016338e8693dcff93d47154a9e36f2157
upstream_ref: a72290d140249813898ba8648becf6415abcb059
upstream_path: skills/better-layout/
local_patches: "Use-when description; peek-scroller arithmetic; better-ui handoff dropped (not vendored); dvh/svh, viewport-fit, theme-color and row-squeeze rules (from emilkowalski/skills)"
house_rules_patches: "Portable provenance and review verdict"
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-typography/NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This notice accompanies the hr-better-typography bundle when copied on its own.

## jakubkrehel/skills

Source: https://github.com/jakubkrehel/skills (compared at revision `157da62016338e8693dcff93d47154a9e36f2157`)
Source: https://github.com/jakubkrehel/skills (compared at revision `a72290d140249813898ba8648becf6415abcb059`)

- `skills/hr-better-accessibility/`, `skills/hr-better-colors/`, `skills/hr-better-layout/`,
`skills/hr-better-typography/` and `skills/hr-better-writing/`: adapted skill bundles,
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-typography/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Typography rules for web UI: type scale, line-height, wrapping, tr
license: MIT
metadata:
upstream: https://github.com/jakubkrehel/skills
upstream_ref: 157da62016338e8693dcff93d47154a9e36f2157
upstream_ref: a72290d140249813898ba8648becf6415abcb059
upstream_path: skills/better-typography/
local_patches: "Use-when description; scaled-input recipe keeps a focus ring and cannot shrink; enforce the scale with a lint or guard; per-field wrap/truncate choice and middle truncation (from emilkowalski/skills break-ui); text-stroke overlap note keeps static cuts as possibly overlapping; text-box Firefox 154+ support; review verdict says Report Block"
house_rules_patches: "Portable provenance and review verdict"
Expand Down
6 changes: 3 additions & 3 deletions skills/hr-better-typography/spacing-and-sizing.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ In Tailwind, centralize the per-level classes in a component or `@layer base` ra

## Text trimming with text-box

`text-box` takes which edges to trim (`trim-both`, `trim-start`, `trim-end`) and where:
`text-box` takes which edges to trim (`trim-both`, `trim-start`, `trim-end`) and where. Name both edges, start then end. `cap`, `ex` and `alphabetic` need a second edge value, so `trim-start cap` is dropped and `trim-start cap text` is not:

| Keyword | Trims at |
| ------------ | ----------------------------------------------------- |
Expand All @@ -85,12 +85,12 @@ In Tailwind, centralize the per-level classes in a component or `@layer base` ra

/* trim only the top */
.heading {
text-box: trim-start cap;
text-box: trim-start cap text;
}

/* trim only the bottom */
.label {
text-box: trim-end alphabetic;
text-box: trim-end text alphabetic;
}
```

Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-writing/NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This notice accompanies the hr-better-writing bundle when copied on its own.

## jakubkrehel/skills

Source: https://github.com/jakubkrehel/skills (compared at revision `157da62016338e8693dcff93d47154a9e36f2157`)
Source: https://github.com/jakubkrehel/skills (compared at revision `a72290d140249813898ba8648becf6415abcb059`)

- `skills/hr-better-accessibility/`, `skills/hr-better-colors/`, `skills/hr-better-layout/`,
`skills/hr-better-typography/` and `skills/hr-better-writing/`: adapted skill bundles,
Expand Down
2 changes: 1 addition & 1 deletion skills/hr-better-writing/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Interface copy rules: button and link labels, error messages, empt
license: MIT
metadata:
upstream: https://github.com/jakubkrehel/skills
upstream_ref: 157da62016338e8693dcff93d47154a9e36f2157
upstream_ref: a72290d140249813898ba8648becf6415abcb059
upstream_path: skills/better-writing/
local_patches: "Use-when description; plural check at 0, 1 and many (from emilkowalski/skills break-ui)"
house_rules_patches: "Portable provenance and review verdict"
Expand Down
4 changes: 2 additions & 2 deletions skills/hr-explain-interface/NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ This notice accompanies the hr-explain-interface bundle when copied on its own.

## jakubkrehel/skills

Source: https://github.com/jakubkrehel/skills/tree/d574cc8a576dc24256ad38268b8d03d86724a1b3/skills/explain-interface
Source: https://github.com/jakubkrehel/skills/tree/a72290d140249813898ba8648becf6415abcb059/skills/explain-interface

Adapted from `skills/explain-interface/` at revision `d574cc8a576dc24256ad38268b8d03d86724a1b3`.
Adapted from `skills/explain-interface/` at revision `a72290d140249813898ba8648becf6415abcb059`.

Copyright (c) 2026 Jakub Krehel

Expand Down
2 changes: 1 addition & 1 deletion skills/hr-explain-interface/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ disable-model-invocation: true
license: MIT
metadata:
upstream: https://github.com/jakubkrehel/skills
upstream_ref: d574cc8a576dc24256ad38268b8d03d86724a1b3
upstream_ref: a72290d140249813898ba8648becf6415abcb059
upstream_path: skills/explain-interface/
local_patches: "Explicit-only; routes findings to the hr-better-* skills; follows the host's browser and scratch rules; stacking-context and CSSImportRule guards; selected callable/token/range/keyframe/inference recipes; passive media inventory avoids context creation; screenshot-description reconstruction boundary"
house_rules_patches: "Portable provenance; hr- skill names; theme tokens compared by computed value; pseudo-element geometry from its own computed style; translucent and overlay background colors in the layer search"
Expand Down
Loading