Shipwright — local-721e3b

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

Stages

intakedone
metadatadone
screenshotsdone
preflightdone
submitdone
watchpending

Metadata (critique loop, 3 state writes)

nameSnipStash: Clipboard Manager (28)
subtitleSnippet Vault & Copy Organizer (30)
keywordspaste,history,text,link,code,tag,search,template,holder,board,shortcut,storage,quick,utility,tool (97)
promotionalTextInstantly save, tag, and retrieve your clipboard history. Keep your most-used text, links, and code templates in one private, secure, and searchable local vault. (161)
description + review notes
Stop retyping and instantly access your most-used templates, links, and code snippets.

SnipStash is a dedicated clipboard companion that keeps your copy history organized and instantly reachable in a searchable, on-device vault.

Open the app to immediately see a save prompt if new content is on your clipboard. SnipStash reads your clipboard only when you explicitly tap to save, eliminating annoying permission alerts while keeping your capture workflow seamless.

Keep your vault tidy with automatic titles and smart tags that auto-detect URLs, code, emails, and phone numbers using local heuristics. Organize your content further with manual color-coded tags and pin your absolute favorites to the top.

Find any snippet in seconds with full-text search. Tap any saved item to instantly copy it back to your clipboard with a satisfying haptic confirmation. You can also automate your workflow using Siri Shortcuts to save or search snippets without opening the app.

Your data belongs entirely to you. SnipStash stores everything on-device using SwiftData. There are no accounts, no servers, and no analytics SDKs tracking your usage. What you copy stays strictly on your device.

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

--- review notes ---
1. Launch the app. The app seeds 10 demo snippets on first launch so the UI is immediately populated. No demo account is required as all data is stored locally via SwiftData.
2. Tap any of the seeded snippets. A haptic feedback confirmation confirms the snippet has been copied back to your system clipboard.
3. Copy some text outside the app, then re-open SnipStash. Tap the "Save clipboard?" banner that appears at the top. The app reads the clipboard upon tap, creating a new card with an auto-generated title.
4. Type in the top search bar to filter the snippets, or tap on any tag to filter by category.
5. Navigate to Settings and tap "SnipStash Pro" to view the paywall. Prices load from StoreKit. A "Restore Purchases" button is available at the bottom of the paywall. Alternatively, attempting to add a 26th snippet triggers this same paywall.

Screenshots (gradient)

Preflight — PASS

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

BLOCKING:
- Version localization metadata: Auto-fixed (dry-run)
- Content rights declaration: Auto-fixed (dry-run)
- Copyright information: Auto-fixed (dry-run)
- Age rating declaration: Auto-fixed (dry-run)
- Primary/secondary categories: Auto-fixed (dry-run)
- App price schedule: Auto-fixed (dry-run)
- Store availability (175 territories): Auto-fixed (dry-run)
- Review details and demo instructions: Auto-fixed (dry-run)
- App Store screenshots upload: Auto-fixed (dry-run)
- Build association: Auto-fixed (dry-run)
- In-App Purchase & Subscription review screenshots: Auto-fixed (dry-run)

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:

REJECTION REASON: Guideline 2.1 - Performance: App Completeness (Missing screenshots, build, and metadata on version submission).
17 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

Submission

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

Operator items

Events

10:18:56job created from manual
10:20:55preflight pass 1: 17 findings, verdict BLOCKED
10:20:57auto-fix fix_metadata: ok
10:20:58auto-fix fix_metadata: ok
10:20:58auto-fix fix_content_rights: ok
10:20:58auto-fix fix_copyright: ok
10:20:59auto-fix fix_age_rating: ok
10:20:59auto-fix fix_categories: ok
10:21:01auto-fix fix_app_price: ok
10:21:02auto-fix fix_app_availability: ok
10:21:02auto-fix fix_review_details: ok
10:21:03auto-fix fix_screenshots: ok
10:21:03auto-fix fix_attach_build: ok
10:21:03auto-fix fix_iap_review_screenshot: ok
10:21:04auto-fix fix_sub_review_screenshot: ok
10:21:27pipeline finished: prepared