Add Claude Jira integration workflow#5942
Draft
allisonschiang wants to merge 3 commits into
Draft
Conversation
Adds the first Claude Code workflow to rdk, mirroring the pattern used by viam-java-sdk and other SDK repos. Wraps the reusable workflow at viamrobotics/claude-ci-workflows. The workflow handles two scopes within the rdk monorepo, selected via a `scope` field in the dispatch payload: - viam-cli: CLI work scoped to cli/ - gosdk: Go SDK work in components/<type>/client.go, robot/client/, etc. Scope is communicated to Claude via extra_prompt branching. The Jira middleware will need to forward the matched label as `scope` in the client_payload (one-line change on the middleware side). Hard scope enforcement is intentionally minimal — settings.ci.json denies only the obviously dangerous paths (.github, api, Makefile, go.mod/go.sum). Scope discipline relies on the prompt + Claude's 75-turn budget. Post-flight scope checks can be added in a follow-up if scope leakage becomes a problem. Files: - .claude/settings.ci.json: deny rules for protected paths - .github/workflows/claude-jira.yml: workflow wrapper - CLAUDE.md: root pointer to subpackage CLAUDE.md files (cli/CLAUDE.md)
Adds the two remaining Claude workflows used by the SDK repos: - claude-pr-assistant.yml: auto-reviews Claude PRs after CI passes, and responds to @claude mentions in PR comments and review comments. Wraps both the claude-auto-review and claude-pr-assistant reusable workflows. - claude-ci-fix.yml: when the Test workflow fails on a claude/* branch, Claude attempts to auto-fix the failure. Also supports manual dispatch for fixing arbitrary failed runs. Both workflows mirror the Flutter SDK pattern, adapted for Go: install via `go mod download`, run inside `golang:1.25` container, allowed_tools scoped to Go and make commands. Auto-review and on-demand both include extra instructions to verify api/, .github/, Makefile, and go.mod/go.sum were not modified. NOTE: team_mention in claude-ci-fix.yml is set to @viamrobotics/core-rdk as a placeholder. Update this to the correct team handle if it differs.
Aligns the format with viam-python-sdk/CLAUDE.md and viam-typescript-sdk/CLAUDE.md: - Codebase Structure as an annotated tree - Go Conventions section with method signature pattern, formatting, anti-patterns - Verification Commands section Preserves the rdk-specific bits not present in the SDK templates: - Subpackages with their own CLAUDE.md (monorepo routing) - Protected Paths (mirrors .claude/settings.ci.json)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
viam-java-sdkand the other SDK repos. Wraps the reusable workflow atviamrobotics/claude-ci-workflows.scopefield in the dispatch payload:viam-cli(CLI work scoped tocli/) andgosdk(Go SDK work incomponents/<type>/client.go,robot/client/, etc.). Scope is communicated to Claude viaextra_promptbranching on the label value..claude/settings.ci.jsondenies only the obviously dangerous paths (.github/,api/,Makefile,go.mod,go.sum). Discipline relies on the prompt + the 75-turn (mediumcomplexity) default budget. Post-flight scope checks can be added in a follow-up if leakage becomes a problem.Files
.claude/settings.ci.json— deny rules for protected paths.github/workflows/claude-jira.yml— workflow wrapper (reusable workflow + containergolang:1.25+ Go-specificallowed_tools)CLAUDE.md— root pointer to subpackage CLAUDE.md files (currentlycli/CLAUDE.md)Middleware dependency
The Jira middleware will need to forward the matched label as
scopein theclient_payload(one-line change on the middleware side). Until that lands, the workflow can be smoke-tested via manualworkflow_dispatchruns from the Actions tab — thescopeinput is exposed there as a required choice betweenviam-cliandgosdk.Test plan
scope: viam-cliand a small CLI test ticket. Verify Claude opens aclaude/-prefixed PR that compiles.scope: gosdkand a small Go SDK test ticket. Verify Claude works in the Go SDK client paths and not elsewhere.JIRA_API_TOKENis configured).SLACK_AI_WORKFLOW_ALERT_WEBHOOK_URLis configured).scopefield to theclient_payload. Once landed, fire a real Jira ticket end-to-end.