Skip to content

Commit 87d1464

Browse files
committed
fix: remove bad nudges based on process grades, not outcomes
Removed "quality drops after 100 tool calls" — based on process grades which are anti-correlated with shipping. Long sessions ship fine. Removed "Spec Dump" nudge — skill expansions (/tdd, /ship etc) inflate word counts, making short commands look like 500-word specs. The archetype detection needs to filter skill text before this is useful.
1 parent 9dacd2f commit 87d1464

2 files changed

Lines changed: 12 additions & 18 deletions

File tree

sesh/live.py

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -338,20 +338,12 @@ def _generate_nudges(snap: LiveSnapshot) -> list[LiveNudge]:
338338
f"{short} edited {count}x. Read the full file first?",
339339
))
340340

341-
# Long session warning
342-
if snap.duration_seconds > 7200: # 2 hours
343-
mins = int(snap.duration_seconds / 60)
344-
nudges.append(LiveNudge(
345-
"info",
346-
f"Session: {mins} min. Quality tends to drop after 100 tool calls.",
347-
))
348-
349-
# Spec dump detection
350-
if snap.archetype == "Spec Dump":
351-
nudges.append(LiveNudge(
352-
"info",
353-
"Long prompts detected. Shorter directives + corrections ship more.",
354-
))
341+
# NOTE: Removed "quality drops after 100 tool calls" nudge — that was
342+
# based on process grades, not outcomes. Long sessions ship fine.
343+
#
344+
# NOTE: Removed "Spec Dump" nudge — skill expansions (/tdd, /ship etc)
345+
# inflate word counts, making short commands look like spec dumps.
346+
# The archetype detection needs to filter skill text before this is useful.
355347

356348
# Positive reinforcement
357349
if snap.test_runs >= 3 and snap.test_passes >= 2 and not nudges:

tests/test_live.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,11 @@ def test_file_thrashing(self):
111111
nudges = _generate_nudges(snap)
112112
assert any("edited" in n.message.lower() for n in nudges)
113113

114-
def test_long_session(self):
114+
def test_long_session_no_false_warning(self):
115+
"""Long sessions should NOT warn about quality dropping — that was based on process grades."""
115116
snap = LiveSnapshot(tool_calls=20, duration_seconds=8000)
116117
nudges = _generate_nudges(snap)
117-
assert any("min" in n.message for n in nudges)
118+
assert not any("quality" in n.message.lower() for n in nudges)
118119

119120
def test_clean_session_no_warn_nudges(self):
120121
snap = LiveSnapshot(tool_calls=10, test_runs=0)
@@ -130,13 +131,14 @@ def test_positive_feedback(self):
130131
nudges = _generate_nudges(snap)
131132
assert any("looking good" in n.message.lower() for n in nudges)
132133

133-
def test_spec_dump_nudge(self):
134+
def test_spec_dump_no_false_nudge(self):
135+
"""Spec Dump nudge removed — skill expansions inflate word counts, making short commands look like specs."""
134136
snap = LiveSnapshot(
135137
tool_calls=20,
136138
archetype="Spec Dump",
137139
)
138140
nudges = _generate_nudges(snap)
139-
assert any("shorter" in n.message.lower() for n in nudges)
141+
assert not any("shorter" in n.message.lower() for n in nudges)
140142

141143

142144
class TestSnapshot:

0 commit comments

Comments
 (0)