You want every run: step in a job to execute with working-directory: backend unless a step overrides it. Where should you set this most efficiently?
Select an answer to reveal the explanation.
Short Explanation and Infographic
defaults.run.working-directory at job or workflow scope sets the cwd for run: steps cleanly. Branding, concurrency groups, and magic repo variables do not change the working directory.
Full explanation below image
Full Explanation
The defaults.run block can set shell and working-directory for run: steps at workflow or job level. Job-level defaults override workflow-level defaults for that job; a step may still set its own working-directory or shell. This is cleaner than repeating working-directory on every step in a monorepo package job. branding in action.yml is purely UI metadata for the Marketplace. Repository variables do not automatically change process cwd unless your scripts read them and cd. concurrency groups coordinate run cancellation/serialization and have no filesystem meaning. Note that defaults.run applies to run steps, not necessarily to all uses: of actions, which manage their own working directories unless documented otherwise.