From linear-integration
This skill should be used when the user asks to "check for non-idiomatic code", "review idioms", "find non-idiomatic patterns", "check idiomatic usage", "review code style", "find Java-style Kotlin", "find unidiomatic code", or wants a systematic codebase review focused on non-idiomatic language usage that files findings as Linear issues.
How this skill is triggered — by the user, by Claude, or both
Slash command
/linear-integration:create-linear-idiom-issuesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Review the codebase for non-idiomatic language usage, then file each finding as a Linear issue.
Review the codebase for non-idiomatic language usage, then file each finding as a Linear issue.
This skill dispatches a deep codebase analysis focused exclusively on non-idiomatic code — patterns that work but don't follow the conventions and idioms of the language being used. Each finding is documented with code snippets showing both the non-idiomatic pattern and the idiomatic alternative, then filed as a Linear issue.
Before reviewing code, collect the Linear team, project, and user information.
Fetch all data in parallel using mcp__claude_ai_Linear__list_teams, mcp__claude_ai_Linear__list_projects,
mcp__claude_ai_Linear__list_users, and mcp__claude_ai_Linear__list_issue_labels.
Ask the user all three questions in a single AskUserQuestion call with these questions:
Important: AskUserQuestion requires at least 2 options per question. If a question would have only 1 option,
auto-select that option and omit it from the AskUserQuestion call. If all questions can be auto-selected, skip the
AskUserQuestion call entirely and inform the user of the auto-selected values.
Check existing labels from the fetched label data for the chosen team. If a label named non-idiomatic does not
already exist, create it using mcp__claude_ai_Linear__create_issue_label:
non-idiomatic (color: #3498db) — Non-idiomatic language usageBefore dispatching the review agent, identify the primary language(s) used in the codebase by examining file extensions,
build files, and project configuration (e.g., build.gradle.kts, package.json, Cargo.toml, go.mod,
pyproject.toml). This determines what idiomatic patterns to check for.
Dispatch a subagent to review the codebase. Use the feature-dev:code-explorer subagent type for deep analysis.
Idiomatic Code Reviewer Agent: Review all source files for non-idiomatic usage of the detected language(s). Look for patterns such as:
For each finding, produce:
After the agent completes:
For each approved finding, create a Linear issue using mcp__claude_ai_Linear__save_issue with:
title: <concise finding title>
team: <user-selected team>
project: <user-selected project>
assignee: <user-selected assignee, or omit if "No assignee" was chosen>
labels: ["non-idiomatic"]
priority: <mapped from importance: Critical=1, High=2, Medium=3, Low=4>
state: Todo
description: |
## Description
<what the non-idiomatic pattern is and context>
## Language
<language name>
## Impact
<readability, maintainability, or performance consequences>
## Importance
<Critical | High | Medium | Low> - <brief justification>
## Non-Idiomatic Code
**File:** `<file_path>`
```
Idiomatic Alternative
<code snippet showing the idiomatic version>
After all issues are created, present a final summary with the Linear issue identifiers and links.
## Finding Quality Standards
Each finding must meet these criteria before filing:
- **Specific**: Point to exact code, not vague observations.
- **Actionable**: Include the idiomatic alternative, not just a complaint.
- **Impactful**: Explain real consequences for readability or maintainability.
- **Non-trivial**: Skip pure style preferences (formatting, naming conventions with no clarity impact). Focus on patterns where the idiomatic version is meaningfully clearer, safer, or more maintainable.
## Priority Mapping
| Importance | Linear Priority | Criteria |
|------------|----------------|----------|
| Critical | 1 (Urgent) | Non-idiomatic pattern that introduces subtle bugs or safety issues |
| High | 2 (High) | Pattern that significantly harms readability or misses key language safety features |
| Medium | 3 (Normal) | Verbose or unclear code where idiomatic alternative is substantially better |
| Low | 4 (Low) | Minor idiom improvements, stylistic modernization |
npx claudepluginhub pambrose/pambrose-claude-plugins --plugin linear-integrationEncourages writing code that follows language-specific conventions and patterns. Useful when code compiles but feels foreign, or when contributors from different backgrounds produce conflicting styles.
Audits entire codebases for DRY/YAGNI violations, complexity issues, and naming drift. Supports single-agent or team-review modes with directory scoping.
Reviews code changes before commit or PR with configurable tone (harsh/constructive), project standards from Technical.md, categorized issues, actionable fixes, and optional auto-commit.