Expand description
Rendering discovered project instructions into a conversation message (ADR-0023 §2).
The loader in crate::load produces a neutral ProjectInstructions; this turns
it into one User-role <system-reminder> message and injects it (Slice 3). This is
the “engine renders / injects the neutral value” half of ADR-0023 — a single format for
every pack (fidelity is bounded to tools + prompt, ADR-0023 §1).
Why User and not Developer: injected framing is authored as User from the start so
the conversation ⇄ payload conversion stays losslessly bidirectional (ADR-0013 amendment
2026-07-23) — a Developer-rendered-to-user fallback cannot be reversed.
Functions§
- already_
delivered - Whether the conversation already carries exactly this instructions body.
- any_
delivered - Whether the conversation carries any instructions message at all — including a removal notice.
- instructions_
hash - A stable hash of the discovered instructions, or
Nonewhen nothing was discovered. - removal_
delivered - Whether the most recent instructions message in the conversation is a removal notice — i.e. the “no instructions apply” state has already been announced.
- removal_
message - The removal banner message, emitted when previously-applied instructions vanish.
- render_
body - The instructions body, without the envelope or the replace banner — the unit the delivery check compares.
- render_
instructions - Render project instructions into one
User<system-reminder>message, orNonewhen there is nothing to inject.