sdk-feature-implementation

作者: sentry

在Sentry SDK仓库中通过生成并行代理来实现一个功能。适用于当你拥有Linear计划/项目/问题,并希望创建草稿…

npx skills add https://github.com/getsentry/sdk-skills --skill sdk-feature-implementation

SDK Feature Implementation

Implement a feature across Sentry SDK repositories by spawning parallel agents that create draft PRs.

Repo Access

Only operate on repos listed in SDK_REPOS.md. Only repos with Enabled=Yes are included by default. All repos are under the getsentry GitHub org.

Use gh CLI for all GitHub operations (PRs, branches, CI logs). Use Linear MCP for all context gathering and tracking.

Instructions

Step 1: Gather Context

Linear MCP is the primary source for all context gathering. The user needs to provide enough context to know what to implement and where. Accept any of these starting points:

  • Linear initiative (ideal) — fetch with mcp__linear-server__get_initiative to get the overview, then drill into projects/issues per SDK team
  • Linear project or issue — extract spec, reference PRs, and target repo from the description
  • Spec URL + target repos — user provides directly
  • Single repo + description — implement in just one SDK

From the provided context, extract:

  • Spec URL — look for links to specs/RFCs in Linear issue/project descriptions
  • Reference implementation PRs — look for PR links in Linear issue attachments or descriptions
  • Target repos — determine which SDK repos to implement in
  • GitHub issue numbers — found in Linear issue attachments (GitHub links are auto-attached)

Context gathering flow:

  1. mcp__linear-server__get_initiative — get initiative overview and linked projects
  2. mcp__linear-server__get_project — get project details for target SDK teams
  3. mcp__linear-server__get_issue — get detailed requirements, spec links, and GitHub issue attachments from each issue
  4. mcp__linear-server__list_comments — check for additional context or decisions in issue comments

Linear issues have GitHub issue/PR links as attachments — use these to find the corresponding GitHub issue numbers without needing to search GitHub directly.

Step 2: Fetch and Summarize Spec

If a spec URL was found, use WebFetch to read it. Otherwise, gather requirements from Linear issue descriptions and gh issue view <number> --repo getsentry/<repo-name> for GitHub issue details. Present a concise summary:

  • Feature name
  • Key requirements (bulleted list)
  • SDK-specific considerations
  • Breaking changes or deprecations

Ask the user to confirm the summary is accurate before proceeding.

Step 2.5: Identify SDK Dependencies

Hybrid SDKs depend on native SDKs for their platform layers:

  • sentry-react-native and sentry-capacitor wrap @sentry/core (JS) + sentry-cocoa (iOS) + sentry-java (Android)
  • sentry-dart (Flutter) has its own Dart implementation but uses sentry-cocoa (iOS) and sentry-java (Android) for native crash reporting and trace context in crash envelopes
  • sentry-unity and sentry-kotlin-multiplatform also depend on sentry-cocoa and sentry-java

When implementing across both hybrid and native SDKs:

  • Implement native SDKs (Cocoa, Java) first — hybrid SDKs can't compile native bridge code until those are released
  • JS wrapper SDKs (React Native, Capacitor) may already have the feature via @sentry/core — check before implementing from scratch. If @sentry/core already has it, the work is: expose options in SDK types, pass through to native bridge, add tests
  • Hybrid SDK PRs should note in "Next steps" which native SDK PRs must merge and be released before the hybrid SDK is fully functional
  • Only spawn ONE agent per repo. If a repo already has a worktree/branch from a previous run, reuse it

Step 3: Check Implementation State

For each target repo, check for existing PRs:

  • First check Linear — issue attachments contain links to GitHub PRs that were auto-linked
  • Then check GitHub for PR status using gh pr list --repo getsentry/<repo-name> --search "<feature-keyword>" --json number,title,state,isDraft,url
  • For PR details: gh pr view <number> --repo getsentry/<repo-name> --json state,isDraft,mergeable,statusCheckRollup

Present a matrix:

| SDK Repo | GH Issue | Existing PR | CI Status | Action |
|----------|----------|-------------|-----------|--------|
| sentry-rust | #123 | None | — | Implement |
| sentry-go | #124 | #200 (draft) | Failing | Fix CI |
| sentry-python | #100 | #150 (merged) | — | Skip |

This handles "continue from where you left off" naturally. Ask the user to confirm the action plan.

Step 4: Spawn Implementation Agents

  1. Read references/agent-prompt.md for the implementation agent prompt template.
  2. Fill in <repo-name>, <spec-summary>, <reference-prs>, <feature-name>, and <issue-number> for each SDK.
  3. Ask the user before spawning agents. Show them how many agents will be spawned and for which SDKs.
  4. Spawn agents in parallel. Each agent clones the repo and creates a git worktree internally for isolation.

Step 5: Verify with CI

Local tests should have already passed during implementation. Use CI as final verification.

After agents create draft PRs, check CI status with gh pr view <number> --repo getsentry/<repo-name> --json statusCheckRollup.

If CI fails:

  1. Fetch the actual failure logs — don't guess:

    gh run list --repo getsentry/<repo-name> --branch feat/<feature-name> --limit 5
    gh run view <run-id> --repo getsentry/<repo-name> --log-failed
    
  2. Fix the issue directly or spawn a fix agent with the CI error output included in the prompt.

  3. The fix should:

    • Read the failing files locally in the worktree
    • Reproduce and verify the fix locally
    • Push fixes with git push
  4. Re-check CI status after the fix.

Expect 2-3 CI fix iterations. Common issues:

  • Formatting — Run formatters with resolved dependencies (e.g., dart pub get before dart format)
  • Linting — Unnecessary imports, public API exposure for @internal functions
  • API stability — Some SDKs (Cocoa, Java) have API baseline checks; regenerate if you changed public API
  • Doc sync tests — Some SDKs check that all options are documented in sentry-docs; add to allowlist if docs PR is separate
  • Changelog — Some SDKs verify changelog entries exist for new features

Run CI-monitoring agents in the background so multiple PRs can be checked in parallel.

Step 5.5: Address Review Feedback

After CI passes, check for automated review feedback (Cursor bot, Danger, Sentry bot, etc.):

gh api repos/getsentry/<repo-name>/pulls/<number>/comments
gh api repos/getsentry/<repo-name>/issues/<number>/comments
  • Address valid feedback with code fixes and reply referencing the fix commit
  • Reply to false positives with reasoning
  • Common automated feedback: missing option allowlists, public API exposure, test coverage gaps

Step 6: Create Documentation PRs

For each SDK implementation, check if sentry-docs needs updates:

  1. Search sentry-docs for existing documentation related to the feature (e.g., configuration options pages, feature-specific guides, platform includes)
  2. Add or update documentation as needed — new options, new guides, or updated platform-specific includes
  3. Create docs PRs following the sentry-docs PR template (.github/PULL_REQUEST_TEMPLATE.md)
  4. Link docs PRs from the SDK PRs

Create separate docs PRs per SDK — don't bundle multiple platforms into one PR.

Step 7: Collect Results

Once all agents complete and CI passes:

  1. Present a results table:

    | SDK Repo | GH Issue | Draft PR | CI Status | Docs PR | Notes |
    |----------|----------|----------|-----------|---------|-------|
    | sentry-rust | #123 | #456 | Passing | #789 | Ready for review |
    | sentry-go | #124 | #457 | Failing | — | Test timeout, needs manual fix |
    
  2. Link to Linear (if available):

    • For each SDK that has a Linear project, use mcp__linear-server__save_project to add the PR links to the project description
    • Note: mcp__linear-server__query_data is read-only — always use mcp__linear-server__save_project for writes
  3. Summary: What was done and what needs manual follow-up.

Notes

  • Always confirm with the user before spawning agents — never auto-create without approval
  • Use Linear MCP for all context gathering (specs, requirements, issue details, project status). Use gh CLI for all GitHub operations (PRs, branches, CI logs, pushing code)
  • Only operate on repos listed in SDK_REPOS.md
  • For large rollouts (10+ SDKs), consider batching in groups of 5 to avoid rate limits
  • If a reference implementation is not available, the agent should still attempt implementation based on the spec alone, but flag it for extra review
  • Implementation agents clone the repo and use git worktree for isolated working directories
  • Run tests locally before creating PRs. CI serves as final verification
  • Use the linear-sdk-rollout skill first if Linear projects/issues don't exist yet

Example Usage

User: "Implement strict trace continuation across Rust, Go, and Java SDKs"

Response flow:

  1. Gather context — get initiative, projects, and issues from Linear MCP
  2. Fetch spec, confirm summary with user
  3. Check existing PRs — Rust has nothing, Go has a failing draft, Java has nothing
  4. Confirm plan: spawn 2 new agents (Rust, Java) + 1 fix agent (Go)
  5. Spawn agents in parallel with worktree isolation
  6. Monitor CI, fix failures (expect 2-3 iterations)
  7. Create docs PRs for each SDK
  8. Present results table, link to Linear

来自 sentry 的更多技能

generate-frontend-forms
sentry
使用Sentry新表单系统创建表单的指南。在实现表单、表单字段、验证或自动保存功能时使用。
official
sentry-snapshots-cocoa
sentry
完整的 Sentry Snapshots 配置,适用于 Apple/Cocoa 项目。当被要求“设置 SnapshotPreviews”、“设置 Apple 快照测试”、“上传 Apple 快照到…”时使用。
official
architecture-review
sentry
员工级代码库健康审查。发现单体模块、静默失败、类型安全漏洞、测试覆盖缺口以及LLM友好性问题。
official
linear-type-labeler
sentry
根据每个问题的标题和描述内容,对Linear问题进行分类,并从Sentry工作区的标签分类体系中应用一个类型标签。
official
sentry-flutter-sdk
sentry
完整的Sentry SDK配置,适用于Flutter和Dart。当被要求“为Flutter添加Sentry”、“安装sentry_flutter”、“在Dart中配置Sentry”或配置错误…时使用。
official
sentry-svelte-sdk
sentry
为Svelte和SvelteKit提供完整的Sentry SDK设置。当被要求“为Svelte添加Sentry”、“为SvelteKit添加Sentry”、“安装@sentry/sveltekit”或配置……时使用。
official
vercel-react-best-practices
sentry
来自 Vercel 工程团队的 React 和 Next.js 性能优化指南。在编写、审查或重构 React/Next.js… 时应使用此技能。
official
sentry-tanstack-start-sdk
sentry
为TanStack Start React提供完整的Sentry SDK设置。当被要求“向TanStack Start添加Sentry”、“安装@sentry/tanstackstart-react”或配置错误…时使用。
official