Skip to content

fix(core): keep between-tool narration brief - #59035

Open
kill74 wants to merge 1 commit into
anomalyco:devfrom
kill74:between-tool-narration
Open

kill74 wants to merge 1 commit into
anomalyco:devfrom
kill74:between-tool-narration

Conversation

@kill74

@kill74 kill74 commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Issue for this PR

Closes #59012

Type of change

  • Bug fix

What does this PR do?

Models narrate routine progress between tool calls and sometimes ask questions there. This adds one instruction to the default, Meta, Trinity, and Kimi prompts: keep that text brief, do not narrate routine progress, and put the outcome, questions, and anything the user must act on in the final response.

The GPT prompts already contain equivalent commentary guidance, so they are unchanged. This is narrower than the issue's original wording: it does not claim the text is unread or hidden, and brief progress updates remain available because v2 still renders them.

How did you verify your code works?

bun test test/session-system-prompt.test.ts test/plugin/optimize.test.ts test/session-runner-recorded.test.ts passes. No wording-specific test was added because prompt text tests would only lock the exact phrasing.

Screenshots / recordings

If this is a UI change, please include a screenshot or recording.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

Added by the opencode bot (AI-generated).

Related: #55298

@github-actions github-actions Bot added contributor needs:compliance This means the issue will auto-close after 2 hours. and removed needs:compliance This means the issue will auto-close after 2 hours. labels Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for updating your PR! It now meets our contributing guidelines. 👍

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The prompt edits are consistent and the affected tests pass (session-system-prompt, plugin/optimize, session-runner-recorded). I couldn't check the actual effect on model behaviour because there are no provider credentials and the simulated model doesn't follow prompts. Public API is unchanged: only built-in prompt text and a recorded test fixture change.

The main concern is the premise. The new instruction tells every model that the user doesn't read text between tool calls, but in v2 that text is shown in the TUI and app. As the description itself says, "the text still renders in v2". On #59012 the bot noted that some users rely on it to follow progress. Telling the model something false about its UI to change its style is fragile, and making that text unread by default is a product decision for maintainers. The issue is a feature request, and users can already opt in through AGENTS.md/instructions.

If the direction is accepted:

  • The new line contradicts existing text in meta.txt and trinity.txt (inline).
  • The GPT rewrite drops the commentary guidance: stating assumptions and flagging tradeoffs and blockers mid-task (inline).
  • "make a sensible choice and keep working" with no mid-task questions may push models to act on their own where they would otherwise check first.
  • The new test only checks that one exact sentence is present in each prompt file, which locks in the wording and checks no behaviour. I'd drop it to keep the change minimal.

Related: #55298

Comment thread packages/core/src/plugin/system-prompt/meta.txt Outdated
Comment thread packages/core/src/plugin/system-prompt/gpt.txt Outdated
@kill74 kill74 changed the title fix(core): tell models text between tool calls is unread fix(core): keep between-tool narration brief Oct 25, 2026
@kill74

kill74 commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor Author

Revised in d2c9fe2: restored the GPT commentary guidance and left those prompts unchanged, narrowed the new line so it does not claim the text is unread, made it consistent with the existing display text in meta.txt and trinity.txt, and dropped the wording-specific test. The branch is now a single focused commit and the PR description reflects the narrower scope.

@github-actions github-actions Bot added the needs:compliance This means the issue will auto-close after 2 hours. label Oct 25, 2026
Do not narrate routine progress between tool calls; keep any text there brief and put the outcome, questions, and anything the user must act on in the final response. This avoids claiming the text is unread while preserving useful progress updates.

Fixes anomalyco#59012
@kill74
kill74 force-pushed the between-tool-narration branch from 41dab25 to d2c9fe2 Compare October 25, 2026 18:18
@github-actions github-actions Bot removed the needs:compliance This means the issue will auto-close after 2 hours. label Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for updating your PR! It now meets our contributing guidelines. 👍

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both earlier points are addressed. The new line no longer contradicts "all text you output outside of tool use is displayed to the user" in meta.txt/trinity.txt. The GPT commentary guidance is back to the base version. The new wording only asks for brief text between tool calls and moves questions and outcomes to the final response, which fits how v2 renders that text. The related tests pass. I couldn't check the actual effect on model behaviour, since there are no provider credentials. The public API is unchanged: only built-in prompt text changes. No further concerns.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

System prompt: tell the model its between-tool-call text is never read

1 participant