theway
Examples

A series

One request split into three changes: member IDs from next-id, one review across them, and one PR per member, merged in order.

This is an illustrative run on the sample project my-api. It adds user authentication as a series of three changes, each built on the one before.

The request

/theway:engineering add-user-auth as a series: password storage, the login endpoint, docs

The member IDs

The request asks for a series, so add-user-auth is the series ID. The command asked the CLI for three member IDs, on a home with no add-user-auth folder yet:

$ theway next-id add-user-auth --count 3
add-user-auth-01
add-user-auth-02
add-user-auth-03

It assigned them in dependency order:

MemberChange
add-user-auth-01Password storage: a users record with an scrypt hash from node:crypto, no new dependency
add-user-auth-02POST /login, checking the password against the stored hash
add-user-auth-03README: how to create a user and log in

Each member is its own change folder, with its spec.md and its change.yaml. The series' total is its number of members: three.

The review

One round of the spec-review step covered the three members together. The report:

Change folders:
  <home>/projects/-home-you-code-my-api/changes/add-user-auth-01/
  <home>/projects/-home-you-code-my-api/changes/add-user-auth-02/
  <home>/projects/-home-you-code-my-api/changes/add-user-auth-03/
Findings: no sessions exist today; settings are constants passed to createApp; no dependencies.
Standards read: none.
Open questions: none.

Review: 1 round (grounding and implementability critics).
#FindingVerdictFix
R1-0add-user-auth-02 names a verifyPassword helper that -01 does not exportconfirmed-01 task 2 now exports verifyPassword(password, hash)
R1-1add-user-auth-02 does not say what POST /login returns on successconfirmed, settled-02 returns 200 with a JSON body: every my-api route answers through send(status, body) with JSON (send(200, { ok: true }) in src/app.js), and -02's Out of Scope excludes sessions and tokens
R1-2-03 has a task to review the README wordingconfirmedtask removed: reviewing is not repository work

R1-1 settled: POST /login returns 200 with a JSON body on success, as every existing route in src/app.js does.

The develop run

/theway:workflow --workflow agents add-user-auth-01 add-user-auth-02 add-user-auth-03

The default develop workflow opens no PR, so a series runs with a workflow that does, here the shipped agents; with one that opens none, the series stops after its first change. The members run in order, each from the synced main. After each run succeeds, the command asks before merging the PR it opened:

add-user-auth-01: PR #13 https://github.com/example/my-api/pull/13, CI green (1 of 2 attempts), 2 files changed, +55 -0
Merge PR #13? (yes / no)

On yes, it squash-merged PR #13, synced main, and created add-user-auth-02's branch from it. PR #14 and PR #15 went the same way. Any other answer would have stopped the run, with the later members not started.

The list

Each implementer ticked its tasks with theway task done, so each member's change.yaml has its three tasks done:

$ theway list
theway changes — -home-you-code-my-api

Active changes

  add-user-auth-01     2 files   3/3 tasks done
  add-user-auth-02     2 files   3/3 tasks done
  add-user-auth-03     2 files   3/3 tasks done

Archived changes (0)

  No archived changes.

Summary: 3 active change(s), 0 archived.

Each one can now be archived with /theway:archive.

On this page