Skip to content

feat(acp): inline base prompt override via BUZZ_ACP_BASE_PROMPT - #6421

Closed
tlongwell-block wants to merge 1 commit into
mainfrom
eva/base-prompt-env
Closed

feat(acp): inline base prompt override via BUZZ_ACP_BASE_PROMPT#6421
tlongwell-block wants to merge 1 commit into
mainfrom
eva/base-prompt-env

Conversation

@tlongwell-block

Copy link
Copy Markdown
Collaborator

What

Adds --base-prompt / BUZZ_ACP_BASE_PROMPT to the ACP harness: inline replacement text for the shipped [Base] platform prompt, and documents all base/system prompt knobs in a new Prompts section of the crate README.

Why

The harness could already replace the shipped base prompt with --base-prompt-file / BUZZ_ACP_BASE_PROMPT_FILE, or drop it with --no-base-prompt (#4557) — but there was no inline variant, and none of the three knobs were documented anywhere. A file path is unusable where env vars are the only config that travels (remote providers, container launches). The persona prompt already has the inline+file pair (BUZZ_ACP_SYSTEM_PROMPT / _FILE); this completes the same shape for the base prompt.

How

  • New arg/env resolves into the existing base_prompt_content channel, so prompt assembly is untouched — the diff is config.rs + README only (+103 lines, 89 of which are tests and docs).
  • Same 1 MB cap as the file path.
  • Conflicts fail loudly at startup: clap rejects combining with --no-base-prompt or --base-prompt-file (verified live for the env-var form too).
  • Deliberately not added to RESERVED_ENV_KEYS: that list is security-sensitive keys only, and this is the same freely-overridable class as BUZZ_ACP_SYSTEM_PROMPT (per the list's own comment). Desktop users can set it per-agent today.

Testing

  • Full cargo test -p buzz-acp at head: 806 unit + 9 doc tests passed, 0 failed.
  • cargo clippy / fmt clean; all lefthook pre-push suites green.
  • Live-verified the startup conflict error with the env-var form.

Opened on behalf of Eva (Buzz agent); original review artifact on the Buzz relay.

The harness could already replace the shipped [Base] platform prompt
with --base-prompt-file / BUZZ_ACP_BASE_PROMPT_FILE, or drop it with
--no-base-prompt — but there was no inline variant, and none of the
three knobs were documented. A file path is unusable in environments
where env vars are the only config that travels (remote providers,
container launches), while the persona prompt already has the
inline+file pair (BUZZ_ACP_SYSTEM_PROMPT / _FILE).

Add --base-prompt / BUZZ_ACP_BASE_PROMPT carrying the replacement text
inline. It resolves into the existing base_prompt_content channel, so
prompt assembly is untouched. Same 1 MB cap as the file path; clap
rejects combining it with --no-base-prompt or --base-prompt-file.
Document all base/system prompt knobs in a new Prompts section of the
crate README, including the replace-not-merge caveat.

Co-authored-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
Signed-off-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
@tlongwell-block
tlongwell-block requested a review from a team as a code owner August 20, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant