Skip to main content

webapp-review

Webapp review — analyse your current branch or an existing PR for DRY violations, missing abstractions, SOLID issues, module boundary violations, and extensibility gaps in this NX monorepo.

Ir a la instalación

Datos de origen

Repositorio
SonarSource/sonarqube-webapp
Última actividad en el origen
23 de junio de 2026 a las 04:22
Idioma detectado de SKILL.md
inglés
Estrellas
12
Forks
14

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
webapp-review
description
Webapp review — analyse your current branch or an existing PR for DRY violations, missing abstractions, SOLID issues, module boundary violations, and extensibility gaps in this NX monorepo.
Run webapp review: $ARGUMENTS Parse arguments: - `--pr <number or URL>` — review a specific PR's diff instead of current branch; accepts a bare number (`5855`) or a full GitHub URL (`https://github.com/…/pull/5855`) — extract the number from the URL path before proceeding; `--base` is ignored when this is set since `gh pr diff` always diffs against the PR's own base branch - `--base <branch>` — override the base branch when diffing the current branch (default: auto-detected main or master); has no effect when `--pr` is provided --- ## Step 1: Load review guidelines Read all files under `.gitar/review/` — they contain the authoritative rules for this review: @.gitar/review/general-design.md @.gitar/review/module-boundaries.md @.gitar/review/adapters.md @.gitar/review/design-system.md @.gitar/review/react-query.md @.gitar/review/conventions.md --- ## Step 2: Get the diff The two modes — `--pr` and current-branch — use **different data sources**. Do not mix them. ### Mode A: `--pr` The PR already exists on GitHub. All file content must come from the PR's head ref, **not** the local working tree. Run all three commands in a **single** Bash call so they require only one permission grant (`gh pr diff --name-only` requires gh ≥ 2.10; fall back to `gh pr diff {pr} | grep '^diff --git' | sed 's|diff --git a/.* b/||'` if your gh is older): ```bash git fetch origin pull/{pr}/head:pr-{pr} && gh pr diff {pr} --name-only && echo "==FULL_DIFF==" && gh pr diff {pr} ``` For each changed file that looks architecturally significant (query hooks, adapters, route definitions, React contexts, page templates, API services, page-level components), read its full content **from the fetched PR ref** in a **single** Bash call: ```bash for f in file1 file2 file3; do echo "=== $f ==="; git show pr-{pr}:$f; done ``` ### Mode B: Current branch (no `--pr`) Review everything on the current branch that diverges from the base — including uncommitted work. Run branch detection, merge-base resolution, file list, and full diff in a **single** Bash call: ```bash git rev-parse --abbrev-ref HEAD && MERGE_BASE=$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD origin/master) && echo "Merge base: $MERGE_BASE" && git diff $MERGE_BASE --name-only && echo "==FULL_DIFF==" && git diff $MERGE_BASE ``` For each changed file that looks architecturally significant (query hooks, adapters, route definitions, React contexts, page templates, API services, page-level components), read the full file from disk to understand context beyond what changed. --- ## Step 3: Analyse Apply every rule from the loaded `.gitar/review/` files to the diff. For each finding note: file path, approximate line, and whether it's a **must fix** (correctness risk) or **worth addressing** (design smell that will compound). Load the `webapp-code-sharing` skill if you need a deeper understanding of the NX module structure. --- ## Step 4: For each finding, assess the tradeoff Before reporting, ask: what does acting on this actually cost? - **Scope**: one-liner fix, single-class refactor, or multi-module change? - **Complexity trade**: does the fix remove complexity in one place but add it somewhere else? - **Timing**: incremental, or requires a bigger bang? - **Risk**: does it touch a hot path or a tested boundary? Include the tradeoff in every finding. A finding without a tradeoff is just a complaint. --- ## Step 5: Report findings --- **Must fix:** - `{file}:{line}` — {what breaks and why} → fix: {concrete suggestion} | cost: {tradeoff} **Worth addressing (will compound if left):** - `{file}:{line}` — {the smell} → suggestion: {cleaner approach} | cost: {tradeoff} **Looks good:** - {something specific that was done well} --- Keep each finding to 2-3 sentences. If no must-fix items, say so clearly. ### Closing prompt **If `--pr` was used** (reviewing an existing PR): Ask: "Want me to address any of these, or post these findings as a comment on the PR?" If the answer is to post: use `gh pr comment {pr} --body "{findings}"`. Do **not** offer to create a new PR — one already exists. **If reviewing the current branch** (no `--pr`): Ask: "Want to address any of these before opening the PR, or shall I go ahead and create it?" If the answer is to create it: `gh pr create --title "{title}" --body "{body}"`. Mention any deferred items briefly in the PR body so reviewers are aware.
Ver en GitHub