PD-262 — Decomposition (Etape 6a)
Manifest
- Story : PD-262 — iOS Anti-tampering: detection jailbreak et protection Frida
- Projet : ProbatioVault-app
- Total taches : 10 (T1-T10)
- Total phases : 5
- Mode parallelisation : sequential (dependances en chaine T1→T2→T3→...)
Strategie de parallelisation
parallelization: sequential
reason: "Dependances en cascade — T2 depend de T1, T3/T4/T5 dependent de T2, T6/T7 dependent de T3, T8 depend de T6+T7, T9 depend de T1, T10 depend de tous"
Taches
Phase 1 — Module natif iOS (T1-T2)
| Task | Agent | Contract | Fichiers | Depend de |
| T1 | agent-developer | CC-262-T1 | ios/ProbatioVault/TamperingDetectorModule.swift, ios/ProbatioVault/TamperingDetectorModule.m | — |
| T2 | agent-developer | CC-262-T2 | src/services/tamperingDetector.ts, src/services/tamperingDetector.types.ts | T1 |
Phase 2 — Services metier (T3-T5)
| Task | Agent | Contract | Fichiers | Depend de |
| T3 | agent-developer | CC-262-T3 | src/services/antiTampering.ts, src/services/antiTampering.types.ts | T2 |
| T4 | agent-developer | CC-262-T4 | src/services/tamperingPurge.ts | T2 |
| T5 | agent-developer | CC-262-T5 | src/services/tamperingAudit.ts | T2 |
Note : T3, T4, T5 dependent tous de T2 mais sont independants entre eux. Parallelisation possible si mode by_level.
Phase 3 — UI et integration (T6-T8)
| Task | Agent | Contract | Fichiers | Depend de |
| T6 | agent-developer | CC-262-T6 | src/screens/security/TamperingLockoutScreen.tsx, src/components/security/LockoutOverlay.tsx | T3 |
| T7 | agent-developer | CC-262-T7 | src/hooks/useAntiTampering.ts | T3 |
| T8 | agent-developer | CC-262-T8 | src/store/useSecurityStore.ts (update), src/navigation/ (update), src/i18n/ (update) | T6, T7 |
Phase 4 — Configuration Expo (T9)
| Task | Agent | Contract | Fichiers | Depend de |
| T9 | agent-developer | CC-262-T9 | app.config.js (update) | T1 |
Phase 5 — Tests (T10)
| Task | Agent | Contract | Fichiers | Depend de |
| T10 | agent-qa-unit | CC-262-T10 | src/tests/services/.test.ts, src/tests/hooks/.test.ts, src/mocks/TamperingDetectorModule.ts | T1-T9 |
Ordre d'execution sequentiel
- T1 (module natif Swift + ObjC bridge)
- T2 (bridge TypeScript)
- T4 (purge service) — peut etre en parallele avec T3, T5
- T5 (audit emitter) — peut etre en parallele avec T3, T4
- T3 (orchestrateur anti-tampering)
- T6 (ecran lockout)
- T7 (hook useAntiTampering)
- T8 (integration navigation + store + i18n)
- T9 (config Expo)
- T10 (tests)
Regles communes
- Chaque agent ne modifie QUE les fichiers listes dans son contract
- Branded types pour TamperingState, TamperingReasonCode (pas de string generique)
- Aucun secret dans les logs/telemetrie
- fail-closed par defaut en cas d'erreur
- Ecriture Keychain AVANT resolve() Promise JS
requireNativeModule pattern (pas NativeModules directement)