/** * mcp/issue-links.ts — a report that names an issue has to link to it. * * Observed over an evening of unattended work: reports arrive saying "#4 and * #159 done", and the reader is on a phone. A bare number is not a reference * to anyone who cannot type a URL from memory, and asking for links politely * in a rule was forgotten within the hour — twice, then a third time after the * rule was written down. * * So the tool refuses instead of asking. The check is deliberately narrow: it * fires only when a message NAMES an issue and carries no link at all, which is * exactly the observed failure and nothing else. A greeting is not a report; a * report with a link is fine; a report with a link to the wrong thing is not * something a string check can know, and pretending otherwise would be the kind * of instrument that reports a cause rather than an observation. */ export interface LinkComplaint { /** The issue the message named, so the refusal can be specific. */ ref: string; message: string; } /** * Why this message may not be sent, or undefined when it is fine. * * Returns the complaint rather than throwing: the caller turns it into the * tool's own error shape, and a test can read it without catching. */ export declare function missingIssueLink(text: string): LinkComplaint | undefined; //# sourceMappingURL=issue-links.d.ts.map