Line 686 of the ticket wrapper module edited the existing status comment with no snapshot of it first. A cross-review caught it at 11:55 AM.
By then a work group titled “JIRA comment tooling destroys existing comments” had already run from 10:48 AM to 11:25 AM. One commit in that group covered four tickets. It made edit-don’t-stack edit only comments carrying the agent marker, and never the author’s hand-written, review-round index or finding-tagged ones. It also snapshots the prior body to .runs/jira_comment_backups first, and it made the review-round index finder strict on the h3 R<N> index.
The worker’s report on those four tickets landed at 11:25 AM and said “the full gate was not run, as instructed.” Other workers that morning were stuck waiting on a gate. One of them was still waiting at 11:14 AM after 1590.24s. It named the command as python -m pytest -q -m "not slow" -n auto --dist loadfile and reported that nothing was committed or pushed yet.
What the second pair of eyes found
The reviewer was a separate run: codex exec, medium effort, 146.92s. It marked line 686 as a risk. The status command edits the existing status comment, and it did so without a snapshot, even though the commit above had already put a snapshot in front of edit-don’t-stack.
A second review ran at 11:57 AM and flagged a different file. cleanup_feature_branch() at line 604 of the git helpers checks origin/<branch> without fetching it. It was labelled a bug.
The follow-up commit
One commit carried the cross-review follow-ups. Two of its changes were in the comment tooling:
The status command snapshots before editing.
The agent marker only counts as a trailing suffix, and quoted markers are stripped.
The same commit also routed the SQL CLI through run_query (HY010).
After it landed, the status command at line 686 snapshots the existing comment before editing it, the way edit-don’t-stack already did.
AI Skills
Use this lesson with the AI assistant you already use
A commit made edit-don't-stack snapshot the prior comment body before editing, and it covered four tickets. A separate cross-review then found that the status command at line 686 of the wrapper module still edited the existing status comment with no snapshot.
Paste the prompt, share only the context needed to answer it, and treat the result as a draft for your review. Do not include confidential information or let an AI assistant make changes without your approval.
Optional: for a visual report and saved memory, run /dxdev first.
Don’t have it? Get it at dxdev.com/skills/dxdev. The prompt works without it.
dxdev LESSON · paste into your AI coding agent
LESSON: When One Code Path Gains A Safety Step, Audit Every Sibling Path That Mutates The Same Data
SOURCE: dxdev.com/blog/edit-in-place-only-touches-its-own-comments
WHAT HAPPENED: A work group titled "JIRA comment tooling destroys existing comments" produced a commit that restricted edit-don't-stack to agent-marked comments and snapshotted the prior body to `.runs/jira_comment_backups` first. The status command edits the same kind of comment, but the commit did not add a snapshot there. A separate `codex exec` review, run at medium effort for 146.92s, flagged line 686 as a risk because of the missing snapshot. A follow-up commit made the status command snapshot before editing. It also tightened the agent marker so it only counts as a trailing suffix and quoted markers are stripped.
THE RULE: When you add a safeguard such as a backup to one code path that mutates data, find every other path that mutates the same data and apply the safeguard there too. An independent review is a good way to catch the sibling paths the original author missed.
CHECK MY CODE, then report PASS or FAIL with file:line for each:
1. Every code path that edits an existing JIRA comment writes a snapshot to the backup directory before the edit, not just edit-don't-stack.
2. A test edits a comment through each entry point, including the status command, and asserts a backup file exists with the prior body.
3. When a safeguard is added in a commit, a search for other callers of the same edit or update function is recorded in the review, and each caller is either covered or explicitly exempted.
THEN PRINT: a table (check, PASS/FAIL, evidence, fix) + a verdict (applies / partially / OUT_OF_SCOPE / no) + the single most important next action.