App Store submission — Westside Kings and Queens #82

Open
opened 2026-03-26 03:50:22 +00:00 by forgejo_admin · 3 comments

Type

Feature

Lineage

project-capacitor-mobile → Board item (westside first consumer)

Repo

forgejo_admin/westside-app

User Story

As Lucas
I want to submit the westside app to the App Store
So that parents can install it from a link

Context

Final submission to Apple for review. Requires TestFlight iteration complete and all assets/metadata prepared. Apple review typically 24-48 hours. This is the finish line for westside's Capacitor pipeline.

Blocked by: TestFlight iteration (westside-app #80), App Store assets (westside-app #81).

File Targets

Files to modify:

  • fastlane/Fastfile — deliver lane for App Store submission
  • App Store Connect — app record creation (via Fastlane or API)

Files NOT to touch:

  • Application code (should be stable from TestFlight)

Acceptance Criteria

  • App record created in App Store Connect
  • fastlane deliver submits build + metadata
  • Apple review submitted
  • Apple review approved
  • App live on App Store
  • Parents can install from a shared link

Test Expectations

  • App Store listing shows correct metadata, icon, screenshots
  • Install from App Store works on a fresh device
  • Auth flow works on fresh install

Constraints

  • Do NOT submit until Lucas explicitly approves after TestFlight validation
  • Apple review can reject — have contingency for resubmission
  • First submission may require additional privacy questionnaire responses

Checklist

  • App record created
  • Build submitted
  • Apple review passed
  • App live
  • project-capacitor-mobile — App Store submission story
  • sop-capacitor-mobile-lifecycle — Gate 5
### Type Feature ### Lineage `project-capacitor-mobile` → Board item (westside first consumer) ### Repo `forgejo_admin/westside-app` ### User Story As Lucas I want to submit the westside app to the App Store So that parents can install it from a link ### Context Final submission to Apple for review. Requires TestFlight iteration complete and all assets/metadata prepared. Apple review typically 24-48 hours. This is the finish line for westside's Capacitor pipeline. Blocked by: TestFlight iteration (westside-app #80), App Store assets (westside-app #81). ### File Targets Files to modify: - `fastlane/Fastfile` — deliver lane for App Store submission - App Store Connect — app record creation (via Fastlane or API) Files NOT to touch: - Application code (should be stable from TestFlight) ### Acceptance Criteria - [ ] App record created in App Store Connect - [ ] `fastlane deliver` submits build + metadata - [ ] Apple review submitted - [ ] Apple review approved - [ ] App live on App Store - [ ] Parents can install from a shared link ### Test Expectations - [ ] App Store listing shows correct metadata, icon, screenshots - [ ] Install from App Store works on a fresh device - [ ] Auth flow works on fresh install ### Constraints - Do NOT submit until Lucas explicitly approves after TestFlight validation - Apple review can reject — have contingency for resubmission - First submission may require additional privacy questionnaire responses ### Checklist - [ ] App record created - [ ] Build submitted - [ ] Apple review passed - [ ] App live ### Related - `project-capacitor-mobile` — App Store submission story - `sop-capacitor-mobile-lifecycle` — Gate 5
Author
Owner

Ticket Scope Review -- Issue #82

TEMPLATE COMPLIANCE

Checked against template-issue (active SOP).

Section Present Notes
### Lineage Yes project-capacitor-mobile -> Board item. Correct for board-driven work (plans obsolete per convention-kanban-over-plans).
### Repo Yes forgejo_admin/westside-app -- correct.
### User Story Yes Clear: As Lucas / submit to App Store / parents install from link.
### Context Yes Explains this is final submission, references TestFlight and asset dependencies.
### File Targets Yes fastlane/Fastfile + App Store Connect. See note below.
### Acceptance Criteria Yes 6 items, all verifiable.
### Test Expectations Yes 3 items: metadata display, fresh install, auth flow.
### Constraints Yes Lucas approval gate, resubmission contingency, privacy questionnaire.
### Checklist Yes 4 items.
### Related Yes References project + SOP. See note below.
### Type Extra Not in the template. Harmless but non-standard.

All required template sections present.

LABEL TRACEABILITY

Label Traced To Status
story:cap-appstore project-capacitor-mobile User Stories table -- Key: cap-appstore, Role: Lucas, Story: "I want to submit an app to the App Store with correct metadata and pass review" VALID
arch:appstore project-capacitor-mobile Architecture Component IDs -- arch:appstore, Component: "App Store Connect", Description: "Metadata, assets, review submission, Fastlane deliver" VALID
type:feature Standard type label VALID
consumer:westside Cross-repo consumer label, matches board convention VALID

All labels trace to documented entries on project-capacitor-mobile.

BOARD ITEM VERIFICATION

Issue #82 exists on board-capacitor-mobile (board item ID 374) in the backlog column with labels story:cap-appstore,arch:appstore,type:feature,consumer:westside. Matches the stated labels exactly.

FILE TARGETS

  • fastlane/Fastfile -- specific, actionable. Agent knows what to modify.
  • "App Store Connect -- app record creation (via Fastlane or API)" -- this is an external service, not a file. Acceptable for this type of work since App Store submission is inherently an external operation, but the agent will need to know whether fastlane deliver or the App Store Connect API is the expected tool. The Fastfile target implies Fastlane.
  • "Files NOT to touch" section correctly scopes out application code.

Assessment: Adequate. The work is primarily Fastlane configuration + external submission. File targets are as specific as they can be for this type of ticket.

ACCEPTANCE CRITERIA

All 6 criteria are testable:

  1. App record created -- verifiable in App Store Connect
  2. fastlane deliver submits build + metadata -- CI output verifiable
  3. Apple review submitted -- App Store Connect status verifiable
  4. Apple review approved -- Apple confirms
  5. App live on App Store -- search/link verifiable
  6. Parents can install from shared link -- end-to-end verifiable

Assessment: Strong. Criteria are concrete and binary (pass/fail).

DEPENDENCIES

Stated: "Blocked by: TestFlight iteration (westside-app #80), App Store assets (westside-app #81)"

  • #80 (TestFlight iteration) -- Open. Itself blocked by #79 (iOS build pipeline). Correct dependency.
  • #81 (App Store assets) -- Open. Itself blocked by pal-e-platform #164 (Apple Developer enrollment). Correct dependency.

Transitive chain: #164 (Apple enrollment) -> #81 (assets) -> #82 (submission), and #79 (iOS pipeline) -> #80 (TestFlight) -> #82 (submission). Both chains must complete before this ticket is actionable.

Assessment: Dependencies are correct and complete. The ticket correctly identifies its immediate blockers. Transitive dependencies are tracked on the board.

ITEMS TO FIX

  1. Related section references "Gate 5" in sop-capacitor-mobile-lifecycle, but the SOP defines only Stage 1 (Playground, Gate 1), Stage 2 (Promotion), Stage 3 (Local Validation, Gate 2), and Stage 4 (Production Deploy). There is no Gate 5. Either the SOP needs to be extended with App Store submission as a stage/gate, or the Related reference should be corrected. This is a traceability gap -- the reference points to something that does not exist.

  2. Extra ### Type section is non-standard per template-issue. Minor -- remove for consistency or ignore. Not blocking.

VERDICT: NEEDS WORK

One item must be fixed before moving to next_up:

The sop-capacitor-mobile-lifecycle "Gate 5" reference in the Related section is a broken traceability link. The SOP has no Gate 5. Options:

  • (a) Update sop-capacitor-mobile-lifecycle to add Stage 5 (App Store Submission) with Gate 5, OR
  • (b) Remove the Gate 5 reference from this ticket's Related section and reference only project-capacitor-mobile

Everything else is solid -- template compliance, label traceability, file targets, acceptance criteria, and dependency chain are all correct.

## Ticket Scope Review -- Issue #82 ### TEMPLATE COMPLIANCE Checked against `template-issue` (active SOP). | Section | Present | Notes | |---------|---------|-------| | `### Lineage` | Yes | `project-capacitor-mobile` -> Board item. Correct for board-driven work (plans obsolete per `convention-kanban-over-plans`). | | `### Repo` | Yes | `forgejo_admin/westside-app` -- correct. | | `### User Story` | Yes | Clear: As Lucas / submit to App Store / parents install from link. | | `### Context` | Yes | Explains this is final submission, references TestFlight and asset dependencies. | | `### File Targets` | Yes | `fastlane/Fastfile` + App Store Connect. See note below. | | `### Acceptance Criteria` | Yes | 6 items, all verifiable. | | `### Test Expectations` | Yes | 3 items: metadata display, fresh install, auth flow. | | `### Constraints` | Yes | Lucas approval gate, resubmission contingency, privacy questionnaire. | | `### Checklist` | Yes | 4 items. | | `### Related` | Yes | References project + SOP. See note below. | | `### Type` | Extra | Not in the template. Harmless but non-standard. | **All required template sections present.** ### LABEL TRACEABILITY | Label | Traced To | Status | |-------|-----------|--------| | `story:cap-appstore` | `project-capacitor-mobile` User Stories table -- Key: `cap-appstore`, Role: Lucas, Story: "I want to submit an app to the App Store with correct metadata and pass review" | VALID | | `arch:appstore` | `project-capacitor-mobile` Architecture Component IDs -- `arch:appstore`, Component: "App Store Connect", Description: "Metadata, assets, review submission, Fastlane deliver" | VALID | | `type:feature` | Standard type label | VALID | | `consumer:westside` | Cross-repo consumer label, matches board convention | VALID | **All labels trace to documented entries on `project-capacitor-mobile`.** ### BOARD ITEM VERIFICATION Issue #82 exists on `board-capacitor-mobile` (board item ID 374) in the `backlog` column with labels `story:cap-appstore,arch:appstore,type:feature,consumer:westside`. Matches the stated labels exactly. ### FILE TARGETS - `fastlane/Fastfile` -- specific, actionable. Agent knows what to modify. - "App Store Connect -- app record creation (via Fastlane or API)" -- this is an external service, not a file. Acceptable for this type of work since App Store submission is inherently an external operation, but the agent will need to know whether `fastlane deliver` or the App Store Connect API is the expected tool. The Fastfile target implies Fastlane. - "Files NOT to touch" section correctly scopes out application code. **Assessment: Adequate.** The work is primarily Fastlane configuration + external submission. File targets are as specific as they can be for this type of ticket. ### ACCEPTANCE CRITERIA All 6 criteria are testable: 1. App record created -- verifiable in App Store Connect 2. `fastlane deliver` submits build + metadata -- CI output verifiable 3. Apple review submitted -- App Store Connect status verifiable 4. Apple review approved -- Apple confirms 5. App live on App Store -- search/link verifiable 6. Parents can install from shared link -- end-to-end verifiable **Assessment: Strong.** Criteria are concrete and binary (pass/fail). ### DEPENDENCIES Stated: "Blocked by: TestFlight iteration (westside-app #80), App Store assets (westside-app #81)" - **#80** (TestFlight iteration) -- Open. Itself blocked by #79 (iOS build pipeline). Correct dependency. - **#81** (App Store assets) -- Open. Itself blocked by pal-e-platform #164 (Apple Developer enrollment). Correct dependency. Transitive chain: #164 (Apple enrollment) -> #81 (assets) -> #82 (submission), and #79 (iOS pipeline) -> #80 (TestFlight) -> #82 (submission). Both chains must complete before this ticket is actionable. **Assessment: Dependencies are correct and complete.** The ticket correctly identifies its immediate blockers. Transitive dependencies are tracked on the board. ### ITEMS TO FIX 1. **Related section references "Gate 5" in `sop-capacitor-mobile-lifecycle`**, but the SOP defines only Stage 1 (Playground, Gate 1), Stage 2 (Promotion), Stage 3 (Local Validation, Gate 2), and Stage 4 (Production Deploy). There is no Gate 5. Either the SOP needs to be extended with App Store submission as a stage/gate, or the Related reference should be corrected. This is a traceability gap -- the reference points to something that does not exist. 2. **Extra `### Type` section** is non-standard per `template-issue`. Minor -- remove for consistency or ignore. Not blocking. ### VERDICT: NEEDS WORK **One item must be fixed before moving to next_up:** The `sop-capacitor-mobile-lifecycle` "Gate 5" reference in the Related section is a broken traceability link. The SOP has no Gate 5. Options: - (a) Update `sop-capacitor-mobile-lifecycle` to add Stage 5 (App Store Submission) with Gate 5, OR - (b) Remove the Gate 5 reference from this ticket's Related section and reference only `project-capacitor-mobile` Everything else is solid -- template compliance, label traceability, file targets, acceptance criteria, and dependency chain are all correct.
Author
Owner

Ticket Fix (QA review remediation)

Gate Reference (corrected)

Removed reference to "Gate 5" — sop-capacitor-mobile-lifecycle only defines Gates 1-2. App Store submission is a pipeline stage gate that will be defined when the SOP is expanded (discovered scope for pal-e-platform). For now, the acceptance criteria on this ticket ARE the gate.

  • project-capacitor-mobile — App Store submission user story and architecture
  • sop-capacitor-mobile-lifecycle — pipeline context (Stages 5-6 TBD)
## Ticket Fix (QA review remediation) ### Gate Reference (corrected) Removed reference to "Gate 5" — `sop-capacitor-mobile-lifecycle` only defines Gates 1-2. App Store submission is a pipeline stage gate that will be defined when the SOP is expanded (discovered scope for pal-e-platform). For now, the acceptance criteria on this ticket ARE the gate. ### Related (corrected) - `project-capacitor-mobile` — App Store submission user story and architecture - `sop-capacitor-mobile-lifecycle` — pipeline context (Stages 5-6 TBD)
Author
Owner

Issue #82 Re-Review

FINDING STATUS

Original finding: Related section referenced "Gate 5" in sop-capacitor-mobile-lifecycle, but the SOP only defines Stages 1-4 with Gates 1-2 (Phone Approval, Output Contract, Production). No Gate 5 exists.

Fix applied (Comment 2): Removed invalid "Gate 5" reference. Updated Related section to:

  • project-capacitor-mobile -- user story and architecture documentation
  • sop-capacitor-mobile-lifecycle -- pipeline context (Stages 5-6 pending definition)

Assessment: Fix is correct. The SOP's own Key Conventions section confirms "SOP: App Store Submission -- TBD, created when Phase 10 begins." Acknowledging "Stages 5-6 pending definition" is accurate and honest rather than pointing to a non-existent gate.

TRACEABILITY VERIFICATION

story:cap-appstore traces to project-capacitor-mobile: CONFIRMED. User stories table defines cap-appstore as: Role=Lucas, Story="I want to submit an app to the App Store with correct metadata and pass review", Success Metric="App approved, live on App Store." Issue #82's user story and acceptance criteria align directly with this definition.

arch:appstore traces to project-capacitor-mobile: CONFIRMED. Architecture component IDs table defines arch:appstore as: Component="App Store Connect", Description="Metadata, assets, review submission, Fastlane deliver." Issue #82's file targets (fastlane/Fastfile, App Store Connect) map directly to this component.

Traceability triangle (User Story <> Architecture <> Board Item):

  • story:cap-appstore -- defined in project-capacitor-mobile user stories
  • arch:appstore -- defined in project-capacitor-mobile architecture IDs
  • Board item -- issue #82 on westside-app (first consumer)

All three vertices present and consistent.

SOP COMPLIANCE

  • Ticket has Summary equivalent (User Story + Context)
  • Blocked-by dependencies listed (#80, #81)
  • Acceptance criteria are testable (6 criteria, all verifiable)
  • File targets identified
  • Test expectations defined
  • Constraints documented (Lucas approval gate, Apple rejection contingency)
  • Related section corrected -- no broken references remain
  • Labels trace to project-capacitor-mobile architecture and user stories

VERDICT: APPROVED

The fix correctly addresses the broken Gate 5 reference. The traceability triangle (story:cap-appstore, arch:appstore, board item #82) is fully intact and verified against project-capacitor-mobile. Ticket is well-scoped with clear acceptance criteria, explicit blockers, and appropriate constraints. Ready for advancement.

## Issue #82 Re-Review ### FINDING STATUS **Original finding:** Related section referenced "Gate 5" in `sop-capacitor-mobile-lifecycle`, but the SOP only defines Stages 1-4 with Gates 1-2 (Phone Approval, Output Contract, Production). No Gate 5 exists. **Fix applied (Comment 2):** Removed invalid "Gate 5" reference. Updated Related section to: - `project-capacitor-mobile` -- user story and architecture documentation - `sop-capacitor-mobile-lifecycle` -- pipeline context (Stages 5-6 pending definition) **Assessment: Fix is correct.** The SOP's own Key Conventions section confirms "SOP: App Store Submission -- TBD, created when Phase 10 begins." Acknowledging "Stages 5-6 pending definition" is accurate and honest rather than pointing to a non-existent gate. ### TRACEABILITY VERIFICATION **`story:cap-appstore` traces to `project-capacitor-mobile`:** CONFIRMED. User stories table defines `cap-appstore` as: Role=Lucas, Story="I want to submit an app to the App Store with correct metadata and pass review", Success Metric="App approved, live on App Store." Issue #82's user story and acceptance criteria align directly with this definition. **`arch:appstore` traces to `project-capacitor-mobile`:** CONFIRMED. Architecture component IDs table defines `arch:appstore` as: Component="App Store Connect", Description="Metadata, assets, review submission, Fastlane deliver." Issue #82's file targets (`fastlane/Fastfile`, App Store Connect) map directly to this component. **Traceability triangle (User Story <> Architecture <> Board Item):** - `story:cap-appstore` -- defined in project-capacitor-mobile user stories - `arch:appstore` -- defined in project-capacitor-mobile architecture IDs - Board item -- issue #82 on westside-app (first consumer) All three vertices present and consistent. ### SOP COMPLIANCE - [x] Ticket has Summary equivalent (User Story + Context) - [x] Blocked-by dependencies listed (#80, #81) - [x] Acceptance criteria are testable (6 criteria, all verifiable) - [x] File targets identified - [x] Test expectations defined - [x] Constraints documented (Lucas approval gate, Apple rejection contingency) - [x] Related section corrected -- no broken references remain - [x] Labels trace to project-capacitor-mobile architecture and user stories ### VERDICT: APPROVED The fix correctly addresses the broken Gate 5 reference. The traceability triangle (`story:cap-appstore`, `arch:appstore`, board item #82) is fully intact and verified against `project-capacitor-mobile`. Ticket is well-scoped with clear acceptance criteria, explicit blockers, and appropriate constraints. Ready for advancement.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/westside-app#82
No description provided.