This repository was archived by the owner on Nov 11, 2026. It is now read-only.
Repository navigation
Main writes for the researcher: the point first, short, Markdown - #602
Merged
Merged
Conversation
… five lines, closing message in three parts
…t files, empty close parts left out (cold read p1750)
Contributor
Author
|
Held past the 2026-11-04 code stop; not merging today. Next: the A/B/C test of main's messages (today's text, no |
haowjy
marked this pull request as ready for review
November 5, 2026 01:25
Contributor
Author
|
Evidence after merge: a local A/B/C test on deepseek-flash, with the same two researcher questions in each run.
Findings: work dir |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog
Why
The Conversation tab is now main's whole thread (#597), so main's messages are what the researcher reads first. They were walls of prose. Jimmy: "the message to research btw was extremely wordy and not organized well (it needed markdown...)", and "main.md is so bad, it should … consider the audience (researcher), and organize well".
The cause was the prompt. The Conversation already renders GitHub-flavoured Markdown (
packages/run-view/src/chat/markdown.tsx). Butmain.mdtold main to write plan.md as "a few plain paragraphs… No step lists or counts", and then to send that text to the researcher. The harness's refusal said the same ("messageresearcherwith the text of /work/main/plan.md"). The shared guide for researcher-facing words (words.md) only listed the words to avoid.Design decisions
words.md, the one file every role's system prompt shares. It now says who the researcher is: an expert in their field, not a programmer, reading in a side panel between looks at the images. It says how to write for them: the point first, a few lines, Markdown lists and bold, numbers with units, where to look, and no ids or paths. Ruled out: rules inmain.mdonly, since workers write titles, notes and To check items that the same researcher reads.workflows/core/agents/AGENTS.md).Walkthrough
What the researcher reads
pnpm dev, and the runner, with a local run on deepseek-flash perAGENTS.md.Read in this order:
workflows/core/agents/words.md, thenmain.md(Plan, Close),skills/researcher/SKILL.md, and the refusal text inpackages/harness/src/tools/coordination.ts.What changed
words.md: a writing guide for the researcher, in place of a list of words to avoid.main.md: the plan message (five lines, not plan.md pasted in); when to message during a run; the closing message's order.researcherskill: an answer opens with its answer; "Write for them" points towords.md.coordination.ts:start_worker's refusal before the plan message no longer says to send plan.md's text.Risk and where to look
words.md's length is right, since it goes into every role's system prompt; and the five-line plan rule against what a worker needs from plan.md.Knowledge layers, docs and deletions
workflows/core/agents/AGENTS.mdstill describes where each file lives.Contract changes
None.
Verification
pnpm check(passes).messagetool, this text) is running; its findings are in a follow-up. A cold read (p1750) found where an agent would misread the guidance, and fb80547 fixes those cases; the other gaps it found predate this PR (Main's role file and researcher skill: rules that conflict or leave main stuck #604). A fast pre-merge review was still running at merge.Left out
messageor in its own reply text: A/B test under way; then Main writes a status update every few minutes while a run is live #596.