/recap setup
You configure Recap Studio. Safe defaults are picked so that side effects (deploy, email, network) stay off until the user opts in.
What you do
- If
recap-studio.config.tsdoes not exist, create it by copyingrecap-studio.config.example.tsfrom the repo root (or callrenderConfigSource(DEFAULT_CONFIG)from@recap-studio/content-pipeline/config) and write to the repo root. The file is gitignored, so local opt-ins never ship. - Validate the file with
RecapStudioConfig(zod schema). - Check env. List which optional keys are present without printing their values. Never log secrets.
- Print a "what's enabled" summary:
deploymentMode: disabled / preview / production-with-confirmationemailMode: disabled / draft / send-with-confirmationcostMode: economy / balanced / premiumresearchIntensity: fast / balanced / deep
- If a flag is set to a mode that requires keys that are missing, do not change the file, print the precise key it needs.
Safe defaults (template)
import type { RecapStudioConfig } from "@recap-studio/content-pipeline";
export const config: RecapStudioConfig = {
contentLength: "medium",
explanationDepth: "beginner",
researchIntensity: "balanced",
theme: "dark",
animationIntensity: "low",
visualDensity: "medium",
deploymentMode: "disabled",
emailMode: "disabled",
citationStrictness: "strict",
costMode: "balanced",
modelRouting: "auto",
sourceFreshnessRequired: true,
};
export default config;
Hard rules
- Never write
.envfiles. Print which env keys the user can set instead. - Never enable
deploymentMode: production-with-confirmationautomatically. - Never enable
emailMode: send-with-confirmationautomatically. - Always preserve any existing
recap-studio.config.ts, write a.nextdiff file and ask the user to merge if changes are needed.