Shipwright — job-2-d7d5d7

app 6803901837 build 2 (2143692d-bddd-4e6a-b801-c6adc7c06a53) version 44a53643-1738-43ea-ac1d-f5ea877519de state rejected trigger webhook DRY-RUN

Stages

intakedone
metadatadone
screenshotsdone
preflightdone
submitdone
watchpending

Metadata (critique loop, 3 state writes)

nameSnipStash: Clipboard Manager (28)
subtitleStore Text, Code & Template (27)
keywordssnippet,vault,organize,paste,fast,shortcut,history,save,link,developer,utility,quick,holder,draft (97)
promotionalTextInstantly save, organize, and copy snippets, links, code, images, and files. No accounts, no trackers—just clean, local-first utility. (134)
description + review notes
Stop retyping the same messages, links, and code snippets every single day.

SnipStash is a clean, local-first clipboard vault that keeps your frequently used text, code, links, images, and files at your fingertips. Safely stash your copy-paste history and organize daily work essentials in one lightning-fast database.

Open the app to instantly catch new items from your clipboard via our one-tap save banner. On-device smart heuristics automatically categorize and tag your entries, detecting URLs, code blocks, email addresses, and phone numbers in milliseconds without any cloud processing.

Keep your vault tidy using custom colour-coded tags, Pinned + Recent sections, a tag manager, and a lightning-fast full-text search. Tap any snippet to instantly copy it back to your clipboard with satisfying haptic confirmation, ready to be pasted into any other screen.

Supercharge your workflow with Siri Shortcuts like "Save Snippet" and "Search Snippets" for automated hands-free productivity. Store up to 25 snippets completely free, or upgrade to SnipStash Pro via monthly subscription or a one-time lifetime purchase to unlock unlimited storage.

Your privacy is absolute. All data is stored locally on-device using SwiftData; there are no remote servers, no user accounts, and no analytics tracking. We never access your clipboard without your explicit tap.

Terms: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/  Privacy: https://byasb.com/snipstash/privacy

--- review notes ---
TESTING STEPS (No demo account is required as this app stores all data locally using SwiftData with zero server dependencies. The app seeds 10 demo snippets on first launch for immediate testing):

1. Clipboard Banner Feature:
- Copy any text to your device clipboard outside the app.
- Open SnipStash. A "Save clipboard?" banner will appear at the top.
- Tap "Save" to confirm. The item is safely read and added to the database.

2. Organization & Smart Tags:
- Tap any of the seeded items to view automatic tagging (e.g., email or URL detection).
- Use the search bar at the top to filter items instantly.
- Tap a color-coded tag at the top to filter list by tag.

3. Copy Action:
- Tap any item in the list. A haptic feedback will trigger and the item is copied back to your clipboard.

4. Paywall & StoreKit Testing:
- Navigate to Settings -> SnipStash Pro to display the paywall.
- Review the monthly subscription and lifetime pay once options.
- Tap the "Restore Purchases" button on the paywall to verify transaction restoration flow.

Screenshots (gradient)

Preflight — PASS

VERDICT: PASS (dry-run: projected after simulated auto-fixes)

BLOCKING:
- version_localization: [Auto-fixed]
- content_rights: [Auto-fixed]
- copyright: [Auto-fixed]
- age_rating: [Auto-fixed]
- categories: [Auto-fixed]
- app_price: [Auto-fixed]
- app_availability: [Auto-fixed]
- review_details: [Auto-fixed]
- screenshots: [Auto-fixed]
- build: [Auto-fixed]
- iap_readiness: [Auto-fixed]

OPERATOR:
- App Privacy questionnaire must be PUBLISHED (saved ≠ published) [one web click]
- 2026 'regulated medical device' banner under App Information — answer No [one web click]
- Paid Applications Agreement + banking + tax Active, else StoreKit returns 0 products [one web click]
- first subscription/IAP attaches via the version page IAP dialog (reviewSubmissionItems rejects inAppPurchaseV2 in 2026) [one web click]

WARNINGS:
- panel 1: 'Password: Sunshine!42' — Exposes a visible plain-text password ("Sunshine!42") inside the Home WiFi Password snippet.
- panel 1: 'pwd=nT5rQxK9' — Exposes a visible meeting password token in the Zoom link.
- panel 1: '+91 98765 43210' — Exposes personal data (a phone number associated with "Landlord — Mr. Reddy").
- panel 5: 'Sync everywhere' — Claims to sync everywhere, but iCloud sync and the Mac app are not supported in v1.0.
- panel 5: 'Multi-device sync' — Promises syncing across iPhone, iPad, and Mac, but iCloud sync and the Mac app are explicitly listed as not supported in v1.0.
- panel 5: 'Custom keyboard' — Promises a custom keyboard feature, which is not supported in v1.0.

MOST LIKELY REJECTION REASON: Guideline 2.3.1 (Accurate Metadata) - App Store screenshots display features that are not supported in version 1.0 (such as iCloud sync, Mac app compatibility, and custom keyboard) and expose plaintext passwords and personal data.
23 findings before auto-fix
BLOCKcontent_rightscontentRightsDeclaration unset — surfaces only at reviewSubmissionItems POSTfix_content_rights
BLOCKcopyrightversion.copyright empty — hidden blocker at submitfix_copyright
BLOCKage_rating2026 age-rating fields unanswered: ['advertising', 'parentalControls', 'lootBox', 'healthOrWellnessTopics', 'ageAssurance', 'messagingAndChat', 'userGeneratedContent', 'gunsOrOtherWeapons']fix_age_rating
BLOCKcategoriesno primary categoryfix_categories
BLOCKapp_priceapp has NO price schedule (new apps ship without one; required even for Free)fix_app_price
BLOCKapp_availabilityapp availability unset — app would be sold nowherefix_app_availability
BLOCKiap_readinessIAP com.utenx.snipstash.pro.lifetime is MISSING_METADATA: no review screenshotfix_iap_review_screenshot
BLOCKiap_readinesssubscription com.utenx.snipstash.pro.monthly is MISSING_METADATA: no review screenshotfix_sub_review_screenshot
BLOCKreview_detailsreview contact/notes missing: ['contactFirstName', 'contactLastName', 'contactPhone', 'contactEmail', 'notes'] (phone needs country code; notes = exact test steps)fix_review_details
BLOCKversion_localizationversion localization missing ['description', 'keywords', 'supportUrl']fix_metadata
BLOCKversion_localizationapp-info localization missing ['subtitle', 'privacyPolicyUrl']fix_metadata
BLOCKscreenshotsno APP_IPHONE_67 screenshots (1320×2868 go here; APP_IPHONE_69 does not exist)fix_screenshots
BLOCKbuildno build attached to the versionfix_attach_build
WARNapp_privacyApp Privacy questionnaire must be PUBLISHED (saved ≠ published)operator
WARNmedical_device2026 'regulated medical device' banner under App Information — answer Nooperator
WARNpaid_apps_agreementPaid Applications Agreement + banking + tax Active, else StoreKit returns 0 productsoperator
WARNiap_draft_submissionfirst subscription/IAP attaches via the version page IAP dialog (reviewSubmissionItems rejects inAppPurchaseV2 in 2026)operator
WARNscreenshot_claimspanel 1: 'Password: Sunshine!42' — Exposes a visible plain-text password ("Sunshine!42") inside the Home WiFi Password snippet.
WARNscreenshot_claimspanel 1: 'pwd=nT5rQxK9' — Exposes a visible meeting password token in the Zoom link.
WARNscreenshot_claimspanel 1: '+91 98765 43210' — Exposes personal data (a phone number associated with "Landlord — Mr. Reddy").
WARNscreenshot_claimspanel 5: 'Sync everywhere' — Claims to sync everywhere, but iCloud sync and the Mac app are not supported in v1.0.
WARNscreenshot_claimspanel 5: 'Multi-device sync' — Promises syncing across iPhone, iPad, and Mac, but iCloud sync and the Mac app are explicitly listed as not supported in v1.0.
WARNscreenshot_claimspanel 5: 'Custom keyboard' — Promises a custom keyboard feature, which is not supported in v1.0.

Submission

{
 "reason": "DRY_RUN or ALLOW_SUBMIT=false \u2014 version fully prepared, submission withheld",
 "submitted": false
}

Operator items

Events

19:43:56job created from webhook
19:46:02preflight pass 1: 24 findings, verdict BLOCKED
19:46:03auto-fix fix_metadata: ok
19:46:04auto-fix fix_metadata: ok
19:46:04auto-fix fix_content_rights: ok
19:46:04auto-fix fix_copyright: ok
19:46:04auto-fix fix_age_rating: ok
19:46:04auto-fix fix_categories: ok
19:46:06auto-fix fix_app_price: ok
19:46:06auto-fix fix_app_availability: ok
19:46:06auto-fix fix_review_details: ok
19:46:07auto-fix fix_screenshots: ok
19:46:07auto-fix fix_attach_build: ok
19:46:07auto-fix fix_iap_review_screenshot: ok
19:46:07auto-fix fix_sub_review_screenshot: ok
19:46:23pipeline finished: prepared
19:58:07rejection routed → metadata (gemma=metadata, guideline 2.3.1)
20:00:38preflight pass 1: 23 findings, verdict BLOCKED
20:00:39auto-fix fix_metadata: ok
20:00:40auto-fix fix_metadata: ok
20:00:40auto-fix fix_content_rights: ok
20:00:40auto-fix fix_copyright: ok
20:00:40auto-fix fix_age_rating: ok
20:00:40auto-fix fix_categories: ok
20:00:42auto-fix fix_app_price: ok
20:00:43auto-fix fix_app_availability: ok
20:00:43auto-fix fix_review_details: ok
20:00:43auto-fix fix_screenshots: ok
20:00:43auto-fix fix_attach_build: ok
20:00:43auto-fix fix_iap_review_screenshot: ok
20:00:43auto-fix fix_sub_review_screenshot: ok
20:00:58pipeline finished: prepared
19:53:53App Store version state PREPARE_FOR_SUBMISSION → READY_FOR_REVIEW
19:58:18App Store version state READY_FOR_REVIEW → WAITING_FOR_REVIEW
23:37:12App Store version state WAITING_FOR_REVIEW → IN_REVIEW
23:37:17App Store version state IN_REVIEW → REJECTED