Use skill if you are creating or refining AI code review config for GitHub Copilot, Devin Bug Catcher, Greptile, or any combination for a repository.
From init-reviewnpx claudepluginhub yigitkonur/skills-by-yigitkonurThis skill uses the workspace's default tool permissions.
references/copilot/micro-library.mdreferences/copilot/scenarios.mdreferences/copilot/scoping-and-targeting.mdreferences/copilot/setup-and-format.mdreferences/copilot/troubleshooting.mdreferences/copilot/writing-instructions.mdreferences/devin/agents-md/configuration.mdreferences/devin/customization/rules-and-exclusions.mdreferences/devin/patterns/common-configurations.mdreferences/devin/review-md/format-and-directives.mdreferences/devin/review-spec.mdreferences/devin/scenarios.mdreferences/devin/setup/getting-started.mdreferences/devin/troubleshooting/common-issues.mdreferences/greptile/anti-patterns.mdreferences/greptile/config-spec.mdreferences/greptile/integration.mdreferences/greptile/patterns.mdreferences/greptile/rules-engineering.mdreferences/greptile/scenarios.mdGenerate repo-grounded AI code review configuration for one or more platforms: GitHub Copilot, Devin Bug Catcher, and/or Greptile. Shared repo scan, platform-specific output.
Use this skill when you need to:
Do not use when:
CLAUDE.md, AGENTS.md without Devin context)| Platform | Config files | Format | Key constraint | Branch reads from |
|---|---|---|---|---|
| Copilot | .github/copilot-instructions.md + .github/instructions/*.instructions.md | Markdown + YAML frontmatter | 4,000 char hard limit per file | Base branch (main) |
| Devin | REVIEW.md + optional AGENTS.md (root or scoped) | Pure Markdown | ~300 lines soft limit, ~500 max | Current repo state |
| Greptile | .greptile/config.json + optional rules.md + files.json | JSON + Markdown | scope=array, ignorePatterns=newline string | Source branch (feature) |
Before scanning, determine which platforms to generate for:
ls .github/copilot-instructions.md .github/instructions/ 2>/dev/null
find . -maxdepth 3 -name "REVIEW.md" -o -name ".devin" 2>/dev/null | head -5
find . -type d -name '.greptile' -o -name 'greptile.json' 2>/dev/null | head -5
If existing config is found for a platform, default to refine in place rather than recreate.
Change into the target repo root. If working from a shared fixture, copy to a scratch worktree first.
# Structure and docs
find . -maxdepth 3 -type f -name "*.md" | head -30
ls -la .github/ .cursor/ .windsurf/ .agents/ .devin/ 2>/dev/null
# Stack detection
ls package.json go.mod requirements.txt pyproject.toml Cargo.toml pom.xml build.gradle 2>/dev/null
[ -f package.json ] && head -40 package.json
[ -f README.md ] && head -30 README.md
# Existing linters/formatters
find . -maxdepth 2 -type f \( -name '.eslintrc*' -o -name 'eslint.config.*' -o -name '.prettierrc*' -o -name 'prettier.config.*' -o -name 'biome.json' -o -name 'biome.jsonc' -o -name '.golangci.yml' -o -name '.rubocop.yml' -o -name 'pyproject.toml' -o -name '.flake8' \) 2>/dev/null
# Existing review/agent config
find . -maxdepth 3 \( -name "REVIEW.md" -o -name "AGENTS.md" -o -name "CLAUDE.md" -o -name "CONTRIBUTING.md" -o -name ".cursorrules" -o -name ".windsurfrules" -o -name ".coderabbit.yaml" -o -name "greptile.json" \) | sort
# Test conventions
find . \( -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.go" \) | head -10
# CI
ls .github/workflows/ .gitlab-ci.yml Jenkinsfile Makefile 2>/dev/null
Collect:
files.json)Stopping test — move on when you can answer:
For each target platform, follow its platform section below. If generating for multiple platforms, reuse the repo scan from Phase 1 — do not re-scan.
References: Read
references/copilot/setup-and-format.mdfor file format,references/copilot/writing-instructions.mdfor SMSA quality,references/copilot/scoping-and-targeting.mdfor globs. Only expand toreferences/copilot/scenarios.mdorreferences/copilot/micro-library.mdwhen you need full examples or starter patterns.
Step 1: Choose file architecture
Default shape:
.github/
├── copilot-instructions.md # universal rules only
└── instructions/
├── <language>.instructions.md
└── <domain>.instructions.md
Placement logic:
If existing files exist: evaluate against SMSA, note gaps, refine in place.
Step 2: Write rules using SMSA
Every rule must be Specific, Measurable, Actionable, Semantic:
useEffect calling fetch without AbortController cleanup"Drop: formatting rules, generic advice, rules without repo evidence.
Step 3: Draft files
applyTo globapplyTo is a single glob string, not an arrayexcludeAgent: "code-review" or "coding-agent"Step 4: Validate
wc -m each file (must be < 4,000)glob.glob() (brace-aware)References: Read
references/devin/review-spec.mdfor format,references/devin/review-md/format-and-directives.mdfor section order and severity. Only expand toreferences/devin/scenarios.mdfor full examples orreferences/devin/patterns/common-configurations.mdfor starter patterns.
Step 1: Choose file plan
| Situation | Output |
|---|---|
| Single service or shared review model | Root REVIEW.md only |
| Monorepo with divergent package risks | Root + scoped REVIEW.md |
| Also need coding/task behavior guidance | Add AGENTS.md |
Existing AGENTS.md/CLAUDE.md covers coding behavior | REVIEW.md only; align, don't duplicate |
Default to REVIEW.md only. Add AGENTS.md only when evidence justifies it.
Step 2: Split concerns
REVIEW.md: what Bug Catcher flags in diffs, what to ignoreAGENTS.md: coding standards, architecture, workflow, dependencies, testingRule of thumb: about reviewing a diff → REVIEW.md. About how to work → AGENTS.md.
Step 3: Draft from evidence
Section order: Critical Areas → Security → Conventions → Performance → Patterns → Ignore → Testing
Severity via phrasing:
must never, always required, prohibiteduse X instead of Y, do notprefer, consider, watch forAdd Ignore section with globs for generated/build/lock files. Keep 100-300 lines, max 500.
Step 4: Validate
References: Read
references/greptile/config-spec.mdfor JSON schema,references/greptile/rules-engineering.mdfor rule quality. Only expand toreferences/greptile/patterns.mdfor stack patterns orreferences/greptile/scenarios.mdfor full examples.
Step 1: Choose file topology
Always generate: .greptile/config.json
Generate only when needed:
rules.md — rule needs >200 chars or good/bad code examplesfiles.json — context files the reviewer needs to validate correctness (schemas, API specs)config.json — subtree needs different strictness/rulesStep 2: Set strictness and comment types
2 for most production code1 for payments, auth, security-critical paths3 for internal tools, prototypes, low-riskcommentTypes: ["logic", "syntax"]. Add "style" only when repo lacks linting.Step 3: Engineer rules (5-10 max)
Every rule must be repo-specific, scoped, semantic, and identifiable:
scope is an array of globs: ["src/api/**/*.ts"]id for child disabledRulesStep 4: Configure targeting
ignorePatterns is a newline-separated string: "dist/**\nnode_modules/**\n*.lock"patternRepositories uses "org/repo" format, never URLsfiles.json scopes context files to the code they informStep 5: Validate
python3 -m json.tool .greptile/config.json passesscope values are arrays, ignorePatterns is a stringstrictness is 1, 2, or 3commentTypes only uses "logic", "syntax", "style", "info".greptile/ + greptile.json coexistenceFor each platform, return:
Platform-specific additions:
npx devin-review)rule-id: evidence) and canary test ruleThese apply to ALL platforms:
| Do | Don't |
|---|---|
| Ground every rule in repo evidence (files, configs, patterns) | Write generic "follow best practices" |
| Start minimal, iterate after real PRs | Dump 20+ rules hoping for coverage |
| Skip rules already enforced by linters/formatters | Duplicate ESLint, Prettier, Ruff, golangci-lint |
| Use short imperative bullets | Write prose paragraphs or vague slogans |
| Adapt scenario references to the repo | Copy templates verbatim |
| Evaluate existing config before overwriting | Start from scratch when files exist |
| Put highest-risk rules first | Bury security rules below style guidance |
| Symptom | Fix |
|---|---|
| Too many files / too broad | Collapse to root + highest-signal scoped files |
| Rules ignored | Check: branch (base vs source), file location, character limit, JSON validity |
| Too noisy | Remove linter-duplicate rules, expand ignore patterns, tighten phrasing |
| Missing real bugs | Move critical rules higher, add path-specific rules, add code examples |
| Conflicting rules across scopes | Narrow scopes until no overlap, or rewrite as additive |
| Multi-stack confusion | Treat each stack as independent scope from the start |
| Need | Read |
|---|---|
| File locations, format, character limits, base-branch behavior | references/copilot/setup-and-format.md |
| SMSA rule quality, section ordering, character budgeting | references/copilot/writing-instructions.md |
applyTo globs, excludeAgent, monorepo scoping | references/copilot/scoping-and-targeting.md |
| Debugging ignored/weak instructions | references/copilot/troubleshooting.md |
| Full-stack examples | references/copilot/scenarios.md |
| Starter patterns by scope | references/copilot/micro-library.md |
| Need | Read |
|---|---|
| REVIEW.md format, Bug Catcher behavior, scoping | references/devin/review-spec.md |
| Section order, severity phrasing, code examples | references/devin/review-md/format-and-directives.md |
| AGENTS.md structure and split decisions | references/devin/agents-md/configuration.md |
| Noise reduction, exclusions, severity tuning | references/devin/customization/rules-and-exclusions.md |
| Reusable security/performance/framework patterns | references/devin/patterns/common-configurations.md |
| Full-stack examples | references/devin/scenarios.md |
| Troubleshooting noisy/missing reviews | references/devin/troubleshooting/common-issues.md |
| Install, enrollment, verification | references/devin/setup/getting-started.md |
| Need | Read |
|---|---|
| Install, indexing, permissions, first config | references/greptile/setup.md |
| config.json/files.json/rules.md parameter formats | references/greptile/config-spec.md |
| Rule quality bar, categories, severity, scoping | references/greptile/rules-engineering.md |
| Stack patterns, ignore patterns, monorepo strategy | references/greptile/patterns.md |
| Full end-to-end examples | references/greptile/scenarios.md |
| Status checks, API triggers, CI/CD wiring | references/greptile/integration.md |
| Diagnostic flow, common failures, canary protocol | references/greptile/troubleshooting.md |
| Anti-pattern catalog, preflight checks | references/greptile/anti-patterns.md |
Copilot:
excludeAgent values: "code-review" or "coding-agent"Devin:
REVIEW.md files — avoid contradictionsREVIEW.md is for diff-flagging only; coding guidance goes in AGENTS.mdGreptile:
scope as string instead of array fails silentlyignorePatterns as array instead of string fails silentlyfileChangeLimit: 0 skips ALL PRsincludeAuthors: [] means all authors, not none.greptile/ silently overrides greptile.json