Dependencies
- Paired with
sprintstart-backend#212, which sharpens the tool descriptions and supplies the
repeat-subject signal. Neither half works alone.
Summary & Goal
Teach the buddy persona to notice when a subject was hard enough to deserve something durable, and
to reach for the board when it was.
The capability exists — the backend mounts board tools and executes them. What is missing is the
judgement about when, and that lives here: the backend describes the persona as being rebuilt
from the AI service's own skeleton on every turn with no system message
(sprintstart-backend · BuddyService.agentRequest).
Technical Specification
- The persona should treat a subject as worth a durable artifact when it took several turns to get
through, when the hire has returned to it, or when the explanation will not survive the
conversation. The backend supplies a repeat-subject signal per turn (sprintstart-backend#212) — use it as
evidence, not as a trigger to obey blindly.
- Placing a card is not the answer to every hard question. A one-line clarification is not a
diagram. Over-placing is the failure mode that makes a board unusable; say so in the persona rather
than leaving it implied.
DIAGRAM is the kind that fits an explanation, and it takes a subject — the question the
picture should answer. The persona chooses that subject; the boxes come back derived from the
project's corpus with a citation each, and an ungrounded box is dropped server-side. The persona
must not assert what the diagram will contain.
- Once
sprintstart-backend#210 lands, the buddy can also create notes and checklists. The persona should prefer the narrowest artifact that helps, and must say
what it did — the hire is told, never surprised.
- Say it once. If a card is already on the board, point at it rather than placing again. The
backend already answers ALREADY_THERE and DISMISSED_BY_HIRE in words, including
"Do not add it again — if it matters, say it in the conversation instead." The persona should
honour those rather than retry.
Acceptance Criteria
Definition of Done
uv run ruff check . clean
uv run ruff format --check . clean
uv run pyright src/ 0 errors
uv run pytest green
Dependencies
sprintstart-backend#212, which sharpens the tool descriptions and supplies therepeat-subject signal. Neither half works alone.
Summary & Goal
Teach the buddy persona to notice when a subject was hard enough to deserve something durable, and
to reach for the board when it was.
The capability exists — the backend mounts board tools and executes them. What is missing is the
judgement about when, and that lives here: the backend describes the persona as being rebuilt
from the AI service's own skeleton on every turn with no system message
(
sprintstart-backend·BuddyService.agentRequest).Technical Specification
through, when the hire has returned to it, or when the explanation will not survive the
conversation. The backend supplies a repeat-subject signal per turn (
sprintstart-backend#212) — use it asevidence, not as a trigger to obey blindly.
diagram. Over-placing is the failure mode that makes a board unusable; say so in the persona rather
than leaving it implied.
DIAGRAMis the kind that fits an explanation, and it takes asubject— the question thepicture should answer. The persona chooses that subject; the boxes come back derived from the
project's corpus with a citation each, and an ungrounded box is dropped server-side. The persona
must not assert what the diagram will contain.
sprintstart-backend#210lands, the buddy can also create notes and checklists. The persona should prefer the narrowest artifact that helps, and must saywhat it did — the hire is told, never surprised.
backend already answers
ALREADY_THEREandDISMISSED_BY_HIREin words, including"Do not add it again — if it matters, say it in the conversation instead." The persona should
honour those rather than retry.
Acceptance Criteria
DIAGRAMsubject without asserting the contentALREADY_THEREandDISMISSED_BY_HIREinstead of retryingalready-placed → points instead of re-placing
Definition of Done
uv run ruff check .cleanuv run ruff format --check .cleanuv run pyright src/0 errorsuv run pytestgreen