Skip to content

Adjust jira skills for handling formatted descriptions#31

Merged
durandom merged 4 commits into
redhat-developer:mainfrom
johnmcollier:rhdhskillformatdesc
Jun 1, 2026
Merged

Adjust jira skills for handling formatted descriptions#31
durandom merged 4 commits into
redhat-developer:mainfrom
johnmcollier:rhdhskillformatdesc

Conversation

@johnmcollier

Copy link
Copy Markdown
Member

I was using the rhdh-jira skills to populate child epics for a Feature, and found that the formatted descriptions (e.g. h1 Epic Goal) were being formatted at all. I remember hitting something similar when interacting with the Jira MCP server.

In short, when interacting with issues via the Jira API, Jira expects issue descriptions to be formatted in the Atlassian Document Format (ADF).

I debated how to best handle this, ADF is a verbose JSON-based format (see here for an example), so maintaining it could be a pain. Claude came up with a Python script that can convert the jira markdown to ADF, but I'm undecided if this is the best approach, open to suggestions.

Otherwise, this PR makes a couple small changes based on how the acli parameters work for setting certain issue fields.

Assisted-by: Claude Opus 4.6
Signed-off-by: John Collier <jcollier@redhat.com>
@johnmcollier johnmcollier force-pushed the rhdhskillformatdesc branch from c87f3f9 to 1fdaddc Compare May 21, 2026 21:31
@johnmcollier

Copy link
Copy Markdown
Member Author

@schultzp2020 mind taking a look?

@schultzp2020 schultzp2020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work on the ADF path — this should fix the formatted-description issue for epics and features.

One thing I noticed: templates.md, acli-commands.md, and support.md still show the old plain-text create flow, and they aren't in this diff. Depending on which file an agent loads, it might still try the broken path. If you have bandwidth, updating those here (or in a quick follow-up) would keep the skill consistent. Happy to pair on a skill-maker audit pass if that's useful.

Test issues RHIDP-14212–14216 are closed.

Comment thread skills/rhdh-jira/references/to-issue.md Outdated
Comment thread skills/rhdh-jira/SKILL.md Outdated
Comment thread skills/rhdh-jira/references/to-epic.md
Comment thread skills/rhdh-jira/references/to-epic.md Outdated
Comment thread skills/rhdh-jira/scripts/jira-wiki-to-adf.py Outdated
@johnmcollier

Copy link
Copy Markdown
Member Author

Also addressed your general comment about the old plain-text create flow:

johnmcollier added a commit to johnmcollier/rhdh-skill that referenced this pull request May 28, 2026
- to-issue.md: story_points → customfield_10028 (field cannot be set via display name on writes)
- SKILL.md Gotcha redhat-developer#6: point agents at jira-wiki-to-adf.py instead of hand-rolling ADF
- to-epic/feature/issue.md: use $(mktemp) variable for ADF output files for portability
- to-epic.md: soften parent link wording — both customfield_10018 and parent.key work; warn only against issuelinks
- jira-wiki-to-adf.py: switch to argparse with --help, add encoding="utf-8" on file I/O, remove unused sys import
- tests/unit/test_jira_wiki_to_adf.py: 10 unit tests against epic-example.txt (heading, bulletList, taskList, inline marks)
- acli-commands.md, templates.md: fix old plain-text create flow to use ADF conversion step

Assisted-by: claude-sonnet-4-6
johnmcollier added a commit to johnmcollier/rhdh-skill that referenced this pull request May 28, 2026
- to-issue.md: story_points → customfield_10028 (field cannot be set via display name on writes)
- SKILL.md Gotcha redhat-developer#6: point agents at jira-wiki-to-adf.py instead of hand-rolling ADF
- to-epic/feature/issue.md: use $(mktemp) variable for ADF output files for portability
- to-epic.md: soften parent link wording — both customfield_10018 and parent.key work; warn only against issuelinks
- jira-wiki-to-adf.py: switch to argparse with --help, add encoding="utf-8" on file I/O, remove unused sys import
- tests/unit/test_jira_wiki_to_adf.py: 10 unit tests against epic-example.txt (heading, bulletList, taskList, inline marks)
- acli-commands.md, templates.md: fix old plain-text create flow to use ADF conversion step

Assisted-by: claude-sonnet-4-6
@johnmcollier johnmcollier force-pushed the rhdhskillformatdesc branch from adc6329 to 4298e7e Compare May 28, 2026 17:19
johnmcollier added a commit to johnmcollier/rhdh-skill that referenced this pull request May 28, 2026
- to-issue.md: story_points → customfield_10028 (field cannot be set via display name on writes)
- SKILL.md Gotcha redhat-developer#6: point agents at jira-wiki-to-adf.py instead of hand-rolling ADF
- to-epic/feature/issue.md: use $(mktemp) variable for ADF output files for portability
- to-epic/feature/issue.md: drop /tmp/ prefix from converter input paths (bare filename works cross-platform)
- to-epic.md: soften parent link wording — both customfield_10018 and parent.key work; warn only against issuelinks
- jira-wiki-to-adf.py: switch to argparse with --help, add encoding="utf-8" on file I/O, remove unused sys import
- tests/unit/test_jira_wiki_to_adf.py: 10 unit tests against epic-example.txt (heading, bulletList, taskList, inline marks)
- acli-commands.md, templates.md, support.md: fix old plain-text create flow to use ADF conversion step

Assisted-by: claude-sonnet-4-6
@johnmcollier johnmcollier force-pushed the rhdhskillformatdesc branch from 4298e7e to b873af6 Compare May 28, 2026 20:18
- to-issue.md: story_points → customfield_10028 (field cannot be set via display name on writes)
- SKILL.md Gotcha redhat-developer#6: point agents at jira-wiki-to-adf.py instead of hand-rolling ADF
- to-epic/feature/issue.md: use $(mktemp) variable for ADF output files for portability
- to-epic/feature/issue.md: drop /tmp/ prefix from converter input paths (bare filename works cross-platform)
- to-epic.md: soften parent link wording — both customfield_10018 and parent.key work; warn only against issuelinks
- jira-wiki-to-adf.py: switch to argparse with --help, add encoding="utf-8" on file I/O, remove unused sys import
- tests/unit/test_jira_wiki_to_adf.py: 10 unit tests against epic-example.txt (heading, bulletList, taskList, inline marks)
- acli-commands.md, templates.md, support.md: fix old plain-text create flow to use ADF conversion step

Assisted-by: claude-sonnet-4-6
@johnmcollier johnmcollier force-pushed the rhdhskillformatdesc branch from b873af6 to 92ad8fe Compare May 28, 2026 20:24

@durandom durandom left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean, well-tested stdlib-only converter that solves a real problem. All prior review feedback addressed. LGTM.

3 non-blocking suggestions for follow-up:

  1. Italic regex _([^_\n]+)_ can match mid-word underscores (e.g. field_name_here) — worth a docstring note if extending the converter later
  2. test_cli_stdout doesn't actually test the CLI subprocess — consider renaming to test_json_round_trip
  3. Multi-level lists not supported — documented limitation, acceptable for current scope

@durandom durandom merged commit b1cf635 into redhat-developer:main Jun 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants