Problem
update-jira-ticket is silent on task-list syntax on both paths, so checkbox-bearing content reaches Jira as literal brackets and agents rediscover the failure once per session by noticing the mangled description after the fact. On the Markdown path, Jira's Markdown-to-ADF converter does not map - [ ] / - [x] to ADF task items; it escapes the brackets, so each line persists as a bullet reading \[ \] .... On the HTML path, the conversion step gives no rule for task lists, so <li>[ ] ...</li> passes the pre-flight checker clean and lands the same defect without the backslashes.
Context
- The failure is systematic, not incidental.
design-and-plan and create-ticket both template acceptance criteria as - [ ] checkboxes, so an agent that faithfully forwards its own ticket artefact hits this on every run. An instruction phrased as advice about hand-authored prose would not catch that path; it has to name artefact-sourced content as in scope.
- The Markdown path's existing step 2 reserves
contentFormat: "adf" for "content whose fidelity Markdown cannot express," a description task lists fit. A rule that only forbids checkboxes would leave two steps pointing opposite ways.
contentFormat is a call-level parameter governing the whole fields.description value, so there is no per-section ADF escape.
- Observed against COMPPLAN-1729 via Rovo
editJiraIssue with contentFormat: "markdown". The tool's returned description rendered every criterion as * \[ \] ..., so the escaping happens server-side during conversion and is visible in the tool response without a separate read. The HTML-path variant is inferred from the allowlist rather than observed.
Proposed solution
Add a checklist rule to each path of packages/agents/content/skills/update-jira-ticket/SKILL.md, converting task-list syntax to plain bullets at the Jira boundary. Upstream templates keep - [ ], which renders correctly in local artefacts and on GitHub; only the Jira submission converts.
The Markdown path's rule also states that native checkboxes exist only as ADF taskList / taskItem nodes and that a checklist never justifies authoring the whole description as ADF, resolving the step-2 tension rather than sitting beside it.
No pre-flight checker rule. Every rules.ts entry maps to a documented INVALID_INPUT trigger, and a bracket-rendering defect fails nothing; enforcing it there would turn a validity pre-flight into a style linter and make "findings are not optional" untrue.
Acceptance criteria
Must have
Should have
Problem
update-jira-ticketis silent on task-list syntax on both paths, so checkbox-bearing content reaches Jira as literal brackets and agents rediscover the failure once per session by noticing the mangled description after the fact. On the Markdown path, Jira's Markdown-to-ADF converter does not map- [ ]/- [x]to ADF task items; it escapes the brackets, so each line persists as a bullet reading\[ \] .... On the HTML path, the conversion step gives no rule for task lists, so<li>[ ] ...</li>passes the pre-flight checker clean and lands the same defect without the backslashes.Context
design-and-planandcreate-ticketboth template acceptance criteria as- [ ]checkboxes, so an agent that faithfully forwards its own ticket artefact hits this on every run. An instruction phrased as advice about hand-authored prose would not catch that path; it has to name artefact-sourced content as in scope.contentFormat: "adf"for "content whose fidelity Markdown cannot express," a description task lists fit. A rule that only forbids checkboxes would leave two steps pointing opposite ways.contentFormatis a call-level parameter governing the wholefields.descriptionvalue, so there is no per-section ADF escape.editJiraIssuewithcontentFormat: "markdown". The tool's returned description rendered every criterion as* \[ \] ..., so the escaping happens server-side during conversion and is visible in the tool response without a separate read. The HTML-path variant is inferred from the allowlist rather than observed.Proposed solution
Add a checklist rule to each path of
packages/agents/content/skills/update-jira-ticket/SKILL.md, converting task-list syntax to plain bullets at the Jira boundary. Upstream templates keep- [ ], which renders correctly in local artefacts and on GitHub; only the Jira submission converts.The Markdown path's rule also states that native checkboxes exist only as ADF
taskList/taskItemnodes and that a checklist never justifies authoring the whole description as ADF, resolving the step-2 tension rather than sitting beside it.No pre-flight checker rule. Every
rules.tsentry maps to a documentedINVALID_INPUTtrigger, and a bracket-rendering defect fails nothing; enforcing it there would turn a validity pre-flight into a style linter and make "findings are not optional" untrue.Acceptance criteria
Must have
contentFormat: "adf".Should have
- [ ]cannot work there, so an implementer does not spend a round trip re-testing it.