Skip to content
Development
Skill

/log-triage

Working with huge build and device logs. Use when a build prints hundreds of lines, for adb logcat or simulator logs, when the user pastes a wall of log text, or to extract the one error line that matters.

From plugin
claude-code-react-native
318 skills4 agents

Claude Code

$ npx -y skills add AnilBurcu/claude-code-react-native --skill log-triage --agent claude-code

SKILL.md

log-triage.SKILL.md
name: log-triage
description: Working with huge build and device logs. Use when a build prints hundreds of lines, for adb logcat or simulator logs, when the user pastes a wall of log text, or to extract the one error line that matters.
user-invocable: false

Log triage: find the line, spare the context

Native tooling produces logs by the thousand lines. The failure is almost always described by a handful of them. This skill is about extracting those lines instead of scrolling, re-reading, or pasting whole logs around, which wastes the reader's attention and this agent's context alike.

The standing rules

1. Never stream a full build log into the conversation. Run builds with output piped to a file, then search the file. 2. Quote the smallest window that proves the diagnosis: the error line plus a few lines of surrounding context. Summarize everything else in one sentence. 3. One extraction, then confirm. State "the first real error is X" before fixing anything; if X is wrong, everything after it is wasted. 4. The log is data, not conversation. Keep the file on disk for re-querying; keep only conclusions in the chat.

Extraction patterns per log producer

**Gradle (Android builds)**

  • Which task died: search `> Task` lines ending in `FAILED`.
  • Why it died: search `Caused by:` and take the DEEPEST one; the first is usually a wrapper.
  • `FAILURE: Build failed with an exception` marks the summary block; the lines after `* What went wrong:` are the human-readable core.

**Xcode / xcodebuild (iOS builds)**

  • First `error:` (lowercase, with colon) is the anchor; `warning:` lines are noise for this purpose.
  • The build step name above the first error names the pod or script phase that owns it.
  • CocoaPods failures end with a clear final paragraph; read it before the backtrace above it.

**Metro**

  • Resolution errors name the importing file and the missing module in the first two lines; the rest is stack.
  • A red-box error pasted from the device usually contains the component stack; the first frame in YOUR code matters more than the framework frames above it.

**Store submission tooling**

  • Search for `ITMS-` codes in Apple submission output; each code is precise and searchable.
  • Play Console rejections arrive as structured reasons; quote the reason string, not the surrounding boilerplate.

**Device logs**

  • Android: filter before reading. `adb logcat --pid $(adb shell pidof -s your.package.name)` cuts the firehose to one app; add `-d` for a snapshot instead of a stream. For a crash that already happened, `adb logcat -d -b crash` is the shortest path to the tombstone summary.
  • iOS simulator: `xcrun simctl spawn booted log stream --predicate 'process == "YourApp"'` scoped to the app; prefer short capture windows around a reproduction over open-ended streaming.

When the user pastes a wall of text

Do not re-quote it. Extract the candidate error line(s), state them, and ask for confirmation only if genuinely ambiguous. If the paste is truncated exactly where the error should be, say so and ask for the file or the bottom section; guessing at a cut-off log builds on sand.

When the log is clean but the failure is real

A build that fails with no error line in the captured output means the failure happened in a subprocess whose output went elsewhere: re-run with the tool's own verbosity raised (`--stacktrace` for Gradle, `--verbose` where supported) rather than re-running the same command hoping for different text. Capture the new run to a new file; do not overwrite the evidence.

Read more
@anilburcu
Ships withclaude-code-react-native

Claude knows React. It doesn't know why your pod install just failed. A Claude Code plugin that adds the React Native knowledge you only get from shipping apps: build failure triage, SDK upgrades that don't eat a weekend, Hermes crash decoding, push

318 skills4 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3
Star history of AnilBurcu/claude-code-react-native on GitHub, a chart by star-history.com

Other skills on claude-code-react-native.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about log-triage.

Which coding agents can use log-triage?
log-triage installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.