| name | apple-dev |
| description | Génère/améliore/déploie une app Swift 6 / SwiftUI (iOS/macOS/watchOS) avec contrat API REST ou GraphQL. Modes scaffold | enhance | deploy, API design ou from-web. Persiste les décisions dans le vault. Fusion isaac (27) + happy (49). |
| version | 1.1.0 |
| platforms | ["macos"] |
| metadata | {"hermes":{"tags":["swift","swiftui","apple","ios","macos","watchos","api","rest","graphql","tuist","asc","testflight"],"related_skills":["engineering-advisor","autonomous-ai-agents"],"model":"deepseek-v4-full","coding_delegate":"mistral-3.5","coding_runtime":"vibe-cli"}} |
apple-dev
Adaptation de isaac (27) + happy (49) — ULK → Hermes. Carte :
docs/backlog/2026-06-28-SPEC-HERMES-APPLE-DEV/CARD.md (P2, GitHub #244).
Génère, améliore ou déploie une app Swift 6 / SwiftUI (multi-plateforme) + contrat API
(REST/GraphQL). Décisions persistées dans le vault. Skill à plus forte valeur pratique du lot
(l'utilisateur code en Swift). platforms: [macos] requis (Xcode) ; le kit généré cible iOS/watchOS.
Modes (--mode) et source d'API (--api)
--mode | Agent ULK | Comportement |
|---|
scaffold (défaut) | isaac Phases 2-3 | Starter kit from-scratch (aucun projet Swift détecté). |
enhance | isaac mode ENHANCE | Projet Xcode/SwiftUI existant : lire l'archi en place (MVVM/TCA, SPM/CocoaPods), adapter au lieu de regénérer. Détecter aussi TUIST (Project.swift/Tuist/) → ne jamais toucher .xcodeproj à la main, passer par tuist generate/tuist build. |
deploy | isaac Phase 5 | Signing → build → soumission App Store Connect (TestFlight / review). |
--api | Agent ULK | Source du contrat |
|---|
design (défaut) | happy Phase 3 | Contrat conçu from-scratch depuis le questionnaire. |
from-web | happy Phases 0-2 | Auditer une app/site web existant (routes, server actions, modèles, auth) → dériver le contrat API de l'existant avant de le figer. |
Runtime & modèles
- DeepSeek V4 full : questionnaire, détection de mode (scan projet Swift/Tuist), audit web
(
--api from-web), design du contrat, assembly, vérif cohérence des types, orchestration deploy,
décisions vault. Tier ULK sonnet/opus → DeepSeek full (effort de raisonnement plus élevé sur
--mode deploy, action irréversible côté ASC).
- Coding délégué : la génération du code Swift et du contrat/types passe par
Mistral 3.5 via vibe CLI, en sous-tâches parallèles :
delegate_task(coder, prompt="api-contract: OpenAPI 3.1 ou schema GraphQL — types Swift dérivés — contrat: <endpoints>")
delegate_task(coder, prompt="app-scaffold: projet Xcode SwiftUI Swift 6 — AppEntry, NavigationStack, modèles Codable Sendable, NetworkLayer async/await, previews")
└─ (coder via vibe — invocation selon la config Hermes)
DeepSeek cadre + assemble + vérifie ; Mistral écrit le Swift. L'ASSEMBLY (pont types
contrat ↔ modèles) reste DeepSeek — c'est la valeur ajoutée de la fusion isaac+happy.
Procédure
- Lire
apple-dev-decisions.md (vault) : plateforme, signing, API base URL, patterns retenus.
- Détection de mode : scanner
Project.swift/Tuist/ → enhance TUIST ; .xcodeproj/.swift (>5) → enhance ; sinon scaffold.
- Établir le contrat selon
--api :
design → QUESTIONNAIRE (plateformes, Swift 6, UI, API style, auth, features).
from-web → audit de l'existant (routes, actions, modèles, auth du site) → contrat dérivé, puis questionnaire réduit.
delegate_task(api-contract) + delegate_task(app-scaffold) en parallèle (indépendants).
En enhance : générer uniquement Services/+Models/ compatibles avec l'archi détectée (pas de kit complet).
- ASSEMBLY : coller les outputs, vérifier cohérence des types (pas de désync).
--mode deploy (transposé isaac Phase 5, skills asc-* / CLI asc) :
asc auth status → signing (bundle-ids, certificates, profiles) → build (xcodebuild archive/export)
→ asc builds upload → asc publish testflight ou asc publish appstore --submit.
Aucune soumission review sans confirmation explicite (action irréversible).
- Écrire les nouvelles décisions dans
apple-dev-decisions.md.
Critères d'acceptation
Pièges
- Swift 6 strict concurrency : modèles Codable
Sendable, réseau dans Task isolées — pas du Swift 5.
enhance : adapter à l'archi en place (détecter MVVM/TCA + SPM/CocoaPods/Tuist) — ne pas imposer le starter kit par-dessus un projet vivant.
from-web : ne pas inventer d'endpoints déjà présents dans le site audité ; le contrat dérive de l'existant.
deploy : ASC est irréversible côté review → confirmer comme une action destructive ; l'auth asc peut avoir expiré (re-vérifier).
api-contract ne présuppose pas la structure Swift ; c'est l'ASSEMBLY qui fait le pont.
platforms: [macos] (Xcode requis) mais le kit peut cibler iOS/watchOS.
- Prompts de délégation fermés (fichier + contrat) : vibe sans LSP.