caveman-review

Commentaires de revue de code ultra-compressés. Réduit le bruit des retours de PR tout en préservant le signal actionnable. Chaque commentaire tient sur une ligne : emplacement, problème, correction. Utilisé lorsque l'utilisateur dit "review this PR", "code review", "review the diff", "/review", ou invoque /caveman-review. Déclenchement automatique lors de la revue de pull requests.

npx skills add https://github.com/juliusbrussee/caveman --skill caveman-review

Write code review comments terse and actionable. One line per finding. Location, problem, fix. No throat-clearing.

Rules

Format: L<line>: <problem>. <fix>. — or <file>:L<line>: ... when reviewing multi-file diffs.

Severity prefix (optional, when mixed):

  • 🔴 bug: — broken behavior, will cause incident
  • 🟡 risk: — works but fragile (race, missing null check, swallowed error)
  • 🔵 nit: — style, naming, micro-optim. Author can ignore
  • ❓ q: — genuine question, not a suggestion

Drop:

  • "I noticed that...", "It seems like...", "You might want to consider..."
  • "This is just a suggestion but..." — use nit: instead
  • "Great work!", "Looks good overall but..." — say it once at the top, not per comment
  • Restating what the line does — the reviewer can read the diff
  • Hedging ("perhaps", "maybe", "I think") — if unsure use q:

Keep:

  • Exact line numbers
  • Exact symbol/function/variable names in backticks
  • Concrete fix, not "consider refactoring this"
  • The why if the fix isn't obvious from the problem statement

Examples

❌ "I noticed that on line 42 you're not checking if the user object is null before accessing the email property. This could potentially cause a crash if the user is not found in the database. You might want to add a null check here."

L42: 🔴 bug: user can be null after .find(). Add guard before .email.

❌ "It looks like this function is doing a lot of things and might benefit from being broken up into smaller functions for readability."

L88-140: 🔵 nit: 50-line fn does 4 things. Extract validate/normalize/persist.

❌ "Have you considered what happens if the API returns a 429? I think we should probably handle that case."

L23: 🟡 risk: no retry on 429. Wrap in withBackoff(3).

Auto-Clarity

Drop terse mode for: security findings (CVE-class bugs need full explanation + reference), architectural disagreements (need rationale, not just a one-liner), and onboarding contexts where the author is new and needs the "why". In those cases write a normal paragraph, then resume terse for the rest.

Boundaries

Reviews only — does not write the code fix, does not approve/request-changes, does not run linters. Output the comment(s) ready to paste into the PR. "stop caveman-review" or "normal mode": revert to verbose review style.

Plus de skills de juliusbrussee

caveman
juliusbrussee
Mode de communication ultra-compressé. Réduit l'utilisation de tokens d'environ 75 % en parlant comme un homme des cavernes tout en conservant une précision technique totale. Prend en charge les niveaux d'intensité : lite, full (par défaut), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Utiliser lorsque l'utilisateur dit « mode homme des cavernes », « parle comme un homme des cavernes », « utilise homme des cavernes », « moins de tokens », « sois bref », ou invoque /caveman. Se déclenche également automatiquement lorsque l'efficacité des tokens est demandée.
communicationproductivity
caveman-commit
juliusbrussee
Générateur de messages de commit ultra-compressés. Réduit le bruit dans les messages de commit tout en préservant l'intention et le raisonnement. Format Conventional Commits. Sujet ≤50 caractères, corps uniquement lorsque le "pourquoi" n'est pas évident. Utiliser lorsque l'utilisateur dit "écrire un commit", "message de commit", "générer un commit", "/commit", ou invoque /caveman-commit. Déclenchement automatique lors du staging des modifications.
developmentcode-review
caveman-compress
juliusbrussee
Compresse les fichiers mémoire en langage naturel (CLAUDE.md, todos, préférences) au format caveman pour économiser des tokens d'entrée. Préserve toute la substance technique, le code, les URL et la structure. La version compressée écrase le fichier original. Une sauvegarde lisible par un humain est enregistrée sous FILE.original.md. Déclencheur : /caveman-compress FILEPATH ou "compress memory file
developmentdocument
caveman-help
juliusbrussee
Fiche de référence rapide pour tous les modes, compétences et commandes de caveman. Affichage unique, pas un mode persistant. Déclencheur : /caveman-help, "caveman help", "what caveman commands", "how do I use caveman".
developmentdocumentproductivity
caveman-stats
juliusbrussee
Affiche l'utilisation réelle des tokens et les économies estimées pour la session en cours. Lit directement le journal de session de Claude Code — sans estimation par IA. Se déclenche sur /caveman-stats. La sortie est injectée par le hook mode-tracker ; le modèle lui-même ne calcule pas les chiffres.
developmentdata-analysis
cavecrew
juliusbrussee
Decision guide for delegating to caveman-style subagents. Tells the main thread WHEN to spawn `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit), or `cavecrew-reviewer` (diff review) instead of doing the work inline or using vanilla `Explore`. Subagent output is caveman-compressed so the tool-result injected back into main context is ~60% smaller — main context lasts longer across long sessions. Trigger: "delegate to subagent", "use cavecrew", "spawn...
developmentcode-reviewapi