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
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: patch
---

### Changed

- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: patch
---

### Changed

- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs.
8 changes: 4 additions & 4 deletions plugins/performance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ user's own `/goal` or `/loop` condition, which sets its cadence and when it stop
goal, climb repeats the change-and-measure step until the target and the goal's `min_attempts`
are both reached.

- **Pointer**: when you want a per-goal optimization loop run end to end, fetch the post's [The loop, thread by thread section](https://claude.dev/blog/how-we-made-claude-ai-faster/#the-loop-thread-by-thread) live; no docs page covers a per-goal optimization loop as of 2026-10-02. **As of**: 2026-10-02. **Recheck trigger**: a docs page starts covering a per-goal loop.
- **Pointer**: when you want a per-goal optimization loop run end to end, fetch the post's [The loop, thread by thread section](https://claude.dev/blog/how-we-made-claude-ai-faster/#the-loop-thread-by-thread) live; no docs page covers a per-goal optimization loop.

Each `SKILL.md` frontmatter carries `metadata.workflow-stage` and `metadata.summary`. Claude Code
does not act on `metadata`; both keys are read by the marketplace's own
Expand Down Expand Up @@ -92,16 +92,16 @@ rather than presenting it as consensus:
the derivable `1/(1-p)` floor is the part that is actually enforced.
- **p95 is this plugin's choice.** The plugin reports a median beside one high-order percentile, and
picks p95 as that percentile.
- **Pointer**: when choosing which high-order percentile to report, fetch the Google SRE Book's [Aggregation section](https://sre.google/sre-book/service-level-objectives/#aggregation-1Ls9hQin) live. **As of**: 2026-10-02. **Recheck trigger**: that section changes the percentiles it discusses.
- **Pointer**: when choosing which high-order percentile to report, fetch the Google SRE Book's [Aggregation section](https://sre.google/sre-book/service-level-objectives/#aggregation-1Ls9hQin) live.
- **The variance refusal is this plugin's rule.** The harness refuses to report above its variance
threshold rather than warning and printing.
- **Counting over wall-clock time is this plugin's rule for every counter.** It applies the rule to
instruction counts, syscalls, queries and process spawns, and process-spawn count is its headline
metric.
- **Pointer**: when weighing instruction counts against execution time, fetch the Cachegrind manual's [Overview](https://valgrind.org/docs/manual/cg-manual.html#cg-manual.overview) live. **As of**: 2026-10-02. **Recheck trigger**: a Valgrind release changes that section.
- **Pointer**: when weighing instruction counts against execution time, fetch the Cachegrind manual's [Overview](https://valgrind.org/docs/manual/cg-manual.html#cg-manual.overview) live.
- **Warmup does not establish steady state.** Discarding warmup iterations is fine; claiming steady
state is not.
- **Pointer**: when checking how often benchmarks reach a steady state, fetch Barrett et al., [Virtual Machine Warmup Blows Hot and Cold](https://doi.org/10.1145/3133876) (OOPSLA 2017) live. **As of**: 2026-10-02. **Recheck trigger**: a later study revises that finding.
- **Pointer**: when checking how often benchmarks reach a steady state, fetch Barrett et al., [Virtual Machine Warmup Blows Hot and Cold](https://doi.org/10.1145/3133876) (OOPSLA 2017) live.

## Relationship to neighboring plugins

Expand Down
170 changes: 85 additions & 85 deletions plugins/performance/reference/techniques.md

Large diffs are not rendered by default.

4 changes: 1 addition & 3 deletions plugins/performance/skills/climb/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,6 @@ before the first attempt.

- **Pointer**: for what `--keep` refuses and what it moves, see
[git-reset `--keep`](https://git-scm.com/docs/git-reset#Documentation/git-reset.txt---keep).
**As of**: 2026-11-10. **Recheck trigger**: the git-reset page changes the `--keep` description.

## When the run ends

Expand Down Expand Up @@ -177,8 +176,7 @@ Changes, oldest first, one line each:

- **Pointer**: for which worktrees `remove` accepts, see
[git-worktree `remove`](https://git-scm.com/docs/git-worktree#Documentation/git-worktree.txt-remove).
**As of**: 2026-10-04 (ignored-only output was also checked by hand: removal succeeds). **Recheck
trigger**: that section changes what counts as a clean worktree.
Ignored-only output was also checked by hand: removal succeeds.

## Boundary

Expand Down
6 changes: 1 addition & 5 deletions plugins/performance/skills/go-faster/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,6 @@ data folder and a transcript; nothing else sets them.
- **Pointer**: when deciding what an eval run can reach, fetch
[How runs are isolated](https://code.claude.com/docs/en/plugin-evals#how-runs-are-isolated)
and [Grant tools](https://code.claude.com/docs/en/plugin-evals#grant-tools) live.
- **As of**: 2026-10-11
- **Recheck trigger**: either section changes what a run's Bash can read or write, or which
variables reach the run.

Then take the lock, one sweep per repository and worktree:

Expand Down Expand Up @@ -108,8 +105,7 @@ This skill sets no foreground or background mode on the sweeper.

- **Pointer**: when deciding whether the sweeper runs in the background in this session, fetch
[Run subagents in foreground or background](https://code.claude.com/docs/en/sub-agents#run-subagents-in-foreground-or-background)
live. **As of**: 2026-10-11. **Recheck trigger**: that section changes which cases run a
subagent in the background, or what a request or a definition field can choose.
live.

If the sweeper fails or returns `write-denied` or `refused-by-guard`, release the lock (Step 4) and
report what it said, including the refused command.
Expand Down
9 changes: 4 additions & 5 deletions plugins/performance/skills/go-faster/reference/areas.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,10 +264,10 @@ them live when a command's output, or the files you find, do not match the entry

- **Source**: the permission rules in the project, local and user settings files this run can
read. Resolve each file's path from the settings pointers in the **Upstream pointers** block
above (as of 2026-10-11; recheck trigger: those pointers leave that block), fetched live in this run the way a catalog pointer is: where each file sits,
above, fetched live in this run the way a catalog pointer is: where each file sits,
including where the local file sits in a git repository or a worktree, is the page's to state.
The user file honors `CLAUDE_CONFIG_DIR` (its record is also in the **Upstream pointers** block above;
as of 2026-10-11; recheck trigger: that record leaves that block).
The user file honors `CLAUDE_CONFIG_DIR` (its record is also in the **Upstream pointers** block
above).
Settings files can hold tokens in `env`, so never Read them; findings.py reads them and prints
only counts.
- **Run**: `"$PY" "$ROOT/scripts/findings.py" permission-counts --file <path> --file <path> ...`
Expand All @@ -292,8 +292,7 @@ them live when a command's output, or the files you find, do not match the entry

- **Source**: the instruction files loaded at launch, read only: the instruction files, the
`AGENTS.md` files and the rules without a `paths:` key that the memory pointers in the
**Upstream pointers** block above (as of 2026-10-11; recheck trigger: those pointers leave that
block) say load at launch. Fetch those sections live in this run the way a
**Upstream pointers** block above say load at launch. Fetch those sections live in this run the way a
catalog pointer is, and take the file list and the conditions on it from them; this file keeps
no copy. Startup token history through its owner.
- **Run**: `wc -l` over the files that exist; `/context-budget:audit --ledger`.
Expand Down
3 changes: 1 addition & 2 deletions plugins/performance/skills/snapshot/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ refuses above a variance threshold: pyperf, Criterion, JMH and benchstat all war
number anyway.

- **Pointer**: when you need pyperf's own stability thresholds, fetch
[pyperf check](https://pyperf.readthedocs.io/en/latest/cli.html#check-cmd) live. **As of**:
2026-10-02. **Recheck trigger**: that section turns a check from a warning into a failure.
[pyperf check](https://pyperf.readthedocs.io/en/latest/cli.html#check-cmd) live.

### 1b. Measuring-tool integrity (before timing)

Expand Down
3 changes: 1 addition & 2 deletions plugins/performance/skills/verify/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,7 @@ and again after it, and compare the two.

- **Pointer**: when you need the latency read's window, grouping, and cold-tier limits, read
[Field read for Claude Code hook behavior](../../reference/techniques.md#h-ship-roll-out-read-the-field)
live. **As of**: 2026-10-02. **Recheck trigger**: `/harness-ops:observability` renames its
`latency` action, or that catalog entry changes the read's limits.
live.

## Boundary

Expand Down
2 changes: 0 additions & 2 deletions plugins/user-interface/reference/animation/catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -530,8 +530,6 @@ version compiles to (pointer below) and add the `pointer: fine` half where it is

- **Pointer**: Tailwind CSS, "Hover, focus, and other states", "Quick reference" (the `hover` row),
<https://tailwindcss.com/docs/hover-focus-and-other-states#quick-reference>.
- **As of**: 2026-10-29.
- **Recheck trigger**: Tailwind changes the media query its `hover` variant compiles to.

Hover motion doesn't make the target run away. An element that translates or scales on hover moves
its own hit area. At the edge, the cursor falls off, hover ends, the element returns, hover starts
Expand Down
8 changes: 0 additions & 8 deletions plugins/user-interface/reference/animation/performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ at the engines' documentation for the rest:
- What runs on the compositor beyond transform and opacity: Chrome for Developers, "Hardware
accelerated animations", <https://developer.chrome.com/blog/hardware-accelerated-animations>,
and the equivalent notes of each engine the project targets.
- As of 2026-10-11. Recheck when one of these pages changes its property list, or the project's
browser target adds an engine.

A rule that ends in **Audit:** gives the severity `/user-interface:audit` uses for a finding against
it. A component that re-renders every frame because of a state update in a scroll, drag or frame
Expand Down Expand Up @@ -129,8 +127,6 @@ properties? Use the arbitrary-value form, e.g. `transition-[opacity,filter,scale
- **Pointer**: Tailwind CSS, "transition-property", "Quick reference" (what `transition`,
`transition-transform` and `transition-all` compile to),
<https://tailwindcss.com/docs/transition-property#quick-reference>.
- **As of**: 2026-10-29.
- **Recheck trigger**: Tailwind changes the property list of `transition` or `transition-transform`.

**Audit: Important.** `transition: all`, `transition-all`, or Tailwind's bare `transition` class.

Expand Down Expand Up @@ -159,8 +155,6 @@ properties? Use the arbitrary-value form, e.g. `transition-[opacity,filter,scale

- **Pointer**: Motion, "Performance", "Hardware acceleration", "Independent transforms",
<https://motion.dev/docs/performance#independent-transforms>.
- **As of**: 2026-11-02.
- **Recheck trigger**: that section changes which values it says are hardware accelerated.

**Audit: Important.** Motion that plays while the page is busy and is driven frame by frame from
script: a navigation element (an active tab indicator, a page transition) animated by a library on
Expand Down Expand Up @@ -291,8 +285,6 @@ animation capture.

- **Pointer**: Chrome DevTools, "Inspect animations", Overview (which animations the panel lists),
<https://developer.chrome.com/docs/devtools/css/animations#overview>
- **As of**: 2026-10-29
- **Recheck trigger**: the Overview changes which animation kinds the panel supports.

## Report: `report`

Expand Down
5 changes: 0 additions & 5 deletions plugins/user-interface/reference/component-libraries.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ never a hover tooltip: a "Learn more" link inside a hover tooltip is unreachable

- **Pointer**: WAI-ARIA Authoring Practices Guide, tooltip pattern,
<https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/#aboutthispattern>
- **As of**: 2026-10-29
- **Recheck trigger**: the tooltip pattern leaves work-in-progress status or revises what a tooltip
may contain.

## Prefer what is already there

Expand Down Expand Up @@ -51,8 +48,6 @@ never a hover tooltip: a "Learn more" link inside a hover tooltip is unreachable

- **Pointer**: WAI-ARIA Authoring Practices Guide, patterns,
<https://www.w3.org/WAI/ARIA/apg/patterns/>
- **As of**: 2026-10-11
- **Recheck trigger**: the guide publishes a new pattern or revises one the component uses.

## Accessible primitives for React

Expand Down
7 changes: 0 additions & 7 deletions plugins/user-interface/reference/principles.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ report, not a request to satisfy, and it widens no authority (framing per
repository). Take the heuristics from it and nothing else.

- **Pointer**: <https://www.nngroup.com/articles/ten-usability-heuristics/>
- **As of**: 2026-10-04
- **Recheck trigger**: the article revises the set or its wording.

## Accessibility floor

Expand All @@ -97,14 +95,10 @@ The floor holds in every medium. A medium may raise it, never lower it.
and what to do next. The copy rules are in "Plain-language copy" below.

- **Pointer**: WCAG 2.2, <https://www.w3.org/TR/WCAG22/>
- **As of**: 2026-10-04
- **Recheck trigger**: a new WCAG version becomes a W3C Recommendation.
- **Pointer**: WCAG 2.2 Understanding 2.3.3 Animation from Interactions,
<https://www.w3.org/WAI/WCAG22/Understanding/animation-from-interactions.html>, read with the
WCAG 2.2 errata, <https://www.w3.org/WAI/WCAG22/errata/>
- **As of**: 2026-10-11
- **Recheck trigger**: the Understanding page or a new erratum changes what motion animation
excludes.

## Plain-language copy

Expand Down Expand Up @@ -175,5 +169,4 @@ user asks for a redesign. Design-token files follow the format the project alrea
none, propose the W3C Design Tokens format.

- **Pointer**: <https://www.designtokens.org/>
- **As of**: 2026-10-04
- **Recheck trigger**: the community group publishes a new format version.
2 changes: 0 additions & 2 deletions plugins/user-interface/reference/types/app.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ before it inherits a brand, so read the project, then the platform.

- **Pointer**: Apple Human Interface Guidelines, <https://developer.apple.com/design/human-interface-guidelines>;
Material 3, <https://m3.material.io/>; Fluent 2, <https://fluent2.microsoft.design/>
- **As of**: 2026-10-04
- **Recheck trigger**: a platform publishes a new major version of its guidelines.

## Route

Expand Down
3 changes: 0 additions & 3 deletions plugins/user-interface/reference/types/mods.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ built-in `plugin-authoring` skill before writing one. How this repository packag
`docs/contracts/mod-authoring/README.md` in the marketplace repository.

- **Pointer**: <https://code.claude.com/docs/en/plugins/mods/interface>
- **As of**: 2026-10-04
- **Recheck trigger**: the interface page adds, removes or renames a render surface, or changes
which surfaces the Desktop app draws.

## Pick the surface by the kind of message

Expand Down
2 changes: 0 additions & 2 deletions plugins/user-interface/reference/types/terminal.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ For CLI conventions beyond presentation, the Command Line Interface Guidelines a
reference.

- **Pointer**: <https://clig.dev/>
- **As of**: 2026-10-04
- **Recheck trigger**: the guide's output or error sections change.

## TUIs

Expand Down
23 changes: 1 addition & 22 deletions plugins/user-interface/reference/types/touch-web.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,6 @@ drawing stylus reports a fine pointer too: a basic one that cannot hover is rule
- **Pointer**: Media Queries Level 4, `pointer` and `hover`, the examples for each value,
<https://www.w3.org/TR/mediaqueries-4/#pointer> and <https://www.w3.org/TR/mediaqueries-4/#hover>;
MDN, "hover" media feature, <https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/hover#syntax>
- **As of**: 2026-10-29
- **Recheck trigger**: either page changes which devices match `fine` or `hover`.

Hunt for: `:hover` rules outside `@media (hover: hover)`.

Expand Down Expand Up @@ -115,8 +113,6 @@ touch feedback at all; that missing state is graded under the `forms` concern.

- **Pointer**: MDN, `-webkit-tap-highlight-color`,
<https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/-webkit-tap-highlight-color#browser_compatibility>
- **As of**: 2026-10-29
- **Recheck trigger**: the page changes which browsers paint the highlight.

**Audit: Important.** The browser's tap highlight left on in an app that styles its own press
states.
Expand All @@ -137,8 +133,6 @@ where to read it.

- **Pointer**: MDN, `touch-action`, the `manipulation` value,
<https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/touch-action#manipulation>
- **As of**: 2026-10-29
- **Recheck trigger**: the page changes what `manipulation` turns off.

Hunt for: tappable elements with no `touch-action`; a pressed look set from a `click` listener.

Expand Down Expand Up @@ -293,8 +287,6 @@ input font size instead, which is what was causing the zoom (section 4).
<https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta/name/viewport#user-scalable>;
WCAG 2.2 Understanding 1.4.4 Resize Text, "Intent",
<https://www.w3.org/WAI/WCAG22/Understanding/resize-text.html#intent>
- **As of**: 2026-10-29
- **Recheck trigger**: the MDN page changes which browsers ignore the zoom keys, or 1.4.4 changes.

Hunt for: `user-scalable`, `maximum-scale`, `maximumScale`, `userScalable` in the viewport meta tag
or the Next.js `viewport` export.
Expand All @@ -312,8 +304,6 @@ and you almost never want it. Desktop-only admin tools can keep `vh`; note it an

- **Pointer**: MDN, `<length>`, "Relative length units based on viewport",
<https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length#relative_length_units_based_on_viewport>
- **As of**: 2026-10-29
- **Recheck trigger**: the page changes how the small, large or dynamic units are defined.

Hunt for: `100vh`, `h-screen`, `min-h-screen`, `max-h-screen`, `calc(100vh - …)`.

Expand Down Expand Up @@ -369,8 +359,6 @@ touch scrolling. Which primitive, and where its documentation lives, is

- **Pointer**: MDN, `overscroll-behavior`, "Values",
<https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/overscroll-behavior#values>
- **As of**: 2026-10-29
- **Recheck trigger**: the page changes what `none` or `contain` turns off.

Hunt for: `preventDefault` inside `touchmove`; inner scroll containers (`overflow-y: auto`) without
`overscroll-behavior`; modals whose background scrolls when the modal content hits its end;
Expand Down Expand Up @@ -398,8 +386,6 @@ and spring behavior are the `motion` concern (`../animation/gestures.md`).

- **Pointer**: MDN, `touch-action`, "Values",
<https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/touch-action#values>
- **As of**: 2026-10-29
- **Recheck trigger**: the page changes what a pan value leaves to the browser.

Hunt for: carousels, sliders, drag-to-dismiss sheets, sortable lists, and canvases with no
`touch-action`.
Expand Down Expand Up @@ -428,9 +414,6 @@ another standard way out, the user is told how.

- **Pointer**: WCAG 2.2 Understanding 2.1.2 No Keyboard Trap, "Intent",
<https://www.w3.org/WAI/WCAG22/Understanding/no-keyboard-trap.html#intent>
- **As of**: 2026-11-09
- **Recheck trigger**: the Understanding page changes what counts as a standard exit method or when
the user must be told how to leave.

Hunt for: maps, canvases, pan-and-zoom viewers and 2D pickers with `touch-action: none` from the
first render; an activated element with no close control, no outside-tap exit or no Esc handler.
Expand All @@ -456,9 +439,7 @@ is a check width above it, not the floor.

- **Pointer**: when judging sideways scroll against the floor, fetch WCAG 2.2 Understanding 1.4.10
Reflow, "Intent", <https://www.w3.org/WAI/WCAG22/Understanding/reflow.html#intent>
- **As of**: 2026-11-09
- **Recheck trigger**: the Understanding page changes the width or its exceptions, or WCAG 2.x is
superseded as the referenced standard.
- **Recheck trigger**: WCAG 2.x is superseded as the referenced standard.

**Audit: Blocking.** Content that scrolls in two dimensions at the width 1.4.10 names, outside its
exceptions.
Expand Down Expand Up @@ -505,5 +486,3 @@ check, never as verified.
<https://developer.chrome.com/docs/devtools/remote-debugging#debug>; Apple Developer
Documentation, Safari developer tools, "Inspecting iOS and iPadOS" (a single-topic page with no
section anchor found), <https://developer.apple.com/documentation/safari-developer-tools/inspecting-ios>
- **As of**: 2026-10-29
- **Recheck trigger**: either page moves or changes how a device connects.
Loading
Loading