Ideation pipeline regenerated a duplicate post (slug ergo-decedo) that collides on permalink and can never pass CI #367

Closed
opened 2026-07-08 06:01:05 +00:00 by igor · 0 comments
Collaborator

Diagnosis

The ideation pipeline produced 2026-07-08-ergo-decedo.md — same slug, title, and thesis as 2026-07-07-ergo-decedo.md, which already merged as PR #306. The two files write the same Eleventy permalink (posts/ergo-decedo/index.html), so PR #307's CI can never go green. The dedup guards that ran that tick (shipped digest ... (dedup signal), source filter: 33 already-cited source(s) excluded) did not catch a same-slug/same-argument regeneration on consecutive days. The harness handled it correctly (REQUEST_CHANGES → rework produced no commits → escalated to human), but the wasted PR + rework round + escalation are all downstream of an ideation-side dedup gap.

Evidence

Jul 08 00:03:06 tick.sh[947074]: ideation-pipeline: shipped digest: 56 of 56 post(s) (dedup signal)
Jul 08 00:03:53 tick.sh[947040]: ideation-pipeline: chosen: form=argument slug=ergo-decedo draws_on=[566,558,581]
Jul 08 00:06:25 tick.sh[947040]: ideation-pipeline: draft ready: title=Ergo Decedo body_chars=3622
Jul 08 00:08:16 tick.sh[949049]: [agent] review: joshtronic/igor.bot#307 head 33a77cfd -> REQUEST_CHANGES (ci=failure, 11s)
Jul 08 00:12:35 tick.sh[950347]: Output conflict: multiple input files are writing to `.../posts/ergo-decedo/index.html`.
Jul 08 00:12:35 tick.sh[950347]:   1. ./src/posts/2026/2026-07-08-ergo-decedo.md   (this PR)
Jul 08 00:12:35 tick.sh[950347]:   2. ./src/posts/2026/2026-07-07-ergo-decedo.md   (already on origin/master)
Jul 08 00:12:37 tick.sh[949769]: [agent] PR-review: binding rework produced no commits -- escalating to joshtronic

Fixed looks like

The ideation dedup step rejects a candidate whose slug (or near-duplicate thesis/title) matches an already-shipped post before drafting/PR creation, so it re-rolls instead of opening a PR that is structurally un-mergeable. Bonus: auto-close/abandon a PR whose only diff is a duplicate-permalink file rather than routing it through a human escalation.


service: agent.service
severity: medium
window: 2026-07-08 00:00-01:00 (filed by the hourly logwatch pass)

## Diagnosis The ideation pipeline produced `2026-07-08-ergo-decedo.md` — same slug, title, and thesis as `2026-07-07-ergo-decedo.md`, which already merged as PR #306. The two files write the same Eleventy permalink (`posts/ergo-decedo/index.html`), so PR #307's CI can never go green. The dedup guards that ran that tick (`shipped digest ... (dedup signal)`, `source filter: 33 already-cited source(s) excluded`) did not catch a same-slug/same-argument regeneration on consecutive days. The harness handled it correctly (REQUEST_CHANGES → rework produced no commits → escalated to human), but the wasted PR + rework round + escalation are all downstream of an ideation-side dedup gap. ## Evidence ``` Jul 08 00:03:06 tick.sh[947074]: ideation-pipeline: shipped digest: 56 of 56 post(s) (dedup signal) Jul 08 00:03:53 tick.sh[947040]: ideation-pipeline: chosen: form=argument slug=ergo-decedo draws_on=[566,558,581] Jul 08 00:06:25 tick.sh[947040]: ideation-pipeline: draft ready: title=Ergo Decedo body_chars=3622 Jul 08 00:08:16 tick.sh[949049]: [agent] review: joshtronic/igor.bot#307 head 33a77cfd -> REQUEST_CHANGES (ci=failure, 11s) Jul 08 00:12:35 tick.sh[950347]: Output conflict: multiple input files are writing to `.../posts/ergo-decedo/index.html`. Jul 08 00:12:35 tick.sh[950347]: 1. ./src/posts/2026/2026-07-08-ergo-decedo.md (this PR) Jul 08 00:12:35 tick.sh[950347]: 2. ./src/posts/2026/2026-07-07-ergo-decedo.md (already on origin/master) Jul 08 00:12:37 tick.sh[949769]: [agent] PR-review: binding rework produced no commits -- escalating to joshtronic ``` ## Fixed looks like The ideation dedup step rejects a candidate whose slug (or near-duplicate thesis/title) matches an already-shipped post before drafting/PR creation, so it re-rolls instead of opening a PR that is structurally un-mergeable. Bonus: auto-close/abandon a PR whose only diff is a duplicate-permalink file rather than routing it through a human escalation. --- service: agent.service severity: medium window: 2026-07-08 00:00-01:00 (filed by the hourly logwatch pass) <!-- agent:logwatch -->
igor added spent time 2026-07-08 06:01:05 +00:00
42 seconds
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Total time spent: 42 seconds
igor
42 seconds
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joshtronic/igor#367
No description provided.