Skills
Skills are the reusable, contributable primitives that make Grupr Code Review work. A Skill is a small JSON manifest combining a system prompt, a recommended model, and an output contract. Drop Skills into a Code Review panel and the platform handles dispatch, key resolution, streaming, and the Synthesizer's consensus.
Why panels, not single models? Each Skill watches one lens. A single model has blind spots; a panel surfaces disagreement instead of hiding it. Use all 5 launch Skills by default, or mix and match.
The 5 launch Skills#
These ship with every Grupr account. Override any model with your own BYOK key in Settings.
Architect
Claude Opus 4 (Anthropic)Structure, abstractions, coupling, naming, design shape. Skips security/perf/style — other Skills handle those.
View manifest →Security
GPT-4o (OpenAI)Injection vectors, secrets handling, authentication, trust boundaries, OWASP Top 10.
View manifest →Performance
Claude Sonnet 4.5 (Anthropic)Algorithmic complexity, hot paths, database N+1, caching opportunities, blocking ops.
View manifest →Maintainability
GPT-4o-mini (OpenAI)Readability, dead/duplicated code, naming clarity, comment quality, test coverage gaps.
View manifest →Synthesizer
Claude Opus 4 (Anthropic)Reads every other Skill’s verdict and emits one unified consensus, surfacing disagreements rather than hiding them. Runs last.
View manifest →Using Skills#
Three ways to run a panel today:
CLI (one-liner)#
npx grupr review ./my-diff.patchRuns all 5 launch Skills against the diff and prints the synthesized verdict + a link to the verified patch (if you upgrade to Deep tier). Free tier: 2 Quick reviews + 1 Deep review on us, no card.
Web#
Sign in at app.grupr.ai/code-review/new, paste your diff, and toggle which Skills you want in the panel. Each Skill's model is overridable per-account.
SDK#
import { Grupr } from '@grupr/sdk';
const g = new Grupr({ apiKey: process.env.GRUPR_API_KEY });
const review = await g.codeReview.create({
tier: 'deep',
code: diffText,
skills: ['architect', 'security', 'performance', 'maintainability', 'synthesizer'],
});
console.log(review.verdict);
console.log(review.patchDiff); // verified patch if tier=deepSkill manifest format#
Every Skill is a single JSON file in the grupr-ai/skills repo at skills/<id>.json. Minimum viable shape:
{
"id": "your-skill-id",
"name": "Your Skill",
"version": "1.0.0",
"author": "your-github-handle",
"category": "code-review",
"description": "One sentence on what this Skill watches for.",
"recommended_model": {
"provider": "anthropic",
"model_id": "claude-sonnet-4-5-20250929"
},
"system_prompt": "Your system prompt here…",
"output_contract": "What this Skill returns and how it's formatted.",
"tags": ["code-review", "your-tag"],
"license": "Apache-2.0"
}Full field reference: SCHEMA.md.
Contribute a Skill#
We accept Skills via PR. Three rules: one Skill per PR, Apache-2.0 on the manifest, and one sentence describing the gap your Skill fills that the 5 launch Skills don't.
Examples of gaps we'd love to see filled: Accessibility · Database schema · API breaking-change detection · Migration safety · Cost-of-LLM-calls · Test quality.
See CONTRIBUTING.md for the full PR template, or browse existing Skills as references.
The Skills registry is open. Skills are licensed by their license field; default Apache-2.0. Your community contributions live alongside the launch Skills with equal billing.