Intent Extraction

VerifiedSafe

Automatically extracts the underlying intent, severity, sentiment, and actionability from issues and PRs, going beyond surface-level requests. Helps with triage, duplicate detection, and generating minimal next steps.

Sby Skills Guide Bot
DevelopmentIntermediate
6/2/2026
Claude CodeCopilot
#issue-triage#intent-extraction#pr-analysis#sentiment-analysis#actionability

Recommended for

Automated summary

This skill extracts the core intent and actionability from issues and pull requests, going beyond surface-level requests to identify underlying needs, severity, emotional tone, and relationship mapping.

Strengths

  • Comprehensive multi-dimensional analysis (type, severity, sentiment, actionability).
  • Includes PR analysis for extracting the problem and implementation guidance.
  • Relationship mapping for detecting duplicates and dependencies.

Limitations

  • Heuristic-based; may misclassify nuanced cases.
  • Requires quality issue/PR descriptions; vague inputs reduce accuracy.
  • Sentiment analysis relies on basic lexicon; fails on sarcasm or non-English repos.
When to use it

When triaging a large volume of issues/PRs to quickly prioritize and understand user needs.

When not to use it

When deep contextual understanding of a single complex issue is needed; human empathy is irreplaceable.

Security analysis

Safe
Quality score92/100

The skill is purely descriptive and contains no executable commands, no destructive actions, no exfiltration attempts, and no obfuscated payloads. It merely provides analysis instructions.

No concerns found

How this analysis is made

Examples

Classify a bug report
Analyze this issue: 'Can't login after update v2.3.1 - I keep getting error 500 when submitting credentials. Works fine in previous version.' Extract type, underlying need, severity, sentiment, actionability, and recommend next step.
Analyze a feature request
Extract intent from this PR: 'Add dark mode' - description says 'Would be nice to have a dark theme for late night coding. Implemented by adding CSS variables.' Identify the problem being solved, assess approach, and extract implementation guidance.
Map relationships between issues
Find relationships between these two issues:
Issue #1: 'App crashes on startup after update'
Issue #2: 'Getting startup failure, version 3.0'
Are they duplicates? What is the underlying need?

Intent Extraction

At a glance

  • Purpose: Convert raw issues/PRs into “what the user actually needs” + actionability.
  • Use when: Analyzing items, mapping duplicates/relationships, or writing briefs.
  • Output: Intent, severity, sentiment, actionability, relationships, and the minimal next step.

Purpose

Surface the real need behind issues and PRs, not just the stated request. Semantic keyword lists (intent, needs-info cues) are config-driven and can be derived from repo templates.

Issue Intent Extraction

Step 1: Classify Type

| Type | Signals | |------|---------| | Bug | "doesn't work", "error", "crash", "broken", stack traces | | Feature | "would be nice", "could you add", "support for", "feature request" | | Question | "how do I", "is it possible", "what does", question marks | | Support | Configuration help, usage questions, troubleshooting | | Meta | Project governance, contributing, community |

Step 2: Extract Underlying Need

Ask: "What is the user actually trying to accomplish?"

Example:

  • Stated: "Add --verbose flag to install command"
  • Underlying need: User can't debug why installation fails
  • Better solution might be: Better error messages, not a flag

Step 3: Assess Severity

| Level | Criteria | |-------|----------| | Critical | Security vulnerability, data loss, complete breakage | | High | Major functionality broken, no workaround | | Medium | Functionality impaired, workaround exists | | Low | Minor inconvenience, cosmetic, edge case |

Step 4: Gauge Emotional State

| Tone | Signals | Response Adjustment | |------|---------|---------------------| | Frustrated | "still broken", "why hasn't", urgency | Acknowledge, prioritize response | | Enthusiastic | "love this", "excited to", "great project" | Match energy, encourage | | Neutral | Factual reporting | Standard professional tone | | Confused | "I don't understand", "not sure if" | Patient, educational |

Sentiment scoring uses a small lexicon by default; adjust the config for non-English repos as needed.

Step 5: Check Actionability

  • Actionable: Clear reproduction steps, specific request, enough context
  • Needs info: Missing environment, vague description, can't reproduce
  • Blocked: Depends on external factor, needs design decision

PR Intent Extraction

PRs are intelligence sources, not merge candidates. Your job is to extract the problem, understand the approach, and implement the fix yourself.

Step 1: Identify the Problem Being Solved

Read:

  1. PR title and description
  2. Linked issues (if any)
  3. Commit messages
  4. The actual code changes

Ask: "What problem does this solve? Why did the contributor think this was worth doing?"

Step 2: Assess the Approach

| Aspect | Questions | |--------|-----------| | Correctness | Does it actually solve the problem? | | Completeness | Are edge cases handled? Tests included? | | Fit | Does the approach match project patterns? | | Scope | Is it focused or does it include unrelated changes? |

Step 3: Extract Implementation Guidance

PRs tell you exactly how to fix the problem. Extract:

  • Root cause: What did the contributor identify as the problem?
  • Solution approach: What's the core fix? (e.g., use path.sep instead of /)
  • Edge cases: What did they handle that you might miss?
  • Test cases: What scenarios did they consider?

Use this to implement your own fix. The PR is your requirements document and reference implementation.

Step 4: Assess Contributor Context

| Factor | How to Determine | Impact | |--------|------------------|--------| | First-time? | Check if first contribution to repo | Warmer welcome, more patience | | Experienced? | Previous accepted PRs | Can be more direct | | Maintainer? | Has write access | Different review bar | | Drive-by? | No previous engagement | May not respond to feedback |

Relationship Mapping

Automated Detection (in triage.ts)

The script detects:

  • Explicit mentions: "Fixes #42", "Related to #30"
  • Number references: "#42" in body/comments

Manual Enrichment

During analysis, also identify:

  • Duplicates: Same underlying issue, different reporters
  • Root cause: Multiple symptoms of one problem
  • Dependency: Item A must be resolved before B
  • Conflict: PRs that can't both be used as the basis for implementation
  • Quality: Whether a PR actually solves the linked issue (strong/medium/weak)

Recording Relationships

In item markdown:

## Relationships
- Duplicate of [ISSUE:28] (same root cause)
- Addressed by [PR:38], [PR:40] (competing fixes)
- Blocks [ISSUE:50] (depends on this fix)

Common Patterns

The "Same Bug, Many Reports" Pattern

Multiple issues report the same underlying problem. Signs:

  • Similar error messages
  • Same affected functionality
  • Clustering in time

Action: Identify the canonical issue, close duplicates with references.

The "Competing PRs" Pattern

Multiple PRs solve the same problem differently.

Action: Evaluate each on merit, pick the best, close others with thanks.

The "Feature Creep PR" Pattern

PR starts solving one thing, grows to include unrelated changes.

Action: Request scope reduction or split into multiple PRs.

The "XY Problem" Pattern

User asks for X (their attempted solution) when they really need Y.

Action: Identify Y, address the actual need.

Opportunity Extraction

During analysis, look for improvements not explicitly requested:

  • Documentation gaps revealed by questions
  • UX friction implied by repeated confusion
  • Reliability gaps implied by flaky or brittle fixes

Record these as opportunity notes and convert high‑impact items into briefs.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/intent-extraction-mm5t8ciz/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/intent-extraction-mm5t8ciz' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/intent-extraction-mm5t8ciz/download' --output '.skill-downloads/intent-extraction-mm5t8ciz/SKILL.md.part' && mv '.skill-downloads/intent-extraction-mm5t8ciz/SKILL.md.part' '.skill-downloads/intent-extraction-mm5t8ciz/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/intent-extraction-mm5t8ciz/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills