diff --git a/.agents/commands/pr.md b/.agents/commands/pr.md index 7660aef2db..c8c7380bee 100644 --- a/.agents/commands/pr.md +++ b/.agents/commands/pr.md @@ -45,6 +45,7 @@ If no base branch argument provided, detect the repo's default branch: - Fetch 10 most recent PRs (open or closed) from the extracted repo for writing style reference - Run `git log $base..HEAD --oneline` for commit messages - Run `git diff $base...HEAD --stat` for understanding scope of changes +- Read `docs/screens-map.md` as the starting point for locating relevant Figma frames when the diff has user-visible UI changes - **If custom instructions provided:** - If instructions reference a specific commit SHA (pattern like `commit [a-f0-9]{7,40}`): - Read full commit message: `git log -1 --format='%B' ` @@ -157,6 +158,15 @@ When the user provides custom instructions after `--`: - Use screen names from code, formatted as separate words without the `Screen` suffix, for example `SendAmountScreen` becomes `Send Amount`. - Use short-form wording like `in-sheet` for sheet screens, `nav` for navigation, `back` for back nav, and `LN` for Lightning Network. +**Design Section:** +Always include `### Design` and apply exactly one case: +- User-visible UI changes with an existing design: link the relevant Figma frames. Start with `docs/screens-map.md` for mapped screens; link known handoff frames directly for sheets, dialogs, reusable views, and other UI outside the map. +- UI changes mapped to `todo` or `n/a`, or other UI changes without an available design, including new features: write `N/A — no design available.` Creating a design is never required. +- Changes without user-visible UI changes: write `N/A — no UI changes.` +- Genuinely uncertain frame matches: report the uncertainty honestly; never invent links. + +Reviewers may make at most one advisory request per PR when an existing-design UI link is omitted or an out-of-map `N/A — no design available.` claim is unverified. Valid mapped `todo`/`n/a` cases and `N/A — no UI changes.` require no request. Missing links never block approval, CI, PR creation, or review readiness. + **For library repos (has `bindings/` directory or `Cargo.toml`):** Structure manual QA around integration validation only. Automated checks belong under `#### Automated Checks`. diff --git a/.agents/commands/release.md b/.agents/commands/release.md index b3006e00c6..f2d03bb344 100644 --- a/.agents/commands/release.md +++ b/.agents/commands/release.md @@ -121,6 +121,10 @@ Bump version to {newVersionName} (build {newVersionCode}) for release. - `versionCode`: {oldVersionCode} → {newVersionCode} - `versionName`: {oldVersionName} → {newVersionName} +### Design + +N/A — no UI changes. + ### Preview N/A diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 46b428a228..a8c3a59701 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -6,6 +6,13 @@ +### Design + + + + + + ### Preview diff --git a/AGENTS.md b/AGENTS.md index 247eef255c..8627a58714 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -186,6 +186,12 @@ suspend fun getData(): Result = withContext(Dispatchers.IO) { - ALWAYS follow Material3 design guidelines for UI components - When building from a Figma frame, reuse only scaffolding (sheet host, `SheetTopBar`, buttons, typography); NEVER swap a design-specific illustration/animation for a lookalike. Export the frame's assets via the Figma MCP and read animation timing/easing/direction from prototype reactions (`use_figma` → `node.reactions`) - ALWAYS resolve a changed `*Screen.kt` to its Figma frame through `docs/screens-map.md` (`Flow › Frame` on the latest `Bitkit - Handoff vNN` page). When adding or removing a `*Screen.kt`, add or drop its row there (`todo` when the design does not exist yet); `ScreensMapTest` fails otherwise +- ALWAYS fill the PR `### Design` section: + - User-visible UI changes with an existing design: link the relevant Figma frames. Start with `docs/screens-map.md` for mapped screens; link known handoff frames directly for sheets, dialogs, reusable views, and other UI outside the map. + - UI changes mapped to `todo` or `n/a`, or other UI changes without an available design, including new features: use `N/A — no design available.`; creating a design is never required. + - Changes without user-visible UI changes: use `N/A — no UI changes.` + - Genuinely uncertain frame matches: report the uncertainty honestly; never invent links. +- Code review may make at most one advisory request per PR when an existing-design UI link is omitted or an out-of-map `N/A — no design available.` claim is unverified. Valid mapped `todo`/`n/a` cases and `N/A — no UI changes.` require no request. Missing links never block approval or CI. - ALWAYS ensure proper error handling in coroutines - ALWAYS acknowledge datastore async operations run synchronously in a suspend context - NEVER use `runBlocking` in suspend functions diff --git a/docs/screens-map.md b/docs/screens-map.md index c27b255d53..4a1ecb5d9c 100644 --- a/docs/screens-map.md +++ b/docs/screens-map.md @@ -71,6 +71,7 @@ Frame names are stable across handoff iterations; node ids are not, so the map l | Android | Figma | | - | - | | CreatePaymentRequestScreen.kt | Payment Request (from Receive > Contacts OR Contact profile OR Payment Requests) › Request payment enter amount | +| IncomingPaymentRequestDetailsScreen.kt | Subscriptions › Payment Request Details | | PaymentRequestsScreen.kt | Payment Requests › Payment Requests | ## ui/screens/profile @@ -116,6 +117,12 @@ Frame names are stable across handoff iterations; node ids are not, so the map l | shopDiscover/ShopDiscoverScreen.kt | Shop (Bitrefill & BTCMaps) › Shop Discover | | shopWebView/ShopWebViewScreen.kt | Shop (Bitrefill & BTCMaps) › Shop Gift Cards | +## ui/screens/subscriptions + +| Android | Figma | +| - | - | +| SubscriptionsScreen.kt | Subscriptions › Subscriptions overview | + ## ui/screens/transfer | Android | Figma |