pub fn briefing(idea: &str, repo: &Path) -> StringExpand description
The briefing the agent is opened with.
Pure, so the one property that matters can be asserted without an
interview: it carries plan::TASK_FILE_SPEC verbatim. The spec and
plan::review_draft are checked against each other by plan’s own tests,
so including it here is what keeps this path from asking for a shape the
validator will refuse - a twenty-message interview rejected for a reason the
operator was never told is the worst outcome this module has.
The output contract is the other half. magi plan tells the agent to write
a file, which works because that agent has a terminal and a filesystem the
operator is watching. Here the reply is the channel: the task file comes
back inside a fenced block tagged task, and extract_draft is the only
thing that reads it.