What happened
On PR #592, the fix agent failed 5 consecutive times on 2026-07-31 (runs 30618377285–30623226073) because it added Signed-off-by trailers to its commits. The post-fix guardrail (scripts/post-fix.sh:608-620) correctly rejected each attempt. The human (rh-hemartin) tried increasingly explicit instructions ("Do not sign-off-by the commit", "bot shouldn't be signers") across all 5 retries without success. The fix agent succeeded on 2026-08-03 with no infrastructure change — the success was nondeterministic.
The skill-level prohibition already exists in skills/fix-review/SKILL.md:350 ("NEVER use git commit -s or add Signed-off-by trailers") and skills/code-implementation/SKILL.md:703,763. Despite these prohibitions AND explicit human instructions, the agent added the trailer 5 times. The same failure pattern was previously observed on PR fullsend#5732, documented in issue #552.
What could go better
The root cause is a conflicting instruction in CONTRIBUTING.md. The DCO section opens with a direct command — "Add Signed-off-by to your commits with git commit -s" — and the agent exemption appears two paragraphs later: "Autonomous agent commits are exempt." The fix-review skill (step 3) instructs the agent to discover the repo's commit convention from CONTRIBUTING.md, creating a direct conflict: the file says "add Signed-off-by" while the skill says "NEVER add Signed-off-by."
The agent consistently resolved this conflict in favor of CONTRIBUTING.md over the skill instruction. It did not use git commit -s but manually appended a Signed-off-by: line to the commit message body. Five consecutive failures with the same behavior, even under escalating human correction, indicates this is a robust failure mode — the LLM latches onto the direct imperative ("Add Signed-off-by") and doesn't adequately weigh the exemption paragraph or the skill-level prohibition.
Existing issue #552 proposes adding a prohibition to agents/fix.md, which is complementary but insufficient: the skill already has this prohibition and it was not enough. The conflicting signal in CONTRIBUTING.md needs to be addressed at the source.
Confidence: High. The failure is reproducible (5/5 on July 31, plus the fullsend#5732 precedent), the root cause is directly observable in the file content, and the mechanism (agent reading CONTRIBUTING.md per skill instructions, encountering conflicting directive) is well-understood.
Proposed change
Restructure the DCO section of CONTRIBUTING.md in fullsend-ai/agents so the autonomous-agent exemption is unmissable rather than buried after the general instruction. Specifically:
- Add an agent-facing callout immediately after the general instruction, before the human-driven session paragraph. Something like: "Autonomous agents: do not add Signed-off-by trailers. See below for why."
- Alternatively, restructure the section to lead with a conditional: "If you are a human contributor, add
Signed-off-by with git commit -s. If you are an autonomous agent, do NOT — your commits are exempt."
The goal is to ensure an LLM reading the DCO section encounters the exemption before or at the same time as the general instruction, rather than parsing past a direct imperative to reach a later carve-out. The exact wording should be determined by the repo maintainer, but the structural principle is: the exemption must be co-located with (not separated from) the instruction it overrides.
Validation criteria
Monitor the next 10 fix agent runs on fullsend-ai/agents for Signed-off-by trailer rejections. The failure rate should drop to zero. Additionally, check whether any fix runs on other repos with similar CONTRIBUTING.md structures (e.g., fullsend-ai/fullsend) continue to exhibit this failure — if so, the same restructuring should be applied there.
Generated by retro agent from #592
What happened
On PR #592, the fix agent failed 5 consecutive times on 2026-07-31 (runs 30618377285–30623226073) because it added
Signed-off-bytrailers to its commits. The post-fix guardrail (scripts/post-fix.sh:608-620) correctly rejected each attempt. The human (rh-hemartin) tried increasingly explicit instructions ("Do not sign-off-by the commit", "bot shouldn't be signers") across all 5 retries without success. The fix agent succeeded on 2026-08-03 with no infrastructure change — the success was nondeterministic.The skill-level prohibition already exists in
skills/fix-review/SKILL.md:350("NEVER use git commit -s or add Signed-off-by trailers") andskills/code-implementation/SKILL.md:703,763. Despite these prohibitions AND explicit human instructions, the agent added the trailer 5 times. The same failure pattern was previously observed on PR fullsend#5732, documented in issue #552.What could go better
The root cause is a conflicting instruction in
CONTRIBUTING.md. The DCO section opens with a direct command — "AddSigned-off-byto your commits withgit commit -s" — and the agent exemption appears two paragraphs later: "Autonomous agent commits are exempt." The fix-review skill (step 3) instructs the agent to discover the repo's commit convention fromCONTRIBUTING.md, creating a direct conflict: the file says "add Signed-off-by" while the skill says "NEVER add Signed-off-by."The agent consistently resolved this conflict in favor of
CONTRIBUTING.mdover the skill instruction. It did not usegit commit -sbut manually appended aSigned-off-by:line to the commit message body. Five consecutive failures with the same behavior, even under escalating human correction, indicates this is a robust failure mode — the LLM latches onto the direct imperative ("Add Signed-off-by") and doesn't adequately weigh the exemption paragraph or the skill-level prohibition.Existing issue #552 proposes adding a prohibition to
agents/fix.md, which is complementary but insufficient: the skill already has this prohibition and it was not enough. The conflicting signal inCONTRIBUTING.mdneeds to be addressed at the source.Confidence: High. The failure is reproducible (5/5 on July 31, plus the fullsend#5732 precedent), the root cause is directly observable in the file content, and the mechanism (agent reading CONTRIBUTING.md per skill instructions, encountering conflicting directive) is well-understood.
Proposed change
Restructure the DCO section of
CONTRIBUTING.mdinfullsend-ai/agentsso the autonomous-agent exemption is unmissable rather than buried after the general instruction. Specifically:Signed-off-bywithgit commit -s. If you are an autonomous agent, do NOT — your commits are exempt."The goal is to ensure an LLM reading the DCO section encounters the exemption before or at the same time as the general instruction, rather than parsing past a direct imperative to reach a later carve-out. The exact wording should be determined by the repo maintainer, but the structural principle is: the exemption must be co-located with (not separated from) the instruction it overrides.
Validation criteria
Monitor the next 10 fix agent runs on
fullsend-ai/agentsfor Signed-off-by trailer rejections. The failure rate should drop to zero. Additionally, check whether any fix runs on other repos with similar CONTRIBUTING.md structures (e.g.,fullsend-ai/fullsend) continue to exhibit this failure — if so, the same restructuring should be applied there.Generated by retro agent from #592