원클릭으로
update-card-batches
Update card batch IDs by fetching info from Jira, downloading assets from Figma, and updating the codebase
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Update card batch IDs by fetching info from Jira, downloading assets from Figma, and updating the codebase
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Bump the .tools-version - create the Jira ticket, update .tools-version, and open a PR to a target branch (default develop)
Bump the CI Xcode version - create the Jira ticket, update .xcode-version and .ios-sim-runtime, and open a PR to develop
Triages the nightly UI-test run on CI (the ui-tests-allure.yml workflow on develop). Pulls the failed tests from the run log, links each to its test code and recent app changes, classifies the root cause as app bug / test fix / mock issue / flaky, and reports findings with recommendations. Use when the user asks to "analyze nightly UI test failures", "triage nightly UI tests", "what failed last night", "разбери ночной прогон", "что упало ночью", or pastes a ui-tests-allure run URL with a triage intent. Read-only: it never runs tests, edits code, or files bugs — it hands those off to other skills.
Use this skill when writing, modifying, or debugging UI tests for the Tangem iOS app — anything under `TangemUITests/`, page objects under `TangemUITests/Screens/`, accessibility identifiers in `Modules/TangemAccessibilityIdentifiers/`, or API mocks in `../tangem-api-mocks`. Triggers include "write UI test", "add UI test", "create page object", "add accessibility identifier for test", "fix flaky UI test", or any direct request to touch files in those locations. Do NOT use for unit tests (`Tangem*Tests/`), SPM module tests (`Modules/*Tests`), SwiftUI previews, or general production code work — those are different workflows with different rules.
This skill adds new chain in the app using chain description and specs.
| name | update-card-batches |
| description | Update card batch IDs by fetching info from Jira, downloading assets from Figma, and updating the codebase |
| argument | jira_issue - Jira issue reference in the form [REDACTED_INFO] or just 12345 |
This skill automates the process of adding new card batch IDs to the Tangem iOS app. It fetches batch information from Jira, downloads card images from Figma, adds them to the Xcode project, updates the code, and creates a pull request.
ALWAYS ASK THE USER when you encounter:
Use AskUserQuestion tool to clarify before proceeding. Never guess or make assumptions.
Parse $ARGUMENTS to extract the Jira issue number:
12345), prefix with IOS-IOS- prefix (e.g., [REDACTED_INFO]), use as-isissue_key (e.g., [REDACTED_INFO])Use mcp__atlassian__getAccessibleAtlassianResources to get the cloud ID for the Tangem Atlassian workspace.
Use mcp__atlassian__getJiraIssue with:
cloudId: from step 2issueIdOrKey: the issue_key from step 1Extract from the issue:
AFXXXXX, AF990XXX, or BBXXXXXX patternsParse the issue description carefully to identify:
AF990057, AF990058, AF990059)If the issue description is unclear or you cannot confidently identify batch names and IDs, ASK THE USER:
The card images are stored in the Universal design library Figma file.
CRITICAL: Always export assets as PDF format. Never use screenshots.
Search for card assets in the following Figma's files:
{BatchName}Double, {BatchName}TripleIf you cannot find the expected layer names, ASK THE USER for clarification before proceeding.
For each batch, you need TWO assets:
{BatchName}Double - Image showing 2 cards (for cardsCount == 2){BatchName}Triple - Image showing 3 cards (for cardsCount == 3)Export Process:
Use mcp__figma-remote-mcp__get_metadata to explore the Cards section and find the correct node IDs for the batch assets.
Use mcp__figma-remote-mcp__get_design_context with the node IDs to get export URLs. Request PDF format export.
The response will include downloadUrls - use these to download the PDF files.
Download the PDF files using curl or similar:
curl -o "{BatchName}Double.pdf" "<download_url>"
curl -o "{BatchName}Triple.pdf" "<download_url>"
Move the downloaded PDFs to the appropriate asset directories.
If PDF export is not available or fails, ASK THE USER how to proceed. Do not fall back to PNG/screenshot.
For each batch (e.g., "Lunar"), create:
Create directory: Modules/TangemAssets/Assets/Assets.xcassets/Cards/{BatchName}Double.imageset/
Create Contents.json:
{
"images" : [
{
"filename" : "{BatchName}Double.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Add the PDF file: {BatchName}Double.pdf
Create directory: Modules/TangemAssets/Assets/Assets.xcassets/Cards/{BatchName}Triple.imageset/
Create Contents.json:
{
"images" : [
{
"filename" : "{BatchName}Triple.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Add the PDF file: {BatchName}Triple.pdf
Run SwiftGen to regenerate the asset catalog code:
mint run swiftgen@6.6.3 config run --config swiftgen.yml
This will update Modules/TangemAssets/Generated/Assets.swift to include the new card images.
Edit Tangem/Domain/UserWalletModel/UserWalletConfig/Implementations/Wallet2Config.swift.
In the cardHeaderImage computed property's switch statement, add a new case before the default: case:
// {Batch Name}
case "{BatchID1}", "{BatchID2}", "{BatchID3}":
return cardsCount == 2 ? Assets.Cards.{batchName}Double : Assets.Cards.{batchName}Triple
Naming conventions:
lunarDouble, winterSakuraDouble// Lunar, // Winter Sakura"AF990057", "AF990058"Example for "Hyper Blue" with batch IDs AF990026, AF990027, AF990028:
// Hyper Blue summer collection
case "AF990026", "AF990027", "AF990028":
return cardsCount == 2 ? Assets.Cards.hyperBlueDouble : Assets.Cards.hyperBlueTriple
Create a new branch from current HEAD:
git checkout -b feature/{issue_key}_update_{batch_name_snake_case}_batch_ids
Where:
{issue_key} is the Jira issue (e.g., [REDACTED_INFO]){batch_name_snake_case} is the batch name in snake_case (e.g., summer, lunar, hyper_blue)git add Modules/TangemAssets/Assets/Assets.xcassets/Cards/
git add Modules/TangemAssets/Generated/
git add Tangem/Domain/UserWalletModel/UserWalletConfig/Implementations/Wallet2Config.swift
git commit -m "{issue_key} Add {batch_name} batch ids
Co-Authored-By: Claude <noreply@anthropic.com>"
git push -u origin HEAD
Use the /create-pr skill or manually create the PR:
Use mcp__github__create_pull_request with:
owner: tangem-developmentsrepo: tangem-app-iostitle: {issue_key}: Add {batch_name} batch idshead: branch name from step 8base: developbody:
[{issue_key}](https://tangem.atlassian.net/browse/{issue_key})
## Summary
- Added card images for {batch_name}
- Added batch IDs: {list of batch IDs}
## Test plan
- [ ] Verify card images display correctly in the app
- [ ] Test with each batch ID
Output:
When in doubt, ALWAYS ask the user before proceeding.
{BatchName}Double and {BatchName}Triplemint is installed and swiftgen is availablemint run swiftgen@6.6.3 config run --config swiftgen.yml to regenerate assetsAssets.Cards.* constantsSee PR https://github.com/tangem-developments/tangem-app-ios/pull/1545/ for a reference implementation of adding summer batch IDs.