# MR 1: Labels — list, colour, management Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Close the `labels: list, colour` parity row — paint every label chip the colour the web paints it, and add a screen that creates, recolours and removes labels. **Architecture:** An `IssueLabel` wire model plus a pure colour function ported from the web's `labelColors`/`clampChip`, so the same label reads the same on both surfaces. Chip colours reach the issue list and issue detail through a `LabelColors` value type each view model builds from one `label list` read — a value, not a shared reference. Each view model also keeps the raw `[IssueLabel]`, because MR 2's filter picker needs the names, not just the colours. The management screen follows the existing milestone screen's model/view-model/view split exactly. **Tech Stack:** Swift 6 language mode, default `MainActor` isolation, iOS 26.5, SwiftUI, Swift Testing (not XCTest), `@Observable` view models. **Spec:** `docs/superpowers/specs/2026-09-06-ios-parity-design.md` ## Global Constraints - Swift 6 language mode, default `MainActor` isolation. Wire models are `nonisolated struct`s. - Swift Testing (`import Testing`, `@Test`, `#expect`, `#require`) — never XCTest. - `gitbayTests` is hermetic and runs offline. Network goes through `StubProtocol`; never add a test that reaches the network. - New files under `gitbay/` and `gitbayTests/` need **no** `project.pbxproj` edit — both are `PBXFileSystemSynchronizedRootGroup`s (`gitbay.xcodeproj/project.pbxproj:39-48`), so Xcode picks them up from the filesystem. - **The model is `IssueLabel`, never `Label`.** SwiftUI's `Label` is used 32 times across `gitbay/`. A type named `Label` in this module would shadow it everywhere and break all of them. - The app adds no capability the CLI lacks. Every command here already exists: `label list `, `label set