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, docsThe 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-03It assigned them in dependency order:
| Member | Change |
|---|---|
add-user-auth-01 | Password storage: a users record with an scrypt hash from node:crypto, no new dependency |
add-user-auth-02 | POST /login, checking the password against the stored hash |
add-user-auth-03 | README: 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).| # | Finding | Verdict | Fix |
|---|---|---|---|
| R1-0 | add-user-auth-02 names a verifyPassword helper that -01 does not export | confirmed | -01 task 2 now exports verifyPassword(password, hash) |
| R1-1 | add-user-auth-02 does not say what POST /login returns on success | confirmed, 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 wording | confirmed | task 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-03The 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.