Files
wehub-resource-sync 5a558eb09e
TypeScript SDK Compatibility V1.x E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / TypeScript SDK Compatibility V1.x E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
TypeScript SDK E2E Tests / TypeScript SDK E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
Python SDK E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK E2E Tests / Python SDK E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK E2E Tests / build-opik (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Python SDK Compatibility V1.x E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK E2E Tests / build-opik (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer E2E Tests Python ${{matrix.python_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer Integration Smoke Tests (push) Has been cancelled
🐙 Code Quality / detect (push) Has been cancelled
🐙 Code Quality / lint (${{ matrix.leg.name }}) (push) Has been cancelled
🐙 Code Quality / summary (push) Has been cancelled
TypeScript SDK Library Integration Tests / Check Secrets (push) Has been cancelled
TypeScript SDK Library Integration Tests / opik-vercel (Vercel AI SDK / eve) (push) Has been cancelled
SDK Library Integration Tests Runner / Check Secrets (push) Has been cancelled
SDK Library Integration Tests Runner / Missed OpenAI API Key Warning (push) Has been cancelled
SDK Library Integration Tests Runner / Build (push) Has been cancelled
SDK Library Integration Tests Runner / openai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_legacy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / llama_index_tests (push) Has been cancelled
SDK Library Integration Tests Runner / anthropic_tests (push) Has been cancelled
SDK Library Integration Tests Runner / mistral_tests (push) Has been cancelled
SDK Library Integration Tests Runner / groq_tests (push) Has been cancelled
SDK Library Integration Tests Runner / aisuite_tests (push) Has been cancelled
SDK Library Integration Tests Runner / haystack_tests (push) Has been cancelled
SDK Library Integration Tests Runner / dspy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v1_tests (push) Has been cancelled
SDK Library Integration Tests Runner / genai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_legacy_1_3_0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / evaluation_metrics_tests (push) Has been cancelled
SDK Library Integration Tests Runner / bedrock_tests (push) Has been cancelled
SDK Library Integration Tests Runner / litellm_tests (push) Has been cancelled
SDK Library Integration Tests Runner / harbor_tests (push) Has been cancelled
SDK Library Integration Tests Runner / Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / render-equality (push) Has been cancelled
Opik Optimizer - Unit Tests / Opik Optimizer Unit Tests Python ${{matrix.python_version}} (push) Has been cancelled
Python BE E2E Tests / Python BE E2E (push) Has been cancelled
Python Backend Tests / run-python-backend-tests (push) Has been cancelled
Python SDK Unit Tests / Python SDK Unit Tests ${{matrix.python_version}} (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
SDK E2E Libraries Integration Tests / Check Secrets (push) Has been cancelled
SDK E2E Libraries Integration Tests / Missed OpenAI API Key Warning (push) Has been cancelled
SDK E2E Libraries Integration Tests / build-opik (push) Has been cancelled
SDK E2E Libraries Integration Tests / E2E Lib Integration Python ${{matrix.python_version}} (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-gemini) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-langchain) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-openai) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-otel) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-vercel) (push) Has been cancelled
TypeScript SDK Build & Publish / build-and-publish (push) Has been cancelled
TypeScript SDK Unit Tests / Test on Node ${{ matrix.node-version }} (push) Has been cancelled
Backend Tests / discover-tests (push) Has been cancelled
Backend Tests / ${{ matrix.name }} (push) Has been cancelled
Build and Publish SDK / build-and-publish (push) Has been cancelled
Build Opik Docker Images / set-version (push) Has been cancelled
Build Opik Docker Images / build-backend (push) Has been cancelled
Build Opik Docker Images / build-sandbox-executor-python (push) Has been cancelled
Build Opik Docker Images / build-python-backend (push) Has been cancelled
Build Opik Docker Images / build-frontend (push) Has been cancelled
Build Opik Docker Images / create-git-tag (push) Has been cancelled
ClickHouse Migration Cluster Check / validate-clickhouse-migrations (push) Has been cancelled
Docs - Publish / run (push) Has been cancelled
E2E Tests - Post Merge (v2) / 🧪 E2E v2 Tests (${{ github.event.inputs.tier || 't1' }}) (push) Has been cancelled
E2E Tests - Post Merge (v2) / 📢 Slack Notification (push) Has been cancelled
Frontend Unit Tests / Test on Node 20 (push) Has been cancelled
Guardrails E2E Tests / Select Python version matrix (push) Has been cancelled
Guardrails E2E Tests / Guardrails E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Guardrails E2E Tests / 📢 Slack Notification (push) Has been cancelled
Guardrails Backend Unit Tests / Guardrails Backend Unit Tests (push) Has been cancelled
Guardrails Backend Unit Tests / 📢 Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v3.21.0) (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v4.2.0) (push) Has been cancelled
Lint Opik Helm Chart / unittest-helm-chart (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:25:44 +08:00

9.5 KiB

Work on GitHub Issue

Command: cursor work-on-github-issue

Overview

Fetch a GitHub issue by link, build full context (title, description, comments, labels, assignees, milestone), and generate an actionable implementation plan.
This workflow will:

  • Verify GitHub MCP availability (or instruct how to install it).
  • Fetch and parse the issue details.
  • If not found, list your assigned open issues.
  • Check local git status in the Opik repository and propose a branch if on main.
  • Suggest moving the issue to In Progress if it's currently open.
  • Validate all operations and provide clear success/failure feedback.

Inputs

  • GitHub issue link (required): e.g., https://github.com/comet-ml/opik/issues/1234

Steps

1. Preflight & Environment Check

  • Check GitHub MCP: If unavailable, respond with:

    "This command needs GitHub MCP configured. Set MCP config/env, run make cursor (Cursor) or make claude (Claude CLI), then retry."
    Stop here.

  • Check development environment: Verify project dependencies, build tools, and project structure are ready.
  • Check local git branch in the Opik repository:
    • If on main, propose a new branch following Opik naming convention:
      {USERNAME}/issue-{ISSUE-NUMBER}-{ISSUE-SUMMARY}
      
      Example:
      • Issue: https://github.com/comet-ml/opik/issues/1234
      • Title: "Add cursor git workflow rule"
      • Branch: andrescrz/issue-1234-add-cursor-git-workflow-rule

2. Fetch Issue

  • Extract issue number from link.
  • Fetch with GitHub MCP: title, body, state, labels, assignees, milestone, comments, created_at, updated_at.
  • If fetch fails: Show error message and suggest troubleshooting steps.
  • If not found: Search for open issues assigned to current user: is:open assignee:@me (max 10).
  • Show list: #1234 — Title (State) and stop if issue not found.

3. Build GitHub Context

  • Number, Title, State, Labels, Assignees, Milestone
  • Description: verbatim if short, otherwise concise summary + key quotes.
  • If no description: Note this and suggest adding context for better implementation planning.
  • Comments: newest → oldest, [author @ date] summary with important snippets.
  • Linked PRs: Include any linked pull requests if available.
  • Project context: Include project board information if available.

4. Determine Implementation Scope

  • Analyze issue scope: Determine which Opik components are affected:
    • Backend only: Java API changes, database migrations, services
    • Frontend only: React components, UI changes, state management
    • SDK only: Python or TypeScript SDK changes
    • Cross-component: Changes affecting multiple layers
    • Infrastructure: Docker, deployment, configuration changes
  • Identify affected areas: Map issue requirements to specific Opik modules and files
  • Estimate complexity: Consider if changes require database migrations, API versioning, or breaking changes

5. Task Plan

  • Bugfix: repro steps, root cause hypothesis, affected files, fix approach, risks, tests, verification.
  • Feature: user story recap, acceptance criteria, implementation plan, tests, rollout notes.
  • Always reference shared and domain guidance in the right place:
    • Global policy: .agents/rules/* (git workflow, security, code style, routing)
    • Backend guidance: .agents/skills/opik-backend/*
    • Frontend guidance: .agents/skills/opik-frontend/*
    • SDK guidance: .agents/skills/python-sdk/* and .agents/skills/typescript-sdk/*
  • Component-specific guidance: Use the appropriate rule set based on the implementation scope identified in step 4

6. Git & Branch Setup

  • Repo: Opik repository (current workspace)
  • CRITICAL: Handle working directory state BEFORE branching:
    • If working directory has changes:
      • Option 1: Stash changes: git stash push -m "WIP: before issue-{ISSUE-NUMBER}"
      • Option 2: Ask user what to do with uncommitted changes
    • NEVER commit directly to main (following Opik git workflow)
  • If on main, create branch following Opik conventions:
    # Ensure you're on main and pull latest
    git checkout main
    git pull origin main
    
    # Create task-specific branch
    git checkout -b {USERNAME}/issue-{ISSUE-NUMBER}-{ISSUE-SUMMARY}
    
  • After branch creation: Apply stashed changes if any: git stash pop
  • Verify branch creation: Confirm new branch is active and clean.

7. Status Management (Optional)

  • Move issue to "In Progress" if currently open:
    • Use GitHub MCP to add appropriate labels (e.g., "in-progress")
    • Verify label addition: Confirm labels were added successfully
    • Handle label failures: Provide error details and retry options

8. Implementation Suggestion

  • Based on GitHub context and Opik agent guidance, suggest implementing the feature/bugfix:

    • Reference global policy in .agents/rules/* and domain guidance in .agents/skills/*
    • Provide specific implementation steps based on the task plan
    • Include code examples or file paths where appropriate
    • Suggest testing approaches and quality checks
    • Follow Opik architecture patterns (Resources → Services → DAOs → Models for backend)
  • Commit Message Format: Follow shared conventions from .agents/rules/git-workflow.mdc.

    First Commit (PR-title source, required):

    [<TICKET-KEY>] [BE/FE/SDK/DOCS] <type>: <description>
    

    where <TICKET-KEY> is OPIK-####, issue-####, or NA.

    Follow-up Commits (preferred):

    <type>(<scope>): <description>
    

    where <type> is one of: feat, fix, refactor, test, docs, chore.

    Last-resort fallback (discouraged):

    Revision N: <description>
    

    Component Types:

    • [BE] - Backend changes (Java, API endpoints, services)
    • [FE] - Frontend changes (React, TypeScript, UI components)
    • [SDK] - SDK changes (Python, TypeScript SDKs)
    • [DOCS] - Documentation updates, README changes, comments, swagger/OpenAPI documentation

    Examples:

    [OPIK-1234] [BE] feat: add create trace endpoint
    [issue-1234] [FE] fix: guard project custom metrics empty state
    [OPIK-1234] [DOCS] docs: update API documentation
    [NA] [SDK] chore: align SDK lint configuration
    feat(experiments): add run-level metadata capture
    

9. User Confirmation

  • Ask for user approval before proceeding with implementation:
    • Present the implementation plan clearly
    • Ask: "Would you like me to proceed with implementing this feature/fix now?"
    • Wait for explicit user confirmation before making any code changes
    • If user declines: Stop here and provide guidance for manual implementation
    • If user confirms: Proceed to implementation phase

10. Implementation Phase (Optional)

  • Only proceed if user confirmed in previous step
  • Execute the implementation plan:
    • Create/modify necessary files following Opik patterns
    • Apply code changes according to the plan
    • Run quality checks and tests
    • Commit changes with proper issue number prefix
  • If user declined: Provide manual implementation guidance and stop

11. Completion Summary & Validation

  • Confirm all steps completed:
    • GitHub MCP available and working
    • Issue fetched and analyzed successfully
    • Labels updated (if applicable)
    • Feature branch created and active following Opik naming convention
    • Development environment ready
    • Implementation suggestion provided
  • Next steps: Provide clear guidance on what to do next
  • Error summary: If any steps failed, provide troubleshooting guidance

Error Handling

GitHub MCP Failures

  • Connection issues: Check network and authentication
  • Permission errors: Verify user access to the repository
  • Rate limiting: Wait and retry
  • API errors: Check GitHub API status and retry

Git Operation Failures

  • Branch creation fails: Check for conflicts, verify permissions
  • Pull fails: Resolve merge conflicts, check remote status
  • Working directory dirty: NEVER commit to main - stash changes first
  • CRITICAL SAFETY: Always verify current branch before any commits
  • Uncommitted changes: Stash before branching, pop after branch creation

Label Management Failures

  • Invalid label: Check available labels in the repository
  • Permission denied: Verify user can modify issue labels
  • Label doesn't exist: Create the label or use existing ones

Success Criteria

The command is successful when:

  1. GitHub issue is successfully fetched and analyzed
  2. Feature branch is created and active following Opik naming convention
  3. Issue labels are updated (if requested)
  4. Implementation suggestion provided based on context and Opik rules
  5. User confirmation received (proceed or decline)
  6. Implementation executed (if confirmed) or manual guidance provided (if declined)
  7. All operations complete without errors
  8. Clear next steps are provided to the user

Troubleshooting

Common Issues

  • GitHub MCP not available: Configure MCP and run make cursor (Cursor) or make claude (Claude CLI)
  • Git branch conflicts: Resolve conflicts before proceeding
  • Permission errors: Check user access and repository settings
  • Network issues: Verify connectivity to GitHub services

Fallback Options

  • If issue fetch fails: List user's assigned open issues
  • If branch creation fails: Provide manual git commands
  • If label update fails: Continue with development setup

End Command