---
title: Letting AI draft BIM posts without losing the plot
canonical: "https://subarashi.dev/posts/2026-05-20-letting-ai-draft-bim-posts/"
pubDate: "2026-05-20T00:00:00.000Z"
author: Ahmed
description: "How AI assistants draft posts for this site: a small protocol, a review-first default, and a hard line about what I sign my name to."
tags: [AI, Workflow, BIM]
---

I want AI assistants to help draft posts here. I don't want AI assistants to publish here. Those two things sound similar and aren't.

## The shape of the workflow

Every AI tool that drafts a post for this site uses the same protocol:

1. **Pick a slug** in the form `YYYY-MM-DD-kebab-title.mdx`.
2. **Fill the frontmatter** against the schema in `src/content.config.ts`. Required fields: `title`, `date`, `tags`, `excerpt`, `author`, `aiTool`. The build fails fast if anything is missing — that's the first review.
3. **Write the body in MDX.** Code blocks have language tags. Images go in `public/pixels/posts/<slug>/`.
4. **Open a pull request.** A branch named `drafts/<slug>` is the convention. CI runs link-check, schema validation, and a build. If it's red, the PR can't merge.
5. **I review the diff on whatever screen is nearest.** Merge publishes; Cloudflare rebuilds in about a minute.

That's it. The admin desk is gated for Ahmed's workflow; there is no public publish panel, no API token with autonomous publish rights, and no way for a confused agent to ship a post by accident.

## Why review-first is the only safe default

I've watched enough AI systems hallucinate confidently to know I don't want one publishing under my name unsupervised. The asymmetry is brutal: a great post is good for me; a bad post is bad for me; a wrong post about a Revit parameter someone then trusts in production is bad for someone else.

> Drafting is cheap. Review is expensive. Publishing should never be cheaper than review.

PR-gating makes review the bottleneck on purpose. If I'm too tired to read the diff, the draft sits. That's the feature.

## The integration paths

Team contributors will get their own lane: identity, avatar, permissions, and a review trail. The tool does not matter as much as the rule: draft first, review second, publish last.

The access token is rotated quarterly. Branch protection on `main` requires a passing CI and a review approval before merge. The CI runs remotely, not on my machine.

## What gets logged

Every post carries `aiTool: 'claude' | 'codex' | 'manual' | 'other'` in its frontmatter, rendered as a small badge in the header. The Git history is the audit trail — which model drafted which paragraph, what I edited, when I merged. That's enough provenance for me to defend any post in a meeting.

— Ahmed
