Skip to main content
Add feedback templates under prompts in Plannotator’s config.json. Plan and document feedback use the plan and annotate sections. Code review uses the separate review section. The file is <data-directory>/config.json. The data directory is normally ~/.plannotator, but PLANNOTATOR_DATA_DIR or an absolute XDG_DATA_HOME can change it. Plannotator reads the file again when it generates the next supported feedback message, so you do not need to restart it.

Plan and document feedback

Use prompts.plan for an agent’s plan-review decision:
Keep {{feedback}} in a template that should return your annotations. If you remove it, the template still runs, but the exported annotations are omitted from the message. Use prompts.annotate when a supported agent wrapper formats annotations on a file, folder, or assistant message:
The annotation transport determines whether Plannotator applies a template:

Code-review feedback

Use prompts.review for the result of plannotator review, including local changes, pull requests, and merge requests:
A review.denied override replaces only the built-in suffix. It leaves the annotations unchanged. Plannotator adds the suffix only when the submitted review has annotations. These settings do not change the instructions used by Ask AI or by an AI review job launched inside code review. Those jobs use their own prompts and any enabled global Agent Skills.

Agent-specific overrides

Place an override under runtimes inside the relevant section:
Supported runtime names are claude-code, amp, droid, kiro-cli, opencode, copilot-cli, pi, codex, and gemini-cli. For any key, Plannotator chooses the first non-blank string in this order:
  1. prompts.<section>.runtimes.<runtime>.<key>
  2. prompts.<section>.<key>
  3. A built-in value for that runtime, when one exists
  4. The built-in general value
An empty or whitespace-only string is treated as unset. A misspelled or unavailable {{placeholder}} remains unchanged in the returned message. A missing or malformed config file falls back to built-in behavior; malformed JSON also writes a warning to standard error.

Placeholder values

Check your change

  1. Add a short marker such as [custom-plan-feedback] to one template.
  2. Run the matching supported flow. For example, request a plan change for plan.denied, send an annotated code review for review.denied, or annotate a file through OpenCode, Pi, or Amp for annotate.fileFeedback.
  3. Make sure that the returned message contains the marker and the expanded placeholders.
  4. Remove the marker after you identify the selected key and runtime.
If the marker does not appear, make sure that the configuration path, JSON syntax, runtime name, and selection order are correct. See Configuration and Environment variables for the data-directory setting. Last verified against Plannotator OSS v0.25.0 on July 27, 2026. Maintained by the Plannotator project.
Last modified on August 9, 2026