Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions internal/scaffold/fullsend-repo/agents/triage.md
Original file line number Diff line number Diff line change
Expand Up @@ -313,3 +313,11 @@ Information is sufficient for a developer to investigate and fix.
- Do not present unverified assumptions with certainty. Convey uncertainty when appropriate.
- Write in second person ("you") addressing the reporter. Do not use first person ("I") — the comment is from the triage system, not an individual.
- If you include `label_actions`, the pipeline appends your label reason to the comment automatically — do not include label justifications in the `comment` field yourself.
- **Action hints footer (sufficient action only):** When `action` is `sufficient`, append the following footer to the end of the `comment` field. Omit it for all other actions (`insufficient`, `duplicate`, `prerequisites`, `question`).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] pattern-inconsistency

Triage footer placement guidance is adequate but less detailed than SKILL.md's placement instructions.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] design-direction

Conditional footer logic for triage is instruction-driven, not enforced by schema or post-script, unlike the fix agent footer which is programmatic.


```markdown
---
**Next steps:**
- `/fs-code` — agent creates a PR to implement this issue
- `/fs-code <your instruction>` — agent implements with your specific guidance
```
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,19 @@ def test_fix_without_path(self):
self.assertIn("**typo in docs**:", body)
self.assertNotIn("(`", body)

def test_action_hints_footer_present(self):
data = {
"summary": "Fixed.",
"tests_passed": True,
"actions": [
{"type": "fix", "finding": "bug", "description": "Fixed"},
],
}
body = build_summary_body(data)
self.assertIn("**Next steps:**", body)
self.assertIn("/fs-review", body)
self.assertIn("/fs-fix", body)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[medium] test-inadequate

The assertion assertIn('/fs-fix', body) passes via substring match against '/fs-fix ' in the production code. The fix agent footer omits a bare '/fs-fix' option, unlike the PR review footer in SKILL.md which lists both. The substring assertion masks this inconsistency.

Suggested fix: Either add bare '/fs-fix' to the fix agent footer (consistent with the review footer), or make the assertion precise: assertIn('/fs-fix ', body).


post_summary = mod.post_summary
MAX_COMMENT_LENGTH = mod.MAX_COMMENT_LENGTH
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,14 @@ def build_summary_body(data):
if dp_text:
sections.append(dp_text)

sections.append(
"\n---\n"
"**Next steps:**\n"
"- `/fs-review` — request a re-review of the changes\n"
"- `/fs-fix <your instruction>` — run another fix pass with specific guidance\n"
"- Push commits directly — review re-runs automatically on push"
)

sections.append(
'\n<sub>Updated by <a href="https://github.com/fullsend-ai/fullsend">'
"fullsend</a> fix agent</sub>"
Expand Down
17 changes: 15 additions & 2 deletions internal/scaffold/fullsend-repo/skills/pr-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -725,8 +725,21 @@ where `[open]` = `<` + `!--` and `[close]` = `--` + `>`.
section. If there are no findings at all, set the body to
the hidden SHA comment followed by a newline and "Looks good to me"
— omit the `## Review` header and `### Findings` section entirely.
- **No footer.** Do not repeat the outcome or include boilerplate
about pushes clearing the review.
- **No general footer.** Do not repeat the outcome or include
boilerplate about pushes clearing the review. **Exception:** for
`request-changes` outcomes only, append an action-hints footer
after the findings:

```markdown
---
**Next steps:**
- `/fs-fix` — agent addresses review findings automatically
- `/fs-fix <your instruction>` — agent fixes with your specific guidance
- Push commits directly — review re-runs automatically on push
- `/fs-fix-stop` — disable automatic fix runs for this PR
```

Omit this footer for `approve`, `comment`, and `reject` outcomes.

If `PRIOR_REVIEW_PROVENANCE` starts with `unverifiable-`, include an
info-level finding in the review output:
Expand Down
Loading