Skip to content

Flip postprovision default: don't write .vscode/settings.json unless CLAUDE_WRITE_VSCODE_SETTINGS=1 #28

@achandmsft

Description

@achandmsft

Summary

Flip the default behavior of the postprovision hook so it does not write .vscode/settings.json unless the user explicitly opts in.

Background

In #26 we added CLAUDE_SKIP_VSCODE_SETTINGS as an opt-out so users who don't run the Anthropic Claude Code VS Code extension could keep the postprovision hook from touching .vscode/settings.json. After thinking about who actually uses this starter:

  • The primary consumers are people building with the Anthropic SDK, calling the Foundry endpoint from Copilot Chat / AI Toolkit, or running the Claude Code CLI (which only needs the claude-code.env.{ps1,sh} activator at the repo root — no .vscode/settings.json required).
  • The Claude Code VS Code extension is a niche layered on top of the CLI.

azd up writing into .vscode/settings.json by default is therefore:

Proposed change

  1. Make the default behavior: do not write .vscode/settings.json.
  2. New opt-in env var CLAUDE_WRITE_VSCODE_SETTINGS=1 (matches 1/true/yes/on, case-insensitive) for users who do want the extension wired up automatically.
  3. New -WriteVsCodeSettings switch on the .ps1 script and --write-vscode-settings flag on the .sh script.
  4. Keep CLAUDE_SKIP_VSCODE_SETTINGS, -SkipVsCodeSettings, and --skip-vscode-settings as deprecated no-ops so anyone who already set them after Add CLAUDE_SKIP_VSCODE_SETTINGS opt-out for postprovision hook #26 doesn't break.
  5. Update README post-deploy section, copilot-instructions.md env-var table, and SKILL.md MODIFY table accordingly.

The activator at the repo root and .claude/settings.json continue to be written either way — so the Claude Code CLI keeps working out of the box.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions