Conversation
15-slide deck covering: what skills are, how to install them, skill structure, all 18 skills by domain, deep dives on web performance / iOS / Android / MCP integration, eval benchmarks, and contributing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tors) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…r file) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tegy Four new slides before the existing 'What Are Agent Skills?' slide that build the narrative from developer pain to the skills solution and Mapbox's specific motivation for publishing them. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers: evals.json format, how to pick good discriminating prompts, what makes a good expectation, the benchmark directory structure, and how to interpret +0pp results. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Two new slides after Contributing: one mapping the gaps (Flutter/React Native, custom rendering, offline maps, testing, i18n, Tiling Service) and one framing each gap as an opportunity with a concrete fork-and-PR call to action for community contributors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…cent equivalents Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Move tools/skills/prompts taxonomy to slide 3 (define before explaining) - Rename fine-tuning/RAG comparison to 'Why Agent Skills?' (slide 4) - Move 'Skills + MCP: Better Together' after deep dives (not after evals) - Move CTA slides (gaps, opportunity) after contributing/evals section - Result: Problem → Define → Why → Mapbox → Strategy → Use → Explore → Measure → Contribute → CTA Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Triggers on PRs with >=300 changed lines and on @claude mentions. Uses ANTHROPIC_API_KEY repo secret. Prompt tailored to skills repo: accuracy, skill schema structure, clarity of guidance, and consistency with existing skills. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The claude-code-action tries the GitHub App OIDC token exchange first when id-token: write is present. Without the app installed it fails before falling back to the ANTHROPIC_API_KEY secret. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The action uses OIDC to get an installation token from the Claude Code GitHub App, but the app isn't installed. Passing github_token explicitly makes the action use GITHUB_TOKEN for all GitHub API calls instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Claude finished @mattpodwysocki's task in 1m 54s —— View job Review of PR #56 — Add Claude automated code review + presentation deck
SummaryThis PR adds two things: (1) a GitHub Actions workflow for Claude-powered code review, and (2) a Slidev presentation deck covering the Mapbox Agent Skills project. Overall the PR is well-structured and the presentation content is technically sound. A few issues worth addressing: Workflow (
|
| actions: read | ||
| contents: read |
There was a problem hiding this comment.
The id-token: write permission is only needed for GitHub OIDC token exchange (GitHub App auth). Since this workflow uses ANTHROPIC_API_KEY directly (and the commit history suggests this was intentionally removed at one point), this permission can be dropped to follow least-privilege:
| actions: read | |
| contents: read | |
| actions: read |
| if: github.event_name == 'pull_request' | ||
| id: pr-size | ||
| run: | | ||
| CHANGED_LINES=$(git diff --stat origin/${{ github.event.pull_request.base.ref }}...origin/${{ github.event.pull_request.head.ref }} | tail -1 | awk '{gsub(/[^0-9]/, " "); print $1 + $2}') |
There was a problem hiding this comment.
This awk extraction is fragile — git diff --stat summary format varies (e.g., " 8 files changed, 9953 insertions(+)" vs " 1 file changed, 3 insertions(+), 1 deletion(-)") and gsub(/[^0-9]/, " ") strips all non-digits then sums the first two numbers, which could pick up the file count instead of insertions.
A more robust approach using --numstat:
| CHANGED_LINES=$(git diff --stat origin/${{ github.event.pull_request.base.ref }}...origin/${{ github.event.pull_request.head.ref }} | tail -1 | awk '{gsub(/[^0-9]/, " "); print $1 + $2}') | |
| CHANGED_LINES=$(git diff --numstat origin/${{ github.event.pull_request.base.ref }}...origin/${{ github.event.pull_request.head.ref }} | awk '{ added += $1; removed += $2 } END { print added + removed }') |
| Do NOT flag minor prose style preferences as issues. | ||
|
|
||
| Provide detailed inline comments for specific issues. | ||
| claude_args: '--model claude-opus-4-6 --allowedTools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*),mcp__github_inline_comment__create_inline_comment,Read,Grep,Glob,Bash(git log:*),Bash(git diff:*),Bash(git show:*),Bash(git blame:*),Bash(git rev-parse:*),WebFetch(domain:github.com)"' |
There was a problem hiding this comment.
Nit: This line is 430+ characters. Consider using a YAML block scalar for readability and easier maintenance:
claude_args: >-
--model claude-opus-4-6
--allowedTools
"Bash(gh issue view:*),Bash(gh search:*),..."|
|
||
| ```yaml | ||
| --- | ||
| name: mapbox-web-performance-patterns |
There was a problem hiding this comment.
The frontmatter mentions triggers in the prompt focus areas (line 48 of the workflow: "triggers, content"), but per CONTRIBUTING.md, the actual SKILL.md frontmatter schema only requires name and description — there's no triggers field. The trigger condition is embedded in the description text (e.g., "TRIGGER when...").
This slide's example is correct (just name + description), but note the workflow prompt references a field that doesn't exist in the schema.
|
|
||
| ## Slides | ||
|
|
||
| 1. Title — Mapbox Agent Skills |
There was a problem hiding this comment.
The slide order listed here doesn't match the actual order in slides.md. For example, "Why Agent Skills?" and "Why Mapbox Needs Skills" appear before the deep dives in the actual deck but aren't listed here, while "Skills + MCP: Better Together" is in the deck but missing from this list. Consider regenerating this list from the actual slide headings to keep it accurate.
Summary
Adds
.github/workflows/claude-review.ymlusinganthropics/claude-code-action@v1.@claudementions in PR commentsANTHROPIC_API_KEYrepo secretPrompt focus areas
Tailored for a markdown skills repo:
Setup required
Add
ANTHROPIC_API_KEYto repository secrets:Settings → Secrets and variables → Actions → New repository secret🤖 Generated with Claude Code