From bfa54e2ee70c433338668fd81f71ddd67382a7c7 Mon Sep 17 00:00:00 2001 From: Hongming Wang Date: Wed, 29 Apr 2026 06:51:30 -0700 Subject: [PATCH] docs(CONTRIBUTING): add 'What goes where' section for content routing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a prominent section to CONTRIBUTING.md documenting that public content (blog, marketing, OG images, SEO briefs, DevRel demos) belongs in Molecule-AI/docs, not molecule-core. Mirrors the routing cheat-sheet from #2060 with the table of content-type → target repo, and points contributors at the existing `Block forbidden paths` CI gate as the loud-fail signal. Per the issue: 11 content PRs were silently blocked over 48h before being closed and redirected. This in-repo notice gives contributors (human and agent) a discoverable spot to learn the rule before opening the wrong PR. The CI gate is already enforcing the policy; this just makes the rule self-service. Closes #2060 Co-Authored-By: Claude Opus 4.7 (1M context) --- CONTRIBUTING.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ef55c36..a7474110 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,6 +53,29 @@ cp .env.example .env See `CLAUDE.md` for a full list of environment variables and their purposes. +## What goes where (content vs code) + +This repo is scoped to **code** (canvas, workspace, workspace-server, related +infra). Public content (blog posts, marketing copy, OG images, SEO briefs, +DevRel demos) lives in [`Molecule-AI/docs`](https://github.com/Molecule-AI/docs). +The `Block forbidden paths` CI gate fails any PR that writes to `marketing/` +or other removed paths — open against `Molecule-AI/docs` instead. + +| Content type | Target | +|---|---| +| Blog posts | `Molecule-AI/docs` → `content/blog//` | +| Doc pages | `Molecule-AI/docs` → `content/docs/` | +| Marketing copy / PMM positioning | `Molecule-AI/docs` → `marketing/` | +| OG images, visual assets | `Molecule-AI/docs` → `app/` or `marketing/` | +| SEO briefs | `Molecule-AI/docs` → `marketing/` | +| DevRel demos (runnable code) | Standalone repo under `Molecule-AI/`, OR embedded in `Molecule-AI/docs` | +| Launch checklists, internal tracking | GitHub Issues — **not** committed files | +| Engineering docs (`docs/adr/`, `docs/architecture/`, `docs/incidents/`) | This repo (internal, not published) | +| Live product pages (e.g. `canvas/src/app/pricing/page.tsx`) | This repo (these are app code, not marketing copy) | + +If a PR fails the `Block forbidden paths` check, the contents belong in +`Molecule-AI/docs`. No CI drag, no Canvas E2E, content lands in minutes. + ## Development Workflow ### Branch Naming