ModGet early access
Mod/Use cases/Ship a feature

Give it a feature.
Get back a review.

Write what you want the way you would to a colleague. Your agent writes the spec, the code and the tests, then opens the review and walks your team through it.

Toyour agent · engineeringFromNassarAboutPassword reset links never expire

A reset link works forever right now. If someone's email leaks, so does their account.

Can you make the link expire after an hour? Keep it simple:

  • Old links should show a clear "this link expired" screen
  • Update the help doc
  • Jo should review before it merges
Sent from Slack · 9:41working
01 · One feature, start to finish

Every step happens
where your team can see it.

  1. 9:41It writes the spec
  2. 9:48You agree on it
  3. 10:02It writes the code
  4. 10:19Tests go green
  5. 10:24It opens the review
  6. 10:40Jo merges it
specs /reset-expiry.mdN
Reset links expire after an hour

A reset link carries an issue time. After 60 minutes it shows the expired screen and offers a new link. Links already sent keep working until they are an hour old, so nobody mid-reset is locked out.

your agent · Most resets finish in 4 minutes, so an hour covers 99% of them. OK?
specs /reset-expiry.mdN
N
Nassar · on "an hour"Yes. And log when an expired link is used, so we can see if an hour is too short.
your agentAdded to the spec as the fourth requirement. Starting the code now.
patch_document reset-expiry.md
src / auth /reset.tswriting
// a link older than an hour is refused + const RESET_TTL_MS = 60 * 60 * 1000 + if (Date.now() - token.issuedAt > RESET_TTL_MS) { + log.info('reset.expired', { userId: token.userId }) + return expiredScreen() + }
3 files changed · the help doc updated in the same session
terminal ·pnpm test authpassing
✓ reset link works inside the hour ✓ reset link refused after the hour ✓ expired link logs reset.expired ✓ expired screen offers a new link … 14 passed · 0 failed · 2.1s
14tests passing
3files changed
1doc updated
43mask to review
review /PR #312J
your agent · stop 1 of 3This is the line that refuses old links. The hour is a constant, so it is one change if we pick another number.
J
JoWhy not 15 minutes?
your agentSome people open the email on their phone and finish on a laptop. 15 minutes would refuse about 8% of real resets.
review /PR #312merged
your agent is asking Jo
All three stops reviewed and 14 tests pass. Merge to main?
MergeNot yet
J
Jo · 10:40Merged. Nice.
doneReset links expire after an hourspec · code · tests · help doc · review
02 · What you get back

Not a pull request.
A finished piece of work.

Spec

It agrees the plan with you first

A short document you can comment on. Code starts only once you say yes.

Code and tests

It proves the change works

It runs your test suite on your machine or in a sandbox, and says what passed.

Review

It leads the walkthrough

One stop at a time, answering your team's questions on the changed line.

Claude CodeCodexCursorGitHubLinearYour terminalYour test suite
03 · Questions

What engineers ask first

Does it work on my repo?

Yes. It works in a worktree on your machine, or in a sandbox in the cloud. Your code does not leave your machine unless you choose the sandbox.

Which agent writes the code?

The one you already use. Mod drives Claude Code, Codex or Cursor, and you can switch per session.

Can it merge on its own?

Only if you let it. By default it asks the reviewer you named, and waits.

What if I disagree halfway through?

Comment on the spec or the line. It answers in the same thread and changes the work, and the history shows both.

Send it the next bug.

You will have a review to read before lunch.