diff --git a/scripts/resolvers/preamble.ts b/scripts/resolvers/preamble.ts index 8cd1b557..7b144b2f 100644 --- a/scripts/resolvers/preamble.ts +++ b/scripts/resolvers/preamble.ts @@ -460,6 +460,21 @@ If you cannot determine the outcome, use "unknown". Both local JSONL and remote telemetry only run if telemetry is not off. The remote binary additionally requires the binary to exist. +## Plan Mode Safe Operations + +When in plan mode, these operations are always allowed because they produce +artifacts that inform the plan, not code changes: + +- \`$B\` commands (browse: screenshots, page inspection, navigation, snapshots) +- \`$D\` commands (design: generate mockups, variants, comparison boards, iterate) +- \`codex exec\` / \`codex review\` (outside voice, plan review, adversarial challenge) +- Writing to \`~/.gstack/\` (config, analytics, review logs, design artifacts, learnings) +- Writing to the plan file (already allowed by plan mode) +- \`open\` commands for viewing generated artifacts (comparison boards, HTML previews) + +These are read-only in spirit — they inspect the live site, generate visual artifacts, +or get independent opinions. They do NOT modify project source files. + ## Plan Status Footer When you are in plan mode and about to call ExitPlanMode: