Agent skill

Work On Ticket

by jjmartres in jjmartres/opencode

Fetches Jira ticket details, creates an appropriately named branch, and initiates the task planning workflow.

MITAuto-check passedAgent Workflows

Install Work On Ticket

skills CLI
$ npx skills add jjmartres/opencode --skill work-on-ticket -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jjmartres/opencode work-on-ticket --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jjmartres/opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/opencode/skills/work-on-ticket .claude/skills/work-on-ticket && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
work-on-ticket
GitHub stars
133
Token cost
~2.3k tokens
SKILL.md length
959 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

Fetches Jira ticket details, creates an appropriately named branch, and initiates the task planning workflow.

  • Works in 7 steps: Parse Ticket ID → Fetch Jira Ticket Details → Generate Branch Name → …
  • The user says work on [TICKETID]
  • SKILL.md covers When to Use This Skill, Workflow, Error Handling and Example Usage, plus 3 more sections
  • Calls git

What it does

Work On Ticket is an agent skill from jjmartres/opencode. Fetches Jira ticket details, creates an appropriately named branch, and initiates the task planning workflow. Use when the user says "work on [TICKETID]" or similar phrases.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Planning. It works with Jira. The repository describes itself as: A powerful, custom opencode configuration, complete with a suite of agents, commands, rules, skills, and a pre-configured MCP server. It's designed to be a flexible starting… The licence is MIT.

When your agent uses it

  • The user says work on [TICKETID]
  • Similar phrases

Example prompts

  • “work on [TICKETID]”
  • “Use the work-on-ticket skill to fetch Jira ticket details, creates an appropriately named branch, and initiates the task planning workflow”
  • “/work-on-ticket”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Parse Ticket ID
  2. Fetch Jira Ticket Details
  3. Generate Branch Name
  4. Check Current Git State
  5. Create Branch
  6. Build Task Planning Prompt
  7. Execute Task Planning

What it can do on your machine

Read from SKILL.md and the folder at commit 28dc323. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Work On Ticket loads about 2.3k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 959 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jjmartres/opencode at commit 28dc323, republished under its MIT licence (© jjmartres). 959 words, ~2,323 tokens.

Download SKILL.mdSave it as .claude/skills/work-on-ticket/SKILL.md (or your agent's skills folder).
name
work-on-ticket
description
Fetches Jira ticket details, creates an appropriately named branch, and initiates the task planning workflow. Use when the user says "work on [TICKET_ID]" or similar phrases.

Work on Ticket

Streamlined workflow to start work on a Jira ticket by fetching ticket details, creating a branch, and initiating task planning.

When to Use This Skill

Activate this skill when:

  • The user says "work on AGP-123" or "start work on AGP-123"
  • The user says "pick up AGP-123" or "begin AGP-123"
  • The user mentions starting work on a specific Jira ticket ID
  • Pattern: work on [TICKET_ID] or similar intent

Workflow

1. Parse Ticket ID

Extract the Jira ticket ID from the user's message. Common patterns:

  • work on AGP-782
  • start AGP-782
  • pick up PROJ-123

Ticket ID format: [A-Z]+-[0-9]+ (e.g., AGP-782, AICC-123)

2. Fetch Jira Ticket Details

Use the MCP Zapier tool to fetch the ticket:

typescript
mcp__zapier -
  frontend__jira_software_cloud_find_issue_by_key({
    instructions: "Get details for ticket [TICKET_ID]",
    key: "[TICKET_ID]",
    fields: "summary,description,issuetype,priority,status",
  });

Extract from response:

  • Summary (title)
  • Description
  • Issue type
  • Status
  • Any other relevant context
3. Generate Branch Name

Create a branch name using this format:

[TICKET_ID]-[kebab-case-summary]

Branch Naming Rules:

  • Start with the ticket ID (e.g., AGP-782-)
  • Convert summary to kebab-case (lowercase, dashes instead of spaces)
  • Remove special characters
  • Keep it concise (max 50 characters total)
  • Use meaningful words from the summary

Examples:

  • AGP-782-migrate-existing-mcp-server
  • AICC-123-fix-auth-token-expiry
  • PROJ-456-add-user-settings-page

Implementation:

bash
# Convert summary to kebab-case
# Example: "Migrate existing MCP server" -> "migrate-existing-mcp-server"
4. Check Current Git State

Before creating a branch, check the current state:

bash
# Check current branch
git branch --show-current

# Check for uncommitted changes
git status --porcelain

If uncommitted changes exist:

  • STOP and inform User
  • Suggest: "You have uncommitted changes. Should I commit them first, stash them, or continue anyway?"
  • Wait for User's decision

If not on staging/main:

  • STOP and inform User
  • Suggest: "You're currently on branch [CURRENT_BRANCH]. Should I switch to staging first?"
  • Wait for User's decision
5. Create Branch

Once it's safe to proceed:

bash
# Ensure we're on the latest staging
git checkout staging
git pull origin staging

# Create and checkout new branch
git checkout -b [TICKET_ID]-[kebab-case-summary]

Confirm to User: "Created and checked out branch: [BRANCH_NAME]"

6. Build Task Planning Prompt

Analyze the Jira ticket and create a comprehensive prompt for the /eng:chore command:

Prompt should include:

  • The ticket summary
  • Key details from the description
  • Any acceptance criteria mentioned
  • Relevant technical context

Example prompt construction:

Summary: [ticket.summary]

Description: [ticket.description]

Acceptance Criteria:
[extracted criteria if present]
7. Execute Task Planning

Run the /eng:chore slash command with the ticket number and constructed prompt:

bash
/eng:chore [TICKET_ID] [CONSTRUCTED_PROMPT]

Example:

bash
AGP-782 Migrate existing MCP server implementation to new architecture

Description: We need to refactor the MCP server to use the new modular architecture. This includes updating the tool registry, migrating existing tools, and ensuring backward compatibility.

Acceptance Criteria:
- All existing tools work with new architecture
- Tests pass
- No breaking changes to API

Error Handling

If ticket not found:

  • Inform User: "Couldn't find ticket [TICKET_ID] in Jira. Please check the ticket ID."
  • STOP - don't proceed with branch creation

If branch already exists:

  • Inform User: "Branch [BRANCH_NAME] already exists."
  • Ask: "Should I check it out, create a new branch with a different name, or stop?"
  • Wait for decision

If git operations fail:

  • Show the error to User
  • STOP - don't proceed to task planning

Example Usage

Example 1: Simple Ticket

User: "work on AGP-782"

Claude:

  1. Fetches AGP-782 from Jira
  2. Finds summary: "Migrate existing MCP server"
  3. Checks git state (clean, on staging)
  4. Creates branch: AGP-782-migrate-existing-mcp-server
  5. Runs: /eng:chore AGP-782 Migrate existing MCP server implementation...
Example 2: With Uncommitted Changes

User: "work on AICC-456"

Claude:

  1. Fetches AICC-456 from Jira
  2. Checks git state - finds uncommitted changes
  3. STOPS and asks: "You have uncommitted changes. Should I commit them first, stash them, or continue anyway?"
  4. Waits for User's decision
Example 3: Ticket Not Found

User: "work on BAD-999"

Claude:

  1. Tries to fetch BAD-999 from Jira
  2. Ticket not found
  3. Informs User: "Couldn't find ticket BAD-999 in Jira. Please check the ticket ID."
  4. STOPS
Show full SKILL.md (449 more words)Show less

Coding Standards

CRITICAL RULE - NESTED CONDITIONALS:

  • NEVER EVER EVER USE NESTED CONDITIONALS when working on tickets
  • If you find yourself nesting if statements, STOP immediately
  • Refactor using early returns, guard clauses, or extract functions
  • This rule applies to all code written while working on any ticket
  • Violation of this rule is FAILURE

Why this matters:

  • Nested conditionals reduce readability and increase cognitive load
  • They make code harder to test and maintain
  • Early returns and guard clauses are always clearer

Instead of:

typescript
if (condition1) {
  if (condition2) {
    // do something
  }
}

Do this:

typescript
if (!condition1) return;
if (!condition2) return;
// do something

CRITICAL RULE - NO UNNECESSARY INLINE COMMENTS:

  • NEVER add simple, obvious inline comments that just restate what the code does
  • Code should be self-documenting through clear variable names, function names, and structure
  • Only add comments when they explain WHY something is done, not WHAT is being done
  • Remove unnecessary comments during refactoring
  • This rule applies to all code written while working on any ticket
  • Violation of this rule is FAILURE

Bad comments (obvious, unnecessary):

typescript
// Set the user's name
user.name = "Alice";

// Loop through the items
for (const item of items) {
  // Process the item
  processItem(item);
}

// Return true if valid
return isValid;

Good comments (explain WHY, add context):

typescript
// Cache user data for 5 minutes to reduce API calls
const cachedUser = await cache.get(userId, { ttl: 300 });

// Process items in batches to avoid memory issues with large datasets
for (const batch of chunkArray(items, 100)) {
  await processBatch(batch);
}

// Skip validation for admin users per security requirement SEC-123
if (user.isAdmin) return true;

When comments ARE appropriate:

  • Explaining non-obvious business logic or requirements
  • Documenting workarounds for external bugs (with issue links)
  • Clarifying performance optimizations
  • Noting security considerations
  • Referencing ticket numbers or external documentation

When to use NO comments:

  • If the code is self-explanatory
  • If a better variable/function name would make it clear
  • If the comment just repeats what the code obviously does

CRITICAL RULE - VITEST TESTING:

  • ALWAYS use the Vitest TDD Expert skill when writing or working with Vitest tests
  • Before writing any Vitest tests, activate the Vitest TDD Expert skill by invoking it with the Skill tool
  • The Vitest TDD Expert skill enforces:
    • Red-Green-Refactor TDD cycle (test first, always)
    • 95%+ coverage requirements with quality metrics
    • FIRST principles (Fast, Independent, Repeatable, Self-validating, Timely)
    • Behavior-focused testing (not implementation details)
    • Comprehensive edge case coverage and error path testing
    • Anti-pattern avoidance (no brittle tests, no excessive mocking)
  • This ensures high-quality, maintainable test suites that provide confidence
  • Violation of this rule means tests may be brittle, incomplete, or low quality

When to activate Vitest TDD Expert:

typescript
// Before writing Vitest tests, invoke:
Skill({ skill: "vitest-tdd" });

Important Notes

  • Always check git state before creating branches
  • Never force-create branches or overwrite existing branches
  • Never proceed if there are uncommitted changes without User's approval
  • Keep branch names concise - aim for clarity over completeness
  • Include ticket context in the task planning prompt to give the planner maximum context
  • The /eng:chore command will handle the detailed planning - this skill just sets up the environment

Success Criteria

The skill is successful when:

  1. ✅ Jira ticket is fetched successfully
  2. ✅ Appropriate branch name is generated
  3. ✅ Git state is verified (no uncommitted changes or user approved)
  4. ✅ New branch is created and checked out
  5. ✅ /eng:chore command is executed with ticket context
  6. ✅ User is informed of each major step

© jjmartres, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in opencode/skills/work-on-ticket of jjmartres/opencode.

Open the folder on GitHubat commit 28dc323

Compare with similar skills

Work On Ticket next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Work On Ticket compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Work On Ticket this skilljjmartres/opencode133—~2.3kAutomated safety check: PassMIT
Piv Plan Implementationcoleam00/skills676—~4.9kAutomated safety check: PassMIT
Run JiraDataDog/datadog-agent3.8k—~635Automated safety check: PassApache-2.0
PRP Implementation PlannerWirasm/prp2.3k—~4.1kAutomated safety check: PassMIT
PRP PlanWirasm/prp2.3k—~4kAutomated safety check: PassMIT
Plan Architecturecoleam00/skills676—~2.4kAutomated safety check: PassMIT

Similar skills

  • Creates a comprehensive, context-rich implementation plan through deep codebase analysis, a short clarifying interview, and external research.

    676 GitHub stars~4.9k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • Run Jira

    DataDog/datadog-agent

    Official

    Fetch a Jira issue and propose an implementation plan based on codebase analysis

    3.8k GitHub stars~635 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Turns a PRD, issue or description into an implementation-ready plan grounded in codebase evidence, adding root-cause analysis for bugs and publishing issue plans back to the issue.

    2.3k GitHub stars~4.1k tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • PRP Plan

    Wirasm/prp

    Writes an implementation-ready plan for a feature, bug fix, refactor or chore from a PRD, issue or description, grounded in codebase evidence, and can post it back to the source issue.

    2.3k GitHub stars~4k tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Plan Architecture

    coleam00/skills

    Interactively explore HOW to approach an intent (a PRD, epic, brief, or free-form idea) and decide the high-level architecture — the approach, stack, libraries, data shape, and risks the intent left…

    676 GitHub stars~2.4k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • Identify Fragile Systems

    BuilderIO/agent-native

    Nightly refactor review: find the systems the last day's commits hit hardest, use three weeks of history to tell fragile from fast-moving, write a plan per systemic fix, and file deduplicated Jira…

    7.1k GitHub stars~957 tokensUpdated today
    Testing & QAAuto-check passed

More from jjmartres/opencode

All 11 skills in this repo
  • Mermaid Diagrams

    jjmartres/opencode

    Helps an agent pick the right Mermaid diagram type and write the syntax for class, sequence, flow, ER, C4, state and other software diagrams.

    133 GitHub starsUsed in 6 repos~1.9k tokens
    Auto-check passed
  • Marp Slide Creator

    jjmartres/opencode

    Builds Marp slide decks in one of seven ready-made themes, using bundled templates plus syntax, image and style references to keep slides short and readable.

    133 GitHub starsUsed in 3 repos~2.2k tokens
    Auto-check passed
  • Lets an agent view, create, update and transition Jira issues in natural language, automatically choosing between the jira CLI and Atlassian MCP tools.

    133 GitHub starsUsed in 3 repos~1.7k tokens
    Auto-check passed
  • Google Style Code Docs

    jjmartres/opencode

    Applies Google Style documentation to Python docstrings, Go comments and Terraform descriptions, for writing new docs or reviewing existing ones.

    133 GitHub stars~1.9k tokensUpdated 5 mo ago
    Auto-check passed
  • Guides use of Worktrunk (wt), a CLI that makes git worktrees as easy as branches so several AI agents can work in parallel on isolated branches.

    133 GitHub stars~1.9k tokensUpdated 5 mo ago
    Auto-check: notes
  • A skill your agent uses when writing prose humans will read—documentation, commit messages, error messages, explanations, reports, or UI text.

    133 GitHub starsUsed in 6 repos~1k tokens
    Auto-check passed

Works with

Categories

Questions about Work On Ticket

What does Work On Ticket do?

Fetches Jira ticket details, creates an appropriately named branch, and initiates the task planning workflow. Work On Ticket is an agent skill from jjmartres/opencode. Fetches Jira ticket details, creates an appropriately named branch, and initiates the task planning workflow.

When should I use Work On Ticket?

Work On Ticket fits situations like: the user says work on [TICKETID]; similar phrases.

How do I install Work On Ticket in Claude Code?

Run `npx skills add jjmartres/opencode --skill work-on-ticket -a claude-code`. Or copy the skill folder (opencode/skills/work-on-ticket in jjmartres/opencode) into .claude/skills/work-on-ticket in your project. Claude Code loads it when a task matches its description.

How do I install Work On Ticket in Codex?

Run `npx skills add jjmartres/opencode --skill work-on-ticket -a codex`. Or copy the skill folder (opencode/skills/work-on-ticket in jjmartres/opencode) into .agents/skills/work-on-ticket in your project. Codex loads it when a task matches its description.

Can I use Work On Ticket in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jjmartres/opencode --skill work-on-ticket -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/work-on-ticket, .gemini/skills/work-on-ticket, .github/skills/work-on-ticket and .opencode/skills/work-on-ticket in your project.

What does Work On Ticket need to run?

Going by SKILL.md and its folder, Work On Ticket needs the command-line tools its instructions call (git).

Does Work On Ticket access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Work On Ticket safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Work On Ticket use?

Work On Ticket is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Work On Ticket use?

About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Work On Ticket?

Skills that share tags, products or a category with Work On Ticket: Piv Plan Implementation (coleam00/skills, 676 stars), Run Jira (DataDog/datadog-agent, 3.8k stars), PRP Implementation Planner (Wirasm/prp, 2.3k stars) and PRP Plan (Wirasm/prp, 2.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Work On Ticket?

jjmartres (a GitHub user) maintains it in jjmartres/opencode, which has 133 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on April 20, 2026.

Source: jjmartres/opencode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.