Skip to content

chore: use journeys as prs qa contract - #1250

Draft
ovitrif wants to merge 3 commits into
masterfrom
chore/1249-journeys-qa-contract
Draft

chore: use journeys as prs qa contract#1250
ovitrif wants to merge 3 commits into
masterfrom
chore/1249-journeys-qa-contract

Conversation

@ovitrif

@ovitrif ovitrif commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Closes #1249

Counterpart: synonymdev/bitkit-ios#743

This PR:

  1. Adds scripts/journeys_index.py and the generated journeys/index.json, which lists per journey the identifiers its actions name, the source files that declare them, and the screens its actions name.
  2. Adds a Journeys workflow that runs the script with --check and fails on a stale index or on an identifier that no source file declares.
  3. Opens QA Notes with #### Journeys in the PR template and the /pr command, and limits #### Manual Tests to what a journey cannot express.
  4. Adds a Journeys section to AGENTS.md: a PR that changes user-visible behaviour adds or updates the journeys that prove it, and updates any journey whose route it changes.

Description

The /pr command now regenerates the index, lists the journeys the branch adds or updates, and stops when a user-visible change has no journey or when a journey whose sources the branch changes no longer matches the diff.

A source file declares an identifier when it contains it as a string literal, or as a string template whose text before the first interpolation begins the identifier while the rest has no capital letters ("N$text" declares N9 but not NRemove). The script uses only the Python standard library and runs on Python 3.9 and later.

Open PRs that add or change journeys (#1231, #1225, #1217, #1170) regenerate the index after this merges. Every identifier on their current heads resolves.

Design

N/A — no UI changes.

Preview

N/A — no user-visible changes.

QA Notes

Journeys

N/A — no user-visible behaviour change.

Manual Tests

  • 1. Branch that edits a journey → /pr --dry: the saved description lists that journey under #### Journeys — agent tooling, not an app flow.

Automated Checks

  • python3 scripts/journeys_index.py --check passes on Python 3.9 and 3.12: 34 journeys, 91 identifiers, all declared.
  • The check fails with its message when a journey names an unknown identifier, when a declaration changes without a regenerated index, when a journey is malformed XML, and when the index is missing.
  • actionlint passes on journeys.yml.
  • Check journeys index passed on this PR's head.
  • Check journeys index on master pushes (after merge).

@ovitrif ovitrif changed the title chore: make journeys the qa contract for prs chore: use journeys as prs qa contract Sep 11, 2026
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.

chore: use journeys as prs qa contract

1 participant