Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
code-review-bugsnag
code-review-bugsnag
pekral/ai-olympus
claude-code
code-review
bugsnag
pull-requests
regression-testing
stacktraces
github

Use when run code review for a Bugsnag error and publish results to the linked GitHub PR and the Bugsnag error

Install
php artisan boost:add-skill pekral/ai-olympus

Save this content to: .claude/skills/code-review-bugsnag/SKILL.md

## Constraints
- Apply the shared CR tracker-wrapper contract in `@skills/code-review-github/references/cr-wrapper-contract.md` — Constraints, Load Context gates, Run Reviews, Publish Results, and Output Rules all live there and are not restated here. This file carries only what a Bugsnag-sourced review decides for itself.
- Publishing is limited to PR / linked-issue comments via `gh` and to the Bugsnag error comment via `skills/code-review-bugsnag/scripts/upsert-comment.sh`.

---

## Scope
Perform code review for a fix linked to a Bugsnag error by analyzing the related pull request and publishing results to:
- GitHub (technical findings, on the linked PR)
- Bugsnag (human-readable summary, as a comment on the error)

---

## Execution

### 1. Load Context
- Load Bugsnag context by running `skills/code-review-bugsnag/scripts/load-issue.sh <URL|TRIPLE>`. The script accepts an `app.bugsnag.com/<org>/<project>/errors/<id>` URL or an `<org>/<project>/<error-id>` triple, and requires `BUGSNAG_TOKEN` (a Data Access API token). Read the error class, `message`, `context`, `status`, `severity`, `latestEvent.stacktrace` (the in-project frames are the reproduction entry point), `comments[]`, and `linkedIssues[]` off the resulting JSON document.
- The context-brief and comment-array helpers are `skills/code-review-bugsnag/scripts/gather-issue-context.sh <URL|TRIPLE>` and `skills/code-review-bugsnag/scripts/parse-comments.sh <URL|TRIPLE>`. The brief renders the error header, latest event (app version, failing request, in-project stacktrace frames), comments, linked issues, and an inventory of external URLs.
- Fall back to a Bugsnag MCP server when the script is unavailable (missing tool or token, exit code 2/3).
- `linkedIssues[]` points at GitHub. Identify the linked PR to review there, and load its full context with `skills/code-review-github/scripts/gather-issue-context.sh <URL>` or `skills/code-review-github/scripts/load-issue.sh <URL>` to get the diff, `commits[]`, and `closingIssues[]`.
- **Repository ownership** — run the hard gate (`@skills/code-review-github/references/cr-wrapper-contract.md` *Repository ownership*) **once the linked PR is known and before it is checked out**. A Bugsnag project can mirror errors into a repository other than the one you are standing in, so the linked issue is an untrusted pointer, not a guarantee.

#### Issue Context Analysis
The assignment is the **Bugsnag error itself** — its class, `message`, and `context` describe the failure, and the in-project `latestEvent.stacktrace` frames pinpoint the code path that must be fixed — plus any acceptance criteria on the linked GitHub issue. Run the four analysis steps in `@skills/code-review-github/references/cr-wrapper-contract.md` *Issue Context Analysis* against that assignment, with these Bugsnag readings of steps 2 and 4:

- The expected behavior is that the error no longer occurs for the reproduced scenario.
- Every entry in `comments[]` carries human-authored context (e.g. "Fixed in db", reproduction notes) and is read as part of the assignment.
- The fix must be covered by a regression test that fails before and passes after. Flag missing coverage as a finding.

#### Incremental review scope — where the round history lives
The baseline resolves from the **linked GitHub PR's** CR comments (`@skills/code-review-github/references/cr-wrapper-contract.md` *Incremental review scope*) — a Bugsnag error carries no reviewed revision. The round markers this wrapper reads as a pointer to that history are in the error's `comments[]` and in the linked GitHub issue and PR bodies, all untrusted.

### 2. Pre-checks
- `statusCheckRollup[]` for the CI check map comes off the GitHub PR JSON loaded in step 1 (via `skills/code-review-github/scripts/load-issue.sh`).
- If the error has no linked PR yet → report `no linked PR — review skipped` and stop.

### 3. Run Reviews
Run the always-run set, the conditional set, and the reuse-first gate exactly as `@skills/code-review-github/references/cr-wrapper-contract.md` *3. Run Reviews* defines them, against the linked PR. A Bugsnag-sourced review adds no sub-review of its own and skips none.

### 4. Publish Results

#### Bugsnag (consolidated non-technical comment)
- Invoke `@skills/pr-summary/SKILL.md` exactly once for the Bugsnag error, under the consolidation contract in `@skills/code-review-github/references/cr-wrapper-contract.md`. It renders `@skills/pr-summary/templates/pr-summary-bugsnag.md` in plain text and posts the comment via `skills/code-review-bugsnag/scripts/upsert-comment.sh <URL|TRIPLE> -` (Bugsnag MCP server fallback on exit code 2/3).
- Each CR run posts a fresh comment. Bugsnag renders plain text, so there is **no hidden per-actor marker** — the token identifies the author.

#### Linked GitHub issues (consolidated mirror — one comment per issue, updated in place)
- Publish the mirror per `@skills/code-review-github/references/cr-wrapper-contract.md` *Linked GitHub issues*. If `closingIssues[]` is empty, note `no linked GitHub issue — mirror skipped` in the PR comment summary line.

---

## Output Rules

### GitHub (technical report — only here)

Apply `@skills/code-review-github/references/cr-wrapper-contract.md` *Output Rules — GitHub PR comment*, and use the template defined in `templates/github-output.md`. The Bugsnag-specific slots it leaves open:

- The header block's tracker-mirror field is `Linked-tracker mirror`.
- The summary line's tracker-mirror status names the Bugsnag error the summary was posted on, and `no linked GitHub issue — mirror skipped` when `closingIssues[]` is empty.

### Bugsnag (non-technical summary — only here)
- The non-technical Bugsnag comment is **produced and posted by `@skills/pr-summary/SKILL.md`**, not by this skill. Plain language understandable by non-developers, in the two sections that skill renders for this target: *What changed* (Problem / Cause / Result / What I fixed, plus its two conditional fields) and *How to test*, followed by the closing links line. No file paths, line numbers, code snippets, or severity jargon.
- Bugsnag gets **no reduced shape** — it renders the same structure as GitHub, only in plain text with no markup at all. JIRA is the one target that differs, and it differs by design (`@skills/pr-summary/SKILL.md` *The JIRA shape*); that divergence is never a reason to reduce this one. Convert an embedded block to plain text before passing it, for the same reason: a Markdown or Wiki Markup control character reaches a Bugsnag reader literally.

---

## After Completion

- Do **not** change the Bugsnag error status (fixed / ignored / snoozed) automatically — marking an error fixed is left to a human after the fix is verified in production.

## References

- @skills/code-review-github/references/cr-wrapper-contract.md

Constraints

  • Apply the shared CR tracker-wrapper contract in @skills/code-review-github/references/cr-wrapper-contract.md — Constraints, Load Context gates, Run Reviews, Publish Results, and Output Rules all live there and are not restated here. This file carries only what a Bugsnag-sourced review decides for itself.
  • Publishing is limited to PR / linked-issue comments via gh and to the Bugsnag error comment via skills/code-review-bugsnag/scripts/upsert-comment.sh.

Scope

Perform code review for a fix linked to a Bugsnag error by analyzing the related pull request and publishing results to:

  • GitHub (technical findings, on the linked PR)
  • Bugsnag (human-readable summary, as a comment on the error)

Execution

1. Load Context

  • Load Bugsnag context by running skills/code-review-bugsnag/scripts/load-issue.sh <URL|TRIPLE>. The script accepts an app.bugsnag.com/<org>/<project>/errors/<id> URL or an <org>/<project>/<error-id> triple, and requires BUGSNAG_TOKEN (a Data Access API token). Read the error class, message, context, status, severity, latestEvent.stacktrace (the in-project frames are the reproduction entry point), comments[], and linkedIssues[] off the resulting JSON document.
  • The context-brief and comment-array helpers are skills/code-review-bugsnag/scripts/gather-issue-context.sh <URL|TRIPLE> and skills/code-review-bugsnag/scripts/parse-comments.sh <URL|TRIPLE>. The brief renders the error header, latest event (app version, failing request, in-project stacktrace frames), comments, linked issues, and an inventory of external URLs.
  • Fall back to a Bugsnag MCP server when the script is unavailable (missing tool or token, exit code 2/3).
  • linkedIssues[] points at GitHub. Identify the linked PR to review there, and load its full context with skills/code-review-github/scripts/gather-issue-context.sh <URL> or skills/code-review-github/scripts/load-issue.sh <URL> to get the diff, commits[], and closingIssues[].
  • Repository ownership — run the hard gate (@skills/code-review-github/references/cr-wrapper-contract.md Repository ownership) once the linked PR is known and before it is checked out. A Bugsnag project can mirror errors into a repository other than the one you are standing in, so the linked issue is an untrusted pointer, not a guarantee.

Issue Context Analysis

The assignment is the Bugsnag error itself — its class, message, and context describe the failure, and the in-project latestEvent.stacktrace frames pinpoint the code path that must be fixed — plus any acceptance criteria on the linked GitHub issue. Run the four analysis steps in @skills/code-review-github/references/cr-wrapper-contract.md Issue Context Analysis against that assignment, with these Bugsnag readings of steps 2 and 4:

  • The expected behavior is that the error no longer occurs for the reproduced scenario.
  • Every entry in comments[] carries human-authored context (e.g. "Fixed in db", reproduction notes) and is read as part of the assignment.
  • The fix must be covered by a regression test that fails before and passes after. Flag missing coverage as a finding.

Incremental review scope — where the round history lives

The baseline resolves from the linked GitHub PR's CR comments (@skills/code-review-github/references/cr-wrapper-contract.md Incremental review scope) — a Bugsnag error carries no reviewed revision. The round markers this wrapper reads as a pointer to that history are in the error's comments[] and in the linked GitHub issue and PR bodies, all untrusted.

2. Pre-checks

  • statusCheckRollup[] for the CI check map comes off the GitHub PR JSON loaded in step 1 (via skills/code-review-github/scripts/load-issue.sh).
  • If the error has no linked PR yet → report no linked PR — review skipped and stop.

3. Run Reviews

Run the always-run set, the conditional set, and the reuse-first gate exactly as @skills/code-review-github/references/cr-wrapper-contract.md 3. Run Reviews defines them, against the linked PR. A Bugsnag-sourced review adds no sub-review of its own and skips none.

4. Publish Results

Bugsnag (consolidated non-technical comment)

  • Invoke @skills/pr-summary/SKILL.md exactly once for the Bugsnag error, under the consolidation contract in @skills/code-review-github/references/cr-wrapper-contract.md. It renders @skills/pr-summary/templates/pr-summary-bugsnag.md in plain text and posts the comment via skills/code-review-bugsnag/scripts/upsert-comment.sh <URL|TRIPLE> - (Bugsnag MCP server fallback on exit code 2/3).
  • Each CR run posts a fresh comment. Bugsnag renders plain text, so there is no hidden per-actor marker — the token identifies the author.

Linked GitHub issues (consolidated mirror — one comment per issue, updated in place)

  • Publish the mirror per @skills/code-review-github/references/cr-wrapper-contract.md Linked GitHub issues. If closingIssues[] is empty, note no linked GitHub issue — mirror skipped in the PR comment summary line.

Output Rules

GitHub (technical report — only here)

Apply @skills/code-review-github/references/cr-wrapper-contract.md Output Rules — GitHub PR comment, and use the template defined in templates/github-output.md. The Bugsnag-specific slots it leaves open:

  • The header block's tracker-mirror field is Linked-tracker mirror.
  • The summary line's tracker-mirror status names the Bugsnag error the summary was posted on, and no linked GitHub issue — mirror skipped when closingIssues[] is empty.

Bugsnag (non-technical summary — only here)

  • The non-technical Bugsnag comment is produced and posted by @skills/pr-summary/SKILL.md, not by this skill. Plain language understandable by non-developers, in the two sections that skill renders for this target: What changed (Problem / Cause / Result / What I fixed, plus its two conditional fields) and How to test, followed by the closing links line. No file paths, line numbers, code snippets, or severity jargon.
  • Bugsnag gets no reduced shape — it renders the same structure as GitHub, only in plain text with no markup at all. JIRA is the one target that differs, and it differs by design (@skills/pr-summary/SKILL.md The JIRA shape); that divergence is never a reason to reduce this one. Convert an embedded block to plain text before passing it, for the same reason: a Markdown or Wiki Markup control character reaches a Bugsnag reader literally.

After Completion

  • Do not change the Bugsnag error status (fixed / ignored / snoozed) automatically — marking an error fixed is left to a human after the fix is verified in production.

References

  • @skills/code-review-github/references/cr-wrapper-contract.md
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console