跳到正文
cccskills
免费在 GitHub 公开

click-path-audit

Trace every button, toggle and form submit through the state changes it triggers, to find controls that work in isolation but do nothing or the wrong thing together: a later call undoing an earlier one, async races, stale closures, effects that reset state, dead paths. Audit a page, a store or a whole app.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane星标 3(GitHub 3 + cccskills 0)
集成工具Playwright

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md4.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Click-Path Audit

Static review checks that a handler exists and does not crash. It does not check that the final state matches what the button promises. A "New email" button that calls setComposeMode(true) and then selectThread(null) looks correct, until you notice that selectThread resets composeMode to false: the button does nothing.

Phase 1: Scope

ModeUse when
page <path>After building a page, or when a user reports a button that does nothing
store <name>After changing a store or context: audit every caller of the changed actions
appBefore a launch or after a big refactor of shared state

An app audit is expensive: map the stores first (Phase 2), then audit page by page.

Phase 2: Map the state

For every store, context or reducer in scope (Zustand, Redux, React context, Pinia, signals), list each action:

STORE emailStore
  setComposeMode(bool)  → sets {composeMode}
  selectThread(t|null)  → sets {selectedThread, messages}  RESETS {composeMode, composeData}
DANGEROUS RESETS: selectThread resets composeMode, which it does not own

Include the effects (useEffect, watch, subscriptions) that react to state and write state: they are hidden calls in every handler that touches their dependencies.

Phase 3: Trace each touchpoint

For each button, toggle, link with a handler and form submit:

  1. Find the handler and list its calls in order, following calls into the store actions and API helpers.
  2. For each call: what state it reads, what it writes, what it resets as a side effect, and what effect it triggers.
  3. Compare the final state with what the label promises ("Save" saves and shows it saved; "Delete" removes the item from the list and the server).
TOUCHPOINT "New email"  ComposeButton.tsx:42
  1. setComposeMode(true)   → composeMode = true
  2. selectThread(null)     → RESETS composeMode = false   ← conflict
  EXPECTED: compose panel opens
  ACTUAL:   nothing changes

Phase 4: Patterns to check

PatternLooks like
Sequential undoA later call (or its side effect) resets what an earlier call set
Async raceTwo requests whose .then write the same state; the slower one wins, not the newer one. Also: a response arriving after the user navigated away or changed the filter
Stale closuresetCount(count + 1) twice in one handler, or a callback memoized with old dependencies; use functional updates
Effect interferenceThe handler sets a value, an effect watching it resets or overwrites it
Missing transition"Save" validates but never calls the API; "Delete" sets a flag nothing reads; the endpoint it calls was removed
Dead pathThe real work sits behind a condition that is always false at that moment
Optimistic without rollbackThe UI updates before the request, and a failure leaves it showing a state the server does not have
Double submitThe control stays enabled during the request, so two clicks create two records

Phase 5: Report

For each finding:

CLICK-PATH-001  [HIGH]  "New email" in ComposeButton.tsx:42
  Pattern: sequential undo
  Trace:   setComposeMode(true) → selectThread(null) resets composeMode
  Expected: compose panel opens   Actual: nothing happens
  Fix: call selectThread(null) first, or stop selectThread from resetting state it does not own

Severity: CRITICAL loses or corrupts data, HIGH the control does not do what it says, MEDIUM it works with a wrong intermediate state or a race that is rare, LOW cosmetic. Where a test runner exists, propose a component or end-to-end test per finding that clicks the control and asserts the final state (/playwright-pro for web).

VerdictWhen
PASSNo HIGH or CRITICAL findings
CONCERNSMEDIUM findings only
FAILAny HIGH or CRITICAL finding

Protocol

  • Read-only: this skill reports; fixes go through the normal workflow after the user picks them.
  • Confirm a suspected bug by running the flow (dev server plus Playwright, or a component test) before reporting it as HIGH or CRITICAL; mark unconfirmed ones as such.

Next steps

  • /playwright-pro to turn findings into regression tests.
  • /ui-polish once the controls work.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Plan, design, and implement A/B tests and experiments with statistical rigor. Covers hypothesis frameworks, sample sizing, metrics, and result analysis.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Web/mobile accessibility decision guide: WCAG 2.2 AA, ARIA, keyboard nav, focus management, contrast, testing. Use for: a11y, accessibility, wcag, aria, screen reader, keyboard, contrast.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Generate, iterate, and scale ad creative for paid advertising across Google, Meta, LinkedIn, and X. Covers platform specs, creative frameworks, and quality validation.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Musica interactiva para juegos: layering vertical, re-secuenciacion horizontal, stingers, reglas de transicion con sync points, y mapeo de estados de gameplay a musica. Usar para: musica adaptativa, sistema de musica dinamica, transiciones musicales, combat music.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Design multi-agent systems, create agent architectures, define communication patterns, and build autonomous agent workflows with structured evaluation frameworks.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Inter-agent communication protocol for C-suite agent teams. Defines invocation syntax, loop prevention, isolation rules, response formats, and quality loops.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

查看 SebastianLuser 的全部技能

报告此技能的问题