D2: Status answers read the nest #39

Closed
opened 2026-10-28 13:42:48 +00:00 by jacisjake · 0 comments
jacisjake commented 2026-10-28 13:42:48 +00:00 (Migrated from github.com)

Epic: #36. Depends on: #38

Goal

Quill answers status questions by reading the nest first: its prompt is built from the nest's recent messages (author + kind + first 200 chars each, newest last), so a reply about "where did X get to" provably sees the thread. CHATROOM_SPEC section 6: "answers status questions by reading the nest first and showing what it's doing."

Acceptance criteria — falsifiable tests

  1. TestQuillPromptContainsNestHistory (quill_test.go) — Given a nest where a request by owner and a deliver by Hugin exist, when the owner asks @Quill where did that get to, then the recorded crow prompt contains the request's text and the deliver's text, and the reply is a Quill deliver. Red now: respondQuill (added in D1) does not include message history.
  2. TestQuillEmptyNestSaysQuiet — Given a fresh nest with no messages, when the owner asks Quill for status, then the prompt states the nest has no earlier messages (assert on a RecentMessages-built block containing "no earlier messages"), and Quill still answers once.
  3. TestQuillHistoryCap — Given 40 messages in a nest, the prompt contains at most the last 20 (assert count of message lines in the recorded prompt ≤ 20). The cap constant lives in the Quill context builder, not in guardrails.

Test command

go test -race -count=1 -run 'TestQuill' .

Blockers / unknowns

Use the existing store read path behind getNestMessages (nestapi.go) — no new persistence needed.

Epic: #36. Depends on: #38 ## Goal Quill answers status questions by reading the nest first: its prompt is built from the nest's recent messages (author + kind + first 200 chars each, newest last), so a reply about "where did X get to" provably sees the thread. CHATROOM_SPEC section 6: "answers status questions by reading the nest first and showing what it's doing." ## Acceptance criteria — falsifiable tests 1. `TestQuillPromptContainsNestHistory` (`quill_test.go`) — Given a nest where a request by owner and a deliver by Hugin exist, when the owner asks `@Quill where did that get to`, then the recorded crow prompt contains the request's text and the deliver's text, and the reply is a Quill `deliver`. Red now: `respondQuill` (added in D1) does not include message history. 2. `TestQuillEmptyNestSaysQuiet` — Given a fresh nest with no messages, when the owner asks Quill for status, then the prompt states the nest has no earlier messages (assert on a `RecentMessages`-built block containing `"no earlier messages"`), and Quill still answers once. 3. `TestQuillHistoryCap` — Given 40 messages in a nest, the prompt contains at most the last 20 (assert count of message lines in the recorded prompt ≤ 20). The cap constant lives in the Quill context builder, not in guardrails. ## Test command `go test -race -count=1 -run 'TestQuill' .` ## Blockers / unknowns Use the existing store read path behind `getNestMessages` (nestapi.go) — no new persistence needed.
Sign in to join this conversation.