Skip to content

#1285 Require plain bullets for checklists on both update-jira-ticket paths - #1302

Merged
williamthorsen merged 2 commits into
mainfrom
1285
Aug 13, 2026
Merged

#1285 Require plain bullets for checklists on both update-jira-ticket paths#1302
williamthorsen merged 2 commits into
mainfrom
1285

Conversation

@williamthorsen

@williamthorsen williamthorsen commented Aug 13, 2026

Copy link
Copy Markdown
Owner

What

Refines the guidance in update-jira-ticket to work around Jira's poor handling of checklist items. Agents are instructed to replace checklist items with plain bullets when submitting Markdown and with plain <li> elements when submitting HTML.

Why

Acceptance criteria forwarded to Jira arrived as bullets reading \[ \] ..., and the escaped brackets stayed in the ticket whenever nobody reread the description after the update. design-and-plan and create-ticket both template acceptance criteria as checkboxes, so the defect reached any ticket whose artefact was forwarded as written rather than being an occasional slip of hand-authored prose.

Details

🐛 Bug fixes

  • The Markdown path gains a step directing conversion of task-list syntax to plain - bullets, naming artefact-sourced content as in scope and closing with the carve-out that a checklist does not justify contentFormat: "adf". That closing clause resolves a tension with the path's existing step 2, which reserves ADF for fidelity Markdown cannot express, a description task lists fit.
  • The HTML path's conversion step gains a clause prescribing a plain <li>, and the antipattern list names carrying the brackets through as literal text.
  • The rule lives in the guidance rather than in the pre-flight checker, whose every rule maps to a documented INVALID_INPUT trigger; bracket text triggers none.

Closes #1285

Adds a step to `update-jira-ticket`'s Markdown path directing that task-list syntax be converted to plain `-` bullets before submission. Jira's Markdown-to-ADF converter does not map `- [ ]` to a task item; it escapes the brackets, so the line persists as a bullet reading `\[ \] ...`. The step names artefact-sourced content as in scope, since `design-and-plan` and `create-ticket` both template acceptance criteria as checkboxes.

The step also records that native checkboxes exist only as ADF `taskList` / `taskItem` nodes and that `contentFormat` governs the whole field rather than a section of it, so a checklist does not warrant authoring the description as ADF. The path's existing guidance reserves ADF for fidelity Markdown cannot express, which describes task lists exactly, so the carve-out is stated rather than left to inference.
Adds a task-list rule to `update-jira-ticket`'s HTML path: the conversion step now prescribes a plain `<li>`, and the antipattern list names carrying the brackets through as literal text. The allowlist excludes `input`, so a checkbox has no HTML representation, but `<li>[ ] ...</li>` is valid allowlist HTML that the pre-flight checker passes, leaving the same literal brackets in the Jira description that the Markdown path produces.

The rule lives in the guidance rather than in the pre-flight checker, whose every rule maps to a documented `INVALID_INPUT` trigger; bracket text triggers none.
@github-actions

Copy link
Copy Markdown

Dependency audit

Production dependency audit passed.

@williamthorsen williamthorsen self-assigned this Aug 13, 2026
@williamthorsen
williamthorsen marked this pull request as ready for review August 13, 2026 05:50
@williamthorsen
williamthorsen merged commit 4310e0f into main Aug 13, 2026
3 checks passed
@williamthorsen
williamthorsen deleted the 1285 branch August 13, 2026 05:52
williamthorsen added a commit that referenced this pull request Aug 13, 2026
…e-v0.3.0 codeassembly-v0.9.0 factory-v0.2.6 codeassembly-mcp-v0.2.5

codeassembly-v0.9.0
- #1288 feat: State mutability and name the lede reader at the artifact type lists (#1303)
- #1285 fix: Require plain bullets for checklists on both update-jira-ticket paths (#1302)
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1294 feat: Specify artifact mutability and its sanctioned exceptions (#1297)
- #1293 fix: Present and classify discretionary findings as actionable (#1295)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1280 feat: Add a refresh path that edits an existing AGENTS.md instead of redrafting it (#1287)
- #1055 feat: Replace the lede doctrine with corpus-derived guidance and retire the changelog-writer (#1286)
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1263 refactor: Retire the deferred-lint mechanism and adopt toolbelt.errors in agents (#1279)
- #1262 refactor: Hoist unreadable for-of expressions and promote the lint rule to an error (#1276)
- #1267 fix: Extend the no-hard-wrapping instruction to every GitHub composer (#1275)
- #1177 fix: Rewrite links, tokens, and template variables in a Markdown file support entry (#1273)
- #1176 feat: Add a ticketing-preferences hook to the skills that split and create tickets (#1268)
- #1252 fix: Keep a skill's own sections out of injected guidance (#1266)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
- #1247 feat: Add a personal tooling-preferences rulebook (#1257)
- #1251 feat: Let a rulebook declare that a guidance hook is how it is reached (#1259)
- #1246 feat: Guard home-domain writes and record their provenance (#1254)
- #1175 feat: Link new tickets to their blockers and parents (#1249)

factory-v0.2.6
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- deps: Upgrade all deps to latest version
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

kb-v0.6.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-lifecycle-v0.4.0
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-mcp-v0.2.5
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

codeassembly-run-core-v0.3.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Checkbox syntax reaches Jira as literal brackets on both update-jira-ticket paths

1 participant