agentleFS
igorkulmanigorkulman/pi-skills/skills/jira-update/SKILL.md

jira-update

Skill3 starsChanged 2 months agoMITView on GitHub

Update Jira tickets from the terminal using Jira REST API. Use when the user asks to edit a Jira issue description, replace a named section such as POEditor Strings, add comments, or otherwise mutate Jira ticket fields.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 10 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when the user explicitly asks to update/mutate a Jira ticket.

    line 9
  2. Distinctive:

    Never ask the user to paste tokens into chat and never print token values.

    line 14
  3. Distinctive:

    Before mutating, fetch the current issue so you know the current description/status and can preserve unrelated content.

    line 15
  4. Distinctive:

    Prefer small, targeted updates: replace a named section, append a comment, or update a specific field.

    line 16
  5. Distinctive:

    After mutating, verify by fetching the issue again and summarizing the changed section/field.

    line 17
  6. Distinctive:

    If auth fails, tell the user which variable names are needed, not secret values.

    line 37
  7. Distinctive:

    Use the existing Jira context helper for read-only context:

    line 41
  8. Distinctive:

    Use the bundled helper to replace the content under a Jira description heading while preserving the rest of the description.

    line 55
  9. Distinctive:

    Use Jira REST API directly with Python standard library or a short one-off script.

    line 100
  10. Distinctive:

    Use Jira REST API directly for targeted field changes:

    line 127

≈ “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

Jira Update

Use this skill when the user explicitly asks to update/mutate a Jira ticket.

Safety rules

  • Jira mutations are externally visible. Ask for confirmation before updating Jira unless the user already gave an explicit update instruction in the same request.
  • Never ask the user to paste tokens into chat and never print token values.
  • Before mutating, fetch the current issue so you know the current description/status and can preserve unrelated content.
  • Prefer small, targeted updates: replace a named section, append a comment, or update a specific field.
  • After mutating, verify by fetching the issue again and summarizing the changed section/field.

Authentication

Supported environment variables:

# Jira Cloud basic auth
export JIRA_EMAIL="name@example.com"
export JIRA_API_TOKEN="..."

# Jira Data Center / PAT bearer auth
export JIRA_BEARER_TOKEN="..."
# or
export JIRA_PAT="..."

# Required only when the user supplies an issue key instead of a full URL
export JIRA_BASE_URL="https://your-domain.atlassian.net"

If auth fails, tell the user which variable names are needed, not secret values.

Read issue context first

Use the existing Jira context helper for read-only context:

python3 ~/.pi/agent/skills/jira-task-context/scripts/jira_issue_context.py "<jira-url-or-key>" --depth 0 --comments 5 --max-text-chars 20000

For machine-readable output:

python3 ~/.pi/agent/skills/jira-task-context/scripts/jira_issue_context.py "<jira-url-or-key>" --depth 0 --comments 5 --format json --max-text-chars 20000

Replace a description section

Use the bundled helper to replace the content under a Jira description heading while preserving the rest of the description. The helper works with Atlassian Document Format (ADF), supports simple Markdown input, and issues a Jira REST PUT /rest/api/3/issue/{key}.

python3 ~/.pi/agent/skills/jira-update/scripts/jira_update_section.py \
  "<jira-url-or-key>" \
  --heading "POEditor Strings" \
  --markdown-file /tmp/poeditor-section.md

Dry-run first when practical:

python3 ~/.pi/agent/skills/jira-update/scripts/jira_update_section.py \
  "<jira-url-or-key>" \
  --heading "POEditor Strings" \
  --markdown-file /tmp/poeditor-section.md \
  --dry-run

Markdown supported by the helper:

  • headings (# Heading, ## Heading)
  • paragraphs
  • bullet lists (- item)
  • simple pipe tables with a separator row
  • inline code using backticks
  • bold using **text**

Example section file:

| Key | EN translation | Context |
|---|---|---|
| `dashboard_siri_tooltip_title` | Set up Siri Commands | TipKit title on Dashboard |

## Translator notes

- Keep `Siri` as Apple product name.
- Keep action labels short.

The helper finds the named heading and replaces content until the next heading of the same or higher level. If the heading is missing, it appends it by default. Use --no-append-if-missing to fail instead.

Add a comment

Use Jira REST API directly with Python standard library or a short one-off script. Endpoint:

POST /rest/api/3/issue/{issueKey}/comment

Payload shape:

{
  "body": {
    "type": "doc",
    "version": 1,
    "content": [
      {
        "type": "paragraph",
        "content": [
          { "type": "text", "text": "Comment text" }
        ]
      }
    ]
  }
}

Field updates

Use Jira REST API directly for targeted field changes:

PUT /rest/api/3/issue/{issueKey}

Payload examples:

{ "fields": { "summary": "New summary" } }
{ "fields": { "description": { "type": "doc", "version": 1, "content": [] } } }

Verification

After every update:

  1. Fetch the issue again.
  2. Confirm the changed section/field is present.
  3. Report the issue key, URL, HTTP status, and concise summary of what changed.

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.