Apple Developer Program enrollment #164

Open
opened 2026-03-26 03:49:05 +00:00 by forgejo_admin · 1 comment

Type

Infra

Lineage

project-capacitor-mobile → Board item (manual)

Repo

N/A — manual action, no code

User Story

As Lucas
I want to enroll in the Apple Developer Program
So that I can sign iOS apps and distribute via TestFlight and App Store

Context

Apple Developer Program ($99/yr individual account) is the prerequisite for ALL iOS signing, TestFlight, and App Store work. Without it, nothing downstream can proceed. Approval takes 24-48 hours from Apple.

File Targets

N/A — manual action, no code changes.

Acceptance Criteria

  • Apple Developer account active at developer.apple.com
  • Team ID available for Fastlane match configuration
  • App Store Connect accessible

Test Expectations

N/A — manual verification only.

Constraints

  • Manual action — Lucas must complete this with his Apple ID
  • Individual account, not organization (simpler for solo dev)
  • This blocks: Mac CI agent setup, Fastlane signing, TestFlight, App Store submission

Checklist

  • Account enrolled
  • Team ID recorded
  • App Store Connect accessible
  • project-capacitor-mobile — parent project
### Type Infra ### Lineage `project-capacitor-mobile` → Board item (manual) ### Repo N/A — manual action, no code ### User Story As Lucas I want to enroll in the Apple Developer Program So that I can sign iOS apps and distribute via TestFlight and App Store ### Context Apple Developer Program ($99/yr individual account) is the prerequisite for ALL iOS signing, TestFlight, and App Store work. Without it, nothing downstream can proceed. Approval takes 24-48 hours from Apple. ### File Targets N/A — manual action, no code changes. ### Acceptance Criteria - [ ] Apple Developer account active at developer.apple.com - [ ] Team ID available for Fastlane match configuration - [ ] App Store Connect accessible ### Test Expectations N/A — manual verification only. ### Constraints - Manual action — Lucas must complete this with his Apple ID - Individual account, not organization (simpler for solo dev) - This blocks: Mac CI agent setup, Fastlane signing, TestFlight, App Store submission ### Checklist - [ ] Account enrolled - [ ] Team ID recorded - [ ] App Store Connect accessible ### Related - `project-capacitor-mobile` — parent project
Author
Owner

Ticket Scope Review: #164 "Apple Developer Program enrollment"

TOOLING LIMITATION

The Forgejo MCP toolset does not include a get_issue endpoint that returns issue bodies. WebFetch cannot reach the Tailscale-internal Forgejo instance. I cannot read the issue body. This review is based on: board item metadata, project page (project-capacitor-mobile), and SOP/template cross-referencing. The issue body template compliance check below lists what SHOULD be present but cannot be verified by QA.

TRACEABILITY VERIFICATION

Labels from board-capacitor-mobile item: story:cap-appstore,arch:appstore,type:infra,consumer:westside

Label Source Status
story:cap-appstore project-capacitor-mobile User Stories table TRACED -- key cap-appstore, role: Lucas, story: "I want to submit an app to the App Store with correct metadata and pass review", metric: "App approved, live on App Store"
arch:appstore project-capacitor-mobile Architecture Component IDs table TRACED -- component: "App Store Connect", description: "Metadata, assets, review submission, Fastlane deliver"
type:infra template-ticket Label Conventions VALID type label
consumer:westside project-capacitor-mobile Board section VALID cross-repo consumer label, westside-app is documented as first consumer

All four labels trace to documented entries. Traceability triangle is intact.

TEMPLATE COMPLIANCE (cannot verify -- issue body not readable)

Per template-issue, the Forgejo issue body should contain:

  • ### Lineage -- ancestry chain (or note this is board-driven, not plan-driven)
  • ### Repo -- forgejo_admin/pal-e-platform
  • ### User Story -- As Lucas, I want to enroll in the Apple Developer Program, so that I can sign and distribute iOS apps
  • ### Context -- why enrollment is needed, $99/yr cost, prerequisite for all signing/TestFlight/App Store work
  • ### File Targets -- likely N/A for manual action, but should state that explicitly
  • ### Acceptance Criteria -- testable criteria (see below)
  • ### Test Expectations -- likely N/A for manual action, but should state that explicitly
  • ### Constraints -- Apple ID requirements, D-U-N-S number if org account, timeline
  • ### Checklist -- standard checklist items
  • ### Related -- project-capacitor-mobile

Lucas must visually verify the issue body matches template-issue since QA cannot read it.

ACCEPTANCE CRITERIA EXPECTATIONS

For this to be properly scoped, acceptance criteria should be testable. For a manual enrollment ticket, good criteria look like:

  • Apple Developer account is active at developer.apple.com
  • Account type documented (Individual vs Organization)
  • Team ID recorded in a known location (secrets or pal-e-docs)
  • Certificates page accessible in developer portal
  • App Store Connect accessible and linked

Bad criteria: "Enroll in Apple Developer Program" (not testable -- what does "done" look like?).

MANUAL vs AGENT SCOPING

This ticket is correctly scoped as manual human action. Apple Developer enrollment requires:

  • Credit card payment ($99/yr)
  • Apple ID authentication (possibly 2FA)
  • Legal agreement acceptance
  • Potential identity verification (if org account)

None of this is agent-automatable. The type:infra label is appropriate -- this is infrastructure provisioning that happens to be manual. Per sop-board-workflow, the execution pipeline (hooks auto-advancing columns) does not apply to manual work. The column flow should be:

backlog -> todo (Betty Sue scopes) -> next_up (Lucas approves) -> done (Lucas completes manually)

No in_progress -> qa -> needs_approval cycle because there is no PR.

BOARD STATE

  • Current column: backlog
  • Points: not assigned
  • Per sop-board-workflow, to move to todo: needs triage (labels done, points needed, scope review)
  • Per sop-board-workflow, to move to next_up: needs Lucas review of scope in todo
  • This item is listed as "First blocker" in the project-capacitor-mobile Status section -- confirms priority

DEPENDENCY CHECK

Downstream items that depend on Apple Developer enrollment being complete:

  • #167 "Fastlane match -- iOS code signing setup" (arch:signing) -- cannot create certificates without developer account
  • #166 "Mac CI agent -- Woodpecker iOS build infrastructure" (arch:mac-agent) -- needs signing to produce builds
  • westside-app #79 "iOS build pipeline" (arch:ios-pipeline) -- needs signing + CI agent
  • westside-app #82 "App Store submission" (arch:appstore) -- needs active developer account

This is correctly identified as the first blocker on the critical path.

ITEMS TO ADDRESS

  1. Lucas must verify issue body matches template-issue format (QA cannot read it due to tooling gap)
  2. Acceptance criteria must be testable -- not just "enroll" but specific verifiable outcomes (account active, Team ID recorded, certificates page accessible)
  3. Points should be assigned before moving to todo per template-ticket conventions
  4. File Targets and Test Expectations sections should explicitly state "N/A -- manual action" rather than being omitted
  5. Consider adding ### Depends on or ### Constraints noting this blocks #165, #166, #167, westside-app #79, #82

VERDICT: NEEDS WORK

Cannot approve for next_up because QA cannot verify the issue body exists or follows template-issue. The traceability labels are correct and trace to documented entries on project-capacitor-mobile. The manual action scoping is appropriate. Lucas must visually confirm the issue body compliance and ensure acceptance criteria are testable before advancing from backlog to todo.

## Ticket Scope Review: #164 "Apple Developer Program enrollment" ### TOOLING LIMITATION The Forgejo MCP toolset does not include a `get_issue` endpoint that returns issue bodies. WebFetch cannot reach the Tailscale-internal Forgejo instance. **I cannot read the issue body.** This review is based on: board item metadata, project page (`project-capacitor-mobile`), and SOP/template cross-referencing. The issue body template compliance check below lists what SHOULD be present but cannot be verified by QA. ### TRACEABILITY VERIFICATION Labels from board-capacitor-mobile item: `story:cap-appstore,arch:appstore,type:infra,consumer:westside` | Label | Source | Status | |-------|--------|--------| | `story:cap-appstore` | project-capacitor-mobile User Stories table | TRACED -- key `cap-appstore`, role: Lucas, story: "I want to submit an app to the App Store with correct metadata and pass review", metric: "App approved, live on App Store" | | `arch:appstore` | project-capacitor-mobile Architecture Component IDs table | TRACED -- component: "App Store Connect", description: "Metadata, assets, review submission, Fastlane deliver" | | `type:infra` | template-ticket Label Conventions | VALID type label | | `consumer:westside` | project-capacitor-mobile Board section | VALID cross-repo consumer label, westside-app is documented as first consumer | All four labels trace to documented entries. Traceability triangle is intact. ### TEMPLATE COMPLIANCE (cannot verify -- issue body not readable) Per `template-issue`, the Forgejo issue body should contain: - [ ] `### Lineage` -- ancestry chain (or note this is board-driven, not plan-driven) - [ ] `### Repo` -- `forgejo_admin/pal-e-platform` - [ ] `### User Story` -- As Lucas, I want to enroll in the Apple Developer Program, so that I can sign and distribute iOS apps - [ ] `### Context` -- why enrollment is needed, $99/yr cost, prerequisite for all signing/TestFlight/App Store work - [ ] `### File Targets` -- likely N/A for manual action, but should state that explicitly - [ ] `### Acceptance Criteria` -- testable criteria (see below) - [ ] `### Test Expectations` -- likely N/A for manual action, but should state that explicitly - [ ] `### Constraints` -- Apple ID requirements, D-U-N-S number if org account, timeline - [ ] `### Checklist` -- standard checklist items - [ ] `### Related` -- `project-capacitor-mobile` **Lucas must visually verify** the issue body matches `template-issue` since QA cannot read it. ### ACCEPTANCE CRITERIA EXPECTATIONS For this to be properly scoped, acceptance criteria should be testable. For a manual enrollment ticket, good criteria look like: - [ ] Apple Developer account is active at developer.apple.com - [ ] Account type documented (Individual vs Organization) - [ ] Team ID recorded in a known location (secrets or pal-e-docs) - [ ] Certificates page accessible in developer portal - [ ] App Store Connect accessible and linked Bad criteria: "Enroll in Apple Developer Program" (not testable -- what does "done" look like?). ### MANUAL vs AGENT SCOPING This ticket is correctly scoped as **manual human action**. Apple Developer enrollment requires: - Credit card payment ($99/yr) - Apple ID authentication (possibly 2FA) - Legal agreement acceptance - Potential identity verification (if org account) None of this is agent-automatable. The `type:infra` label is appropriate -- this is infrastructure provisioning that happens to be manual. Per `sop-board-workflow`, the execution pipeline (hooks auto-advancing columns) does not apply to manual work. The column flow should be: ``` backlog -> todo (Betty Sue scopes) -> next_up (Lucas approves) -> done (Lucas completes manually) ``` No `in_progress -> qa -> needs_approval` cycle because there is no PR. ### BOARD STATE - Current column: `backlog` - Points: not assigned - Per `sop-board-workflow`, to move to `todo`: needs triage (labels done, points needed, scope review) - Per `sop-board-workflow`, to move to `next_up`: needs Lucas review of scope in `todo` - This item is listed as "First blocker" in the project-capacitor-mobile Status section -- confirms priority ### DEPENDENCY CHECK Downstream items that depend on Apple Developer enrollment being complete: - #167 "Fastlane match -- iOS code signing setup" (`arch:signing`) -- cannot create certificates without developer account - #166 "Mac CI agent -- Woodpecker iOS build infrastructure" (`arch:mac-agent`) -- needs signing to produce builds - westside-app #79 "iOS build pipeline" (`arch:ios-pipeline`) -- needs signing + CI agent - westside-app #82 "App Store submission" (`arch:appstore`) -- needs active developer account This is correctly identified as the first blocker on the critical path. ### ITEMS TO ADDRESS 1. **Lucas must verify issue body** matches `template-issue` format (QA cannot read it due to tooling gap) 2. **Acceptance criteria must be testable** -- not just "enroll" but specific verifiable outcomes (account active, Team ID recorded, certificates page accessible) 3. **Points should be assigned** before moving to `todo` per `template-ticket` conventions 4. **File Targets and Test Expectations** sections should explicitly state "N/A -- manual action" rather than being omitted 5. **Consider adding `### Depends on` or `### Constraints`** noting this blocks #165, #166, #167, westside-app #79, #82 ### VERDICT: NEEDS WORK Cannot approve for `next_up` because QA cannot verify the issue body exists or follows `template-issue`. The traceability labels are correct and trace to documented entries on `project-capacitor-mobile`. The manual action scoping is appropriate. Lucas must visually confirm the issue body compliance and ensure acceptance criteria are testable before advancing from `backlog` to `todo`.
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/pal-e-platform#164
No description provided.