본문으로 건너뛰기
cccskills
무료GitHub에 공개

fix-rollbar

Fix a production exception from Rollbar in an interactive Claude Code session. Fetches the occurrence data, analyzes the error, and either implements a fix or adds the error to the ignore list. Use when given a Rollbar occurrence ID.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

astashov/liftosaur스타 761(GitHub 761 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.9 KB

SKILL.md(원문)

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

Fix Rollbar Exception (Interactive)

Fix a production exception from Rollbar. The occurrence ID is: $ARGUMENTS

This is the interactive-session counterpart to aihelpers/rollbar/ (which runs the same flow headlessly in Docker). Unlike the headless variant, you fetch the Rollbar data yourself, and you stop after the fix is implemented — no worktree, no verification, no commit/push/PR. The user reviews and tests.

Prerequisites

ROLLBAR_READ_TOKEN must be set in the environment (used by both API calls and the get_exception.ts/user_events_markdown.ts/get_logs.ts scripts).

Steps

1. Fetch Rollbar / User Data

Stage the artifacts under .tmp/rollbar-$ARGUMENTS/. Skip any step gracefully if it fails — only rollbar.json is required to proceed.

install -d .tmp/rollbar-$ARGUMENTS

rollbar.json (required):

curl -sS -H "X-Rollbar-Access-Token: $ROLLBAR_READ_TOKEN" \
  "https://api.rollbar.com/api/1/instance/$ARGUMENTS" \
  -o .tmp/rollbar-$ARGUMENTS/rollbar.json

Extract item_id, liftosaur_exception_id, person.id, timestamp:

jq -r '.result.item_id, .result.data.liftosaur_exception_id, .result.data.person.id, .result.data.timestamp' \
  .tmp/rollbar-$ARGUMENTS/rollbar.json

item.json (using the item_id above):

curl -sS -H "X-Rollbar-Access-Token: $ROLLBAR_READ_TOKEN" \
  "https://api.rollbar.com/api/1/item/<ITEM_ID>" \
  -o .tmp/rollbar-$ARGUMENTS/item.json

exception.json (only if liftosaur_exception_id is non-null):

TS_NODE_TRANSPILE_ONLY=1 npx ts-node ./lambda/scripts/get_exception.ts <EXCEPTION_ID> \
  > .tmp/rollbar-$ARGUMENTS/exception.json

user_events.md (only if person.id is non-null):

TS_NODE_TRANSPILE_ONLY=1 npx ts-node ./lambda/scripts/user_events_markdown.ts <USER_ID> \
  > .tmp/rollbar-$ARGUMENTS/user_events.md

server_logs.txt (only if both timestamp and person.id are present). The script writes logs-<date>-<userid>.txt into the cwd, so run it from the tmp dir and rename:

DATE=$(node -e "console.log(new Date(<TIMESTAMP> * 1000).toISOString().slice(0,10))")
(cd .tmp/rollbar-$ARGUMENTS && TS_NODE_TRANSPILE_ONLY=1 npx ts-node ../../lambda/scripts/get_logs.ts $DATE <USER_ID>)
mv .tmp/rollbar-$ARGUMENTS/logs-$DATE-<USER_ID>.txt .tmp/rollbar-$ARGUMENTS/server_logs.txt 2>/dev/null || true

2. Parse Exception Data

If exception.json was fetched, parse the nested JSON to get lastState and lastActions:

jq -r '.data' .tmp/rollbar-$ARGUMENTS/exception.json | jq '.lastActions | fromjson' | tee .tmp/rollbar-$ARGUMENTS/lastActions.json | jq '.[-10:]'
jq -r '.data' .tmp/rollbar-$ARGUMENTS/exception.json | jq '.lastState | fromjson' | tee .tmp/rollbar-$ARGUMENTS/lastState.json | jq '{screenStack, progressCount: (.storage.progress | length)}'

The parsed data contains:

  • lastState — full IState (see src/models/state.ts:109), including storage, screenStack, and (possibly empty) progress
  • lastActions — recent Redux actions in reverse-chronological order (newest first)

3. Review User Events Timeline

If user_events.md was fetched, look for the error markers and their surrounding context:

grep -B 5 -A 5 "❌ \*\*ERROR\*\*" .tmp/rollbar-$ARGUMENTS/user_events.md || echo "No error markers found"

4. Review Server Logs (if available)

server_logs.txt can be large — don't read the whole file. Use the timestamp from rollbar.json to grep the surrounding window.

5. Fix or Ignore

Key files for reference:

  • src/types.ts — Core type definitions (IStorage, IProgram, IHistoryRecord, …)
  • src/models/state.ts — IState definition
  • src/ducks/reducer.ts — Redux reducer
  • src/ducks/thunks.ts — Async actions

Option A — add to ignore list when the error isn't worth fixing (browser-extension noise, unsupported browser, third-party script, generic unactionable message, transient already-handled network error, etc.). Append a unique substring of the message to exceptionIgnores in src/utils/rollbar.ts. Use the most specific part; don't ignore so broadly that legitimate errors get swept up.

Option B — fix the bug:

  1. Identify the root cause from the stack trace + state + actions
  2. Make the fix minimal and focused — handle the actual edge case, don't rewrite surrounding code
  3. Ensure the fix doesn't break other scenarios
  4. If the logic is non-trivial, add a unit test that reproduces the bug. Use nearby tests as a style reference.

Once the change is in place, stop and hand back to the user — they'll verify and commit.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Add a new built-in exercise to Liftosaur end-to-end — image (gymvisual.com → S3), catalog registration, description page, and the LLM/MCP exercise list. Use when adding one or more built-in exercises to the app catalog.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

astashov/liftosaur7612026년 10월 26일 업데이트

add-page

무료

Add a new server-rendered page to the Liftosaur website. Use when creating new public-facing pages with routing, SSR, and client hydration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

astashov/liftosaur7612026년 10월 26일 업데이트

Create a 30%-off coupon for an affiliate or creator on iOS and Android, and draft the reply that tells them how to use it. Use when asked to create, set up or send a coupon or promo code for an affiliate, influencer or creator.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

astashov/liftosaur7612026년 10월 26일 업데이트

Interactively investigate a production Rollbar error. Accepts an occurrence id, item id, item counter, or Rollbar URL. Fetches the error data, assesses how widespread it is, drills into affected users (events, logs, storage, captured state), and works with the developer toward a fix or ignore decision. Use for collaborative debugging; use /fix-rollbar for a straight fetch-and-fix of a single occurrence.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

astashov/liftosaur7612026년 10월 26일 업데이트

Investigate a user-reported issue using server logs, user events, storage snapshots, and Rollbar. Use when given a user id or email plus an issue description (e.g. from a support email).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

astashov/liftosaur7612026년 10월 26일 업데이트

feature

무료

Build a feature end to end — decide worktree vs here, design the architecture and debate it with codex, get the user's approval on a one-pass-readable plan, state the API/state contract, implement with visible diffs, then run two codex reviews (bugs + architecture) and document the result. Use when asked to build/implement/add a feature or do a refactor that involves design decisions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

astashov/liftosaur7612026년 10월 26일 업데이트

astashov의 스킬 모두 보기

이 스킬의 문제 신고