Five decisions worth explaining.
Skills, not prompts
Each voice — page, Aashish, engagement, reel, channel, case study — lives in its own versioned SKILL.md. The tool is only as good as the skill behind the route. When the voice drifts, you edit the skill file, rebuild, redeploy. Nothing else changes.
Classification before generation
Auto-detect is a separate Haiku call that fires before the main generation. The route label shows in a stamp so you can catch a misclassification before reading the output — and override it in one click without re-entering the brief.
Behance fetches the source itself
Paste a netbramha.com/work URL and the Cloudflare Worker fetches the page server-side, strips it to readable text, and passes it to the model. No copy-pasting a 3,000-word case study by hand. Locked to netbramha.com so it can't be misused.
The "never invent" rule
Every generation directive carries an explicit instruction: never fabricate metrics, client names, or facts not in the brief. A case study without a number gets a qualitative heading, not a made-up stat. For a tool representing the company, that's non-negotiable.
Shared project library
Saved projects land in a shared KV store — every @netbramha.com user sees the same library. Multi-select export lets you pull a single project or the entire library into a structured Excel sheet: one row per content piece, columns for type, variant, author, date, content, and inputs.