본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고