Skip to content

Conversation

@xprabhudayal
Copy link

@xprabhudayal xprabhudayal commented Jan 24, 2026

Summary

Add Claude Agent Skills to automate repetitive developer workflows.

What are Agent Skills?

Skills are .claude/skills/<name>/SKILL.md files that provide Claude with project-specific instructions for common tasks. They're gaining significant traction in the AI developer tools space (see: Pipecat, Vercel Labs).

Added Skills

  1. pr-description: Generates consistent, high-quality PR descriptions following LiveKit conventions.
  2. docstring: Generates Google-style docstrings compatible with pdoc3.

Why?

  • Reduces manual work for contributors
  • Ensures consistent documentation style
  • Aligns with emerging best practices in AI-assisted development

Inspired by Pipecat's implementation and recent discussions in the AI developer community.

Summary by CodeRabbit

  • Documentation
    • Added guidelines for generating Google-style Python docstrings for functions and classes, with usage examples, formatting rules, and style guidance for consistent documentation.
    • Added a PR description template and guidance outlining recommended sections (Summary, Changes, Testing, Related, Checklist) and formatting tips to improve clarity and consistency of pull requests.

✏️ Tip: You can customize this high-level summary in your review settings.

@CLAassistant
Copy link

CLAassistant commented Jan 24, 2026

CLA assistant check
All committers have signed the CLA.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 24, 2026

📝 Walkthrough

Walkthrough

Adds two new skill documentation files: a Google-style Python docstring generator and a LiveKit-style PR description generator. Both are Markdown docs containing usage, templates, formatting examples, and guidelines. No code or public API changes were made.

Changes

Cohort / File(s) Summary
Skill Documentation
\.claude/skills/docstring/SKILL.md, \.claude/skills/pr-description/SKILL.md
Added two Markdown skill docs. docstring/SKILL.md documents a Google-style Python docstring generator (metadata, commands, examples, pdoc3/docformat notes). pr-description/SKILL.md provides a LiveKit-style PR description template (Summary, Changes, Testing, Related, Guidelines, Checklist).

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 I hopped through docs with a cheerful grin,
Two new skill cards folded neatly in,
One sings docstrings, tidy and bright,
The other shapes PRs, concise and right,
Tiny hops of clarity — a joyful skit. 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: adding two Claude Agent Skills (pr-description and docstring) for automated PR descriptions and docstrings, which matches the file additions and PR objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fc84ae1 and d32fb71.

📒 Files selected for processing (1)
  • .claude/skills/docstring/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .claude/skills/docstring/SKILL.md

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.claude/skills/docstring/SKILL.md:
- Line 6: Update the SKILL.md description to clarify that pdoc3 does not
automatically interpret Google-style docstrings unless configured: state that
users must pass the CLI flag `--docformat google` or include a module-level
declaration `__docformat__ = "google"` (or recommend adding that declaration) so
sections like `Args:` render correctly; mention pdoc3 and Google-style
docstrings explicitly and suggest adding the module-level declaration as the
recommended option.

In @.claude/skills/pr-description/SKILL.md:
- Line 37: Update the guideline line that currently reads "Run `ruff check
--fix` and `ruff format` before finalizing" in
.claude/skills/pr-description/SKILL.md to clarify scope by either appending "for
Python changes" or replacing it with a reference to CONTRIBUTING.md (e.g., "see
CONTRIBUTING.md for language-specific formatters") so the ruff requirement only
applies to Python changes; locate the exact string "Run `ruff check --fix` and
`ruff format` before finalizing" in SKILL.md and make the wording change
accordingly.
🧹 Nitpick comments (2)
.claude/skills/docstring/SKILL.md (2)

41-43: Inconsistent section naming: "Example" vs "Examples".

Line 41 shows Example: (singular) in the format template, while Line 67 mentions "Examples section" (plural) in the guidelines. Google-style docstrings typically use Examples: (plural) even for a single example.

📝 Proposed fix for consistency
-    Example:
+    Examples:
         >>> function_name("hello", 42)
         True

Or update the guideline to match:

-- Add Examples section for complex functionality
+- Add Example section for complex functionality

Recommend using the plural form Examples: as it's more commonly seen in Google-style docstrings.

Also applies to: 67-67


64-64: Clarify imperative mood guideline scope.

The guideline states "Use imperative mood ('Return' not 'Returns')" but this applies specifically to the first summary line, not to section descriptions. In the Returns: section itself, descriptive text (e.g., "Description of return value") is appropriate, as shown correctly in the example.

📝 Proposed clarification
-- Use imperative mood ("Return" not "Returns")
+- Use imperative mood for the first line ("Return" not "Returns")
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7fe642d and a04cfe4.

📒 Files selected for processing (2)
  • .claude/skills/docstring/SKILL.md
  • .claude/skills/pr-description/SKILL.md
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
Repo: livekit/agents PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T07:44:56.353Z
Learning: Applies to **/*.py : Use Google-style docstrings
📚 Learning: 2026-01-16T07:44:56.353Z
Learnt from: CR
Repo: livekit/agents PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T07:44:56.353Z
Learning: Applies to **/*.py : Use Google-style docstrings

Applied to files:

  • .claude/skills/docstring/SKILL.md
🔇 Additional comments (2)
.claude/skills/docstring/SKILL.md (1)

1-67: Well-structured docstring skill aligned with project standards.

The skill documentation is comprehensive and aligns well with the retrieved learning that specifies using Google-style docstrings for Python files. The format examples are clear, and the guidelines provide good guidance for documentation quality.

Based on learnings, this adheres to the project's requirement to use Google-style docstrings.

.claude/skills/pr-description/SKILL.md (1)

36-36: CONTRIBUTING.md path is valid. The file exists at the repository root as referenced in the guideline, so the absolute path /CONTRIBUTING.md is correct.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@xprabhudayal
Copy link
Author

Hey team! 👋

Just wanted to add some context here. I've also opened an RFC issue (#4608) that provides a broader proposal for Agent Skills in this repo.

This PR is a minimal first step: just pr-description and docstring skills to help with contribution workflows.

The RFC (#4608) proposes more comprehensive skills like voice-agent-builder that would help developers scaffold voice agents more reliably (complementing the awesome MCP server you just shipped!).

Happy to iterate on either based on your feedback. Thanks for considering!

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.claude/skills/docstring/SKILL.md:
- Around line 12-15: The fenced code block containing the commands "/docstring
ClassName" and "/docstring path/to/file.py" lacks a language tag; update the
opening triple-backticks to include a language (for example use "text" or
"bash") so the block reads like "```text" to satisfy Markdownlint MD040 and
remove tooling noise.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a04cfe4 and fc84ae1.

📒 Files selected for processing (2)
  • .claude/skills/docstring/SKILL.md
  • .claude/skills/pr-description/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .claude/skills/pr-description/SKILL.md
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
Repo: livekit/agents PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T07:44:56.353Z
Learning: Applies to **/*.py : Use Google-style docstrings
📚 Learning: 2026-01-16T07:44:56.353Z
Learnt from: CR
Repo: livekit/agents PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T07:44:56.353Z
Learning: Applies to **/*.py : Use Google-style docstrings

Applied to files:

  • .claude/skills/docstring/SKILL.md
🪛 markdownlint-cli2 (0.18.1)
.claude/skills/docstring/SKILL.md

12-12: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants