Skip to content

Add brainstorming and issue-triage Claude Code skills#9

Merged
rammrain merged 3 commits into
mainfrom
feature/claude-skills
Apr 10, 2026
Merged

Add brainstorming and issue-triage Claude Code skills#9
rammrain merged 3 commits into
mainfrom
feature/claude-skills

Conversation

@rammrain
Copy link
Copy Markdown
Member

@rammrain rammrain commented Apr 9, 2026

Summary

  • Add /brainstorming skill for collaborative design sessions (one-question-at-a-time dialogue, approach proposals, incremental design output)
  • Add /issue-triage skill for classifying, prioritizing, and labeling GitHub issues with structured triage summaries
  • Document both skills in CLAUDE.md

Closes #3

Test plan

  • Verify /brainstorming skill triggers and walks through the design process
  • Verify /issue-triage <number> reads an issue and produces a triage summary
  • Confirm skills appear in Claude Code's skill list

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Added a brainstorming workflow for collaborative SDK/API design, with stepwise guidance, trade-off exploration and a template for producing short validated design sections.
    • Added an issue‑triage workflow for standardised GitHub issue classification, priority, affected areas, suggested labels and recommended next steps.
    • Updated repository guidance introducing two new Claude Code commands to support these workflows.
  • Chores

    • Added a markdown‑lint check to CI to enforce documentation style.

Closes #3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 9, 2026

📝 Walkthrough

Walkthrough

Added two new Claude Skills (brainstorming and issue-triage) as Markdown skill definitions and documented them in CLAUDE.md. Also added a markdown-lint CI job to .github/workflows/build.yml. No source code or public API signatures were modified.

Changes

Cohort / File(s) Summary
Claude Skills
.claude/skills/brainstorming/SKILL.md, .claude/skills/issue-triage/SKILL.md
Introduced two new skill definition files: a stepwise brainstorming workflow for designing SDK/API features and an issue-triage workflow for classifying, prioritising, labelling, and recommending next steps for GitHub issues.
Repository Docs
CLAUDE.md
Added a "Skills" section describing the /brainstorming and /issue-triage Claude Code commands, their inputs and expected outputs.
CI Workflow
.github/workflows/build.yml
Added a new markdown-lint job using DavidAnson/markdownlint-cli2-action@v19 to validate repository Markdown as part of CI.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I nibble at ideas, soft and bright,
I hop through issues, sorting them right,
With questions in paw and plans in my trail,
I sketch a design and leave a neat trail. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the main change: adding two Claude Code skills for brainstorming and issue triaging.
Linked Issues check ✅ Passed The pull request fully addresses all coding objectives from issue #3: brainstorming skill with design workflow and validation, issue-triage skill with classification/prioritisation/labelling, documentation in CLAUDE.md, and markdown linting CI job.
Out of Scope Changes check ✅ Passed All changes directly support the objectives: skill definitions, documentation updates, and markdown linting infrastructure are all in scope for issue #3.
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.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/claude-skills

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

Copy link
Copy Markdown

@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.

🧹 Nitpick comments (3)
.claude/skills/issue-triage/SKILL.md (1)

63-87: Add a language to the fenced code block to satisfy markdown linting.

The sample block is currently an untyped fence, which triggers MD040.

Proposed fix
-```
+```markdown
 ## Triage Summary
 
 **Type:** <type>
 **Priority:** <priority>
 **Areas:** <comma-separated areas>
 **Duplicates/Related:** <issue numbers or "None found">
@@
 <1-3 actionable items for addressing the issue>
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @.claude/skills/issue-triage/SKILL.md around lines 63 - 87, The fenced code
block containing the "## Triage Summary" sample is missing a language tag
(triggering MD040); update the opening fence from tomarkdown so the
block is explicitly typed, keeping the same content and the closing ``` intact;
ensure the change is made in the sample block around the "## Triage Summary"
header so markdown linters recognize the block language.


</details>

</blockquote></details>
<details>
<summary>CLAUDE.md (1)</summary><blockquote>

`29-29`: **Align `/issue-triage` usage text with the skill’s accepted inputs.**

The skill supports issue number **or URL** (and can list recent untriaged issues when omitted), but this line currently implies number-only usage. Expanding this sentence would make the docs fully consistent.



<details>
<summary>Proposed wording</summary>

```diff
-- `/issue-triage` — Classify, prioritize, and label a GitHub issue. Pass an issue number (e.g. `/issue-triage 12`) to get a structured triage summary with type, priority, affected code areas, and suggested labels.
+- `/issue-triage` — Classify, prioritize, and label a GitHub issue. Pass an issue number or URL (e.g. `/issue-triage 12`), or run without an argument to triage recent untriaged issues; returns a structured summary with type, priority, affected code areas, and suggested labels.
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` at line 29, Update the `/issue-triage` usage line to reflect
accepted inputs: mention that it accepts an issue number or a full issue URL,
and that omitting the argument lists recent untriaged issues; replace the
current number-only phrasing with a sentence like "Use `/issue-triage` with an
issue number (e.g. `/issue-triage 12`) or a full issue URL (e.g. `/issue-triage
https://github.com/org/repo/issues/12`), or run `/issue-triage` with no argument
to list recent untriaged issues" so the documentation for `/issue-triage`
matches the skill's actual behavior.
```

</details>

</blockquote></details>
<details>
<summary>.claude/skills/brainstorming/SKILL.md (1)</summary><blockquote>

`34-50`: **Use en dashes for number ranges for consistent technical writing style.**

Consider replacing `200-300` and `2-3` with `200–300` and `2–3`.

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/brainstorming/SKILL.md around lines 34 - 50, Replace
hyphen-minus ranges with en dashes in the SKILL.md text to match the style
guideline: change "200-300" to "200–300" in the "Break it into sections of
200-300 words" line and change "2-3" to "2–3" in the "Always propose 2-3
approaches" line; scan the rest of .claude/skills/brainstorming/SKILL.md for any
other numeric ranges or similar constructs and update them to use en dashes for
consistency.
```

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.claude/skills/brainstorming/SKILL.md:

  • Around line 34-50: Replace hyphen-minus ranges with en dashes in the SKILL.md
    text to match the style guideline: change "200-300" to "200–300" in the "Break
    it into sections of 200-300 words" line and change "2-3" to "2–3" in the "Always
    propose 2-3 approaches" line; scan the rest of
    .claude/skills/brainstorming/SKILL.md for any other numeric ranges or similar
    constructs and update them to use en dashes for consistency.

In @.claude/skills/issue-triage/SKILL.md:

  • Around line 63-87: The fenced code block containing the "## Triage Summary"
    sample is missing a language tag (triggering MD040); update the opening fence
    from tomarkdown so the block is explicitly typed, keeping the same
    content and the closing ``` intact; ensure the change is made in the sample
    block around the "## Triage Summary" header so markdown linters recognize the
    block language.

In @CLAUDE.md:

  • Line 29: Update the /issue-triage usage line to reflect accepted inputs:
    mention that it accepts an issue number or a full issue URL, and that omitting
    the argument lists recent untriaged issues; replace the current number-only
    phrasing with a sentence like "Use /issue-triage with an issue number (e.g.
    /issue-triage 12) or a full issue URL (e.g. /issue-triage https://github.com/org/repo/issues/12), or run /issue-triage with no argument
    to list recent untriaged issues" so the documentation for /issue-triage
    matches the skill's actual behavior.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Organization UI

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `8d36c9ed-a62d-483e-9bf5-e8455cf5baff`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between becdfe1a1d6322c70b2929f7bc79234fd8d94449 and 73f93b9b90cfdac1e85487eb2f3d3d394e30f1c6.

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `.claude/skills/brainstorming/SKILL.md`
* `.claude/skills/issue-triage/SKILL.md`
* `CLAUDE.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

- Add language tag to fenced code block in issue-triage skill (MD040)
- Expand /issue-triage docs to mention URL and no-argument usage
- Add markdown-lint job to pull request workflow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@rammrain
Copy link
Copy Markdown
Member Author

Addressed 2 of 3 CodeRabbit nitpicks in f5114c8:

  • issue-triage code fence — Added markdown language tag (MD040). ✅
  • CLAUDE.md /issue-triage docs — Expanded to mention URL input and no-argument mode. ✅
  • En dashes for number ranges — Not applying. These are plain markdown files consumed by an LLM, not typeset prose. Hyphens are the convention used in the reference skills and throughout this repo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CLAUDE.md`:
- Around line 28-29: The two markdown list items for the slash commands
(`/brainstorming` and `/issue-triage`) exceed the 80-character MD013 limit; fix
by wrapping their descriptions to multiple lines so no line is longer than 80
characters, keeping the leading "- `/brainstorming` —" and "- `/issue-triage` —"
prefixes on the first line and continuing the remainder of each description on
subsequent indented lines (preserve punctuation and examples like
"`/issue-triage 12`" intact) so markdown-lint passes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1737d329-9b48-4d1e-8cf9-01d30cd1847e

📥 Commits

Reviewing files that changed from the base of the PR and between 73f93b9 and f5114c8.

📒 Files selected for processing (3)
  • .claude/skills/issue-triage/SKILL.md
  • .github/workflows/build.yml
  • CLAUDE.md
✅ Files skipped from review due to trivial changes (1)
  • .claude/skills/issue-triage/SKILL.md

Comment thread CLAUDE.md
Comment on lines +28 to +29
- `/brainstorming` — Collaborative design session for new features, API coverage, or SDK improvements. Asks questions one at a time, proposes approaches with trade-offs, then outputs a design document to `docs/plans/`.
- `/issue-triage` — Classify, prioritize, and label a GitHub issue. Pass an issue number or URL (e.g. `/issue-triage 12`), or run without an argument to triage recent untriaged issues; returns a structured summary with type, priority, affected code areas, and suggested labels.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix MD013 on Line 28 and Line 29 to unblock CI.

Both lines exceed the configured 80-character limit, so markdown-lint fails and blocks the workflow.

Suggested patch
-- `/brainstorming` — Collaborative design session for new features, API coverage, or SDK improvements. Asks questions one at a time, proposes approaches with trade-offs, then outputs a design document to `docs/plans/`.
-- `/issue-triage` — Classify, prioritize, and label a GitHub issue. Pass an issue number or URL (e.g. `/issue-triage 12`), or run without an argument to triage recent untriaged issues; returns a structured summary with type, priority, affected code areas, and suggested labels.
+- `/brainstorming` — Collaborative design session for new features,
+  API coverage, or SDK improvements. Asks questions one at a time,
+  proposes approaches with trade-offs, then outputs a design document
+  to `docs/plans/`.
+- `/issue-triage` — Classify, prioritise, and label a GitHub issue.
+  Pass an issue number or URL (e.g. `/issue-triage 12`), or run without
+  an argument to triage recent untriaged issues; returns a structured
+  summary with type, priority, affected code areas, and suggested labels.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- `/brainstorming` — Collaborative design session for new features, API coverage, or SDK improvements. Asks questions one at a time, proposes approaches with trade-offs, then outputs a design document to `docs/plans/`.
- `/issue-triage` — Classify, prioritize, and label a GitHub issue. Pass an issue number or URL (e.g. `/issue-triage 12`), or run without an argument to triage recent untriaged issues; returns a structured summary with type, priority, affected code areas, and suggested labels.
- `/brainstorming` — Collaborative design session for new features,
API coverage, or SDK improvements. Asks questions one at a time,
proposes approaches with trade-offs, then outputs a design document
to `docs/plans/`.
- `/issue-triage` — Classify, prioritise, and label a GitHub issue.
Pass an issue number or URL (e.g. `/issue-triage 12`), or run without
an argument to triage recent untriaged issues; returns a structured
summary with type, priority, affected code areas, and suggested labels.
🧰 Tools
🪛 GitHub Check: markdown-lint

[failure] 29-29: Line length
CLAUDE.md:29:81 MD013/line-length Line length [Expected: 80; Actual: 277] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 28-28: Line length
CLAUDE.md:28:81 MD013/line-length Line length [Expected: 80; Actual: 218] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` around lines 28 - 29, The two markdown list items for the slash
commands (`/brainstorming` and `/issue-triage`) exceed the 80-character MD013
limit; fix by wrapping their descriptions to multiple lines so no line is longer
than 80 characters, keeping the leading "- `/brainstorming` —" and "-
`/issue-triage` —" prefixes on the first line and continuing the remainder of
each description on subsequent indented lines (preserve punctuation and examples
like "`/issue-triage 12`" intact) so markdown-lint passes.

@rammrain rammrain merged commit b95bb7d into main Apr 10, 2026
5 checks passed
@rammrain rammrain deleted the feature/claude-skills branch April 10, 2026 04:51
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.

Set up Claude Skills for brainstorming and issue triaging

1 participant