Skip to content

Claude Code: Add Claude Code rules, commands, and authoring skill#201

Open
vprashrex wants to merge 5 commits into
mainfrom
feat/claude-code-tooling
Open

Claude Code: Add Claude Code rules, commands, and authoring skill#201
vprashrex wants to merge 5 commits into
mainfrom
feat/claude-code-tooling

Conversation

@vprashrex

@vprashrex vprashrex commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Issue: #200

Summary

  • Rules (.claude/rules/) - 6 auto-loaded convention files: code-quality, components, hooks, styling, utils, and data-fetching. These encode repo patterns (500 LOC limit, SRP/DRY, reuse-first, file-splitting seams) so they don't have to be re-derived each session.
  • new-feature skill (.claude/skills/new-feature/SKILL.md) - a step-by-step authoring contract for non-trivial coding tasks: branch → orient via rules → reuse-first scan → correct placement → in-style writing → respect limits → lint + build verification.
  • .claude/settings.json - enables the Superpowers plugin (superpowers@claude-plugins-official) for the project.
  • pr-review command cleanup (.claude/commands/pr-review.md) — trimmed and refactored (+43 / −137).
  • CLAUDE.md - Few improvements.

Encodes repo conventions for AI-assisted development: seven rules
files covering components, hooks, API/data-fetching, styling, types,
utils, and code-quality; a 7-step new-feature authoring skill; and
/check, /create-issue, /create-pr commands plus allowed-tools for
/pr-review.

Closes #200
@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds a suite of Claude AI configuration files to the kaapi-frontend repo: six new rule documents covering components, hooks, data-fetching, utils, code quality, and styling; a new new-feature skill; a revised pr-review command with tightened scope and tool restrictions; and a settings file enabling the superpowers plugin.

Changes

Claude AI Workflow & Code Conventions

Layer / File(s) Summary
Plugin enablement & top-level orientation
.claude/settings.json, CLAUDE.md
Enables superpowers@claude-plugins-official plugin in settings and adds a "Claude Code Tooling" guidance section to CLAUDE.md mapping rule files to applicable paths.
PR review command scoping
.claude/commands/pr-review.md
Adds allowed-tools frontmatter restricting the command to specific gh/git subcommands and read-only helpers, narrows review scope to kaapi-specific issues, and simplifies the output-organization rule.
Code architecture rules
.claude/rules/components.md, .claude/rules/hooks.md, .claude/rules/data-fetching.md, .claude/rules/utils.md
Adds four rule documents defining conventions for component file placement/exports, hook naming/interface/ordering discipline, BFF proxy data-fetching with apiFetch/SWR, and shared vs. domain utility organization under app/lib/utils.
Code quality & styling standards
.claude/rules/code-quality.md, .claude/rules/styling.md
Adds ESLint/Prettier/TypeScript enforcement table, SRP/SVG/DRY/file-splitting guidance, JSDoc conventions, and Tailwind CSS 4 className composition/variant-mapping/design-token rules.
New-feature skill
.claude/skills/new-feature/SKILL.md
Adds the 7-step kaapi-frontend feature authoring contract covering orientation, reuse-first scanning, file placement, in-style conventions, limits, commenting, and npm run lint && npm run build verification.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Possibly related PRs

  • ProjectTech4DevAI/kaapi-frontend#163: Directly related — this PR revises the /pr-review command's allowed-tools, scope, and output-format wording that was originally introduced in PR #163.

Suggested reviewers

  • nishika26
  • Prajna1999

Poem

🐇 Hippity-hop, the rules are all set,
No inline SVGs, no magic values yet!
Components named right, hooks in a row,
ESLint and Prettier keep things in flow.
The rabbit has documented every last rule —
Now Claude knows the kaapi-frontend school! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: adding Claude Code rules, commands, and an authoring skill to establish AI-assisted development patterns.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/claude-code-tooling

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@vprashrex vprashrex self-assigned this Jun 10, 2026
@vprashrex vprashrex added enhancement New feature or request ready-for-review labels Jun 10, 2026
@vprashrex vprashrex changed the title Dev Tooling: Add Claude Code rules, commands, and authoring skill Claude Code: Add Claude Code rules, commands, and authoring skill Jun 10, 2026
@vprashrex vprashrex linked an issue Jun 10, 2026 that may be closed by this pull request

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
.claude/rules/code-quality.md (1)

94-94: ⚡ Quick win

TypeScript strict mode disabled but guidance expects "fully-typed code."

Setting "strict": false in tsconfig.json while instructing developers to "write fully-typed code" creates ambiguity. Developers may skip types, relying on the relaxed compiler, which defeats the purpose of the guidance.

Consider enabling strict: true to mechanically enforce the typed-code expectation, or clarify that the lax compiler is intentional and developers must self-enforce typing discipline.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/rules/code-quality.md at line 94, The guidance says to "write
fully-typed code (explicit prop/return interfaces)" while tsconfig.json
currently has "strict": false, which invites inconsistency; either enable
TypeScript strict mode by setting "strict": true in tsconfig.json to enforce the
rule mechanically, or update the rule text in the code-quality guidance to
explicitly state that strict mode is intentionally disabled and that developers
must self-enforce full typing (e.g., require explicit prop/return interfaces on
PRs), referencing the tsconfig.json "strict" flag and the phrase "fully-typed
code (explicit prop/return interfaces)" so reviewers and CI rules remain
aligned.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.claude/rules/code-quality.md:
- Line 31: Disabling the react-hooks/exhaustive-deps rule risks stale closures
and missing dependencies; re-enable react-hooks/exhaustive-deps at "warn" in
your ESLint config (set "react-hooks/exhaustive-deps": "warn") and ensure
react-hooks/set-state-in-effect remains enabled or set to "warn" as well, then
update the documentation line that currently states they are "intentionally off"
to reflect the new warning-level configuration so developers see signals without
failing the build.
- Around line 48-67: The CopyIcon component is missing accessibility attributes
for screen readers; update the IconProps and CopyIcon to accept an optional
title (string) and/or ariaLabel prop and spread remaining SVG props, then render
a <title> element inside the SVG when title is provided and set role="img" plus
aria-label (or aria-labelledby referencing the title id) on the <svg> element so
assistive tech can describe the icon; update function signature (CopyIcon) to
handle these props and ensure existing className/style handling remains
unchanged.

In @.claude/rules/styling.md:
- Line 41: Reword the "Component-scoped animations" guidance in
.claude/rules/styling.md to clarify that Next.js provides styled-jsx out of the
box and that using <style jsx global> (as in app/components/ComingSoon.tsx) is
acceptable for declaring keyframes or animation CSS the component needs, but
make clear that “global” here is scoped by convention—advise naming keyframes
uniquely (e.g., prefix with component name) and limiting usage to that component
to avoid collisions; update the sentence to remove the implication that package
config is required and to explain the recommended naming/usage practice.
- Line 11: Referenced files exist but Sidebar.tsx and Button.tsx use Tailwind
neutral colors and Sidebar.tsx contains nested inline ternaries in className
that conflict with the styling rules; update both components to use semantic
token classes from app/globals.css (replace bg-neutral-*, bg-white with semantic
tokens like bg-primary, bg-surface, text-primary-token) and refactor
Sidebar.tsx’s dense className logic by extracting the nested ternary expressions
into named boolean variables or a small helper function (e.g.,
computeSidebarItemClass or isActive/isDisabled flags) and then compose the
className with template literals and the existing typed Record-based class maps
(preserve the typed Record maps, avoid cn()/clsx(), and keep next/font CSS
variables usage from layout.tsx).

---

Nitpick comments:
In @.claude/rules/code-quality.md:
- Line 94: The guidance says to "write fully-typed code (explicit prop/return
interfaces)" while tsconfig.json currently has "strict": false, which invites
inconsistency; either enable TypeScript strict mode by setting "strict": true in
tsconfig.json to enforce the rule mechanically, or update the rule text in the
code-quality guidance to explicitly state that strict mode is intentionally
disabled and that developers must self-enforce full typing (e.g., require
explicit prop/return interfaces on PRs), referencing the tsconfig.json "strict"
flag and the phrase "fully-typed code (explicit prop/return interfaces)" so
reviewers and CI rules remain aligned.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8c6bcaa1-3265-4cc7-bebc-8135d9e52b3f

📥 Commits

Reviewing files that changed from the base of the PR and between ae72da2 and 508433a.

📒 Files selected for processing (12)
  • .claude/commands/check.md
  • .claude/commands/create-issue.md
  • .claude/commands/create-pr.md
  • .claude/commands/pr-review.md
  • .claude/rules/api-and-data-fetching.md
  • .claude/rules/code-quality.md
  • .claude/rules/components.md
  • .claude/rules/hooks.md
  • .claude/rules/styling.md
  • .claude/rules/types-and-constants.md
  • .claude/rules/utils.md
  • .claude/skills/new-feature/SKILL.md

| Only `console.warn` / `console.error` | `no-console` `{ allow: ["warn","error"] }` | warn |
| Hooks at top level, unconditional, stable order | `react-hooks/rules-of-hooks` (via next preset) | **error** |

Note: `react-hooks/exhaustive-deps` and `react-hooks/set-state-in-effect` are intentionally **off** — don't add deps comments to satisfy a rule that isn't running.

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 | 🏗️ Heavy lift

Disabling react-hooks/exhaustive-deps risks stale closures and missing dependencies.

Turning off exhaustive-deps removes the safety net that catches stale closures, infinite loops, and missing effect dependencies. These bugs are subtle, hard to debug, and commonly slip through code review. The rule exists specifically to prevent a class of runtime bugs that break user experience.

Consider re-enabling exhaustive-deps at warn level so developers see the signals without blocking the build.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/rules/code-quality.md at line 31, Disabling the
react-hooks/exhaustive-deps rule risks stale closures and missing dependencies;
re-enable react-hooks/exhaustive-deps at "warn" in your ESLint config (set
"react-hooks/exhaustive-deps": "warn") and ensure
react-hooks/set-state-in-effect remains enabled or set to "warn" as well, then
update the documentation line that currently states they are "intentionally off"
to reflect the new warning-level configuration so developers see signals without
failing the build.

Comment on lines +48 to +67
interface IconProps {
className?: string;
style?: React.CSSProperties;
}

export default function CopyIcon({ className, style }: IconProps) {
return (
<svg
className={className}
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
style={style}
>
{/* paths */}
</svg>
);
}
```

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 | ⚡ Quick win

Icon component pattern is missing accessibility attributes.

The example CopyIcon component lacks aria-label, role, or <title> child for screen readers. Icons without accessible text are invisible to assistive technology, blocking users who rely on screen readers.

♿ Proposed fix to add accessibility support
 interface IconProps {
   className?: string;
   style?: React.CSSProperties;
+  "aria-label"?: string;
 }

-export default function CopyIcon({ className, style }: IconProps) {
+export default function CopyIcon({ className, style, "aria-label": ariaLabel }: IconProps) {
   return (
     <svg
       className={className}
       fill="none"
       viewBox="0 0 24 24"
       stroke="currentColor"
       strokeWidth={2}
       style={style}
+      aria-label={ariaLabel}
+      role="img"
     >
+      {ariaLabel && <title>{ariaLabel}</title>}
       {/* paths */}
     </svg>
   );
 }
📝 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
interface IconProps {
className?: string;
style?: React.CSSProperties;
}
export default function CopyIcon({ className, style }: IconProps) {
return (
<svg
className={className}
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
style={style}
>
{/* paths */}
</svg>
);
}
```
interface IconProps {
className?: string;
style?: React.CSSProperties;
"aria-label"?: string;
}
export default function CopyIcon({ className, style, "aria-label": ariaLabel }: IconProps) {
return (
<svg
className={className}
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
style={style}
aria-label={ariaLabel}
role="img"
>
{ariaLabel && <title>{ariaLabel}</title>}
{/* paths */}
</svg>
);
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/rules/code-quality.md around lines 48 - 67, The CopyIcon component
is missing accessibility attributes for screen readers; update the IconProps and
CopyIcon to accept an optional title (string) and/or ariaLabel prop and spread
remaining SVG props, then render a <title> element inside the SVG when title is
provided and set role="img" plus aria-label (or aria-labelledby referencing the
title id) on the <svg> element so assistive tech can describe the icon; update
function signature (CopyIcon) to handle these props and ensure existing
className/style handling remains unchanged.

Comment thread .claude/rules/styling.md

Tailwind CSS 4 is the styling system. A custom color/theme layer is defined in `app/globals.css`; components compose Tailwind utility classes directly.

Reference: `app/globals.css`, `app/components/ui/Button.tsx`, `app/components/Sidebar.tsx`, `app/layout.tsx`.

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 | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify referenced example files exist

echo "Checking for referenced example files..."
for file in app/globals.css app/components/ui/Button.tsx app/components/Sidebar.tsx app/layout.tsx; do
  if [ -f "$file" ]; then
    echo "$file exists"
  else
    echo "$file NOT FOUND"
  fi
done

Repository: ProjectTech4DevAI/kaapi-frontend

Length of output: 240


🏁 Script executed:

#!/bin/bash
# Inspect guideline snippet + referenced files for pattern alignment

set -euo pipefail

echo "== styling.md (lines 1-60) =="
nl -ba .claude/rules/styling.md | sed -n '1,60p'

echo
echo "== app/globals.css (first 120 lines) =="
nl -ba app/globals.css | sed -n '1,120p'

echo
echo "== app/components/ui/Button.tsx (first 160 lines) =="
nl -ba app/components/ui/Button.tsx | sed -n '1,160p'

echo
echo "== app/components/Sidebar.tsx (first 200 lines) =="
nl -ba app/components/Sidebar.tsx | sed -n '1,200p'

echo
echo "== app/layout.tsx (first 160 lines) =="
nl -ba app/layout.tsx | sed -n '1,160p'

Repository: ProjectTech4DevAI/kaapi-frontend

Length of output: 167


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== .claude/rules/styling.md =="
echo "-- lines 1-120 --"
sed -n '1,120p' .claude/rules/styling.md

echo
echo "== app/globals.css =="
echo "-- head 80 --"
sed -n '1,80p' app/globals.css

echo
echo "== app/components/ui/Button.tsx =="
echo "-- head 120 --"
sed -n '1,120p' app/components/ui/Button.tsx

echo
echo "== app/components/Sidebar.tsx =="
echo "-- head 140 --"
sed -n '1,140p' app/components/Sidebar.tsx

echo
echo "== app/layout.tsx =="
echo "-- head 160 --"
sed -n '1,160p' app/layout.tsx

Repository: ProjectTech4DevAI/kaapi-frontend

Length of output: 11921


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Search for cn/clsx usage in referenced files =="
rg -n --no-heading "(\bcn\s*\(|\bclsx\s*\()|from 'clsx'|from \"clsx\"" app/globals.css app/components/ui/Button.tsx app/components/Sidebar.tsx app/layout.tsx || true

echo
echo "== Check Sidebar.tsx: className template literals + ternaries depth signals =="
rg -n --no-heading "className=\{\`" app/components/Sidebar.tsx || true
echo
rg -n --no-heading "\?[^:]*:" app/components/Sidebar.tsx || true

echo
echo "== Show the most relevant Sidebar className blocks around matches (first few hits) =="
# Print a small window around the first few className template literal occurrences
rg -n "className=\{\`" app/components/Sidebar.tsx | head -n 5 | cut -d: -f1 | while read -r line; do
  echo "--- Sidebar.tsx around line $line ---"
  sed -n "$((line-15)),$((line+40))p" app/components/Sidebar.tsx
done

Repository: ProjectTech4DevAI/kaapi-frontend

Length of output: 15896


Confirm referenced styling example files and alignment with the rules

All referenced example files exist: app/globals.css, app/components/ui/Button.tsx, app/components/Sidebar.tsx, and app/layout.tsx. Button.tsx/app/layout.tsx match the stated patterns (typed Record-based class maps, template-literal className composition, no cn()/clsx(), and next/font CSS variables), but Sidebar.tsx/Button.tsx also use Tailwind neutral colors (bg-neutral-*, bg-white) and Sidebar.tsx has nested inline ternaries in className, which may conflict with the “semantic token classes only” and “split dense className logic” guidance.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/rules/styling.md at line 11, Referenced files exist but Sidebar.tsx
and Button.tsx use Tailwind neutral colors and Sidebar.tsx contains nested
inline ternaries in className that conflict with the styling rules; update both
components to use semantic token classes from app/globals.css (replace
bg-neutral-*, bg-white with semantic tokens like bg-primary, bg-surface,
text-primary-token) and refactor Sidebar.tsx’s dense className logic by
extracting the nested ternary expressions into named boolean variables or a
small helper function (e.g., computeSidebarItemClass or isActive/isDisabled
flags) and then compose the className with template literals and the existing
typed Record-based class maps (preserve the typed Record maps, avoid
cn()/clsx(), and keep next/font CSS variables usage from layout.tsx).

Comment thread .claude/rules/styling.md
}
```
- **`globals.css` is for what Tailwind can't express**: CSS variables/theme, base resets, and reusable keyframes/animations.
- **Component-scoped animations** use `<style jsx global>` blocks inside the component (e.g. `ComingSoon.tsx` steam keyframes) — only when the animation is local to that component.

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 | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check for styled-jsx in package.json and Next.js config

echo "Checking for styled-jsx in package.json..."
if [ -f package.json ]; then
  if grep -q "styled-jsx" package.json; then
    echo "✓ styled-jsx found in package.json"
  else
    echo "✗ styled-jsx NOT found in package.json (may be built into Next.js)"
  fi
fi

echo ""
echo "Checking for ComingSoon.tsx example..."
fd -t f 'ComingSoon.tsx' -x rg -l '<style jsx global>'

Repository: ProjectTech4DevAI/kaapi-frontend

Length of output: 258


Clarify the “component-scoped animations” guidance for styled-jsx

  • Next.js includes styled-jsx automatically (not listed in package.json), and the project’s example app/components/ComingSoon.tsx already uses <style jsx global>, so config verification isn’t the blocker.
  • The rule text is potentially misleading: <style jsx global> makes the styles global, so reword to explain it’s appropriate for keyframes/styles the component needs, while ensuring naming/usage stays component-local to avoid collisions.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/rules/styling.md at line 41, Reword the "Component-scoped
animations" guidance in .claude/rules/styling.md to clarify that Next.js
provides styled-jsx out of the box and that using <style jsx global> (as in
app/components/ComingSoon.tsx) is acceptable for declaring keyframes or
animation CSS the component needs, but make clear that “global” here is scoped
by convention—advise naming keyframes uniquely (e.g., prefix with component
name) and limiting usage to that component to avoid collisions; update the
sentence to remove the implication that package config is required and to
explain the recommended naming/usage practice.

@Ayush8923 Ayush8923 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is a good start. However, rather than creating individual commands, I think we should create agents that can take ownership of implementing the solution and handling the workflow end-to-end, these types of agents we can create:

  1. business-analyst
  2. implementation-planner
  3. implementation-executor
  4. refactor

I mentioned this below as well.

Comment thread .claude/commands/create-issue.md Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I don't think we need this file, we can create the issue manually.

Comment thread .claude/commands/create-pr.md Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Same for this, will incorporate this with other implementation-executor file.

Comment thread .claude/rules/utils.md

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Instead of creating multiple rules files, I think we need to crate the agents like:

  1. business-analyst
  2. implementation-planner
  3. implementation-executor

then we don't need these types of rules, will provide all these rules to agents.

Comment thread .claude/commands/check.md Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Not needed this files.

@Ayush8923 Ayush8923 self-assigned this Jun 14, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.claude/commands/pr-review.md (1)

77-89: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a language tag to the example fence.

The bare fenced block starting on Line 77 will trip markdownlint (MD040). Mark it as text or md so this command doc stays lint-clean.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/commands/pr-review.md around lines 77 - 89, The fenced code block
starting on line 77 in the pr-review.md file is missing a language tag
identifier after the opening triple backticks, which violates the markdownlint
MD040 rule. Add either `text` or `md` as the language tag immediately after the
opening triple backticks (on the same line) to specify the code fence language
and keep the documentation lint-clean.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In @.claude/commands/pr-review.md:
- Around line 77-89: The fenced code block starting on line 77 in the
pr-review.md file is missing a language tag identifier after the opening triple
backticks, which violates the markdownlint MD040 rule. Add either `text` or `md`
as the language tag immediately after the opening triple backticks (on the same
line) to specify the code fence language and keep the documentation lint-clean.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 60841593-6784-4901-94df-30ef4939bc7b

📥 Commits

Reviewing files that changed from the base of the PR and between 508433a and 5b03c01.

📒 Files selected for processing (8)
  • .claude/commands/pr-review.md
  • .claude/rules/components.md
  • .claude/rules/data-fetching.md
  • .claude/rules/hooks.md
  • .claude/rules/utils.md
  • .claude/settings.json
  • .claude/skills/new-feature/SKILL.md
  • CLAUDE.md
✅ Files skipped from review due to trivial changes (7)
  • .claude/settings.json
  • CLAUDE.md
  • .claude/rules/components.md
  • .claude/rules/data-fetching.md
  • .claude/rules/hooks.md
  • .claude/rules/utils.md
  • .claude/skills/new-feature/SKILL.md

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

Labels

enhancement New feature or request ready-for-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Claude Code: Add Claude Code rules, commands, and authoring skill

2 participants