Skip to content
Back to skills

Yap

ASecurity

Have the AI explain something — a PR/diff, a file or module, an error or log, a repo policy, or a dependency/changelog — grounded in real sources (code, git history, docs, policies) with citations, not a confident guess. Use when the user says yap, asks "explain this", "why does this exist", "what changed here", or wants a walkthrough of an error or unfamiliar code.

  • 2 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 19, 2026
ai-agentsrailsgit

Works with

  • mcp

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add karloows/orchraft --skill yap --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Yap?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Yap
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/karloows-yap/badge)](https://www.skillsdirectory.com/skills/karloows-yap)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: yap
description: Have the AI explain something — a PR/diff, a file or module, an error or log, a repo policy, or a dependency/changelog — grounded in real sources (code, git history, docs, policies) with citations, not a confident guess. Use when the user says yap, asks "explain this", "why does this exist", "what changed here", or wants a walkthrough of an error or unfamiliar code.
---

# Yap Workflow

Use this skill when the user asks the AI to explain something and wants the
explanation grounded in what's actually in the repo or its history, not a
generic description.

## Contents

- [At A Glance](#at-a-glance)
- [What This Is Not](#what-this-is-not)
- [Trigger Rules](#trigger-rules)
- [Targets](#targets)
- [Default Path](#default-path)
- [Guardrails](#guardrails)
- [Stop Conditions](#stop-conditions)
- [Handoff](#handoff)
- [Response Examples](#response-examples)

## At A Glance

1. Figure out what the user wants explained and which [target](#targets) it
   is.
2. Gather the real sources for that target — code, diff, git history, repo
   docs/policies, or the error/log itself.
3. Explain it grounded in those sources, citing file:line, commit, or doc
   references instead of asserting from general knowledge alone.
4. Stop. This skill never edits files, comments on anything, or opens/changes
   a PR.

## What This Is Not

- Not `roast`: it doesn't judge, flag policy violations, or post anywhere.
  Yap explains; roast reviews.
- Not a fix workflow. If the explanation reveals a bug, say so and stop —
  don't start editing unless the user separately asks.
- Not permission to guess when the grounding sources don't cover something.
  Say what's unclear or unverifiable instead of filling the gap with a
  plausible-sounding guess.

## Trigger Rules

- Run when the user explicitly asks to yap, explain, walk through, or answer
  "why"/"what changed"/"what does this do" about something in or around the
  repo.
- If the ask is ambiguous about what to explain (no file, PR, error, or topic
  named), ask one concise clarification question instead of guessing the
  target.

## Targets

Pick the grounding sources based on what's being explained:

- **PR / diff** — the PR's diff, commit history, description, and linked
  issue/task, fetched through the GitHub MCP connector (falling back to
  `gh`). Explain what changed and why, citing file:line from the diff.
- **File / module** — the file's current content plus `git log -p` /
  `git blame` on it for why it's shaped the way it is, and any repo docs
  (`CLAUDE.md`, `AGENTS.md`, `README.md`) that describe its role.
- **Error / log / stack trace** — trace the call path through the actual
  source the trace points to; don't explain the error message generically
  without checking what the referenced code does.
- **Repo policy / rule** — the policy file itself
  (`context/policies/*`, CI config, lint config) including any rationale
  section it already has.
- **Dependency / version bump** — the package's actual changelog/release
  notes (if not vendored locally, fetch them with a web fetch or search tool
  when one is available) rather than inferring risk from the version number
  alone.

If the target doesn't fit any of these, ground it in whatever the closest
real source is (repo code, git history, or fetched docs) and say which
source(s) were used.

## Default Path

1. Identify the target and its type from the list above.
2. Gather the grounding sources for that type before writing anything.
3. Read enough of each source to explain accurately — don't stop at a
   filename or a one-line diff hunk if the surrounding context changes the
   answer.
4. Write the explanation citing what was used (file:line, commit SHA, doc
   name, changelog link). Keep it scoped to what was actually asked, not a
   tour of the whole file or repo.
5. If a grounding source is missing or unavailable (no PR, no history, no
   changelog found), say so explicitly rather than filling the gap.

## Guardrails

- Never edit files, commit, push, or touch a PR/issue as part of this skill.
- Never state something as fact without a source backing it; flag inference
  as inference.
- Keep explanations scoped to what was asked — no unrelated tangents about
  other parts of the codebase.

## Stop Conditions

- Stop and ask one clarification question if there's no identifiable target.
- Stop if the named target doesn't exist (no such PR, file, or dependency) —
  say so instead of explaining something adjacent as if it were the target.
- If grounding sources are thin or unavailable, explain what's known, then
  state plainly what couldn't be verified.

## Handoff

- Unless the user asked for plain output, open with a fresh one-line phrase in
  the orc voice, speaking as the Scout from `context/personality.md` (the
  target repo's copy when it exists, otherwise
  `${CLAUDE_PLUGIN_ROOT}/context/personality.md`), when the explanation is
  delivered. If they did, open with the plain explanation instead.
- Note which sources backed the explanation (e.g. "based on the PR diff and
  commit history").
- If blocked, drop the orc voice and state the blocker plainly.

## Response Examples

Opening lines are samples of the orc voice; write a fresh one each time.

Explained a PR:

```text
🗣️ Scout's back. Here's what PR #124 really did on the field. ✨

Explained PR #124 based on its diff and commit history.
```

Explained an error:

```text
🗣️ Hrrm. Tracked the ambush straight back to its camp. ✨

Root cause is in `src/auth/token.ts:42` — traced from the stack trace you
pasted.
```

Blocked, no target:

```text
❓ Chief, what should we yap about: a PR, a file, an error, a policy, or a
dependency?
```

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.