{"id":"e5c85a4c-56c6-45a0-a391-4dbffa43021a","shortId":"99cV8Y","kind":"skill","title":"review-all","tagline":"Use when the user asks for a deep review, full review, comprehensive review, production readiness assessment, full audit, multi-domain audit, \"security and reliability and code review\", or \"review everything\". Also use when the user explicitly requests performance review alongsid","description":"# Full Review\n\nOrchestrate all domain-specific review skills as parallel subagents, then consolidate into a unified report.\n\n## Workflow\n\n### 1. Scope and explore\n\n- Confirm scope with the user: full codebase, specific packages/directories, changed files only (PR or branch diff), or specific concern.\n- **Resolve scope to a file/package list.** Based on what the user requested:\n  - **Changed files (PR or branch):** Run `git diff --name-only --diff-filter=d <base>...HEAD` to get changed files (default `<base>` is `main`). If the user references a PR number, use `gh pr diff <number> --name-only` instead. Derive affected Go packages from the file paths (unique parent directories containing `.go` files).\n  - **Explicit paths/packages:** The user may specify directories (e.g. `internal/auth/`), Go package patterns (e.g. `./internal/auth/...`), or individual files. When given a directory or package pattern, include all files under it. Derive Go package paths for static analysis tool invocations.\n  - **Full codebase:** No filtering. Explore everything (default).\n- **Pass the resolved scope** (file list, derived package paths, and file-type flags below) to each review subagent in step 3 so they skip their own scope confirmation and use the provided scope directly.\n- **Resolve `pr_url` for deep-linking** (display-only, used in the final consolidated report). Run `gh pr view --json url -q .url 2>/dev/null` to capture the PR URL for the current branch (or for the PR number the user supplied via `gh pr view <num> --json url -q .url`). Empty string if no PR exists. Pass `pr_url` to each subagent in step 3 and to the summarization subagent in step 4. Subagents wrap finding `path:line` references using `~/.claude/scripts/pr-deeplink.sh \"$pr_url\" <path> <line>`. See [Finding link wrapping](#finding-link-wrapping) below.\n- **Classify the resolved files** to determine which reviews to launch:\n  - `has_code`: any source files (`.go`, `.rs`, `.ts`, `.tsx`, `.js`, `.jsx`, `.swift`, `.kt`, `.kts`, `.py`, `.rb`)\n  - `has_go`: any `.go` files\n  - `has_proto`: any `.proto` files\n  - `has_sql`: any `.sql` files\n  - `has_iac`: any Dockerfiles/Containerfiles, k8s manifests, Terraform (`.tf`/`.tofu`), Helm charts (`Chart.yaml`), service mesh / gateway CRDs (Linkerd/Istio/Gateway API/Ingress/Envoy bootstrap)\n  - `has_ci`: any GitHub Actions workflows (`.github/workflows/*.yml`), composite actions (`action.yml`), Dependabot/Renovate configs, or CI configs (`.circleci/config.yml`, `.buildkite/pipeline.yml`, `.gitlab-ci.yml`, `Jenkinsfile`, `azure-pipelines.yml`, `cloudbuild.yaml`, `bitbucket-pipelines.yml`)\n  - `has_infra`: shorthand for `has_iac || has_ci` (kept for backwards compatibility with existing review-* subagents)\n  - `has_api_specs`: any `.proto`, OpenAPI/Swagger specs (`openapi.{yml,yaml,json}`, `swagger.{yml,yaml,json}`), or GraphQL schemas (`*.graphql`, `*.gql`)\n  - `has_docs`: any `.md` files or OpenAPI/Swagger specs\n  - `has_changes`: true when scope is \"changed files (PR or branch)\", or when scope is \"explicit paths\" and those paths have a diff against the base ref (run `git diff --name-only --diff-filter=d <base>...HEAD -- <paths>` to check; default base is `main`). False for full-codebase reviews with no diff baseline.\n- **Detect opt-in flags** from the user's request phrasing:\n  - `include_performance`: true when the user explicitly asks for performance, perf, benchmark, profiling, pprof, hot-path, or latency review alongside the comprehensive request. Default false. Never auto-enable from file types.\n### 1a. Detect conformance mode\n\nIf the user's request includes phrases like \"full conformance\", \"pattern discovery\", \"check patterns\", or \"discover patterns\", set `conformance_mode` to `full`. Otherwise default to `lightweight`. This flag is passed to review-code in step 3.\n\n### 1b. Load REVIEW.md (if present)\n\nCheck for a `REVIEW.md` file at the repository root. If it exists, read it and extract:\n- **Always check** rules: these become mandatory check items passed to all subagents (flagged at HIGH severity)\n- **Skip** rules: filter these paths/patterns out of scope before passing to subagents (apply alongside the file-type classification above)\n- **Domain-specific sections** (Security, Reliability, Database, Protobuf & API, Go conventions, Documentation): route each section to the corresponding review subagent as additional context\n\nIf no `REVIEW.md` exists, proceed without it. All review skills have their own reference checklists.\n\n- Determine which review types are applicable using these flags:\n  - **review-security**: applicable if `has_code` or `has_infra`\n  - **review-reliability**: applicable if `has_code` or `has_iac`\n  - **review-code**: applicable if `has_code` or `has_proto`\n  - **review-database**: applicable if `has_sql`, or database-interacting code exists (check imports for DB drivers like `pgx`, `pq`, `database/sql`, `sqlx`, `diesel`, `sqlalchemy`, etc.)\n  - **review-coverage**: applicable if `has_go` and `has_changes`\n  - **review-documentation**: always applicable\n  - **review-infrastructure**: applicable if `has_iac`\n  - **review-ci**: applicable if `has_ci`\n  - **review-observability**: applicable if `has_code` (observability gaps are code-level; configs alone aren't enough)\n  - **review-api-compat**: applicable if `has_api_specs` AND `has_changes` (it's a diff-aware review; no diff baseline = nothing to compare)\n  - **review-performance**: applicable ONLY if `include_performance` is true. Never auto-launched.\n\n### 2. System overview\n\nProduce a brief architecture summary covering:\n- Services, ports, and transport (gRPC, HTTP, etc.)\n- Data stores and external dependencies\n- Authentication and authorization mechanisms\n- Deployment model (if discernible)\n\nMap the critical hot paths:\n\n```\nClient → Transport\n  → step 1 (local / I/O annotation)\n  → step 2 (DB round-trip #1)\n  → step 3 (external call, round-trip #2)\n  → response\n```\n\nAnnotate each step: local vs. I/O, serial vs. parallel, cached vs. uncached.\n\nThis system overview is shared context for all review subagents.\n\n### 2b. Run pattern discovery (if full conformance mode)\n\nIf `conformance_mode` is `full`, resolve the review output directory first:\n\n```sh\nREVIEW_DATE=$(date +%Y-%m-%d)\nREVIEW_DIR=\"reviews/${REVIEW_DATE}\"\nif [ -d \"$REVIEW_DIR\" ]; then REVIEW_DIR=\"reviews/${REVIEW_DATE}-$(date +%H%M)\"; fi\nmkdir -p \"$REVIEW_DIR\"\n```\n\nThen launch a `/discover-patterns` subagent (`subagent_type=\"generalPurpose\"`, `model: opus` per `subagent-model-routing` — architecture-level pattern discovery) with the resolved scope and `REVIEW_DIR`, instructing it to write to `${REVIEW_DIR}/PATTERNS.md`. Pass `REVIEW_DIR` to review-code's prompt so its Conformance Check subagent reads `${REVIEW_DIR}/PATTERNS.md`. Other review subagents (security, reliability, database, documentation) can launch in parallel with this step since they don't depend on it; only review-code must wait for it to complete.\n\n### 3. Launch review subagents in parallel\n\nLaunch applicable review skills concurrently using the Task tool (max 4 at a time; if more than 4, launch the first 4 and the remaining after one completes). Each subagent is `subagent_type=\"generalPurpose\"`, `model: sonnet` (per `subagent-model-routing` — structured analysis with code-level findings).\n\nFor each subagent, include in its prompt:\n- The system overview and flow mapping from step 2\n- The resolved file list and package paths from step 1 (the subagent should use this scope directly and skip its own scope confirmation)\n- The `has_changes` flag, base ref, and changed file list from step 1 (so change-aware subagents like review-code's Regression History can use them)\n- The `pr_url` from step 1 (used to wrap `path:line` finding references via `~/.claude/scripts/pr-deeplink.sh`; empty string disables wrapping)\n- The `conformance_mode` flag from step 1a (for review-code only)\n- If `REVIEW.md` was loaded in step 1b: the \"Always check\" rules (for all subagents) and the relevant domain-specific section for that subagent (e.g. Security section → review-security, Database section → review-database). Instruct the subagent to treat \"Always check\" rules as HIGH severity and domain-specific rules as MEDIUM severity, in addition to its own reference checklist.\n- Instructions to follow the corresponding skill's workflow (read the SKILL.md for reference on what each skill does)\n- Request that it return the full findings output (including tracking annotations and tool availability sections)\n\n**Review subagents to launch:**\n\n| Subagent | Skill | Condition |\n|----------|-------|-----------|\n| Security | review-security | `has_code` or `has_infra` |\n| Reliability | review-reliability | `has_code` or `has_iac` |\n| Code | review-code | `has_code` or `has_proto` |\n| Database | review-database | `has_sql` or DB code in scope |\n| Coverage | review-coverage | `has_go` and `has_changes` |\n| Documentation | review-documentation | Always |\n| Infrastructure | review-infrastructure | `has_iac` |\n| CI | review-ci | `has_ci` |\n| Observability | review-observability | `has_code` |\n| API compatibility | review-api-compat | `has_api_specs` and `has_changes` |\n| Performance | review-performance | `include_performance` is true (opt-in only) |\n\nEach subagent should NOT write its own output file; it returns findings to this orchestrator.\n\n**Concurrency cap.** Launch up to 4 subagents at a time. With all skills enabled the dispatch can exceed 4; queue the rest and launch them as earlier ones complete.\n\n### 4. Launch summarization subagent\n\nAfter all review subagents complete, launch a single summarization subagent (`subagent_type=\"generalPurpose\"`, `model: opus` per `subagent-model-routing` — cross-cutting dedup and prioritization across all review domains) with the full findings from each review subagent. Pass `pr_url` so it can preserve and apply the [Finding link wrapping](#finding-link-wrapping) convention when rewriting tables.\n\nPrompt it to:\n1. **Deduplicate** overlapping findings across all reviews. Common overlaps to watch for:\n   - security ↔ reliability (e.g. unbounded result sets)\n   - security ↔ infrastructure (e.g. inline secrets in TF / k8s)\n   - security ↔ ci (e.g. PR-target script injection)\n   - reliability ↔ observability (e.g. missing error spans on hot paths)\n   - reliability ↔ infrastructure (e.g. k8s probes vs. shutdown contract — `review-infrastructure` covers probe presence, `review-reliability` covers shutdown semantics)\n   - code ↔ api-compat (e.g. a proto change flagged for design AND for wire compat)\n2. **Cross-reference** each deduplicated finding to its source review and IDs.\n3. **Preserve tracking status**. A finding is tracked if any source review marked it as tracked.\n4. **Prioritize**. Produce consolidated findings tables ordered by severity/priority, grouped by category (security, reliability, code, infrastructure, ci, observability, api-compatibility, performance, database, coverage, documentation).\n5. **Recommend fix order**, considering dependencies between findings and effort estimates. Already-tracked findings may be deprioritized if the existing TODO indicates a plan.\n6. **Tool Availability summary**. Consolidate from all reviews into a summary listing which automated tools ran successfully, which were skipped, and why.\n\n### 5. Present results\n\nIf `REVIEW_DIR` was resolved in step 2b, reuse it. Otherwise, resolve it now:\n\n```sh\nREVIEW_DATE=$(date +%Y-%m-%d)\nREVIEW_DIR=\"reviews/${REVIEW_DATE}\"\nif [ -d \"$REVIEW_DIR\" ]; then REVIEW_DIR=\"reviews/${REVIEW_DATE}-$(date +%H%M)\"; fi\nmkdir -p \"$REVIEW_DIR\"\n```\n\nCapture run metadata for the output header (see [Run metadata header](#run-metadata-header) below). When scope is diff-based, also capture `BASE_REF` and `BASE_COMMIT=$(git rev-parse \"$BASE_REF\")`.\n\nWrite the summarization output to `${REVIEW_DIR}/SUMMARY.md`, structured as:\n1. Run metadata header\n2. Tool availability summary\n3. System overview (from step 2)\n4. Consolidated findings tables (with tracking status inline), grouped by category\n5. Recommended fix order\n\nPresent the report to the user.\n\n---\n\n## Run metadata header\n\nCapture once near `REVIEW_DIR` resolution and prepend to every output document this skill writes (and require subagents that write their own files to do the same):\n\n```sh\nRUN_DATETIME=$(date -u +\"%Y-%m-%d %H:%M UTC\")\nGIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)\nGIT_COMMIT=$(git rev-parse --short HEAD)\nGIT_COMMIT_FULL=$(git rev-parse HEAD)\nGIT_SUBJECT=$(git log -1 --pretty=%s)\n# When scope is diff-based, also capture:\n# BASE_REF=<base, e.g. main>; BASE_COMMIT=$(git rev-parse --short \"$BASE_REF\")\n```\n\nHeader template (place at the very top of the output `.md`, before the H1 title):\n\n```markdown\n> **Run:** {RUN_DATETIME}\n> **Branch:** {GIT_BRANCH} @ {GIT_COMMIT} (`{GIT_COMMIT_FULL}`)\n> **Subject:** {GIT_SUBJECT}\n> **Base:** {BASE_REF} @ {BASE_COMMIT}   <!-- omit when scope is not diff-based -->\n> **Scope:** {scope description, e.g. \"changed files (PR #42)\" or \"full codebase\" or \"./internal/auth/...\"}\n```\n\n---\n\n## Finding link wrapping\n\nWhen `pr_url` is non-empty (resolved in step 1), every `path:line` reference inside finding cells in the consolidated tables below is wrapped as a Markdown link to the PR's \"Files changed\" tab, anchored at the line. The display text stays `path:line`; only the link target carries the URL, so table widths don't blow up.\n\nUse the helper to build each link:\n\n```sh\n~/.claude/scripts/pr-deeplink.sh \"$pr_url\" <path> <line>\n# → [path:line](https://github.com/owner/repo/pull/N/files#diff-<hash>R<line>)\n\n~/.claude/scripts/pr-deeplink.sh \"$pr_url\" <path>\n# → [path](https://github.com/owner/repo/pull/N/files#diff-<hash>)   (file-level)\n\n~/.claude/scripts/pr-deeplink.sh \"\" <path> <line>\n# → path:line   (no PR scope; plain text)\n```\n\nNotes:\n- Right-side anchor (`R<line>`) is the default and almost always correct; findings call out added/modified code.\n- Use `L` as the fourth argument only when a finding is specifically about removed code on the left side of the diff.\n- The diff anchor format (`#diff-<sha256(path).first32>`) is GitHub's stable but undocumented convention. If GitHub ever changes it, only `pr-deeplink.sh` needs updating.\n- For file-level findings (no specific line), call the helper without `<line>` to emit a file-anchor link.\n- `Tracked` column entries that include `path:line` (e.g. `TODO in foo.go:42`) follow the same wrapping rule.\n- Findings themselves follow `terse-comments`: concrete fix, optional `bug:`/`risk:`/`nit:`/`unsure:` prefix, no praise or restating the diff.\n\nThis applies to the consolidated tables below **and** to per-category finding tables emitted by each subagent (reproduced into the consolidated report).\n\n---\n\n## Output Templates\n\n### Consolidated security findings\n\n```markdown\n| Severity | ID | Finding | STRIDE | OWASP | Tracked |\n|----------|----|---------|--------|-------|---------|\n| CRITICAL | 1 | Description with code references | S1, E1 | A01, A07 | — |\n| HIGH | 2 | Description with code references | T2 | A04 | TODO in file:line |\n```\n\n### Consolidated reliability findings\n\n```markdown\n| Priority | Finding | Impact | Effort | Tracked |\n|----------|---------|--------|--------|---------|\n| P0 | Description with code references | Impact on availability/latency | trivial / small / moderate / large | — |\n```\n\n### Consolidated code findings\n\n```markdown\n| Severity | ID | Finding | Source | Tracked |\n|----------|----|---------|--------|---------|\n| HIGH | 1 | Description with code references | ARCH1, DEP2 | — |\n| MEDIUM | 2 | Description with code references | GO1, SA3 | TODO in file:line |\n| MEDIUM | 3 | Description with code references | PB2, PBL1 | — |\n| HIGH | 4 | Description with code references | REG1 | — |\n| MEDIUM | 5 | Description with code references | CONF1, CONF2 | — |\n```\n\n### Consolidated documentation findings\n\n```markdown\n| Severity | ID | Finding | Source | Tracked |\n|----------|----|---------|--------|---------|\n| HIGH | 1 | Description with code references | DOC1, DOC4 | — |\n| MEDIUM | 2 | Description with code references | DOC2 | TODO in file:line |\n```\n\n### Consolidated infrastructure findings\n\n```markdown\n| Priority | Surface | Finding | Impact | Effort | Tracked |\n|----------|---------|---------|--------|--------|---------|\n| P0 | k8s | Description with code references | Impact | trivial / small / moderate / large | — |\n| P1 | terraform | Description with code references | Impact | Effort | FIXME in file:line |\n```\n\n### Consolidated CI findings\n\n```markdown\n| Priority | Workflow | Finding | Impact | Effort | Tracked |\n|----------|----------|---------|--------|--------|---------|\n| P0 | release.yml | Description with code references | Supply chain / security | trivial / small / moderate / large | — |\n```\n\n### Consolidated observability findings\n\n```markdown\n| Priority | Signal | Finding | Impact | Effort | Tracked |\n|----------|--------|---------|--------|--------|---------|\n| P0 | tracing | Description with code references | MTTR / debuggability | trivial / small / moderate / large | — |\n```\n\n### Consolidated API compatibility findings\n\n```markdown\n| Priority | Surface | Change | Class | Recommendation | Tracked |\n|----------|---------|--------|-------|----------------|---------|\n| P0 | proto | `pkg.Service.Method` removed at file:line | wire-breaking | Deprecate first; remove in next major version | — |\n```\n\n### Consolidated performance findings\n\nOnly emitted when `include_performance` is true.\n\n```markdown\n| Priority | Category | Finding | Impact | Effort | Evidence | Tracked |\n|----------|----------|---------|--------|--------|----------|---------|\n| P1 | allocation | Description with code references | Allocations on hot path | small | profile needed | — |\n```\n\n### Consolidated coverage findings\n\nPer-package coverage (omit Delta column when no prior baseline exists):\n\n```markdown\n| Package | Coverage | Delta | Affected Functions |\n|---------|----------|-------|--------------------|\n| internal/auth | 78.4% | +2.1% | 3 changed, 1 uncovered |\n| internal/store | 64.2% | — | 5 changed, 4 uncovered |\n```\n\nUncovered functions (grouped by package, sorted by severity):\n\n```markdown\n| Severity | ID | Package | Function | File:Line | Tracked |\n|----------|----|---------|----------|-----------|---------|\n| HIGH | COV1 | internal/auth | `verifyToken` | auth/verify.go:42 | — |\n| MEDIUM | COV2 | internal/render | `(*Page).Render` | render/page.go:104 | — |\n| LOW | COV3 | internal/store | `formatRowKey` | store/key.go:18 | TODO in store/key.go:15 |\n```\n\n### Re-evaluation table (for follow-up reviews)\n\n```markdown\n| Finding | Status | What Changed |\n|---------|--------|--------------|\n| ~~1. Description~~ | FIXED | Brief explanation of the fix |\n| 2. Description | Still applicable | No changes |\n```\n\n---\n\n## Guidelines\n\n- Search the organization's codebase (Sourcegraph, GitHub) for existing patterns before recommending new dependencies or approaches.\n- Cross-reference findings between reviews to avoid duplicate entries in the consolidated tables.\n- Include effort estimates to help prioritize implementation.\n- When the user asks for a follow-up review, find the most recent review directory (`ls -d reviews/*/ 2>/dev/null | sort | tail -1`) containing `SUMMARY.md`, re-evaluate all prior findings against the current code state, and update with the re-evaluation table appended.\n- Findings must cite probed evidence (`path:line`, grep output, command result), not pattern-matched suspicion. Per `~/.claude/rules/probe-not-assume.md`.","tags":["review","all","skill","issue","paultyng","agent-skills","ai-tools","claude-code","cursor","dotfiles"],"capabilities":["skill","source-paultyng","skill-review-all","topic-agent-skills","topic-ai-tools","topic-claude-code","topic-cursor","topic-dotfiles"],"categories":["skill-issue"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/paultyng/skill-issue/review-all","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add paultyng/skill-issue","source_repo":"https://github.com/paultyng/skill-issue","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (19,564 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:09:01.384Z","embedding":null,"createdAt":"2026-05-18T13:21:26.562Z","updatedAt":"2026-05-18T19:09:01.384Z","lastSeenAt":"2026-05-18T19:09:01.384Z","tsv":"'+2.1':2490 '-1':1882,2629 '/.claude/rules/probe-not-assume.md':2669 '/.claude/scripts/pr-deeplink.sh':312,1183,2026,2035,2045 '/dev/null':256,2626 '/discover-patterns':967 '/internal/auth':164,1954 '/owner/repo/pull/n/files#diff-':2033,2041 '/patterns.md':998,1016 '/summary.md':1773 '1':64,873,883,1127,1153,1174,1505,1776,1968,2208,2260,2312,2493,2554 '104':2529 '15':2539 '18':2535 '1a':549,1194 '1b':590,1206 '2':255,836,878,891,1117,1583,1780,1789,2218,2268,2320,2562,2625 '2b':915,1694 '3':217,296,589,885,1048,1596,1784,2280,2491 '4':304,1064,1071,1075,1415,1428,1439,1612,1790,2288,2499 '42':1949,2522 '5':1637,1684,1801,2295,2497 '6':1662 '64.2':2496 '78.4':2489 'a01':2215 'a04':2224 'a07':2216 'abbrev':1859 'abbrev-ref':1858 'across':1469,1509 'action':388,393 'action.yml':394 'added/modified':2069 'addit':668,1255 'affect':138,2486 'alloc':2455,2460 'almost':2063 'alon':793 'alongsid':44,536,640 'alreadi':1649 'already-track':1648 'also':35,1753,1891 'alway':611,763,1208,1240,1352,2064 'analysi':186,1096 'anchor':1994,2057,2095,2134 'annot':876,893,1289 'api':424,655,799,804,1371,1375,1378,1570,1631,2409 'api-compat':1569,1630 'api/ingress/envoy':382 'append':2651 'appli':639,1489,2173 'applic':690,697,707,717,727,753,764,768,775,782,801,825,1055,2565 'approach':2584 'arch1':2265 'architectur':842,980 'architecture-level':979 'aren':794 'argument':2076 'ask':8,523,2609 'assess':19 'audit':21,25 'auth/verify.go':2521 'authent':857 'author':859 'auto':544,834 'auto-en':543 'auto-launch':833 'autom':1675 'avail':1292,1664,1782 'availability/latency':2245 'avoid':2592 'awar':814,1157 'azure-pipelines.yml':404 'backward':417 'base':93,476,492,1145,1752,1755,1758,1764,1890,1893,1895,1898,1905,1937,1938,1940 'baselin':504,818,2480 'becom':615 'benchmark':527 'bitbucket-pipelines.yml':406 'blow':2016 'bootstrap':383 'branch':82,103,265,461,1853,1926,1928 'break':2428 'brief':841,2557 'bug':2161 'build':2022 'buildkite/pipeline.yml':401 'cach':902 'call':887,2067,2125 'cap':1411 'captur':258,1731,1754,1814,1892 'carri':2008 'categori':1623,1800,2183,2448 'cell':1975 'chain':2380 'chang':77,99,117,452,457,759,808,1143,1148,1156,1347,1382,1575,1946,1992,2111,2415,2492,2498,2553,2567 'change-awar':1155 'chart':375 'chart.yaml':376 'check':490,565,595,612,617,737,1011,1209,1241 'checklist':684,1260 'ci':385,398,414,774,778,1359,1362,1364,1532,1628,2364 'circleci/config.yml':400 'cite':2654 'class':2416 'classif':645 'classifi':324 'client':870 'cloudbuild.yaml':405 'code':30,335,586,700,710,716,720,735,785,790,1005,1041,1099,1162,1198,1306,1315,1319,1322,1324,1336,1370,1568,1626,2070,2085,2211,2221,2241,2251,2263,2271,2283,2291,2298,2315,2323,2344,2355,2377,2400,2458,2641 'code-level':789,1098 'codebas':74,190,499,1952,2573 'column':2137,2476 'command':2661 'comment':2157 'commit':1759,1863,1871,1899,1930,1932,1941 'common':1512 'compar':821 'compat':418,800,1372,1376,1571,1582,1632,2410 'complet':1047,1081,1438,1447 'composit':392 'comprehens':15,538 'concern':86 'concret':2158 'concurr':1058,1410 'condit':1300 'conf1':2300 'conf2':2301 'config':396,399,792 'confirm':68,224,1140 'conform':551,562,571,921,924,1010,1189 'consid':1641 'consolid':58,245,1615,1666,1791,1978,2176,2193,2197,2229,2250,2302,2330,2363,2386,2408,2436,2467,2597 'contain':148,2630 'context':669,910 'contract':1555 'convent':657,1498,2107 'correct':2065 'correspond':664,1265 'cov1':2518 'cov2':2524 'cov3':2531 'cover':844,1559,1565 'coverag':752,1339,1342,1635,2468,2473,2484 'crds':380 'critic':867,2207 'cross':1464,1585,2586 'cross-cut':1463 'cross-refer':1584,2585 'current':264,2640 'cut':1465 'd':113,487,940,947,1707,1714,1848,2623 'data':852 'databas':653,726,733,1022,1230,1234,1328,1331,1634 'database-interact':732 'database/sql':745 'date':936,937,945,955,956,1703,1704,1712,1722,1723,1844 'datetim':1843,1925 'db':740,879,1335 'debugg':2403 'dedup':1466 'dedupl':1506,1588 'deep':11,236 'deep-link':235 'default':119,195,491,540,576,2061 'delta':2475,2485 'dep2':2266 'depend':856,1035,1642,2582 'dependabot/renovate':395 'deploy':861 'deprec':2429 'depriorit':1654 'deriv':137,180,202 'descript':1944,2209,2219,2239,2261,2269,2281,2289,2296,2313,2321,2342,2353,2375,2398,2456,2555,2563 'design':1578 'detect':505,550 'determin':329,685 'diesel':747 'diff':83,106,111,132,473,480,485,503,813,817,1751,1889,2092,2094,2097,2171 'diff-awar':812 'diff-bas':1750,1888 'diff-filt':110,484 'dir':942,949,952,963,990,997,1001,1015,1689,1709,1716,1719,1730,1772,1818 'direct':230,1134 'directori':147,157,171,932,2621 'disabl':1186 'discern':864 'discov':568 'discoveri':564,918,983 'dispatch':1425 'display':239,1999 'display-on':238 'doc':444 'doc1':2317 'doc2':2325 'doc4':2318 'dockerfiles/containerfiles':368 'document':658,762,1023,1348,1351,1636,1825,2303 'domain':24,50,648,1218,1248,1472 'domain-specif':49,647,1217,1247 'driver':741 'duplic':2593 'e.g':158,163,1224,1519,1525,1533,1541,1550,1572,1896,1945,2143 'e1':2214 'earlier':1436 'effort':1646,2236,2338,2358,2371,2394,2451,2600 'emit':2130,2186,2440 'empti':282,1184,1964 'enabl':545,1423 'enough':796 'entri':2138,2594 'error':1543 'estim':1647,2601 'etc':749,851 'evalu':2542,2634,2649 'ever':2110 'everi':1823,1969 'everyth':34,194 'evid':2452,2656 'exceed':1427 'exist':287,420,606,673,736,1657,2481,2577 'explan':2558 'explicit':40,151,466,522 'explor':67,193 'extern':855,886 'extract':610 'fals':495,541 'fi':959,1726 'file':78,100,118,143,150,167,177,200,207,327,338,354,359,364,447,458,547,599,643,1120,1149,1403,1836,1947,1991,2043,2119,2133,2227,2277,2328,2361,2424,2514 'file-anchor':2132 'file-level':2042,2118 'file-typ':206,642 'file/package':91 'filter':112,192,486,629 'final':244 'find':307,316,320,1101,1180,1285,1406,1476,1491,1495,1508,1589,1601,1616,1644,1651,1792,1955,1974,2066,2080,2121,2152,2184,2199,2203,2231,2234,2252,2256,2304,2308,2332,2336,2365,2369,2388,2392,2411,2438,2449,2469,2550,2588,2616,2637,2652 'finding-link-wrap':319,1494 'first':933,1074,2430 'first32':2100 'fix':1639,1803,2159,2556,2561 'fixm':2359 'flag':209,509,580,623,693,1144,1191,1576 'flow':1113 'follow':1263,2147,2154,2546,2613 'follow-up':2545,2612 'foo.go:42':2146 'format':2096 'formatrowkey':2533 'fourth':2075 'full':13,20,45,73,189,498,561,574,920,927,1284,1475,1872,1933,1951 'full-codebas':497 'function':2487,2502,2513 'gap':787 'gateway':379 'generalpurpos':971,1087,1455 'get':116 'gh':130,248,275 'git':105,479,1760,1852,1854,1862,1864,1870,1873,1878,1880,1900,1927,1929,1931,1935 'github':387,2102,2109,2575 'github.com':2032,2040 'github.com/owner/repo/pull/n/files#diff-':2031,2039 'github/workflows':390 'gitlab-ci.yml':402 'given':169 'go':139,149,160,181,339,351,353,656,756,1344 'go1':2273 'gql':442 'graphql':439,441 'grep':2659 'group':1621,1798,2503 'grpc':849 'guidelin':2568 'h':957,1724,1849 'h1':1920 'head':114,488,1861,1869,1877 'header':1737,1741,1745,1779,1813,1907 'helm':374 'help':2603 'helper':2020,2127 'high':625,1244,2217,2259,2287,2311,2517 'histori':1165 'hot':531,868,1546,2462 'hot-path':530 'http':850 'i/o':875,898 'iac':366,412,713,771,1318,1358 'id':1595,2202,2255,2307,2511 'impact':2235,2243,2337,2346,2357,2370,2393,2450 'implement':2605 'import':738 'includ':175,516,558,828,1105,1287,1387,2140,2442,2599 'indic':1659 'individu':166 'infra':408,703,1309 'infrastructur':767,1353,1356,1524,1549,1558,1627,2331 'inject':1538 'inlin':1526,1797 'insid':1973 'instead':136 'instruct':991,1235,1261 'interact':734 'internal/auth':159,2488,2519 'internal/render':2525 'internal/store':2495,2532 'invoc':188 'item':618 'jenkinsfil':403 'js':343 'json':251,278,433,437 'jsx':344 'k8s':369,1530,1551,2341 'kept':415 'kt':346 'kts':347 'l':2072 'larg':2249,2350,2385,2407 'latenc':534 'launch':333,835,965,1025,1049,1054,1072,1297,1412,1433,1440,1448 'left':2088 'level':791,981,1100,2044,2120 'lightweight':578 'like':560,742,1159 'line':309,1179,1971,1997,2003,2030,2047,2124,2142,2228,2278,2329,2362,2425,2515,2658 'link':237,317,321,1492,1496,1956,1986,2006,2024,2135 'linkerd/istio/gateway':381 'list':92,201,1121,1150,1673 'load':591,1203 'local':874,896 'log':1881 'low':2530 'ls':2622 'm':939,958,1706,1725,1847,1850 'main':121,494,1897 'major':2434 'mandatori':616 'manifest':370 'map':865,1114 'mark':1608 'markdown':1922,1985,2200,2232,2253,2305,2333,2366,2389,2412,2446,2482,2509,2549 'match':2666 'max':1063 'may':155,1652 'md':446,1917 'mechan':860 'medium':1252,2267,2279,2294,2319,2523 'mesh':378 'metadata':1733,1740,1744,1778,1812 'miss':1542 'mkdir':960,1727 'mode':552,572,922,925,1190 'model':862,972,977,1088,1093,1456,1461 'moder':2248,2349,2384,2406 'mttr':2402 'multi':23 'multi-domain':22 'must':1042,2653 'name':108,134,482 'name-on':107,133,481 'near':1816 'need':2115,2466 'never':542,832 'new':2581 'next':2433 'nit':2163 'non':1963 'non-empti':1962 'note':2053 'noth':819 'number':128,270 'observ':781,786,1365,1368,1540,1629,2387 'omit':2474 'one':1080,1437 'openapi':430 'openapi/swagger':428,449 'opt':507,1392 'opt-in':506,1391 'option':2160 'opus':973,1457 'orchestr':47,1409 'order':1618,1640,1804 'organ':2571 'otherwis':575,1697 'output':931,1286,1402,1736,1769,1824,1916,2195,2660 'overlap':1507,1513 'overview':838,907,1111,1786 'owasp':2205 'p':961,1728 'p0':2238,2340,2373,2396,2419 'p1':2351,2454 'packag':140,161,173,182,203,1123,2472,2483,2505,2512 'packages/directories':76 'page':2526 'parallel':55,901,1027,1053 'parent':146 'pars':1763,1857,1867,1876,1903 'pass':196,288,582,619,636,999,1481 'path':144,183,204,308,467,470,532,869,1124,1178,1547,1970,2002,2029,2038,2046,2099,2141,2463,2657 'paths/packages':152 'paths/patterns':631 'pattern':162,174,563,566,569,917,982,2578,2665 'pattern-match':2664 'pb2':2285 'pbl1':2286 'per':974,1090,1458,2182,2471,2668 'per-categori':2181 'per-packag':2470 'perf':526 'perform':42,517,525,824,829,1383,1386,1388,1633,2437,2443 'pgx':743 'phrase':515,559 'pkg.service.method':2421 'place':1909 'plain':2051 'plan':1661 'port':846 'pprof':529 'pq':744 'pr':80,101,127,131,232,249,260,269,276,286,289,313,459,1170,1482,1535,1948,1959,1989,2027,2036,2049 'pr-deeplink.sh':2114 'pr-target':1534 'prais':2167 'prefix':2165 'prepend':1821 'presenc':1561 'present':594,1685,1805 'preserv':1487,1597 'pretti':1883 'prior':2479,2636 'priorit':1468,1613,2604 'prioriti':2233,2334,2367,2390,2413,2447 'probe':1552,1560,2655 'proceed':674 'produc':839,1614 'product':17 'profil':528,2465 'prompt':1007,1108,1502 'proto':356,358,427,723,1327,1574,2420 'protobuf':654 'provid':228 'py':348 'q':253,280 'queue':1429 'r':2034,2058 'ran':1677 'rb':349 're':2541,2633,2648 're-evalu':2540,2632,2647 'read':607,1013,1269 'readi':18 'recent':2619 'recommend':1638,1802,2417,2580 'ref':477,1146,1756,1765,1860,1894,1906,1939 'refer':125,310,683,1181,1259,1273,1586,1972,2212,2222,2242,2264,2272,2284,2292,2299,2316,2324,2345,2356,2378,2401,2459,2587 'reg1':2293 'regress':1164 'release.yml':2374 'relev':1216 'reliabl':28,652,706,1021,1310,1313,1518,1539,1548,1564,1625,2230 'remain':1078 'remov':2084,2422,2431 'render':2527 'render/page.go':2528 'report':62,246,1807,2194 'repositori':602 'reproduc':2190 'request':41,98,514,539,557,1279 'requir':1830 'resolut':1819 'resolv':87,198,231,326,928,986,1119,1691,1698,1965 'respons':892 'rest':1431 'restat':2169 'result':1521,1686,2662 'return':1282,1405 'reus':1695 'rev':1762,1856,1866,1875,1902 'rev-pars':1761,1855,1865,1874,1901 'review':2,12,14,16,31,33,43,46,52,213,331,421,500,535,585,665,678,687,695,705,715,725,751,761,766,773,780,798,815,823,913,930,935,941,943,944,948,951,953,954,962,989,996,1000,1004,1014,1018,1040,1050,1056,1161,1197,1228,1233,1294,1303,1312,1321,1330,1341,1350,1355,1361,1367,1374,1385,1445,1471,1479,1511,1557,1563,1593,1607,1669,1688,1702,1708,1710,1711,1715,1718,1720,1721,1729,1771,1817,2548,2590,2615,2620,2624 'review-al':1 'review-api-compat':797,1373 'review-ci':772,1360 'review-cod':584,714,1003,1039,1160,1196,1320 'review-coverag':750,1340 'review-databas':724,1232,1329 'review-document':760,1349 'review-infrastructur':765,1354,1556 'review-observ':779,1366 'review-perform':822,1384 'review-reli':704,1311,1562 'review-secur':694,1227,1302 'review.md':592,598,672,1201 'rewrit':1500 'right':2055 'right-sid':2054 'risk':2162 'root':603 'round':881,889 'round-trip':880,888 'rout':659,978,1094,1462 'rs':340 'rule':613,628,1210,1242,1250,2151 'run':104,247,478,916,1732,1739,1743,1777,1811,1842,1923,1924 'run-metadata-head':1742 's1':2213 'sa3':2274 'schema':440 'scope':65,69,88,199,223,229,455,464,634,987,1133,1139,1338,1748,1886,1942,1943,2050 'script':1537 'search':2569 'secret':1527 'section':650,661,1220,1226,1231,1293 'secur':26,651,696,1020,1225,1229,1301,1304,1517,1523,1531,1624,2198,2381 'see':315,1738 'semant':1567 'serial':899 'servic':377,845 'set':570,1522 'sever':626,1245,1253,2201,2254,2306,2508,2510 'severity/priority':1620 'sh':934,1701,1841,2025 'sha256':2098 'share':909 'short':1868,1904 'shorthand':409 'shutdown':1554,1566 'side':2056,2089 'signal':2391 'sinc':1031 'singl':1450 'skill':53,679,1057,1266,1277,1299,1422,1827 'skill-review-all' 'skill.md':1271 'skip':220,627,1136,1681 'small':2247,2348,2383,2405,2464 'sonnet':1089 'sort':2506,2627 'sourc':337,1592,1606,2257,2309 'source-paultyng' 'sourcegraph':2574 'span':1544 'spec':425,429,450,805,1379 'specif':51,75,85,649,1219,1249,2082,2123 'specifi':156 'sql':361,363,730,1333 'sqlalchemi':748 'sqlx':746 'stabl':2104 'state':2642 'static':185 'status':1599,1796,2551 'stay':2001 'step':216,295,303,588,872,877,884,895,1030,1116,1126,1152,1173,1193,1205,1693,1788,1967 'still':2564 'store':853 'store/key.go':2534,2538 'stride':2204 'string':283,1185 'structur':1095,1774 'subag':56,214,293,301,305,422,622,638,666,914,968,969,976,1012,1019,1051,1083,1085,1092,1104,1129,1158,1213,1223,1237,1295,1298,1396,1416,1442,1446,1452,1453,1460,1480,1831,2189 'subagent-model-rout':975,1091,1459 'subject':1879,1934,1936 'success':1678 'summar':300,1441,1451,1768 'summari':843,1665,1672,1783 'summary.md':2631 'suppli':273,2379 'surfac':2335,2414 'suspicion':2667 'swagger':434 'swift':345 'system':837,906,1110,1785 't2':2223 'tab':1993 'tabl':1501,1617,1793,1979,2012,2177,2185,2543,2598,2650 'tail':2628 'target':1536,2007 'task':1061 'templat':1908,2196 'terraform':371,2352 'ters':2156 'terse-com':2155 'text':2000,2052 'tf':372,1529 'time':1067,1419 'titl':1921 'todo':1658,2144,2225,2275,2326,2536 'tofu':373 'tool':187,1062,1291,1663,1676,1781 'top':1913 'topic-agent-skills' 'topic-ai-tools' 'topic-claude-code' 'topic-cursor' 'topic-dotfiles' 'trace':2397 'track':1288,1598,1603,1611,1650,1795,2136,2206,2237,2258,2310,2339,2372,2395,2418,2453,2516 'transport':848,871 'treat':1239 'trip':882,890 'trivial':2246,2347,2382,2404 'true':453,518,831,1390,2445 'ts':341 'tsx':342 'type':208,548,644,688,970,1086,1454 'u':1845 'unbound':1520 'uncach':904 'uncov':2494,2500,2501 'undocu':2106 'unifi':61 'uniqu':145 'unsur':2164 'updat':2116,2644 'url':233,252,254,261,279,281,290,314,1171,1483,1960,2010,2028,2037 'use':4,36,129,226,241,311,691,1059,1131,1167,1175,2018,2071 'user':7,39,72,97,124,154,272,512,521,555,1810,2608 'utc':1851 'verifytoken':2520 'version':2435 'via':274,1182 'view':250,277 'vs':897,900,903,1553 'wait':1043 'watch':1515 'width':2013 'wire':1581,2427 'wire-break':2426 'without':675,2128 'workflow':63,389,1268,2368 'wrap':306,318,322,1177,1187,1493,1497,1957,1982,2150 'write':994,1399,1766,1828,1833 'y':938,1705,1846 'yaml':432,436 'yml':391,431,435","prices":[{"id":"36ee6259-02e2-48f0-b34f-945fc422bf91","listingId":"e5c85a4c-56c6-45a0-a391-4dbffa43021a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"paultyng","category":"skill-issue","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:26.562Z"}],"sources":[{"listingId":"e5c85a4c-56c6-45a0-a391-4dbffa43021a","source":"github","sourceId":"paultyng/skill-issue/review-all","sourceUrl":"https://github.com/paultyng/skill-issue/tree/main/skills/review-all","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:26.562Z","lastSeenAt":"2026-05-18T19:09:01.384Z"}],"details":{"listingId":"e5c85a4c-56c6-45a0-a391-4dbffa43021a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"paultyng","slug":"review-all","github":{"repo":"paultyng/skill-issue","stars":8,"topics":["agent-skills","ai-tools","claude-code","cursor","dotfiles"],"license":"mit","html_url":"https://github.com/paultyng/skill-issue","pushed_at":"2026-05-18T18:26:54Z","description":"Personal Claude Code / Cursor agent skills, rules, and config","skill_md_sha":"66b186c470f449e00e82f86d0d36a9894e6d828f","skill_md_path":"skills/review-all/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/paultyng/skill-issue/tree/main/skills/review-all"},"layout":"multi","source":"github","category":"skill-issue","frontmatter":{"name":"review-all","description":"Use when the user asks for a deep review, full review, comprehensive review, production readiness assessment, full audit, multi-domain audit, \"security and reliability and code review\", or \"review everything\". Also use when the user explicitly requests performance review alongside the comprehensive request (e.g. \"include perf\", \"review including performance\", \"deep review with perf\"); without that explicit phrasing, performance is excluded. Do NOT use for narrow single-domain reviews (use the matching review-* skill directly)."},"skills_sh_url":"https://skills.sh/paultyng/skill-issue/review-all"},"updatedAt":"2026-05-18T19:09:01.384Z"}}