ln-914-community-responder

Responds to unanswered GitHub discussions and issues with codebase-informed replies. Use when clearing community question backlog.

310 stars

Best use case

ln-914-community-responder is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Responds to unanswered GitHub discussions and issues with codebase-informed replies. Use when clearing community question backlog.

Teams using ln-914-community-responder should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ln-914-community-responder/SKILL.md --create-dirs "https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/main/skills-catalog/ln-914-community-responder/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ln-914-community-responder/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ln-914-community-responder Compares

Feature / Agentln-914-community-responderStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Responds to unanswered GitHub discussions and issues with codebase-informed replies. Use when clearing community question backlog.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

> **Paths:** File paths (`shared/`, `references/`, `../ln-*`) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. If `shared/` is missing, fetch files via WebFetch from `https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}`.

# ln-914-community-responder

**Type:** L3 Worker (standalone)
**Category:** 9XX Community Engagement
Responds to unanswered GitHub Discussions and Issues by analyzing the question, searching the codebase for answers, and composing a helpful reply. Supports single-item and batch modes.

---

## Overview

| Aspect | Details |
|--------|---------|
| **Input** | `$ARGUMENTS`: discussion/issue number (`#42`), `batch` (all unanswered P1), or empty (interactive) |
| **Output** | Response comment(s) published to GitHub |
| **Pattern** | Read question → Search codebase → Compose response → Fact-check → Publish |

---

## Phase 0: GitHub Discovery

**MANDATORY READ:** Load `shared/references/community_github_discovery.md`

Execute the discovery protocol. Extract:
- `{owner}/{repo}` for URLs and API calls
- `repo.id` for GraphQL mutations
- `maintainer` login (authenticated user)
- Discussion category IDs

Load strategy: check `docs/community_engagement_strategy.md` in target project, fallback to `shared/references/community_strategy_template.md`. Extract Section 5 (Engagement Metrics) and Section 6 (Tone Guide).

**MANDATORY READ:** Load `shared/references/community_discussion_formatting.md`
**MANDATORY READ:** Load [response_styles.md](references/response_styles.md)
**MANDATORY READ:** Load `shared/references/humanizer_checklist.md`

---

## Phase 1: Load Items

### Single Item Mode

If `$ARGUMENTS` contains a number (e.g., `42`, `#42`):

```bash
# For discussions
gh api graphql -f query='query($owner: String!, $name: String!) {
  repository(owner: $owner, name: $name) {
    discussion(number: {N}) {
      id number title body
      category { name }
      author { login }
      createdAt
      answerChosenAt
      comments(first: 20) {
        totalCount
        nodes { author { login } body createdAt }
      }
    }
  }
}' -f owner="{owner}" -f name="{repo}"
```

```bash
# For issues (if discussion not found)
gh issue view {N} --repo {owner}/{repo} --json number,title,body,author,createdAt,comments,labels
```

### Batch Mode

If `$ARGUMENTS` is `batch`:

1. Fetch recent discussions + issues via GraphQL (last 30 days, open, sorted by created DESC)
2. Filter to P1 items: author != maintainer AND zero maintainer comments
3. Fetch full context for each item (max 10 per batch)

### Interactive Mode

If `$ARGUMENTS` is empty, list recent unanswered items and ask the user which to respond to.

---

## Phase 2: Analyze Context

For each item:

### 2a. Understand the Question

1. Read the discussion/issue body — identify the core question or problem
2. Read existing comments — check if partially answered or if follow-ups changed the scope
3. Detect item type: Q&A question, bug report, feature request, configuration help, general feedback

### 2b. Search Codebase for Answer

Based on the question type, search for relevant information:

| Question Type | Search Strategy |
|---------------|----------------|
| "How do I..." | Grep for keywords in SKILL.md files, README.md, docs/ |
| Bug report | Grep for mentioned function/file, check git log for recent fixes |
| Configuration | Read docs/tools_config.md, CLAUDE.md, relevant SKILL.md |
| Feature request | Check if feature already exists, grep for related patterns |
| Installation | Read README.md installation section, plugin.json |

```
FOR each item:
  1. Extract keywords from question (function names, skill names, error messages)
  2. Grep codebase for keywords (max 5 searches)
  3. Read relevant files (max 3 files, prioritize SKILL.md and docs/)
  4. Check git log for recent changes related to the topic
  5. If answer found → proceed to Phase 3
  6. If not found → mark as "needs-manual" and suggest the user respond directly
```

### 2c. Detect First-Time Poster

```bash
gh api graphql -f query='query($owner: String!, $name: String!) {
  repository(owner: $owner, name: $name) {
    discussions(first: 100) {
      nodes { author { login } }
    }
  }
}' -f owner="{owner}" -f name="{repo}"
```

Count how many discussions the author has created. If 0 previous (this is their first) → flag for Welcome style.

---

## Phase 3: Classify Response Type

**MANDATORY READ:** Load [response_styles.md](references/response_styles.md) — use the classification matrix.

| Item Type | Response Style |
|-----------|---------------|
| Q&A question with answer found | **Technical Answer** |
| Bug report | **Bug Acknowledgment** |
| Feature request / idea | **Feature Acknowledgment** |
| Question already answered elsewhere | **Redirect** |
| First-time poster (any type) | **Welcome** + appropriate content style |
| Stale item with progress update | **Status Update** |
| Cannot find answer in codebase | Mark `needs-manual` — skip composition |

---

## Phase 4: Compose Response

Use the selected style template from `response_styles.md`.

### Required Elements (All Styles)

- **Thank the author** — by name if possible, acknowledge their contribution
- **Answer the question** — direct, clear, linked to source code/docs
- **Invite follow-up** — "Let us know if this helps" or similar
- **No jargon without context** — explain internal terms
- **Link to code** — at least one link to relevant file in the repo

### Batch Mode Composition

In batch mode, compose all responses first, then present ALL for user review before publishing any.

---

## Phase 5: Fact-Check

Before presenting to user, verify every claim:

1. **File paths & links** — verify each linked file exists: `ls {path}`
2. **Code references** — verify mentioned functions/classes exist: `grep -r "{name}"`
3. **Feature descriptions** — re-read source file, confirm accuracy
4. **Install/usage commands** — verify against README.md

5. **Humanizer audit** -- run the audit protocol from `humanizer_checklist.md`. If 3+ AI patterns found, rewrite flagged sections.

**Gate:** If any check fails, fix the response before proceeding.

---

## Phase 6: Review and Publish

### Single Item Mode

Present the composed response to the user. **Wait for explicit approval before publishing.**

### Batch Mode

Present ALL responses in a summary table:

```
### Batch Responses — {N} items

| # | Type | Title | Style | Status |
|---|------|-------|-------|--------|
| {number} | {Discussion/Issue} | {title} | {Technical/Bug/Welcome/...} | Ready |
| {number} | ... | ... | ... | needs-manual |
```

Then show each response body. User can approve all, approve selectively, or edit individual responses.

### Publish Discussion Comment

```bash
gh api graphql -f query='
  mutation($discussionId: ID!, $body: String!) {
    addDiscussionComment(input: {
      discussionId: $discussionId,
      body: $body
    }) {
      comment { url }
    }
  }
' -f discussionId="{discussion.id}" -f body="{response body}"
```

### Publish Issue Comment

```bash
gh issue comment {number} --repo {owner}/{repo} --body "{response body}"
```

Report the comment URL(s) to the user.

---

## Rules

- **Always require user approval** before publishing any response
- **Never close** discussions or issues — only respond
- **Never mark as answered** — let the author do it (for Q&A discussions)
- **Batch limit:** max 10 items per batch (prevent context overload)
- **needs-manual items:** report to user with GitHub URL + reason, do not attempt response
- **Tone:** per strategy Section 6 — respectful, helpful, link to code

---

## Definition of Done

- [ ] Items loaded (single, batch, or interactive selection)
- [ ] Question context analyzed + codebase searched for answers
- [ ] Response type classified per response_styles.md
- [ ] First-time posters detected and welcomed
- [ ] Response(s) composed with links to relevant code/docs
- [ ] Fact-checked (file paths, code references, commands verified)
- [ ] User approved response(s)
- [ ] Published via GraphQL/CLI, comment URL(s) reported
- [ ] needs-manual items reported to user with URLs

---

**Version:** 1.0.0
**Last Updated:** 2026-03-14

Related Skills

ln-913-community-debater

310
from levnikolaevich/claude-code-skills

Launches RFC and debate discussions on GitHub. Use when proposing changes that need community input or voting.

ln-912-community-announcer

310
from levnikolaevich/claude-code-skills

Composes and publishes announcements to GitHub Discussions. Use when sharing releases, updates, or news with the community.

ln-910-community-engagement

310
from levnikolaevich/claude-code-skills

Analyzes community health and delegates engagement tasks. Use when managing GitHub issues, discussions, and announcements.

ln-911-github-triager

310
from levnikolaevich/claude-code-skills

Produces prioritized triage report from open GitHub issues, PRs, and discussions. Use when reviewing community backlog.

ln-840-benchmark-compare

310
from levnikolaevich/claude-code-skills

Runs built-in vs hex-line benchmark with scenario manifests, activation checks, and diff-based correctness. Use when measuring hex-line MCP performance against built-in tools.

ln-832-bundle-optimizer

310
from levnikolaevich/claude-code-skills

Reduces JS/TS bundle size via tree-shaking, code splitting, and unused dependency removal. Use when optimizing frontend bundle size.

ln-831-oss-replacer

310
from levnikolaevich/claude-code-skills

Replaces custom modules with OSS packages using atomic keep/discard testing. Use when migrating custom code to established libraries.

ln-830-code-modernization-coordinator

310
from levnikolaevich/claude-code-skills

Modernizes codebase via OSS replacement and bundle optimization. Use when acting on audit findings to reduce custom code.

ln-823-pip-upgrader

310
from levnikolaevich/claude-code-skills

Upgrades Python pip/poetry/pipenv dependencies with breaking change handling. Use when updating Python dependencies.

ln-822-nuget-upgrader

310
from levnikolaevich/claude-code-skills

Upgrades .NET NuGet packages with breaking change handling. Use when updating .NET dependencies.

ln-821-npm-upgrader

310
from levnikolaevich/claude-code-skills

Upgrades npm/yarn/pnpm dependencies with breaking change handling. Use when updating JavaScript/TypeScript dependencies.

ln-820-dependency-optimization-coordinator

310
from levnikolaevich/claude-code-skills

Upgrades dependencies across all detected package managers. Use when updating npm, NuGet, or pip packages project-wide.