.prflow/config.json when PRFlow cannot read it, or when a setting does not change what a run does.
The workflow reports config.json not found
The workflow reports config.json not found
Symptom: a cloud run stops early and says it could not find the configuration file.Check that the file exists on the default branch and is committed:The first command fails if the file is untracked. The second names the ignore rule if one is hiding it. Run
/prflow:init, or the cloud installer, to scaffold the file. If your repository ignores it broadly, add it explicitly and narrow the ignore rule.The workflow reports invalid JSON
The workflow reports invalid JSON
Symptom: a cloud run stops with a parse error naming the configuration file.Validate the syntax locally:Fix the first parse error it reports, then run the command again. The cloud config reader fails on malformed JSON rather than quietly falling back to a full scaffold, so a trailing comma stops the whole run.Point your editor at
.prflow/config.schema.json for validation of types and accepted values. The runtime still applies setting-specific fallbacks for some missing or invalid leaves.A setting is ignored
A setting is ignored
Symptom: the setting is present and valid, and behavior does not change.Print the top-level key names to check the exact spelling and nesting:Current families begin with
prflow, such as prflow_implement and prflow_review. Running /prflow:init migrates supported older family names and backfills newly added keys.Then check the execution path. These are the common mismatches:prflow.allowed_toolsdoes not apply to implementation.prflow_implement.allowed_toolsdoes not apply to the light cloud command path.prflow_runnerandworkflows.prflow-reviewhave no effect in a fresh installation, because the automatic-review files are not shipped.- Provider selection is set per section, not once for the whole file.
A per-agent model or effort override did nothing
A per-agent model or effort override did nothing
Symptom: you set a model or an effort for one review agent, the run completes normally and the agent behaves exactly as before.Print the overrides block:A malformed override is dropped rather than raising an error. The run continues with the value it would have used anyway, so the only visible trace is a warning. On a cloud run, search the job log for it:Check each value against what is accepted:
An empty string, a whitespace-only string and a nested object are all treated as bad values. A provider-specific model identifier belongs at the top-level
claude_model, not here.Resolution is per entry. An agent that has its own entry uses only that entry, and the default entry does not fill in its missing fields. default supplies a model and effort only for agents that have no entry of their own.A configuration change has not taken effect
A configuration change has not taken effect
Symptom: you changed a setting in a pull request, and that pull request’s own run behaves as though you had not.Confirm what the default branch actually holds:Trigger-time security settings are read from the default branch, not from the pull request. Tool grants, provider routing, commit attribution, runner executable paths and git-environment pins added by a pull request are post-merge-only for that pull request’s own run.Merge the configuration change, then start a new run.
The installer backfilled unexpected keys
The installer backfilled unexpected keys
Symptom: re-running the installer or Backfill adds newly scaffolded keys. It does not replace existing values or arrays. A new default can expose a feature for discovery without enabling every execution path. Read Settings before you change one.
/prflow:init adds keys you did not write.Review the diff before you commit it: