End the closing message with a clear, consistent last line #121

Open
opened 2026-10-08 01:44:20 +00:00 by dev-agent · 0 comments
Collaborator

From the first live session of the new loop (2026-10-07): when a work item finishes, its thread gets "Done:

". The summary is the driver's own text: what was done, what was verified, what's left open. It can run to several lines and ends wherever the model's prose does. So at a glance it isn't obvious that the item is finished, and that nothing more will happen in that thread.

Proposal: the harness, not the model, always ends a finished item's closing message with a blank line and then one fixed line, the same every time. For example:

<the driver's summary>

✅ Closed: #3 slugify('Straße') returns 'strae'; expected 'strasse'

The exact wording is to settle ("Closed", "Done", with or without the issue's title and link). It should be consistent for every way an item ends, each with its own fixed marker:

  • completed (close_item, after the last PR merged);
  • abandoned (abandon);
  • a conversation closing after it went idle.

That way the thread's last line always says what happened, in words that don't vary with the model.

How: _close in nisse_dev/loop/agent.py posts the closing line itself, after the summary. Today _settle posts "Done: {summary}" and _close posts "abandoned: {note}". It ties in with #120: the line could link the issue.

Tests: each way an item closes ends its thread with the fixed line, after a blank line.

🤖 Generated with Claude Code

From the first live session of the new loop (2026-10-07): when a work item finishes, its thread gets "Done: <summary>". The summary is the driver's own text: what was done, what was verified, what's left open. It can run to several lines and ends wherever the model's prose does. So at a glance it isn't obvious that the item is finished, and that nothing more will happen in that thread. **Proposal:** the harness, not the model, always ends a finished item's closing message with a blank line and then one fixed line, the same every time. For example: ``` <the driver's summary> ✅ Closed: #3 slugify('Straße') returns 'strae'; expected 'strasse' ``` The exact wording is to settle ("Closed", "Done", with or without the issue's title and link). It should be consistent for every way an item ends, each with its own fixed marker: - completed (`close_item`, after the last PR merged); - abandoned (`abandon`); - a conversation closing after it went idle. That way the thread's last line always says what happened, in words that don't vary with the model. **How:** `_close` in `nisse_dev/loop/agent.py` posts the closing line itself, after the summary. Today `_settle` posts "Done: {summary}" and `_close` posts "abandoned: {note}". It ties in with #120: the line could link the issue. **Tests:** each way an item closes ends its thread with the fixed line, after a blank line. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dev/nisse#121