pub struct AttributionConfig {
pub pr: Option<String>,
pub commit: Option<String>,
}Expand description
MUR’s signature on outgoing work, stored under attribution: in
~/.mur/config.yaml.
Both surfaces are agent behavior, not runtime behavior: no Rust code in
this repo authors a user’s commit or opens their PR — an agent does it by
shelling out to git and gh. So the only lever is the system prompt, and
this config is its single source of truth. Putting the text in a skill body
instead would fork it: skill markdown is loaded verbatim, with no template
expansion, so a signature written there could never follow this file.
The two knobs default asymmetrically on purpose. A PR body is a message
MUR is writing, and a credit line in it is ours to place. A commit trailer
is written permanently into a repository’s history — often someone else’s —
where it outlives the PR, shows up in git log and git blame forever, and
cannot be edited away without a rewrite. Opt-in is the honest default for
the second one.
There is no enabled flag, because with per-surface strings it would be a
second switch that can disagree with the first (“enabled: true” plus an
empty pr — which wins?). An empty or whitespace-only string IS the off
switch, and it is off for exactly one surface.
Fields§
§pr: Option<String>Appended to PR bodies the agent creates. Empty = no PR signature.
commit: Option<String>Appended as a trailer to commits the agent makes. None/empty = off,
which is the default; see the type docs for why this one is opt-in.
Implementations§
Source§impl AttributionConfig
impl AttributionConfig
Sourcepub fn pr_signature(&self) -> Option<&str>
pub fn pr_signature(&self) -> Option<&str>
The PR credit line, or None when the user switched it off.
Sourcepub fn commit_signature(&self) -> Option<&str>
pub fn commit_signature(&self) -> Option<&str>
The commit trailer, or None (the default) when off.
Sourcepub fn prompt_fragment(&self) -> Option<String>
pub fn prompt_fragment(&self) -> Option<String>
The system-prompt rule, or None when both surfaces are off so a user
who wants no signature pays no tokens for one.
The signature text is quoted verbatim rather than described, so the model copies it instead of paraphrasing a credit line into something that is not the configured one.