You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
journeys/ holds 37 agent-evaluated XML walkthroughs whose identifier vocabulary is shared with bitkit-android. The PR workflow does not point at them: .agents/commands/pr.md generates #### Manual Tests as prose at PR creation, the PR template has no journeys heading, and a PR that changes a flow can merge without touching the journey that describes it. Agent-driven reviews then re-derive what to test from that prose on every push, and the prose is the only record that a flow was ever exercised.
Proposed change
.github/pull_request_template.md and .agents/commands/pr.md: ### QA Notes opens with #### Journeys, one repo path per line for every journey the PR adds or updates, or N/A — no user-visible behaviour change.#### Manual Tests follows and keeps only what a journey cannot express (hardware, push notifications, a companion app), each item ending with the reason. The pr command derives the journeys list from the diff (journeys/**/*.xml added or changed) and writes no prose test for a flow a listed journey covers.
AGENTS.md, Journeys section: a PR that changes user-visible behaviour adds or updates the journeys that prove it, and a journey whose route the PR changes is updated in the same PR.
journeys/index.json, committed: per journey its file, <journey name>, the identifiers its actions name, the source files that declare them (accessibilityIdentifier("…")), and the screens its actions name. Generated by scripts/journeys_index.py (python3, standard library only) with a --check mode; the pr command regenerates it, and a CI job runs --check.
The same check fails when a journey names an identifier that no source file declares.
Acceptance
Every PR opened after this lands carries #### Journeys under ### QA Notes with repo paths or the N/A line, and every #### Manual Tests item states why a journey cannot express it.
journeys/index.json matches the tree on every green head: CI fails on a stale index or on a journey that names an unknown identifier.
AGENTS.md states the rule and the pr command applies it without extra instructions.
Context
journeys/holds 37 agent-evaluated XML walkthroughs whose identifier vocabulary is shared with bitkit-android. The PR workflow does not point at them:.agents/commands/pr.mdgenerates#### Manual Testsas prose at PR creation, the PR template has no journeys heading, and a PR that changes a flow can merge without touching the journey that describes it. Agent-driven reviews then re-derive what to test from that prose on every push, and the prose is the only record that a flow was ever exercised.Proposed change
.github/pull_request_template.mdand.agents/commands/pr.md:### QA Notesopens with#### Journeys, one repo path per line for every journey the PR adds or updates, orN/A — no user-visible behaviour change.#### Manual Testsfollows and keeps only what a journey cannot express (hardware, push notifications, a companion app), each item ending with the reason. The pr command derives the journeys list from the diff (journeys/**/*.xmladded or changed) and writes no prose test for a flow a listed journey covers.AGENTS.md, Journeys section: a PR that changes user-visible behaviour adds or updates the journeys that prove it, and a journey whose route the PR changes is updated in the same PR.journeys/index.json, committed: per journey its file,<journey name>, the identifiers its actions name, the source files that declare them (accessibilityIdentifier("…")), and the screens its actions name. Generated byscripts/journeys_index.py(python3, standard library only) with a--checkmode; the pr command regenerates it, and a CI job runs--check.Acceptance
#### Journeysunder### QA Noteswith repo paths or theN/Aline, and every#### Manual Testsitem states why a journey cannot express it.journeys/index.jsonmatches the tree on every green head: CI fails on a stale index or on a journey that names an unknown identifier.AGENTS.mdstates the rule and the pr command applies it without extra instructions.