Skip to content

Hand a chore on, mention one, and note how it's done - #12

Merged
BleakMidwinter90 merged 1 commit into
mainfrom
feat/nudge-swap-notes
Aug 10, 2026
Merged

Hand a chore on, mention one, and note how it's done#12
BleakMidwinter90 merged 1 commit into
mainfrom
feat/nudge-swap-notes

Conversation

@BleakMidwinter90

Copy link
Copy Markdown
Owner

Three small features that address the same underlying problem: chores end up unevenly distributed for social reasons, not scheduling ones.

Hand it on

One tap moves an open chore to whoever is currently carrying the least.

Deliberately not a negotiation. A "would you swap?" flow needs a request, a reply, a pending state and a way to decline — and every one of those is somewhere an awkward silence can live. Handing it straight to the fairest other person is one tap, and the balance score is what stops it being abused: everything you hand on is work you have not done, and the number says so.

Mention it

This is the most socially dangerous feature in the app — a reminder button is one design decision away from a device for passive aggression. So the rules are strict, and they live in lib/domain/nudges as pure tested functions rather than scattered through a route handler.

Four refusals: nobody assigned, yourself, not due yet, already mentioned today.

That last cap is per chore across the whole household, not per sender. Otherwise three housemates each send "just one" reminder and someone's phone buzzes three times about a single bin — precisely how an app gets its notifications switched off. There's a test asserting a second sender gets refused.

The wording is "Ana mentioned this one", not "Ana reminded you" — the latter presumes you forgot. A test asserts that no message this feature can produce contains forgot, still, hurry, please, remember, overdue or late.

Notes on chores

For the practical knowledge that otherwise lives in one person's head: where the hoover bags are kept, which bin goes out this week, that the machine needs its door left open.

That knowledge is a genuine reason jobs stay stuck with one person — it is much easier to keep doing something yourself than to explain it, and so someone quietly owns it forever.

Interface

The row shows exactly one social action, chosen by context, so it never grows into a row of buttons: your own chore can be passed on, somebody else's can be mentioned, and only once it's actually due.

Detail worth noting

The nudge is recorded before it is delivered. If delivery throws, the cap still holds — the safe direction to fail in, since a missed mention is much cheaper than a repeated one.

Verified

17 new tests (173 total), lint and typecheck clean. Both contextual branches confirmed rendering against the running server, and all five routes still serve without a single server error.

Three small features that address the same underlying problem: chores end
up unevenly distributed for social reasons, not scheduling ones.

Hand it on. One tap moves an open chore to whoever is carrying the least.
Deliberately not a negotiation - a 'would you swap?' flow needs a request,
a reply, a pending state and a way to decline, and every one of those is
somewhere an awkward silence can live. The balance score is what stops it
being abused: everything you hand on is work you have not done.

Mention it. The most socially dangerous feature in the app, so the rules
are strict and live in lib/domain/nudges, pure and tested. Four refusals:
nobody assigned, yourself, not due yet, and already mentioned today. That
last cap is per chore across the whole household, not per sender -
otherwise three housemates each send 'just one' reminder and someone's
phone buzzes three times about one bin, which is exactly how an app gets
its notifications switched off.

The wording is 'Ana mentioned this one', not 'Ana reminded you' - the
latter presumes you forgot. A test asserts no message the feature can
produce contains forgot, still, hurry, please, remember, overdue or late.

Notes on chores. For the practical knowledge that otherwise lives in one
person's head: where the hoover bags are, which bin goes out this week.
That knowledge is a real reason jobs stay stuck with one person - it is
easier to keep doing something yourself than to explain it.

The row shows exactly one social action, chosen by context, so it never
grows a row of buttons: your own chore can be passed on, someone else's
can be mentioned, and only once it is actually due.

The nudge is recorded before it is delivered. If delivery fails the cap
still holds, which is the safe direction to fail in.

17 new tests, 173 total. Verified both contextual branches render against
the running server, and all five routes still serve clean.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@BleakMidwinter90
BleakMidwinter90 merged commit 68258f5 into main Aug 10, 2026
2 checks passed
@BleakMidwinter90
BleakMidwinter90 deleted the feat/nudge-swap-notes branch August 10, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant