Task: Scaffold story: Implement the credentials journeys in ores.web
Table of Contents
This page documents a task in the Implement the credentials journeys in ores.web story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
Land the story that owns the Credentials journey group: the story page, the prototype tasks, the sprint row and the programme's order table. The design record is the group's three journey documents, and this task does not touch them.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Implement the credentials journeys in ores.web |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-09-30 |
3. Acceptance
- The story exists in Sprint 26, and the sprint's
* Storiestable links it. - The programme story's order table names this story against the Credentials group, in place of "not yet scaffolded".
- Each of the three Credentials journeys has a prototype task under the story.
- The story states the prototype-first order and the decision that the journey documents stay with the extraction pass.
compass lintpasses and the pages publish.
4. Plan
- Scaffold the story with
compass add story. - Write the goal, the acceptance, the plan, the decisions, the out-of-scope list and the documents.
- Scaffold the four tasks with
compass add task, so each one is wired into the story's* Taskstable. - Wire the story into the sprint's
* Storiestable, and into the programme's order table. - Raise the scaffold PR. The three prototype tasks stay BACKLOG until the PR merges.
5. Measurements
| What | Value | Command | Commit |
|---|---|---|---|
| Credentials journeys in the catalogue | 3 | ls doc/knowledge/journeys/credentials/journey_*.org |
f70042d1f3 |
| Groups in the journey catalogue | 8 | ls -d doc/knowledge/journeys/*/ |
f70042d1f3 |
| Groups with a story in the programme's order table | 3 | the * Order table of task 961BE2F3 |
f70042d1f3 |
6. Notes
- The group is the fourth of eight in Implement the user journeys in ores.web, after Setup, Entry and Profile. The programme writes one story per group, so this story is the group's story and carries the build after the prototypes.
- The three journey documents were written in sprint 25 and carry
#+updated: 2026-09-23. The extraction pass has not reached ores.iam yet, so the documents are stale against the tree in at least one place: the Protect my account document says the change-password handler ignorescurrent_password, andaccount_operations_service::change_passwordverifies it on this tree. The prototypes check every claim they render, and the story records what they find. - The tree at the branch point already carries the journey runtime from the
Setup group (
projects/ores.web/packages/web/src/journeys/runtime.ts), so a prototype rides the real rail rather than a port of the sprint 25 throwaway. - The prototype method follows Prototype ORE Studio bootstrap in ores.web: one branch per journey, several variants on one route, and a verdict on the task.
7. Test Scenarios
| Scenario | State | Notes |
|---|---|---|
8. PRs
| PR | Title |
|---|---|
| #2431 | [agile] Scaffold the credentials journeys story |
9. Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
10. Result
Done 2026-09-30. PR #2431.
The Credentials group has a story, three prototype tasks, a row in sprint 26 and a row in the programme's order table:
| Artefact | Id |
|---|---|
| Story: Implement the credentials journeys in ores.web | EF81A497-5C91-45D8-9A90-5D6E0357BAD8 |
| Task: Prototype Protect my account | B7F44B5A-2DF4-4A89-9326-1D17A1FFF8E9 |
| Task: Prototype Rescue access | 0CD0EAD3-1714-432A-9E64-0C41C4F34E45 |
| Task: Prototype Audit sign-ins | 7F5AA065-212F-4523-924B-1BE38494CF62 |
The programme's order table also gained the Entry row, which named no story although Implement the entry journeys in ores.web already existed.
Two facts were checked while scaffolding, and both are recorded on the story:
- The three journey documents are stale. They carry
#+updated: 2026-09-23, and the extraction pass has not reached ores.iam. The Protect my account document says the change-password handler ignorescurrent_password;account_operations_service::change_passwordverifies it on this tree. - The browser has no path to any credentials data. The BFF serves the caller's
own session and the password change, and nothing else. The credentials routes
that do exist —
/api/v1/iam/sessions,/sessions/active,/login_info,/accounts,/accounts/lock,/accounts/unlockand/accounts/reset-password— areores.http's, which the browser never reaches. Two journey documents claimed a working/api/v1/sessions/activeread for the browser, and named the wrong surface.
Verification: compass lint passes on the scaffold PR (filetags and generator
markers valid; the durable-document link advisory is unchanged at 180 links
across 89 files). The story was read back from the sprint's * Stories table,
and its four tasks were wired into its * Tasks table by compass add task.