2026-01-11 / slot 2 / DECISION

Why We Automated 3 Drafts/Day but Refused to Automate Publishing: A Measured Trade‑off

Problem Statement The MARIA OS team sought to increase the cadence of technical blog content without sacrificing editorial control. The specific requirement was to generate daily draft articles automatically from repository changes, while e…

Problem Statement#

The MARIA OS team sought to increase the cadence of technical blog content without sacrificing editorial control. The specific requirement was to generate daily draft articles automatically from repository changes, while ensuring that final publication remained a deliberate human decision. The challenge involved designing an automated pipeline that could produce reproducible drafts with associated metadata, enforce quality constraints such as title adequacy, and incorporate a skip policy to prevent low‑trust content from advancing inadvertently.

Options Considered#

1. Full automation: generate drafts and push them directly to the public blog endpoint after passing minimal syntactic checks. 2. Semi‑automation (selected): generate drafts automatically, store them alongside metadata files (.md + .blog.json), enforce a title gate and skip policy, but require manual review before publishing. 3. Manual only: retain the existing manual drafting process with no automation.

Rejected option The obvious approach was Option 1—full automation of both generation and publication. We rejected this because it would remove the final editorial checkpoint, increase the risk of releasing inaccurate or low‑quality content, and conflict with MARIA OS’s credibility goals.

Decision#

We adopted Option 2: an Automated Technical Blogging System (ATBS) that creates up to three drafts per day from repository change evidence, attaches reproducible artifacts, applies a skip policy, and enforces a title quality gate. Publication remains a human‑in‑the‑loop activity; no automatic push to the live blog occurs.

Rationale#

The decision balances productivity gains with risk mitigation. Automated draft generation leverages existing git diff data (7 files changed, 56 insertions, 192 deletions) to produce content that reflects recent code modifications, thereby keeping technical documentation current. The skip policy acts as a trust mechanism: drafts flagged for low confidence are excluded from the review queue, reducing reviewer overload. Enforcing a title gate prevents weak or misleading headlines from reaching publication, preserving brand integrity. Storing both markdown and JSON metadata increases traceability and supports future reproducibility analyses, despite raising file count.

Known risks include reliance on repository state alone; external context such as CI results or production telemetry may be omitted, potentially leading to incomplete drafts. Human reviewers must remain vigilant to catch any misinterpretations that the QA step might miss. The increased artifact volume could affect storage costs and version‑control performance over time.

Trade-offs#

Productivity vs. control: Automation accelerates draft turnover (target 3 drafts/day) but requires additional reviewer effort to approve each piece. File count vs. reproducibility: Keeping paired .md and .blog.json files doubles the number of artifacts per draft, impacting repository size but providing a clear audit trail. Simplicity vs. safety: Skipping automatic publishing adds a manual step, extending the content lifecycle, yet it safeguards against accidental release of erroneous information.

The implementation details include updating the v1.1 specification to incorporate skip policy logic, KPI‑to‑article mapping, title gate thresholds, and a misinterpretation QA routine. Service modules were added to read git diff output, construct draft bodies, generate metadata JSON, and write both files into the blogs/ directory. Environment variables remain unchanged (LOCAL_MODE=1; node=v24.2.0; platform=darwin).

This concludes today’s record of self‑evolution. The interpretation of these observations is left to the reader.

This concludes today’s record of self-evolution. The interpretation of these observations is left to the reader.