Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -1053,7 +1053,7 @@ mean two different things, stop and ask which. Do not pick the more likely readi
proceed.

This costs a round-trip and saves a wrong change to a live agent. The asymmetry is the whole
argument: a question costs minutes, while a misread correction ships wrong content to
argument: a question costs minutes, while a misread ideal response ships wrong content to
customers, looks resolved on the dashboard, and is only caught if someone re-reads the
transcript later.

Expand All @@ -1075,7 +1075,7 @@ blocked on, and what you would do under each reading.

**THE PROSE IS THE FEEDBACK. THE FIELDS ARE A HINT, AND OFTEN A WRONG ONE.**

Reviewers write the correction under the bad answer, and/or a **Proposed fix**, and click
Reviewers write the ideal response under the bad answer, and/or a **Proposed fix**, and click
*Mark reviewed*. They frequently do not touch the dropdowns — and they are not expected to.
Writing "this is wrong, it should have said X" is the valuable part; turning that into
`diagnosis` and `fix_target` is clerical work, and it is **your** job.
Expand Down Expand Up @@ -1261,7 +1261,7 @@ Full conventions are in `README.md`. The essentials:
`GitHub-`, `Misc-`).
- **`FAQ-<Domain>.md` is the exception**: one per agent corpus, authored here with no upstream
source. It is the home of record for answers that exist nowhere else — verbal SME guidance,
observed behaviour, corrections an upstream owner has not yet made. Put such content
observed behaviour, ideal responses an upstream owner has not yet made. Put such content
**there, not in a `Docusaurus-` or `Conf-` file**, because those are re-derived from their
sources and the next reconciliation would silently delete it. Every entry carries
`Source` / `Added` / `Confidence` / `Promote when`. Never add an unconfirmed claim: the
Expand Down
2 changes: 1 addition & 1 deletion DAILY-WORKFLOW.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ everything alone rather than tidying up first.
| Save without submitting | **Save & Publish → Save progress** |
| Submit for review | **Save & Publish → Send my reviews in** |

**You do not have to fill in the dropdowns.** Writing the correction in your own words is the
**You do not have to fill in the dropdowns.** Writing the ideal response in your own words is the
valuable part. The classification fields are clerical and get filled in later.

---
Expand Down
2 changes: 1 addition & 1 deletion contributor-prompting-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ specifically.
You do this part in your **browser**, not by typing at the AI. Read the question, read the
answer, and if the answer was wrong, write what it *should* have said.

**You do not have to fill in the dropdown boxes.** Writing the correction in your own words is
**You do not have to fill in the dropdown boxes.** Writing the ideal response in your own words is
the valuable bit. The AI works out the rest from what you wrote.

If you are unsure whether an answer is right, say so in your note rather than guessing. A
Expand Down
4 changes: 2 additions & 2 deletions scripts/eval_batch.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,15 +213,15 @@ def wants_change(fm, body):
to be approved before the batch can be sent, so it blocks the work that WAS asked for.

Keyed on the prose as well as the fields, deliberately. The review form opens pre-filled as
"nothing wrong", and CLAUDE.md is explicit that reviewers frequently write the correction and
"nothing wrong", and CLAUDE.md is explicit that reviewers frequently write the ideal response and
never touch the dropdowns - so `kb_action: none` beside a paragraph of "it should have said
X" is a common and legitimate state. Reading only the field would drop exactly the reviews
that matter most.
"""
for k, v in (fm or {}).items():
if field_asks_for_change(k, v):
return True
# Written feedback: a non-empty correction under any exchange, or a proposed fix.
# Written feedback: a non-empty ideal response under any exchange, or a proposed fix.
for m in re.finditer(r"<!-- review:\d+ -->\n(.*?)<!-- /review:\d+ -->", body or "", re.S):
t = re.sub(r"\*\*Review\s*[—-]\*\*.*?(?:\n|$)", "", m.group(1), count=1)
if t.strip():
Expand Down
9 changes: 7 additions & 2 deletions scripts/fetch_transcripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -394,8 +394,13 @@ def render(slug, meta, data, deleg=None):
L += ["**Tools called:** _not recorded for team conversations — see Delegation above_", ""]
L += ["**Q:**", "", "> " + scrub(unescape_question(e.get("question"))).replace("\n", "\n> "), ""]
L += ["**A:**", "", "```markdown", scrub(e.get("response") or ""), "```", ""]
L += [f"<!-- review:{i} -->",
"**Review —** _verdict:_ · _should have said:_", "",
# EMPTY. This block used to be seeded with
# **Review -** _verdict:_ - _should have said:_
# which put an annotation prompt where the answer belongs, and every downstream tool
# then needed a rule to ignore it (see reviewtext.PLACEHOLDERS, kept for the
# transcripts already carrying it). The field wants the answer the agent should have
# given, so it starts blank and the form offers "Copy Foundry response" to seed it.
L += [f"<!-- review:{i} -->", "",
f"<!-- /review:{i} -->", ""]
L += ["---", "", "## Proposed fix", "",
"_What should change so this answer is right next time? For an instructions or"
Expand Down
Loading
Loading