agentleFS
SentryKnown publishergetsentry/sdk-skills/plugins/sentry-sdk-skills/skills/sdk-feature-implementation/SKILL.md

sdk-feature-implementation

Skill4 starsChanged 10 months agoApache-2.0View on GitHub

Implement a feature across Sentry SDK repositories by spawning parallel agents. Use when you have Linear initiatives/projects/issues and want to create draft PRs. Triggers on "implement across SDKs", "spawn SDK agents", "SDK implementation", "parallel SDK implementation", "continue SDK rollout".

  • Commits and pushes

The file

Show its rules and text

We split this skill into the rules it gives an agent

22 rules. About 0 are common, 14 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈14

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Very specific:

    Only operate on repos listed in SDK_REPOS.md.

    line 14
  2. Very specific:

    Use gh CLI for all GitHub operations (PRs, branches, CI logs).

    line 16
  3. Very specific:

    If a spec URL was found, use WebFetch to read it.

    line 45
  4. Distinctive:

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

    line 51
  5. Distinctive:

    When implementing across both hybrid and native SDKs:

    line 60
  6. Distinctive:

    Only spawn ONE agent per repo: If a repo already has a worktree/branch from a previous run, reuse it

    line 64
  7. Very specific:

    Read references/agent-prompt.md for the implementation agent prompt template.

    line 88
  8. Very specific:

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

    line 97
  9. Distinctive:

    Read the failing files locally in the worktree

    line 110
  10. Distinctive:

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

    line 123
  11. Distinctive:

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

    line 127
  12. Distinctive:

    Search sentry-docs for existing documentation related to the feature (e.g., configuration options pages, feature-specific guides, platform …

    line 142
  13. Distinctive:

    Add or update documentation as needed — new options, new guides, or updated platform-specific includes

    line 143
  14. Very specific:

    Create docs PRs following the sentry-docs PR template (.github/PULL_REQUEST_TEMPLATE.md)

    line 144
  15. Distinctive:

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

    line 147
  16. Distinctive:

    Always confirm with the user before spawning agents — never auto-create without approval

    line 169
  17. Very specific:

    Only operate on repos listed in SDK_REPOS.md

    line 171
  18. Distinctive:

    If a reference implementation is not available, the agent should still attempt implementation based on the spec alone, but flag it for …

    line 173
  19. Distinctive:

    Run tests locally before creating PRs.

    line 175
  20. Very specific:

    Use the linear-sdk-rollout skill first if Linear projects/issues don't exist yet

    line 176
  21. Distinctive:

    Check existing PRs — Rust has nothing, Go has a failing draft, Java has nothing

    line 185
  22. Distinctive:

    Create docs PRs for each SDK

    line 189

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.