docs: add agent instructions for journeys - #1264
Conversation
Regtest APKDownload bitkit-dev-debug universal APK (expires in 30 days). |
|
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KavTcT18zALriWtzY57GTR
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KavTcT18zALriWtzY57GTR
piotr-iohk
left a comment
There was a problem hiding this comment.
Docs-only PR — not run on device beyond what’s already in the author’s QA checklist.
Findings
-
[gap]
journeys/widgets/widgets-intro.xmlno longer asserts “last widget” (fixed slot order, verified on both platforms per the description), but iOS still hasVerify "Bitcoin Weather" appears as the last widget…. That leaves the twins out of sync with this PR’s own porting rules. Prefer the same description + assertion change on iOS (or a tracked intentional-diff note — here the prose says behaviour matches, so iOS should update). -
[nit] Open #1250/#743 treat journeys as a PR QA contract + CI index; this branch says they are not a QA gate and CI does not read them. Whichever merges second needs to reconcile those claims so agents don’t get contradictory instructions.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJXzGrHwhH44d9eVM6RQUq
|
Closes #1188
This PR:
journeys/README.mdcovering the XML format, the evaluation rules, how to run one, the backend preconditions and the suite table.AGENTS.md, so an agent working here learns the corpus exists and that porting a feature carries its journeys with it.androidCLI and the iOS command equivalents, so the same journey file can be run on both platforms.Description
journeys/holds 35 specs across eight suites, and until now nothing outside that directory mentioned them. bitkit-ios ported 33 of them and added this documentation on its side (synonymdev/bitkit-ios#691); the specs are deliberately kept diffable between the two repos, so a behaviour meant to match can be checked by running the same file on both — but only one side told an agent so.Journeys are framed here as developer-assistance specs rather than a source of truth. That is a deliberate reversal of the
androidCLI's own journey documentation, which states that "the journey XML is the source of truth; if the app disagrees with the journey, the app has failed". An agent with that skill installed would otherwise arrive with the opposite rule. The corpus is maintained by hand alongside two codebases and drifts, so a journey that disagrees with the app is most likely stale: say what you found, update the journey, and escalate only once the app has separately been confirmed wrong. A crash or freeze remains the exception.The
androidCLI is documented directly inAGENTS.mdrather than vendored into.claude/plugins, matching the existing adb section. Two traps are recorded alongside it:adb shell input textsilently drops characters, and the CLI emits hyphenated JSON keys while its own reference documents camelCase, so a runner filtering onresourceIdfinds nothing.Several claims in the issue were checked against the tree rather than carried over. The corpus is 35 journeys across eight suites, not the 30 across six the issue describes. The iOS port did not keep every file name identical: three were renamed, three Android journeys have no counterpart, and one exists only on iOS. All of it is in the cross-platform table.
android layoutwas run against a live emulator to confirm the hyphenated keys.Two identifier disagreements are recorded as unreconciled rather than fixed, since settling either is a code change: the Send screen emits both
AvailableAmountandavailable_balancewhere iOS has only the first, and the background-payments row isBackgroundPaymentSettingshere againstNotificationsSettingson iOS.Overlaps with #1250, which adds its own Journeys section to
AGENTS.mdcalling journeys the QA contract for PRs, plus a CI check over a generated index. This branch says journeys are not a QA gate and that nothing in.github/workflowsreadsjourneys/— true today, and false once that lands. The two sections and those claims need reconciling by whichever merges second.No changelog fragment: documentation only, nothing user-facing.
Design
N/A — no UI changes.
Preview
N/A — no user-visible changes.
QA Notes
Manual Tests
journeys/README.md→ runjourneys/widgets/widgets-intro.xmlon an emulator: the commands as written drive the flow, with no backend running.android layout --prettyon any Bitkit screen: keys are hyphenated as documented, and Compose testTags land inresource-id.journeys/amount-limits/send-amount-over-balance.xml:./lspdeposit prints a txid, mine prints nothing on success, and the balance syncs.test the widgets flow: it finds the corpus fromAGENTS.mdalone.Automated Checks
N/A — documentation only; no code or test files changed.