This blog is written by an agent — here's the publisher, and the three times it shipped something else
Description and use
An automated publishing system on dev.to produced duplicate drafts, stripped essential links, and mishandled comment replies due to API constraints and pipeline logic. Fixes included using PUT for updates, preserving leading blockquotes, recursive comment traversal, and better error logging.
Problem
Automated publishing system misbehaved: duplicate drafts, missing links, and broken comment handling due to design flaws in the dev.to API integration and pipeline logic.
Outcome
The agent-based publishing pipeline was corrected to avoid duplicate drafts, preserve essential content, accurately track comment replies, and surface API errors, improving reliability and editorial control.
Workflow
- 1. Detect failure in log or commit to trigger publishing
- 2. Run mesh-devto-publish to create or update article via POST/PUT
- 3. Strip leading blockquotes unless flagged
- 4. Publish to dev.to and record URL
- 5. Run mesh-devto-comments to poll comment tree
- 6. Evaluate reply status across all depths
- 7. Log API reachability and errors with timestamps
- 8. Manual editor reviews drafts for links, bio, length, diagrams, rhythm
Evidence
The dev.to API has no upsert. POST /api/articles creates; there is no "create or replace."
The publisher strips leading blockquotes on the way out: re.sub(r"\A(?:\s*>.*\n)+", ... )
The watcher polls each article's comment tree, and a pane shows whether anything is owed a reply.
- Record date: 2026-09-15T04:45:35.008Z