Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Enrich Message

ASecurity

Enriches a draft message with code references, Linear tickets, GitHub links, and factual data from the codebase and all available integrations. Outputs polished markdown with proper links, ready to copy-paste. Use when responding to PR reviews, Slack threads, or any discussion where you want referenceable, factual responses.

4 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentsbashgitapifrontend

Works with

cliapimcp

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add mostafa-drz/claude-skills --skill enrich-message --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Enrich Message?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Enrich Message
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mostafa-drz-enrich-message/badge)](https://www.skillsdirectory.com/skills/mostafa-drz-enrich-message)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: enrich-message
description: >-
  Enriches a draft message with code references, Linear tickets, GitHub links, and
  factual data from the codebase and all available integrations. Outputs polished
  markdown with proper links, ready to copy-paste. Use when responding to PR reviews,
  Slack threads, or any discussion where you want referenceable, factual responses.
argument-hint: "[url] [--brief] [--no-linear]"
disable-model-invocation: true
allowed-tools:
  - AskUserQuestion
  - Bash
  - Read
  - Glob
  - Grep
  - WebSearch
  - WebFetch
  - Write
  - mcp__claude_ai_Linear__list_issues
  - mcp__claude_ai_Linear__get_issue
  - mcp__claude_ai_Linear__list_comments
  - mcp__claude_ai_Linear__list_projects
  - mcp__claude_ai_Linear__get_project
  - mcp__claude_ai_Linear__list_teams
metadata:
  trigger: "Use when responding to PR reviews, Slack threads, or any discussion where you want referenceable, factual responses."
---

# Enrich Message

Enrich a draft message with code references, ticket links, and factual data. Outputs copy-pasteable markdown.

## Preferences

Before starting, use the `Read` tool to read `~/.claude/skills/enrich-message/preferences.md`. If the file does not exist, treat as "no preferences set" and use defaults.

## Context

_On startup, use Bash to detect: current git branch, remotes, repo root, and recent commits (last 5). Skip any that fail._

## Command routing

Check `$ARGUMENTS`:

- **`help`** → display help then stop
- **`config`** → interactive setup then stop
- **`reset`** → delete preferences, confirm, stop
- **anything else** (including empty) → run the skill

### Help

```
Enrich Message — Enriches draft messages with code references, tickets, and facts

Usage:
  /enrich-message                    Enrich draft from conversation context
  /enrich-message <url>              Enrich with a specific thread URL pre-loaded
  /enrich-message --brief            Keep enrichment concise
  /enrich-message --no-linear        Skip Linear ticket search
  /enrich-message config             Set preferences
  /enrich-message reset              Clear preferences
  /enrich-message help               This help

Examples:
  /enrich-message                    Paste your draft + context in chat, then run
  /enrich-message https://github.com/org/repo/pull/123#discussion_r456
                                     Pre-fetch this PR discussion thread

Current preferences:
  (from preferences.md or defaults)
```

### Config

Use `AskUserQuestion` to collect:

- **Q1: Default GitHub org** — e.g., `A-Teams-Network` (used to resolve short PR refs)
- **Q2: Writing style** — Professional / Casual / Match original tone
- **Q3: Reference depth** — Minimal (links only) / Standard (links + brief context) / Deep (links + code snippets + explanation)

Save to `~/.claude/skills/enrich-message/preferences.md`.

### Reset

Delete `~/.claude/skills/enrich-message/preferences.md` and confirm: "Preferences cleared. Using defaults."

## First-time detection

If no preferences file exists, show:

> First time using /enrich-message? Run `/enrich-message config` to set defaults, or just continue with sensible defaults.

Then proceed normally.

## Workflow

### Step 1: Parse inputs

Scan the current conversation for:
- **Draft text** — the user's draft response/comment (may be pasted as text or visible in a screenshot)
- **Context URL(s)** — GitHub PR comment links, Slack thread URLs, or any reference links
- **Screenshots** — read any images the user shared for additional context (comment threads, code diffs)
- **Explicit instructions** — any guidance like "add code references for X" or "mention the ticket for Y"

If `$ARGUMENTS` contains a URL, treat it as the primary context URL.

If inputs are ambiguous, ask:
> I see your draft. What's the context? (paste a URL or describe the thread)

### Step 2: Fetch thread context

Based on the context URL type:

**GitHub PR comment** (`github.com/.../pull/N#discussion_rNNN`):
- Extract owner, repo, PR number, and comment ID from the URL
- Run `gh api repos/{owner}/{repo}/pulls/{pr}/comments` to get the full comment thread
- Run `gh pr view {pr} --repo {owner}/{repo} --json title,body,files,headRefName` for PR context
- Identify the specific file and lines under discussion

**GitHub PR review** (`github.com/.../pull/N#pullrequestreview-NNN`):
- Run `gh api repos/{owner}/{repo}/pulls/{pr}/reviews/{review_id}/comments` for review comments
- Run `gh pr view` for PR context

**GitHub issue** (`github.com/.../issues/N`):
- Run `gh issue view {n} --repo {owner}/{repo} --json title,body,comments`

**Slack thread** (if URL provided):
- Note: Slack MCP not available — ask the user to paste the thread content

**No URL / screenshot only**:
- Extract context from the screenshot content
- Use visible file paths, function names, and discussion text as search seeds

### Step 3: Analyze the topic

From the draft and context, identify:
- **Key claims** — what technical assertions does the draft make? (e.g., "we concatenate files on frontend")
- **Technical concepts** — function names, component names, patterns, architecture decisions mentioned
- **Missing references** — where the draft says something factual but doesn't link to evidence
- **Search seeds** — keywords, file paths, function names to search for in the codebase

### Step 4: Search codebase

For each search seed identified:
1. Use `Grep` to find relevant code across the repo (function definitions, variable names, patterns)
2. Use `Read` to examine matched files for surrounding context
3. Note file paths and line numbers for each reference found

Build code references as GitHub permalink URLs:
- Format: `https://github.com/{owner}/{repo}/blob/{branch}/{path}#L{line}`
- Use the current branch or `main` as appropriate
- If the code is from a PR branch, use that branch's ref

### Step 5: Search Linear (unless --no-linear)

Search Linear for tickets related to the discussion topic:
1. Use `mcp__claude_ai_Linear__list_issues` with keywords from the topic
2. For relevant matches, get details with `mcp__claude_ai_Linear__get_issue`
3. Note ticket identifiers (e.g., AIS-123) and URLs for linking

### Step 6: Search GitHub for related work

Look for additional context:
1. `gh pr list --repo {owner}/{repo} --search "{keywords}" --state all --limit 5` — find related PRs
2. `gh search commits "{keywords}" --repo {owner}/{repo} --limit 5` — find related commits
3. Check other branches if the discussion mentions work-in-progress or upcoming changes

### Step 7: Compose enriched message

Rewrite the draft with enrichments:

1. **Preserve the author's intent** — keep the core message and tone intact
2. **Add inline code references** — link to specific files/lines: `[`filename.ts#L42`](permalink)`
3. **Add ticket references** — mention Linear tickets: `[AIS-123](url)` where relevant
4. **Add PR/commit references** — link related PRs: `[PR #123](url)` or commits
5. **Improve clarity** — fix grammar, tighten phrasing, but don't over-formalize unless configured
6. **Format for the platform**:
   - GitHub comments: use GitHub-flavored markdown, `<details>` blocks for long code snippets
   - Slack: use simpler markdown (bold, links, code blocks)
   - Default: GitHub markdown

Writing style rules:
- Match the formality of the original draft unless preferences say otherwise
- Keep it concise — `--brief` means links only, no extra explanation
- Every factual claim should have a reference (code link, ticket, PR)
- Use relative references where natural ("as implemented in `meetings-tab.tsx`") with the link on the filename

### Step 8: Present output

**Always copy to clipboard** — write the enriched message to `/tmp/enriched-message.md` using the `Write` tool, then run `pbcopy < /tmp/enriched-message.md` via `Bash`. This ensures the user can directly Cmd+V without losing markdown formatting.

After copying, confirm briefly:

> Copied to clipboard. {N} code references, {N} Linear tickets, {N} PR links.
>
> Sources: {list of repos/branches checked}

If any references couldn't be found, mention:
> Could not find code references for: {list}

## Principles

- **Factual, not fabricated** — only reference code, tickets, and links that actually exist. Never invent file paths or line numbers. If a reference can't be found, say so.
- **Preserve the author's voice** — enrich, don't rewrite. The output should sound like the user, just better-sourced.
- **Links must be valid** — every `[text](url)` must point to a real, accessible URL. Use GitHub permalinks with actual commit SHAs or branch names.
- **Read-only** — never post, comment, or modify anything. The user decides when and where to paste.
- **Platform-aware formatting** — GitHub comments support full GFM; Slack needs simpler markdown. Format accordingly.

Attribution

mostafa-drzmostafa-drz
View sourceMore from mostafa-drz →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

1023331 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3331 votes

catchup

Recovers prior coding-agent session context by running `catchup <agent> --since-compact`, which extracts a clean summary of a previous Codex, Claude Code, Antigravity, OpenCode, or Pi Agent session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", or asks to recover/summarize a previous session before continuing. Do NOT use for the current conversation, git history, or any non-agent log.

611 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →