Agent rule

Social posts draft from shipped builds (blog, todo projects, CDL chapters, showcase pages) — same builds on X and LinkedIn; X gets short hook + link; LinkedIn gets showcase story + link; no paid posting APIs.

Status: Accepted

Context: Build in public without $100/mo X API or LinkedIn app approval. Audience wants to see what we shipped and try it — not dev changelogs or ADR guardrails.

Decision: Public Tweet Pipeline at /pipeline and LinkedIn Pipeline at /linkedin from config/social-queue.json. social-draft.js + scripts/lib/build-sources.js auto-derive drafts from repo surfaces. LinkedIn compose copies full post to clipboard (URL pre-fill truncates). Community votes; owner posts via Web Intent or LinkedIn compose. No paid APIs.

Consequences: social-mark-ready.js, social-mark-posted.js, social-open.js. Votes persist when Supabase connects (ADR-011). New blog posts, todo projects with links, and published CDL chapters create drafts on next social-draft.js run.