fix(triage): require evidence of the dead-end in feature requests

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
mateo 2026-08-11 02:56:38 +00:00 • committed by Mateo Wang
parent 6f7050c05f
commit 38a1bec5c2
2 changed files with 18 additions and 0 deletions

View file

@ -597,6 +597,11 @@ def build_issue_prompt(*, title: str, body: str) -> str:
that it does not today).
- Motivation / use case with a concrete example (config, API call,
UI flow, or scenario showing what's blocked today).
- END-TO-END EVIDENCE OF THE DEAD-END: a video, a screenshot, or the
exact command(s) actually run paired with their real output,
showing the point where the flow stops today. Mocked or stubbed
dependencies do NOT count, and an unfilled template scaffold
(bare headings, empty numbered lists) counts as absent.
For an issue that is neither a bug report nor a feature request (a
question, support request, or discussion), PASS as long as it has a

View file

@ -678,6 +678,19 @@ class TestBuildPrompts:
assert "unfilled template scaffold" in normalized
assert "counts as absent, not as evidence" in normalized
def test_issue_feature_rubric_requires_evidence_of_the_dead_end(
self, triage_module
):
# The feature form asks the requester to walk the ideal flow against a
# live proxy and paste output up to the step that dead-ends, so the
# judge has to demand that evidence, and must not accept an unedited
# scaffold of bare headings as if it were a real attempt.
prompt = triage_module.build_issue_prompt(title="t", body="x")
normalized = " ".join(prompt.split())
assert "END-TO-END EVIDENCE OF THE DEAD-END" in normalized
assert "showing the point where the flow stops today" in normalized
assert "unfilled template scaffold" in normalized
def test_should_not_crash_when_pr_body_contains_curly_braces(self, triage_module):
"""User-supplied content with `{` / `}` must NOT be re-parsed by
`str.format()`. `format` only scans the template literal for